[
  {
    "path": ".editorconfig",
    "content": "# EditorConfig, options: https://editorconfig.org\n\nroot = true\n\n[*]\nend_of_line = lf\ninsert_final_newline = true\n\n[*.{yml,yaml}]\ncharset = utf-8\nindent_style = space\nindent_size = 4\n"
  },
  {
    "path": ".github/workflows/doxygen.yml",
    "content": "name: Generate Doxygen Docs\n\non:\n  push:\n    branches:\n    - master\n\njobs:\n  doxygen:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: mattnotmitt/doxygen-action@1.9.4\n        with:\n          working-directory: './docs'\n          doxyfile-path: 'Doxyfile'\n      - uses: stefanzweifel/git-auto-commit-action@v4.15.1\n        with:\n          commit_message: Update Doxygen docs\n"
  },
  {
    "path": ".github/workflows/pr.yml",
    "content": "name: Checkout and Test\n\non:\n  pull_request:\n\njobs:\n  test:\n    # disabled\n    if: false \n    runs-on: ubuntu-latest\n\n    steps:\n    - name: Checkout nakama-dotnet\n      uses: actions/checkout@v2\n      with:\n        ref: ${{ github.head_ref }}\n        repository: heroiclabs/nakama-dotnet\n\n    - name: Checkout nakama-client-testrunner\n      uses: actions/checkout@v2\n      with:\n        ref: ${{ github.head_ref }}\n        repository: heroiclabs/nakama-client-testrunner\n\n    - name: Start docker containers for nakama-client-testrunner\n      working-directory: nakama-client-testrunner\n      run: ./docker-compose up -d --wait\n\n    - name: Run tests for nakama-dotnet\n      working-directory: nakama-dotnet\n      run: dotnet test Nakama.Tests\n"
  },
  {
    "path": ".gitignore",
    "content": "Nakama.sln.DotSettings\n.env\n.task/\n\n# Created by https://www.gitignore.io/api/cake,linux,macos,csharp,windows,monodevelop,intellij+all,visualstudio,visualstudiocode\n# Edit at https://www.gitignore.io/?templates=cake,linux,macos,csharp,windows,monodevelop,intellij+all,visualstudio,visualstudiocode\n\n### Cake ###\ntools/*\n!tools/packages.config\n\n### Csharp ###\n## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n##\n## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore\n\n# User-specific files\n*.rsuser\n*.suo\n*.user\n*.userosscache\n*.sln.docstates\n\n# User-specific files (MonoDevelop/Xamarin Studio)\n*.userprefs\n\n# Mono auto generated files\nmono_crash.*\n\n# Build results\n[Dd]ebug/\n[Dd]ebugPublic/\n[Rr]elease/\n[Rr]eleases/\nx64/\nx86/\n[Aa][Rr][Mm]/\n[Aa][Rr][Mm]64/\nbld/\n[Bb]in/\n[Oo]bj/\n[Ll]og/\n\n# Visual Studio 2015/2017 cache/options directory\n.vs/\n# Uncomment if you have tasks that create the project's static files in wwwroot\n#wwwroot/\n\n# Visual Studio 2017 auto generated files\nGenerated\\ Files/\n\n# MSTest test Results\n[Tt]est[Rr]esult*/\n[Bb]uild[Ll]og.*\n\n# NUNIT\n*.VisualState.xml\nTestResult.xml\n\n# Build Results of an ATL Project\n[Dd]ebugPS/\n[Rr]eleasePS/\ndlldata.c\n\n# Benchmark Results\nBenchmarkDotNet.Artifacts/\n\n# .NET Core\nproject.lock.json\nproject.fragment.lock.json\nartifacts/\n\n# StyleCop\nStyleCopReport.xml\n\n# Files built by Visual Studio\n*_i.c\n*_p.c\n*_h.h\n*.ilk\n*.meta\n*.obj\n*.iobj\n*.pch\n*.pdb\n*.ipdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.tmp_proj\n*_wpftmp.csproj\n*.log\n*.vspscc\n*.vssscc\n.builds\n*.pidb\n*.svclog\n*.scc\n\n# Chutzpah Test files\n_Chutzpah*\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opendb\n*.opensdf\n*.sdf\n*.cachefile\n*.VC.db\n*.VC.VC.opendb\n\n# Visual Studio profiler\n*.psess\n*.vsp\n*.vspx\n*.sap\n\n# Visual Studio Trace Files\n*.e2e\n\n# TFS 2012 Local Workspace\n$tf/\n\n# Guidance Automation Toolkit\n*.gpState\n\n# ReSharper is a .NET coding add-in\n_ReSharper*/\n*.[Rr]e[Ss]harper\n*.DotSettings.user\n\n# JustCode is a .NET coding add-in\n.JustCode\n\n# TeamCity is a build add-in\n_TeamCity*\n\n# DotCover is a Code Coverage Tool\n*.dotCover\n\n# AxoCover is a Code Coverage Tool\n.axoCover/*\n!.axoCover/settings.json\n\n# Visual Studio code coverage results\n*.coverage\n*.coveragexml\n\n# NCrunch\n_NCrunch_*\n.*crunch*.local.xml\nnCrunchTemp_*\n\n# MightyMoose\n*.mm.*\nAutoTest.Net/\n\n# Web workbench (sass)\n.sass-cache/\n\n# Installshield output folder\n[Ee]xpress/\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish/\n\n# Publish Web Output\n*.[Pp]ublish.xml\n*.azurePubxml\n# Note: Comment the next line if you want to checkin your web deploy settings,\n# but database connection strings (with potential passwords) will be unencrypted\n*.pubxml\n*.publishproj\n\n# Microsoft Azure Web App publish settings. Comment the next line if you want to\n# checkin your Azure Web App publish settings, but sensitive information contained\n# in these scripts will be unencrypted\nPublishScripts/\n\n# NuGet Packages\n*.nupkg\n# The packages folder can be ignored because of Package Restore\n**/[Pp]ackages/*\n# except build/, which is used as an MSBuild target.\n!**/[Pp]ackages/build/\n# Uncomment if necessary however generally it will be regenerated when needed\n#!**/[Pp]ackages/repositories.config\n# NuGet v3's project.json files produces more ignorable files\n*.nuget.props\n*.nuget.targets\n\n# Microsoft Azure Build Output\ncsx/\n*.build.csdef\n\n# Microsoft Azure Emulator\necf/\nrcf/\n\n# Windows Store app package directories and files\nAppPackages/\nBundleArtifacts/\nPackage.StoreAssociation.xml\n_pkginfo.txt\n*.appx\n*.appxbundle\n*.appxupload\n\n# Visual Studio cache files\n# files ending in .cache can be ignored\n*.[Cc]ache\n# but keep track of directories ending in .cache\n!?*.[Cc]ache/\n\n# Others\nClientBin/\n~$*\n*~\n*.dbmdl\n*.dbproj.schemaview\n*.jfm\n*.pfx\n*.publishsettings\norleans.codegen.cs\n\n# Including strong name files can present a security risk\n# (https://github.com/github/gitignore/pull/2483#issue-259490424)\n#*.snk\n\n# Since there are multiple workflows, uncomment next line to ignore bower_components\n# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)\n#bower_components/\n\n# RIA/Silverlight projects\nGenerated_Code/\n\n# Backup & report files from converting an old project file\n# to a newer Visual Studio version. Backup files are not needed,\n# because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\nUpgradeLog*.htm\nServiceFabricBackup/\n*.rptproj.bak\n\n# SQL Server files\n*.mdf\n*.ldf\n*.ndf\n\n# Business Intelligence projects\n*.rdl.data\n*.bim.layout\n*.bim_*.settings\n*.rptproj.rsuser\n*- Backup*.rdl\n\n# Microsoft Fakes\nFakesAssemblies/\n\n# GhostDoc plugin setting file\n*.GhostDoc.xml\n\n# Node.js Tools for Visual Studio\n.ntvs_analysis.dat\nnode_modules/\n\n# Visual Studio 6 build log\n*.plg\n\n# Visual Studio 6 workspace options file\n*.opt\n\n# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)\n*.vbw\n\n# Visual Studio LightSwitch build output\n**/*.HTMLClient/GeneratedArtifacts\n**/*.DesktopClient/GeneratedArtifacts\n**/*.DesktopClient/ModelManifest.xml\n**/*.Server/GeneratedArtifacts\n**/*.Server/ModelManifest.xml\n_Pvt_Extensions\n\n# Paket dependency manager\n.paket/paket.exe\npaket-files/\n\n# FAKE - F# Make\n.fake/\n\n# CodeRush personal settings\n.cr/personal\n\n# Python Tools for Visual Studio (PTVS)\n__pycache__/\n*.pyc\n\n# Cake - Uncomment if you are using it\n# tools/**\n# !tools/packages.config\n\n# Tabs Studio\n*.tss\n\n# Telerik's JustMock configuration file\n*.jmconfig\n\n# BizTalk build output\n*.btp.cs\n*.btm.cs\n*.odx.cs\n*.xsd.cs\n\n# OpenCover UI analysis results\nOpenCover/\n\n# Azure Stream Analytics local run output\nASALocalRun/\n\n# MSBuild Binary and Structured Log\n*.binlog\n\n# NVidia Nsight GPU debugger configuration file\n*.nvuser\n\n# MFractors (Xamarin productivity tool) working folder\n.mfractor/\n\n# Local History for Visual Studio\n.localhistory/\n\n# BeatPulse healthcheck temp database\nhealthchecksdb\n\n# Backup folder for Package Reference Convert tool in Visual Studio 2017\nMigrationBackup/\n\n### Intellij+all ###\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm\n# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839\n\n# User-specific stuff\n.idea/**/workspace.xml\n.idea/**/tasks.xml\n.idea/**/usage.statistics.xml\n.idea/**/dictionaries\n.idea/**/shelf\n\n# Generated files\n.idea/**/contentModel.xml\n\n# Sensitive or high-churn files\n.idea/**/dataSources/\n.idea/**/dataSources.ids\n.idea/**/dataSources.local.xml\n.idea/**/sqlDataSources.xml\n.idea/**/dynamic.xml\n.idea/**/uiDesigner.xml\n.idea/**/dbnavigator.xml\n\n# Gradle\n.idea/**/gradle.xml\n.idea/**/libraries\n\n# Gradle and Maven with auto-import\n# When using Gradle or Maven with auto-import, you should exclude module files,\n# since they will be recreated, and may cause churn.  Uncomment if using\n# auto-import.\n# .idea/modules.xml\n# .idea/*.iml\n# .idea/modules\n\n# CMake\ncmake-build-*/\n\n# Mongo Explorer plugin\n.idea/**/mongoSettings.xml\n\n# File-based project format\n*.iws\n\n# IntelliJ\nout/\n\n# mpeltonen/sbt-idea plugin\n.idea_modules/\n\n# JIRA plugin\natlassian-ide-plugin.xml\n\n# Cursive Clojure plugin\n.idea/replstate.xml\n\n# Crashlytics plugin (for Android Studio and IntelliJ)\ncom_crashlytics_export_strings.xml\ncrashlytics.properties\ncrashlytics-build.properties\nfabric.properties\n\n# Editor-based Rest Client\n.idea/httpRequests\n\n# Android studio 3.1+ serialized cache file\n.idea/caches/build_file_checksums.ser\n\n# JetBrains templates\n**___jb_tmp___\n\n### Intellij+all Patch ###\n# Ignores the whole .idea folder and all .iml files\n# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360\n\n.idea/\n\n# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023\n\n*.iml\nmodules.xml\n.idea/misc.xml\n*.ipr\n\n# Sonarlint plugin\n.idea/sonarlint\n\n### Linux ###\n\n# temporary files which can be created if a process still has a handle open of a deleted file\n.fuse_hidden*\n\n# KDE directory preferences\n.directory\n\n# Linux trash folder which might appear on any partition or disk\n.Trash-*\n\n# .nfs files are created when an open file is removed but is still being accessed\n.nfs*\n\n### macOS ###\n# General\n.DS_Store\n.AppleDouble\n.LSOverride\n\n# Icon must end with two \\r\nIcon\n\n# Thumbnails\n._*\n\n# Files that might appear in the root of a volume\n.DocumentRevisions-V100\n.fseventsd\n.Spotlight-V100\n.TemporaryItems\n.Trashes\n.VolumeIcon.icns\n.com.apple.timemachine.donotpresent\n\n# Directories potentially created on remote AFP share\n.AppleDB\n.AppleDesktop\nNetwork Trash Folder\nTemporary Items\n.apdisk\n\n### MonoDevelop ###\n#User Specific\n*.usertasks\n\n#Mono Project Files\n*.resources\ntest-results/\n\n### VisualStudioCode ###\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n\n### VisualStudioCode Patch ###\n# Ignore all local history of files\n.history\n\n### Windows ###\n# Windows thumbnail cache files\nThumbs.db\nehthumbs.db\nehthumbs_vista.db\n\n# Dump file\n*.stackdump\n\n# Folder config file\n[Dd]esktop.ini\n\n# Recycle Bin used on file shares\n$RECYCLE.BIN/\n\n# Windows Installer files\n*.cab\n*.msi\n*.msix\n*.msm\n*.msp\n\n# Windows shortcuts\n*.lnk\n\n### VisualStudio ###\n\n# User-specific files\n\n# User-specific files (MonoDevelop/Xamarin Studio)\n\n# Mono auto generated files\n\n# Build results\n\n# Visual Studio 2015/2017 cache/options directory\n# Uncomment if you have tasks that create the project's static files in wwwroot\n\n# Visual Studio 2017 auto generated files\n\n# MSTest test Results\n\n# NUNIT\n\n# Build Results of an ATL Project\n\n# Benchmark Results\n\n# .NET Core\n\n# StyleCop\n\n# Files built by Visual Studio\n\n# Chutzpah Test files\n\n# Visual C++ cache files\n\n# Visual Studio profiler\n\n# Visual Studio Trace Files\n\n# TFS 2012 Local Workspace\n\n# Guidance Automation Toolkit\n\n# ReSharper is a .NET coding add-in\n\n# JustCode is a .NET coding add-in\n\n# TeamCity is a build add-in\n\n# DotCover is a Code Coverage Tool\n\n# AxoCover is a Code Coverage Tool\n\n# Visual Studio code coverage results\n\n# NCrunch\n\n# MightyMoose\n\n# Web workbench (sass)\n\n# Installshield output folder\n\n# DocProject is a documentation generator add-in\n\n# Click-Once directory\n\n# Publish Web Output\n# Note: Comment the next line if you want to checkin your web deploy settings,\n# but database connection strings (with potential passwords) will be unencrypted\n\n# Microsoft Azure Web App publish settings. Comment the next line if you want to\n# checkin your Azure Web App publish settings, but sensitive information contained\n# in these scripts will be unencrypted\n\n# NuGet Packages\n# The packages folder can be ignored because of Package Restore\n# except build/, which is used as an MSBuild target.\n# Uncomment if necessary however generally it will be regenerated when needed\n# NuGet v3's project.json files produces more ignorable files\n\n# Microsoft Azure Build Output\n\n# Microsoft Azure Emulator\n\n# Windows Store app package directories and files\n\n# Visual Studio cache files\n# files ending in .cache can be ignored\n# but keep track of directories ending in .cache\n\n# Others\n\n# Including strong name files can present a security risk\n# (https://github.com/github/gitignore/pull/2483#issue-259490424)\n\n# Since there are multiple workflows, uncomment next line to ignore bower_components\n# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)\n\n# RIA/Silverlight projects\n\n# Backup & report files from converting an old project file\n# to a newer Visual Studio version. Backup files are not needed,\n# because we have git ;-)\n\n# SQL Server files\n\n# Business Intelligence projects\n\n# Microsoft Fakes\n\n# GhostDoc plugin setting file\n\n# Node.js Tools for Visual Studio\n\n# Visual Studio 6 build log\n\n# Visual Studio 6 workspace options file\n\n# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)\n\n# Visual Studio LightSwitch build output\n\n# Paket dependency manager\n\n# FAKE - F# Make\n\n# CodeRush personal settings\n\n# Python Tools for Visual Studio (PTVS)\n\n# Cake - Uncomment if you are using it\n# tools/**\n# !tools/packages.config\n\n# Tabs Studio\n\n# Telerik's JustMock configuration file\n\n# BizTalk build output\n\n# OpenCover UI analysis results\n\n# Azure Stream Analytics local run output\n\n# MSBuild Binary and Structured Log\n\n# NVidia Nsight GPU debugger configuration file\n\n# MFractors (Xamarin productivity tool) working folder\n\n# Local History for Visual Studio\n\n# BeatPulse healthcheck temp database\n\n# Backup folder for Package Reference Convert tool in Visual Studio 2017\n\n# End of https://www.gitignore.io/api/cake,linux,macos,csharp,windows,monodevelop,intellij+all,visualstudio,visualstudiocode\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).\n\n## [3.21.2] - 2026-02-13\n### Changed\n- Nakama+Satori: Improve how HTTP requests are logged in the request adapter.\n\n### Fixed\n- Satori: Fix argument order to client \"GetFlagOverrides\" function.\n- Nakama+Satori: Fix proto dependency resolver within build task.\n\n## [3.21.1] - 2025-12-21\n### Fixed\n- Embed README into Nuget package distribution with correct file path.\n- Satori: Use correct argument order with GetFlags after code generator changes.\n\n## [3.21.0] - 2025-12-07\n### Added\n- Satori: Add phase name and phase variant info to Experiment return types.\n- Satori: Add message IDs as optional filter input when Messages are listed.\n\n### Changed\n- Nakama: Suppress WebSocket exception race condition on graceful socket closure with Unity/Mono runtime.\n- Nakama+Satori: Update various Nuget dependencies used in Test profile.\n\n### Fixed\n- Nakama: Work around issue in Unity IL2CPP with broader use of Preserve annotation on stream types.\n\n## [3.20.0] - 2025-10-01\n### Added\n- Nakama: New \"ConsoleClient\" functions to make HTTP requests to the Nakama Console.\n\n### Fixed\n- Satori: Avoid recursive calls to GetFlags overload functions.\n\n## [3.19.0] - 2025-09-29\n### Added\n- Satori: Enable logger to be passed into the \"HttpRequestAdapter.\"\n- Satori: Update client with latest \"JoinLiveEventAsync\" feature.\n\n### Changed\n- Use [Task](https://taskfile.dev/) as the task runner for codegen, build, and publish commands.\n- Pin the Protobuf plugins used to generate the Swagger spec used by the codegen tool.\n\n## [3.18.0] - 2025-09-01\n### Changed\n- Nakama: If the server sends a close frame control message, gracefully respond with close output from the socket.\n- Satori: Make \"Update\" method public in Satori \"Session\" type.\n- Nakama+Satori: Expose \"TimeoutException\" when CTS timeout occurs within \"HttpRequestAdapter.\"\n\n## [3.17.0] - 2025-07-16\n### Added\n- Nakama: New Realtime Parties search feature which allows open parties to be discovered by users.\n\n### Changed\n- Nakama+Satori: TinyJson will now encode any \"IDictionary<,>\" type.\n\n### Fixed\n- Nakama: \"ListStorageObjectsAsync\" can use a user ID as input to fetch public storage objects for that user. Thanks @chrisanicolaou.\n- Nakama+Satori: Fix how issue at time is decoded from Session token.\n\n## [3.16.0] - 2025-02-13\n### Added\n- Satori: Update the Client type with the newest Satori API. See [release notes](https://heroiclabs.com/docs/satori/concepts/introduction/release-notes/).\n\n### Changed\n- Nakama+Satori: Embed version information based on Git describe into builds.\n\n### Fixed\n- Nakama+Satori: Use formatted arguments with all logger lines in request adapters.\n- Satori: Use session token as jitter seed for randomized backoff with retries.\n- Nakama: \"ISession.CreateTime\" now accurately represents Unix time in seconds since the \"ISession\" object was created.\n\n## [3.15.0] - 2025-01-28\n### Added\n- Satori: Add retry attempts to \"Client\" type.\n\n### Changed\n- Nakama: Improve how cancellation is handled in HTTP requests.\n- Satori: Improve how cancellation is handled in HTTP requests.\n- Satori: Timeouts set in \"Client\" are now propagated to the underlying \"ApiClient\" type.\n\n### Fixed\n- GitHub Pages documentation no longer uses Jekyll transform.\n\n## [3.14.0] - 2024-10-20\n### Added\n- Satori: New \"IClient\" event called \"ReceivedSessionUpdated\" when session expires and is refreshed.\n\n### Changed\n- Satori: The new session returned by \"IdentifyAsync\" is merged into the input \"Session\" type.\n\n## [3.13.0] - 2024-07-10\n### Added\n- Satori: Added \"ImageUrl\" and \"Title\" to \"IApiMessage\".\n\n## [3.12.1] - 2024-05-30\n### Fixed\n- Nakama: Fixed an issue where notifications from other users could appear as if they were sent by the recipient user.\n- Nakama: Fixed a potential \"NullReferenceException\" that could occur when passing a \"null\" username to \"IClient.UpdateAccountAsync\".\n\n## [3.12.0] - 2024-04-08\n### Added\n- Satori: Added \"IApiLiveEvent.Id\" for accessing live event identifiers.\n- Satori: Added support for new Satori Messages API: \"IClient.GetMessageListAsync\", \"IClient.UpdateMessageAsync\" and \"IClient.DeleteMessageAsync\".\n\n## [3.11.0] - 2024-03-08\n### Added\n- Nakama: New \"IClient\" event called \"ReceivedSessionUpdated\" when session expires and is refreshed.\n- Nakama: New \"Session.Update\" method to allow for in-place updates to the session object.\n\n### Changed\n- Nakama: \"IsConnected\" and \"IsConnecting\" will now read directly from the underlying .NET socket status. This will allow application code to more quickly and easily detect connectivity loss arising from a lack of internet access.\n- Nakama: Default socket adapter changed from \"WebSocketAdapter\" to \"WebSocketStdlibAdapter\". This was done to utilize the native .NET Websocket library for improved stability and maintenance.\n\n### Fixed\n- Nakama: Trying to connect a socket that is already connecting now results in a no-op instead of an error.\n\n## [3.10.0] - 2023-11-21\n### Changed\n- Nakama: Mark socket as connected before event handler is called.\n- Nakama: Limited scope of retry logic to very specific 500-level codes from the server.\n\n### Added\n- Nakama: Rank count is now returned with tournament record listings.\n- Nakama: Added ability to delete tournament records with \"DeleteTournamentRecordAsync\".\n- Nakama: Hostnames passed to the client now preserve their hardcoded paths.\n- Nakama: Create and update times are now returned with notifications.\n- Nakama: Added Facebook Instant Games purchase validation.\n\n## [3.9.0]\n### Added\n- Satori: Added \"recompute\" option to \"UpdatePropertiesAsync\" which allows audiences to be recalculated on property update.\n\n### Changed\n- Satori: Decreased size of JSON payloads.\n\n### Fixed\n- Satori: \"DeleteIdentityAsync\" no longer accepts an explicit ID.\n\n## [3.8.0]\n### Added\n- Nakama: Added \"Authoritative\" flag to tournaments returned from the server.\n- Nakama: Added \"RefundTime\" and \"UserId\" to purchases and subscriptions returned from the server.\n- Nakama: Added raw subscription provider information.\n- Nakama: Added \"DeleteAccountAsync\" for deleting user accounts.\n- Satori: Added \"DeleteIdentityAsync\" for deleting user identities.\n\n### Changed\n- Nakama: Used \"session.Username\" wherever outdated state might be returned.\n\n### Fixed\n- Nakama: Fixed issue where outgoing payloads could include unnecessary JSON.\n\n\n## [3.7.0]\n### Added\n- Nakama: Added a \"UpdatePresences\" utility to \"IMatch\" and \"IParty\". Use this method to maintain the presences in your matches and parties\nwhen an \"IMatchPresenceEvent\" or \"IPartyPresenceEvent\" is dispatched.\n- Satori: Added optional default and custom properties that can be attached to authentication requests.\n\n### Changed\n- Satori: \"GetFlagDefault\" and \"GetFlagsDefault\" now use the \"apiKey\" passed to the client constructor rather than accepting it as a unique parameter.\n\n## [3.6.0]\n### Added\n- Satori: Adds the Satori .NET SDK. Satori is our liveops server for game studios. Please read more about it on the Heroic Labs website.\n- Nakama: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.\n- Nakama: Expose the \"Logger\" object on \"IClient\".\n- Nakama: Adds support for POST RPC requests when using HTTP key with a payload\n\n### Fixed\n- Nakama: Prevent race condition when \"Close\" is called while receive loop has an incomplete read buffer.\n- Nakama: Fixed an issue where 500 errors could cause parsing issues on the client.\n- Nakama: Added ability to specify \"path\" parameter to client urls.\n\n### Changed\n- Nakama: Fixed an issue where our websocket would throw an exception on \"CloseAsync()\" in certain situations.\n\n## [3.5.0] - 2022-09-06\n### Added\n- Ability to \"persist\" Apple, Huawei, and Google purchase receipts in the Nakama database. This is set to \"true\" by default in order to allow the server to detect replay attacks.\n- Added a \"SeenBefore\" property to \"IApiValidatedPurchase\".\n- Added \"ListSubscriptionsAsync\" which returns a list of the user's subscriptions.\n- Added \"ValidateSubscriptionAppleAsync\" which returns details about a user's Apple subscription.\n- Added \"ValidateSubscriptionGoogleAsync\" which returns details about a user's Google subscription.\n- Added \"GetSubscriptionAsync\" which returns a subscription for the provided product id.\n- Added support for \"countMultiple\" in \"AddMatchmakerAsync\" and \"AddMatchmakerPartyAsync\".\n\n### Changed\n- \"ValidatedPurchaseEnvironment\" has been renamed to \"ApiStoreEnvironment\".\n- \"ValidatedPurchaseStore\" has been renamed to \"ApiStoreProvider\".\n- Removed obsolete client methods that accept a \"CancellationTokenSource\". These have been replaced in favor of methods that accept a \"CancellationToken\" that were added in v3.3.\n\n### Fixed\n- Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.\n- Fixed an issue with \"SocketClosed\" event taking a significant length of time or not firing at all when internet connection is lost.\n- Fixed an issue that would occur when sending messages over the socket from multiple threads.\n- Fixed automatic retry seeding to be random across devices.\n- Fixed an issue when parsing unquoted numbers as strings in TinyJson.\n\n## [3.4.0] - 2022-04-28\n### Added\n- Allow max message size limit with socket messages to be overridden in the adapter.\n- Relayed multiplayer matches can now be created with a custom name (i.e. room name).\n\n### Fixed\n- Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.\n\n## [3.3.0] - 2022-01-24\n### Added\n- Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.\n- Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.\n\n### Changed\n- Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).\n- Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).\n- Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.\n- A socket connect made on an already connected socket will no longer raise an exception.\n- Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.\n- Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.\n\n### Fixed\n- Expose base exception if retry handler fails.\n\n## [3.2.0] - 2021-10-11\n### Added\n- Added additional group listing filters.\n- Added ability to overwrite leaderboard/tournament ranking operators from the client.\n\n### Fixed\n- Fixed url-safe encoding of query params that were passed to the client as arrays of strings.\n\n## [3.1.1] - 2021-08-19\n### Changed\n- Removed \"autoRefreshSession\" from overloaded \"Client\" constructors. This can still be customized with the base \"Client\" constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.\n\n## [3.1.0] - 2021-08-11\n### Added\n- Added ability for user to retry requests if they fail due to a transient network error.\n- Added ability for user to cancel requests that are in-flight.\n\n## [3.0.0] - 2021-07-14\n### Added\n- The language tag for the user can be configured with the socket on connect.\n\n### Changed\n- An \"IPartyMatchmakerTicket\" is now received by the party leader when they add their party to the matchmaker via \"AddMatchmakerPartyAsync\".\n- Renamed \"PromotePartyMember\" to \"PromotePartyMemberAsync\".\n\n## [2.9.3] - 2021-06-17\n### Fixed\n- Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.\n\n## [2.9.2] - 2021-05-21\n### Fixed\n- Fixed issue where \"IUserPresence\" objects were not being deserialized properly by the client as part of the \"IParty\" object.\n\n### Changed\n- AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.\n- Renamed PromotePartyMember to PromotePartyMemberAsync.\n\n## [2.9.1] - 2021-05-19\n### Added\n- The \"Socket.ReceivedParty\" event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.\n\n## [2.9.0] - 2021-05-15\n### Added\n- A session can be refreshed on demand with \"SessionRefreshAsync\" method.\n- Session and/or refresh tokens can now be disabled with a client logout.\n- The client now supports session auto-refresh using refresh tokens. This is enabled by default.\n- New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.\n- Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.\n- Add Realtime Parties feature.\n\n### Changed\n- Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.\n- Avoid use of extension methods as a workaround for a Unity engine WebGL regression.\n\n### Fixed\n- Parse HTTP responses defensively in case of bad load balancer configurations.\n\n## [2.8.0] - 2020-02-19\n### Changed\n- Listing tournaments can now be done without providing start or end time filters.\n- Can now import Steam friends after authenticating or linking to a Steam account.\n\n## [2.7.1] - 2020-02-1\n### Fixed\n- HTTP Client now properly reads off timeout value.\n\n## [2.7.0] - 2020-10-19\n### Changed\n- Upgrade code generator to new Swagger format.\n### Fixed\n- Properly pass server key to Apple auth calls.\n\n## [2.6.0] - 2020-09-21\n### Added\n- Added Apple single sign-on support.\n- Added Steam single sign-on support.\n\n### Fixed\n- Fixed serialization of HTTP API error messages.\n\n### Changed\n- Silenced a noisy but benign exception related to web socket connections.\n\n## [2.5.0] - 2020-08-12\n### Added\n- Add parsing support for the Nakama Console API to the code generator.\n- Add support for emitting custom events to the Nakama server.\n- Add ban and demote API to the client.\n\n### Changed\n- Update TinyJson packaged dependency to the '01c586d' commit.\n- Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.\n- Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.\n\n## [2.4.0] - 2020-05-04 :star:\n### Added\n- New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.\n\n### Changed\n- ListUsersStorageObjectsAsync now uses default arguments for optional inputs.\n\n### Fixed\n- Prevent InvalidOperationException caused when socket connect task is already completed.\n\n## [2.3.1] - 2019-09-21\n### Changed\n- Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.\n\n### Fixed\n- Add missing metadata to match join message.\n- Add discrete channel identifier in all channel related messages.\n\n## [2.3.0] - 2019-09-02\n### Added\n- Follow users by username for status updates.\n- Decode session variables from the auth token.\n- Paginate friends, groups, and user's group listings.\n- Filter friends, groups, and user's group listings.\n- Send session variables with authenticate requests.\n- Socket messages now use a send timeout of 15 seconds to write to the buffer.\n\n### Changed\n- Increase the default socket timeout to 30 seconds.\n\n### Fixed\n- Use the connect timeout value in native socket connect attempts.\n- Link the token source across socket connect and close tasks.\n\n## [2.2.2] - 2019-07-02\n### Changed\n- Don't synchronize the socket receive with the current thread context.\n- Remove workaround for Mono runtime usage with newer TLS negotation.\n\n### Fixed\n- Resolve deadlock in socket dispose with synchronization context.\n\n## [2.2.1] - 2019-06-19\n### Added\n- New comparison methods on some domain types.\n\n### Changed\n- When an auth token is decoded into a session but is null or empty now return null.\n\n### Fixed\n- Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.\n- Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.\n- Restored missing helper object with storage writes.\n\n## [2.2.0] - 2019-06-06\n### Added\n- Add tournaments API.\n- Add leaderboards around owner API.\n- Provide more overload methods to the socket object for simpler usage.\n\n### Changed\n- Update TinyJson packaged dependency to latest version.\n- Replace WebSocketListener with a new socket library.\n- Flatten use of Tasks in method responses.\n\n### Fixed\n- Logger is now initialized correctly with socket debugging.\n- Stream data state is correctly deserialized from socket messages.\n- Fix callback ID on chat and match leave messages.\n\n## [2.1.0] - 2018-08-17\n### Added\n- Detect socket message encodings.\n- All authenticate methods can now pass in username and create options.\n- Support gzip compress/decompress on ApiClient methods.\n\n### Changed\n- Update the code generator to handle POST/DELETE query params.\n- Match listings can now pass through \"null\" to indicate no filters.\n- ApiClient exceptions now contain HTTP status codes.\n- Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.\n- Disable request decompression by default due to Unity+Android issue.\n\n### Fixed\n- Reuse the HTTP client across all methods.\n\n## [2.0.0] - 2018-06-18\n### Added\n- Initial public release.\n\nThis version starts at 2.0 to match the initial server version it supports.\n"
  },
  {
    "path": "LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "Nakama/ApiClient.gen.cs",
    "content": "/* Code generated by codegen/main.go. DO NOT EDIT. */\nnamespace Nakama\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Runtime.Serialization;\n    using System.Text;\n    using System.Threading;\n    using System.Threading.Tasks;\n    using TinyJson;\n\n    /// <summary>\n    /// An exception generated for <c>HttpResponse</c> objects don't return a success status.\n    /// </summary>\n    public sealed class ApiResponseException : Exception\n    {\n        public long StatusCode { get; }\n\n        public int GrpcStatusCode { get; }\n\n        public ApiResponseException(long statusCode, string content, int grpcCode) : base(content)\n        {\n            StatusCode = statusCode;\n            GrpcStatusCode = grpcCode;\n        }\n\n        public ApiResponseException(string message, Exception e) : base(message, e)\n        {\n            StatusCode = -1L;\n            GrpcStatusCode = -1;\n        }\n\n        public ApiResponseException(string content) : this(-1L, content, -1)\n        {\n        }\n\n        public override string ToString()\n        {\n            return $\"ApiResponseException(StatusCode={StatusCode}, Message='{Message}', GrpcStatusCode={GrpcStatusCode})\";\n        }\n    }\n\n    /// <summary>\n    /// Update fields in a given group.\n    /// </summary>\n    public interface IApiUpdateGroupRequest\n    {\n\n        /// <summary>\n        /// Avatar URL.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// Description string.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// Lang tag.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// Name.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin.\n        /// </summary>\n        bool Open { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUpdateGroupRequest : IApiUpdateGroupRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A friend of a friend.\n    /// </summary>\n    public interface IFriendsOfFriendsListFriendOfFriend\n    {\n\n        /// <summary>\n        /// The user who referred its friend.\n        /// </summary>\n        string Referrer { get; }\n\n        /// <summary>\n        /// User.\n        /// </summary>\n        IApiUser User { get; }\n    }\n\n    /// <inheritdoc />\n    internal class FriendsOfFriendsListFriendOfFriend : IFriendsOfFriendsListFriendOfFriend\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"referrer\"), Preserve]\n        public string Referrer { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public ApiUser _user { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Referrer: \", Referrer, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single user-role pair.\n    /// </summary>\n    public interface IGroupUserListGroupUser\n    {\n\n        /// <summary>\n        /// Their relationship to the group.\n        /// </summary>\n        int State { get; }\n\n        /// <summary>\n        /// User.\n        /// </summary>\n        IApiUser User { get; }\n    }\n\n    /// <inheritdoc />\n    internal class GroupUserListGroupUser : IGroupUserListGroupUser\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public ApiUser _user { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"State: \", State, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single group-role pair.\n    /// </summary>\n    public interface IUserGroupListUserGroup\n    {\n\n        /// <summary>\n        /// Group.\n        /// </summary>\n        IApiGroup Group { get; }\n\n        /// <summary>\n        /// The user's relationship to the group.\n        /// </summary>\n        int State { get; }\n    }\n\n    /// <inheritdoc />\n    internal class UserGroupListUserGroup : IUserGroupListUserGroup\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiGroup Group => _group;\n        [DataMember(Name=\"group\"), Preserve]\n        public ApiGroup _group { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Group: \", Group, \", \");\n            output = string.Concat(output, \"State: \", State, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Record values to write.\n    /// </summary>\n    public interface IWriteLeaderboardRecordRequestLeaderboardRecordWrite\n    {\n\n        /// <summary>\n        /// Optional record metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Operator override.\n        /// </summary>\n        ApiOperator Operator { get; }\n\n        /// <summary>\n        /// The score value to submit.\n        /// </summary>\n        string Score { get; }\n\n        /// <summary>\n        /// An optional secondary value.\n        /// </summary>\n        string Subscore { get; }\n    }\n\n    /// <inheritdoc />\n    internal class WriteLeaderboardRecordRequestLeaderboardRecordWrite : IWriteLeaderboardRecordRequestLeaderboardRecordWrite\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiOperator Operator => _operator;\n        [DataMember(Name=\"operator\"), Preserve]\n        public ApiOperator _operator { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"score\"), Preserve]\n        public string Score { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subscore\"), Preserve]\n        public string Subscore { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Operator: \", Operator, \", \");\n            output = string.Concat(output, \"Score: \", Score, \", \");\n            output = string.Concat(output, \"Subscore: \", Subscore, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Record values to write.\n    /// </summary>\n    public interface IWriteTournamentRecordRequestTournamentRecordWrite\n    {\n\n        /// <summary>\n        /// A JSON object of additional properties (optional).\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Operator override.\n        /// </summary>\n        ApiOperator Operator { get; }\n\n        /// <summary>\n        /// The score value to submit.\n        /// </summary>\n        string Score { get; }\n\n        /// <summary>\n        /// An optional secondary value.\n        /// </summary>\n        string Subscore { get; }\n    }\n\n    /// <inheritdoc />\n    internal class WriteTournamentRecordRequestTournamentRecordWrite : IWriteTournamentRecordRequestTournamentRecordWrite\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiOperator Operator => _operator;\n        [DataMember(Name=\"operator\"), Preserve]\n        public ApiOperator _operator { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"score\"), Preserve]\n        public string Score { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subscore\"), Preserve]\n        public string Subscore { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Operator: \", Operator, \", \");\n            output = string.Concat(output, \"Score: \", Score, \", \");\n            output = string.Concat(output, \"Subscore: \", Subscore, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user with additional account details. Always the current user.\n    /// </summary>\n    public interface IApiAccount\n    {\n\n        /// <summary>\n        /// The custom id in the user's account.\n        /// </summary>\n        string CustomId { get; }\n\n        /// <summary>\n        /// The devices which belong to the user's account.\n        /// </summary>\n        IEnumerable<IApiAccountDevice> Devices { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned.\n        /// </summary>\n        string DisableTime { get; }\n\n        /// <summary>\n        /// The email address of the user.\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// The user object.\n        /// </summary>\n        IApiUser User { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified.\n        /// </summary>\n        string VerifyTime { get; }\n\n        /// <summary>\n        /// The user's wallet data.\n        /// </summary>\n        string Wallet { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccount : IApiAccount\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"custom_id\"), Preserve]\n        public string CustomId { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiAccountDevice> Devices => _devices ?? new List<ApiAccountDevice>(0);\n        [DataMember(Name=\"devices\"), Preserve]\n        public List<ApiAccountDevice> _devices { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"disable_time\"), Preserve]\n        public string DisableTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public ApiUser _user { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"verify_time\"), Preserve]\n        public string VerifyTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"wallet\"), Preserve]\n        public string Wallet { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CustomId: \", CustomId, \", \");\n            output = string.Concat(output, \"Devices: [\", string.Join(\", \", Devices), \"], \");\n            output = string.Concat(output, \"DisableTime: \", DisableTime, \", \");\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            output = string.Concat(output, \"VerifyTime: \", VerifyTime, \", \");\n            output = string.Concat(output, \"Wallet: \", Wallet, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a Apple Sign In token to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountApple\n    {\n\n        /// <summary>\n        /// The ID token received from Apple to validate.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountApple : IApiAccountApple\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a custom ID to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountCustom\n    {\n\n        /// <summary>\n        /// A custom identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountCustom : IApiAccountCustom\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Id: \", Id, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a device to the server. Used with authenticate/link/unlink and user.\n    /// </summary>\n    public interface IApiAccountDevice\n    {\n\n        /// <summary>\n        /// A device identifier. Should be obtained by a platform-specific device API.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountDevice : IApiAccountDevice\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Id: \", Id, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send an email with password to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountEmail\n    {\n\n        /// <summary>\n        /// A valid RFC-5322 email address.\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// A password for the user account.  Ignored with unlink operations.\n        /// </summary>\n        string Password { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountEmail : IApiAccountEmail\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"password\"), Preserve]\n        public string Password { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"Password: \", Password, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a Facebook token to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountFacebook\n    {\n\n        /// <summary>\n        /// The OAuth token received from Facebook to access their profile API.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountFacebook : IApiAccountFacebook\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountFacebookInstantGame\n    {\n\n        /// <summary>\n        /// The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration)\n        /// </summary>\n        string SignedPlayerInfo { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountFacebookInstantGame : IApiAccountFacebookInstantGame\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"signed_player_info\"), Preserve]\n        public string SignedPlayerInfo { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"SignedPlayerInfo: \", SignedPlayerInfo, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink.  https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\n    /// </summary>\n    public interface IApiAccountGameCenter\n    {\n\n        /// <summary>\n        /// Bundle ID (generated by GameCenter).\n        /// </summary>\n        string BundleId { get; }\n\n        /// <summary>\n        /// Player ID (generated by GameCenter).\n        /// </summary>\n        string PlayerId { get; }\n\n        /// <summary>\n        /// The URL for the public encryption key.\n        /// </summary>\n        string PublicKeyUrl { get; }\n\n        /// <summary>\n        /// A random \"NSString\" used to compute the hash and keep it randomized.\n        /// </summary>\n        string Salt { get; }\n\n        /// <summary>\n        /// The verification signature data generated.\n        /// </summary>\n        string Signature { get; }\n\n        /// <summary>\n        /// Time since UNIX epoch when the signature was created.\n        /// </summary>\n        string TimestampSeconds { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountGameCenter : IApiAccountGameCenter\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"bundle_id\"), Preserve]\n        public string BundleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"player_id\"), Preserve]\n        public string PlayerId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"public_key_url\"), Preserve]\n        public string PublicKeyUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"salt\"), Preserve]\n        public string Salt { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"signature\"), Preserve]\n        public string Signature { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timestamp_seconds\"), Preserve]\n        public string TimestampSeconds { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"BundleId: \", BundleId, \", \");\n            output = string.Concat(output, \"PlayerId: \", PlayerId, \", \");\n            output = string.Concat(output, \"PublicKeyUrl: \", PublicKeyUrl, \", \");\n            output = string.Concat(output, \"Salt: \", Salt, \", \");\n            output = string.Concat(output, \"Signature: \", Signature, \", \");\n            output = string.Concat(output, \"TimestampSeconds: \", TimestampSeconds, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a Google token to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountGoogle\n    {\n\n        /// <summary>\n        /// The OAuth token received from Google to access their profile API.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountGoogle : IApiAccountGoogle\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a Steam token to the server. Used with authenticate/link/unlink.\n    /// </summary>\n    public interface IApiAccountSteam\n    {\n\n        /// <summary>\n        /// The account token received from Steam to access their profile API.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountSteam : IApiAccountSteam\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A message sent on a channel.\n    /// </summary>\n    public interface IApiChannelMessage\n    {\n\n        /// <summary>\n        /// The channel this message belongs to.\n        /// </summary>\n        string ChannelId { get; }\n\n        /// <summary>\n        /// The code representing a message type or category.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// The content payload.\n        /// </summary>\n        string Content { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The ID of the group, or an empty string if this message was not sent through a group channel.\n        /// </summary>\n        string GroupId { get; }\n\n        /// <summary>\n        /// The unique ID of this message.\n        /// </summary>\n        string MessageId { get; }\n\n        /// <summary>\n        /// True if the message was persisted to the channel's history, false otherwise.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// The name of the chat room, or an empty string if this message was not sent through a chat room.\n        /// </summary>\n        string RoomName { get; }\n\n        /// <summary>\n        /// Message sender, usually a user ID.\n        /// </summary>\n        string SenderId { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdOne { get; }\n\n        /// <summary>\n        /// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdTwo { get; }\n\n        /// <summary>\n        /// The username of the message sender, if any.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiChannelMessage : IApiChannelMessage\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"group_id\"), Preserve]\n        public string GroupId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message_id\"), Preserve]\n        public string MessageId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistent\"), Preserve]\n        public bool Persistent { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"room_name\"), Preserve]\n        public string RoomName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sender_id\"), Preserve]\n        public string SenderId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id_one\"), Preserve]\n        public string UserIdOne { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id_two\"), Preserve]\n        public string UserIdTwo { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ChannelId: \", ChannelId, \", \");\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Content: \", Content, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"GroupId: \", GroupId, \", \");\n            output = string.Concat(output, \"MessageId: \", MessageId, \", \");\n            output = string.Concat(output, \"Persistent: \", Persistent, \", \");\n            output = string.Concat(output, \"RoomName: \", RoomName, \", \");\n            output = string.Concat(output, \"SenderId: \", SenderId, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserIdOne: \", UserIdOne, \", \");\n            output = string.Concat(output, \"UserIdTwo: \", UserIdTwo, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of channel messages, usually a result of a list operation.\n    /// </summary>\n    public interface IApiChannelMessageList\n    {\n\n        /// <summary>\n        /// Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.\n        /// </summary>\n        string CacheableCursor { get; }\n\n        /// <summary>\n        /// A list of messages.\n        /// </summary>\n        IEnumerable<IApiChannelMessage> Messages { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiChannelMessageList : IApiChannelMessageList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cacheable_cursor\"), Preserve]\n        public string CacheableCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiChannelMessage> Messages => _messages ?? new List<ApiChannelMessage>(0);\n        [DataMember(Name=\"messages\"), Preserve]\n        public List<ApiChannelMessage> _messages { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CacheableCursor: \", CacheableCursor, \", \");\n            output = string.Concat(output, \"Messages: [\", string.Join(\", \", Messages), \"], \");\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Create a group with the current user as owner.\n    /// </summary>\n    public interface IApiCreateGroupRequest\n    {\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// A description for the group.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// Maximum number of group members.\n        /// </summary>\n        int MaxCount { get; }\n\n        /// <summary>\n        /// A unique name for the group.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Mark a group as open or not where only admins can accept members.\n        /// </summary>\n        bool Open { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiCreateGroupRequest : IApiCreateGroupRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"MaxCount: \", MaxCount, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Storage objects to delete.\n    /// </summary>\n    public interface IApiDeleteStorageObjectId\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiDeleteStorageObjectId : IApiDeleteStorageObjectId\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Batch delete storage objects.\n    /// </summary>\n    public interface IApiDeleteStorageObjectsRequest\n    {\n\n        /// <summary>\n        /// Batch of storage objects.\n        /// </summary>\n        IEnumerable<IApiDeleteStorageObjectId> ObjectIds { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiDeleteStorageObjectsRequest : IApiDeleteStorageObjectsRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiDeleteStorageObjectId> ObjectIds => _objectIds ?? new List<ApiDeleteStorageObjectId>(0);\n        [DataMember(Name=\"object_ids\"), Preserve]\n        public List<ApiDeleteStorageObjectId> _objectIds { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ObjectIds: [\", string.Join(\", \", ObjectIds), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Represents an event to be passed through the server to registered event handlers.\n    /// </summary>\n    public interface IApiEvent\n    {\n\n        /// <summary>\n        /// True if the event came directly from a client call, false otherwise.\n        /// </summary>\n        bool External { get; }\n\n        /// <summary>\n        /// An event name, type, category, or identifier.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Arbitrary event property values.\n        /// </summary>\n        IDictionary<string, string> Properties { get; }\n\n        /// <summary>\n        /// The time when the event was triggered.\n        /// </summary>\n        string Timestamp { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiEvent : IApiEvent\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"external\"), Preserve]\n        public bool External { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Properties => _properties ?? new Dictionary<string, string>();\n        [DataMember(Name=\"properties\"), Preserve]\n        public Dictionary<string, string> _properties { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timestamp\"), Preserve]\n        public string Timestamp { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"External: \", External, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n\n            var propertiesString = \"\";\n            foreach (var kvp in Properties)\n            {\n                propertiesString = string.Concat(propertiesString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Properties: [\" + propertiesString + \"]\");\n            output = string.Concat(output, \"Timestamp: \", Timestamp, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A friend of a user.\n    /// </summary>\n    public interface IApiFriend\n    {\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The friend status.  one of \"Friend.State\".\n        /// </summary>\n        int State { get; }\n\n        /// <summary>\n        /// Time of the latest relationship update.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user object.\n        /// </summary>\n        IApiUser User { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFriend : IApiFriend\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public ApiUser _user { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"State: \", State, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A collection of zero or more friends of the user.\n    /// </summary>\n    public interface IApiFriendList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The Friend objects.\n        /// </summary>\n        IEnumerable<IApiFriend> Friends { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFriendList : IApiFriendList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFriend> Friends => _friends ?? new List<ApiFriend>(0);\n        [DataMember(Name=\"friends\"), Preserve]\n        public List<ApiFriend> _friends { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Friends: [\", string.Join(\", \", Friends), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A List of friends of friends\n    /// </summary>\n    public interface IApiFriendsOfFriendsList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// User friends of friends.\n        /// </summary>\n        IEnumerable<IFriendsOfFriendsListFriendOfFriend> FriendsOfFriends { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFriendsOfFriendsList : IApiFriendsOfFriendsList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IFriendsOfFriendsListFriendOfFriend> FriendsOfFriends => _friendsOfFriends ?? new List<FriendsOfFriendsListFriendOfFriend>(0);\n        [DataMember(Name=\"friends_of_friends\"), Preserve]\n        public List<FriendsOfFriendsListFriendOfFriend> _friendsOfFriends { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"FriendsOfFriends: [\", string.Join(\", \", FriendsOfFriends), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A group in the server.\n    /// </summary>\n    public interface IApiGroup\n    {\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The id of the user who created the group.\n        /// </summary>\n        string CreatorId { get; }\n\n        /// <summary>\n        /// A description for the group.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// The current count of all members in the group.\n        /// </summary>\n        int EdgeCount { get; }\n\n        /// <summary>\n        /// The id of a group.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The maximum number of members allowed.\n        /// </summary>\n        int MaxCount { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The unique name of the group.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Anyone can join open groups, otherwise only admins can accept members.\n        /// </summary>\n        bool Open { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGroup : IApiGroup\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"creator_id\"), Preserve]\n        public string CreatorId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"edge_count\"), Preserve]\n        public int EdgeCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"CreatorId: \", CreatorId, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"EdgeCount: \", EdgeCount, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"MaxCount: \", MaxCount, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// One or more groups returned from a listing operation.\n    /// </summary>\n    public interface IApiGroupList\n    {\n\n        /// <summary>\n        /// A cursor used to get the next page.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// One or more groups.\n        /// </summary>\n        IEnumerable<IApiGroup> Groups { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGroupList : IApiGroupList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiGroup> Groups => _groups ?? new List<ApiGroup>(0);\n        [DataMember(Name=\"groups\"), Preserve]\n        public List<ApiGroup> _groups { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Groups: [\", string.Join(\", \", Groups), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of users belonging to a group, along with their role.\n    /// </summary>\n    public interface IApiGroupUserList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// User-role pairs for a group.\n        /// </summary>\n        IEnumerable<IGroupUserListGroupUser> GroupUsers { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGroupUserList : IApiGroupUserList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IGroupUserListGroupUser> GroupUsers => _groupUsers ?? new List<GroupUserListGroupUser>(0);\n        [DataMember(Name=\"group_users\"), Preserve]\n        public List<GroupUserListGroupUser> _groupUsers { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"GroupUsers: [\", string.Join(\", \", GroupUsers), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Represents a complete leaderboard record with all scores and associated metadata.\n    /// </summary>\n    public interface IApiLeaderboardRecord\n    {\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires.\n        /// </summary>\n        string ExpiryTime { get; }\n\n        /// <summary>\n        /// The ID of the leaderboard this score belongs to.\n        /// </summary>\n        string LeaderboardId { get; }\n\n        /// <summary>\n        /// The maximum number of score updates allowed by the owner.\n        /// </summary>\n        int MaxNumScore { get; }\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The number of submissions to this score record.\n        /// </summary>\n        int NumScore { get; }\n\n        /// <summary>\n        /// The ID of the score owner, usually a user or group.\n        /// </summary>\n        string OwnerId { get; }\n\n        /// <summary>\n        /// The rank of this record.\n        /// </summary>\n        string Rank { get; }\n\n        /// <summary>\n        /// The score value.\n        /// </summary>\n        string Score { get; }\n\n        /// <summary>\n        /// An optional subscore value.\n        /// </summary>\n        string Subscore { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The username of the score owner, if the owner is a user.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLeaderboardRecord : IApiLeaderboardRecord\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"expiry_time\"), Preserve]\n        public string ExpiryTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"leaderboard_id\"), Preserve]\n        public string LeaderboardId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_num_score\"), Preserve]\n        public int MaxNumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"num_score\"), Preserve]\n        public int NumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"owner_id\"), Preserve]\n        public string OwnerId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"rank\"), Preserve]\n        public string Rank { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"score\"), Preserve]\n        public string Score { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subscore\"), Preserve]\n        public string Subscore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"ExpiryTime: \", ExpiryTime, \", \");\n            output = string.Concat(output, \"LeaderboardId: \", LeaderboardId, \", \");\n            output = string.Concat(output, \"MaxNumScore: \", MaxNumScore, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"NumScore: \", NumScore, \", \");\n            output = string.Concat(output, \"OwnerId: \", OwnerId, \", \");\n            output = string.Concat(output, \"Rank: \", Rank, \", \");\n            output = string.Concat(output, \"Score: \", Score, \", \");\n            output = string.Concat(output, \"Subscore: \", Subscore, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.\n    /// </summary>\n    public interface IApiLeaderboardRecordList\n    {\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// A batched set of leaderboard records belonging to specified owners.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> OwnerRecords { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// The total number of ranks available.\n        /// </summary>\n        string RankCount { get; }\n\n        /// <summary>\n        /// A list of leaderboard records.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> Records { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLeaderboardRecordList : IApiLeaderboardRecordList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> OwnerRecords => _ownerRecords ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"owner_records\"), Preserve]\n        public List<ApiLeaderboardRecord> _ownerRecords { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"rank_count\"), Preserve]\n        public string RankCount { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> Records => _records ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"records\"), Preserve]\n        public List<ApiLeaderboardRecord> _records { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"OwnerRecords: [\", string.Join(\", \", OwnerRecords), \"], \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"RankCount: \", RankCount, \", \");\n            output = string.Concat(output, \"Records: [\", string.Join(\", \", Records), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Link Steam to the current user's account.\n    /// </summary>\n    public interface IApiLinkSteamRequest\n    {\n\n        /// <summary>\n        /// The Facebook account details.\n        /// </summary>\n        IApiAccountSteam Account { get; }\n\n        /// <summary>\n        /// Import Steam friends for the user.\n        /// </summary>\n        bool Sync { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLinkSteamRequest : IApiLinkSteamRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiAccountSteam Account => _account;\n        [DataMember(Name=\"account\"), Preserve]\n        public ApiAccountSteam _account { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sync\"), Preserve]\n        public bool Sync { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Account: \", Account, \", \");\n            output = string.Concat(output, \"Sync: \", Sync, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// List user subscriptions.\n    /// </summary>\n    public interface IApiListSubscriptionsRequest\n    {\n\n        /// <summary>\n        /// Cursor to retrieve a page of records from\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// Max number of results per page\n        /// </summary>\n        int Limit { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiListSubscriptionsRequest : IApiListSubscriptionsRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"limit\"), Preserve]\n        public int Limit { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Limit: \", Limit, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Represents a realtime match.\n    /// </summary>\n    public interface IApiMatch\n    {\n\n        /// <summary>\n        /// True if it's an server-managed authoritative match, false otherwise.\n        /// </summary>\n        bool Authoritative { get; }\n\n        /// <summary>\n        /// Handler name\n        /// </summary>\n        string HandlerName { get; }\n\n        /// <summary>\n        /// Match label, if any.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// The ID of the match, can be used to join.\n        /// </summary>\n        string MatchId { get; }\n\n        /// <summary>\n        /// Current number of users in the match.\n        /// </summary>\n        int Size { get; }\n\n        /// <summary>\n        /// Tick Rate\n        /// </summary>\n        int TickRate { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiMatch : IApiMatch\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"authoritative\"), Preserve]\n        public bool Authoritative { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"handler_name\"), Preserve]\n        public string HandlerName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"label\"), Preserve]\n        public string Label { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"match_id\"), Preserve]\n        public string MatchId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"size\"), Preserve]\n        public int Size { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"tick_rate\"), Preserve]\n        public int TickRate { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Authoritative: \", Authoritative, \", \");\n            output = string.Concat(output, \"HandlerName: \", HandlerName, \", \");\n            output = string.Concat(output, \"Label: \", Label, \", \");\n            output = string.Concat(output, \"MatchId: \", MatchId, \", \");\n            output = string.Concat(output, \"Size: \", Size, \", \");\n            output = string.Concat(output, \"TickRate: \", TickRate, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of realtime matches.\n    /// </summary>\n    public interface IApiMatchList\n    {\n\n        /// <summary>\n        /// A number of matches corresponding to a list operation.\n        /// </summary>\n        IEnumerable<IApiMatch> Matches { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiMatchList : IApiMatchList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiMatch> Matches => _matches ?? new List<ApiMatch>(0);\n        [DataMember(Name=\"matches\"), Preserve]\n        public List<ApiMatch> _matches { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Matches: [\", string.Join(\", \", Matches), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Matchmaker ticket completion stats\n    /// </summary>\n    public interface IApiMatchmakerCompletionStats\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string CompleteTime { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string CreateTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiMatchmakerCompletionStats : IApiMatchmakerCompletionStats\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"complete_time\"), Preserve]\n        public string CompleteTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CompleteTime: \", CompleteTime, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Matchmaker stats\n    /// </summary>\n    public interface IApiMatchmakerStats\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IApiMatchmakerCompletionStats> Completions { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string OldestTicketCreateTime { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        int TicketCount { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiMatchmakerStats : IApiMatchmakerStats\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiMatchmakerCompletionStats> Completions => _completions ?? new List<ApiMatchmakerCompletionStats>(0);\n        [DataMember(Name=\"completions\"), Preserve]\n        public List<ApiMatchmakerCompletionStats> _completions { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"oldest_ticket_create_time\"), Preserve]\n        public string OldestTicketCreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"ticket_count\"), Preserve]\n        public int TicketCount { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Completions: [\", string.Join(\", \", Completions), \"], \");\n            output = string.Concat(output, \"OldestTicketCreateTime: \", OldestTicketCreateTime, \", \");\n            output = string.Concat(output, \"TicketCount: \", TicketCount, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A notification in the server.\n    /// </summary>\n    public interface IApiNotification\n    {\n\n        /// <summary>\n        /// Category code for this notification.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// Content of the notification in JSON.\n        /// </summary>\n        string Content { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// ID of the Notification.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// True if this notification was persisted to the database.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// ID of the sender, if a user. Otherwise 'null'.\n        /// </summary>\n        string SenderId { get; }\n\n        /// <summary>\n        /// Subject of the notification.\n        /// </summary>\n        string Subject { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiNotification : IApiNotification\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistent\"), Preserve]\n        public bool Persistent { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sender_id\"), Preserve]\n        public string SenderId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subject\"), Preserve]\n        public string Subject { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Content: \", Content, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Persistent: \", Persistent, \", \");\n            output = string.Concat(output, \"SenderId: \", SenderId, \", \");\n            output = string.Concat(output, \"Subject: \", Subject, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A collection of zero or more notifications.\n    /// </summary>\n    public interface IApiNotificationList\n    {\n\n        /// <summary>\n        /// Use this cursor to paginate notifications. Cache this to catch up to new notifications.\n        /// </summary>\n        string CacheableCursor { get; }\n\n        /// <summary>\n        /// Collection of notifications.\n        /// </summary>\n        IEnumerable<IApiNotification> Notifications { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiNotificationList : IApiNotificationList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cacheable_cursor\"), Preserve]\n        public string CacheableCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiNotification> Notifications => _notifications ?? new List<ApiNotification>(0);\n        [DataMember(Name=\"notifications\"), Preserve]\n        public List<ApiNotification> _notifications { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CacheableCursor: \", CacheableCursor, \", \");\n            output = string.Concat(output, \"Notifications: [\", string.Join(\", \", Notifications), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum ApiOperator\n    {\n        /// <summary>\n        /// Operator that can be used to override the one set in the leaderboard.\n        /// </summary>\n        NO_OVERRIDE = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        BEST = 1,\n        /// <summary>\n        ///  - NO_OVERRIDE: Do not override the leaderboard operator.\n        /// </summary>\n        SET = 2,\n        /// <summary>\n        ///  - BEST: Override the leaderboard operator with BEST.\n        /// </summary>\n        INCREMENT = 3,\n        /// <summary>\n        ///  - SET: Override the leaderboard operator with SET.\n        /// </summary>\n        DECREMENT = 4,\n    }\n\n    /// <summary>\n    /// Incoming information about a party.\n    /// </summary>\n    public interface IApiParty\n    {\n\n        /// <summary>\n        /// Hidden flag.\n        /// </summary>\n        bool Hidden { get; }\n\n        /// <summary>\n        /// The party label, if any.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// Maximum number of party members.\n        /// </summary>\n        int MaxSize { get; }\n\n        /// <summary>\n        /// Open flag.\n        /// </summary>\n        bool Open { get; }\n\n        /// <summary>\n        /// Unique party identifier.\n        /// </summary>\n        string PartyId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiParty : IApiParty\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"hidden\"), Preserve]\n        public bool Hidden { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"label\"), Preserve]\n        public string Label { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_size\"), Preserve]\n        public int MaxSize { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Hidden: \", Hidden, \", \");\n            output = string.Concat(output, \"Label: \", Label, \", \");\n            output = string.Concat(output, \"MaxSize: \", MaxSize, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            output = string.Concat(output, \"PartyId: \", PartyId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of realtime matches.\n    /// </summary>\n    public interface IApiPartyList\n    {\n\n        /// <summary>\n        /// A cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// A number of parties corresponding to a list operation.\n        /// </summary>\n        IEnumerable<IApiParty> Parties { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiPartyList : IApiPartyList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiParty> Parties => _parties ?? new List<ApiParty>(0);\n        [DataMember(Name=\"parties\"), Preserve]\n        public List<ApiParty> _parties { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Parties: [\", string.Join(\", \", Parties), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Storage objects to get.\n    /// </summary>\n    public interface IApiReadStorageObjectId\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The user owner of the object.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiReadStorageObjectId : IApiReadStorageObjectId\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Batch get storage objects.\n    /// </summary>\n    public interface IApiReadStorageObjectsRequest\n    {\n\n        /// <summary>\n        /// Batch of storage objects.\n        /// </summary>\n        IEnumerable<IApiReadStorageObjectId> ObjectIds { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiReadStorageObjectsRequest : IApiReadStorageObjectsRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiReadStorageObjectId> ObjectIds => _objectIds ?? new List<ApiReadStorageObjectId>(0);\n        [DataMember(Name=\"object_ids\"), Preserve]\n        public List<ApiReadStorageObjectId> _objectIds { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ObjectIds: [\", string.Join(\", \", ObjectIds), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Execute an Lua function on the server.\n    /// </summary>\n    public interface IApiRpc\n    {\n\n        /// <summary>\n        /// The authentication key used when executed as a non-client HTTP request.\n        /// </summary>\n        string HttpKey { get; }\n\n        /// <summary>\n        /// The identifier of the function.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The payload of the function which must be a JSON object.\n        /// </summary>\n        string Payload { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiRpc : IApiRpc\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"http_key\"), Preserve]\n        public string HttpKey { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"payload\"), Preserve]\n        public string Payload { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"HttpKey: \", HttpKey, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Payload: \", Payload, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user's session used to authenticate messages.\n    /// </summary>\n    public interface IApiSession\n    {\n\n        /// <summary>\n        /// True if the corresponding account was just created, false otherwise.\n        /// </summary>\n        bool Created { get; }\n\n        /// <summary>\n        /// Refresh token that can be used for session token renewal.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// Authentication credentials.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSession : IApiSession\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"created\"), Preserve]\n        public bool Created { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refresh_token\"), Preserve]\n        public string RefreshToken { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Created: \", Created, \", \");\n            output = string.Concat(output, \"RefreshToken: \", RefreshToken, \", \");\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.\n    /// </summary>\n    public interface IApiSessionLogoutRequest\n    {\n\n        /// <summary>\n        /// Refresh token to invalidate.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// Session token to log out.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSessionLogoutRequest : IApiSessionLogoutRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refresh_token\"), Preserve]\n        public string RefreshToken { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"RefreshToken: \", RefreshToken, \", \");\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Authenticate against the server with a refresh token.\n    /// </summary>\n    public interface IApiSessionRefreshRequest\n    {\n\n        /// <summary>\n        /// Refresh token.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSessionRefreshRequest : IApiSessionRefreshRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An object within the storage engine.\n    /// </summary>\n    public interface IApiStorageObject\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The read access permissions for the object.\n        /// </summary>\n        int PermissionRead { get; }\n\n        /// <summary>\n        /// The write access permissions for the object.\n        /// </summary>\n        int PermissionWrite { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user owner of the object.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The value of the object.\n        /// </summary>\n        string Value { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObject : IApiStorageObject\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_read\"), Preserve]\n        public int PermissionRead { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_write\"), Preserve]\n        public int PermissionWrite { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"PermissionRead: \", PermissionRead, \", \");\n            output = string.Concat(output, \"PermissionWrite: \", PermissionWrite, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A storage acknowledgement.\n    /// </summary>\n    public interface IApiStorageObjectAck\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The owner of the object.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObjectAck : IApiStorageObjectAck\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Batch of acknowledgements for the storage object write.\n    /// </summary>\n    public interface IApiStorageObjectAcks\n    {\n\n        /// <summary>\n        /// Batch of storage write acknowledgements.\n        /// </summary>\n        IEnumerable<IApiStorageObjectAck> Acks { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObjectAcks : IApiStorageObjectAcks\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiStorageObjectAck> Acks => _acks ?? new List<ApiStorageObjectAck>(0);\n        [DataMember(Name=\"acks\"), Preserve]\n        public List<ApiStorageObjectAck> _acks { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Acks: [\", string.Join(\", \", Acks), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// List of storage objects.\n    /// </summary>\n    public interface IApiStorageObjectList\n    {\n\n        /// <summary>\n        /// The cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The list of storage objects.\n        /// </summary>\n        IEnumerable<IApiStorageObject> Objects { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObjectList : IApiStorageObjectList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiStorageObject> Objects => _objects ?? new List<ApiStorageObject>(0);\n        [DataMember(Name=\"objects\"), Preserve]\n        public List<ApiStorageObject> _objects { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Objects: [\", string.Join(\", \", Objects), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Batch of storage objects.\n    /// </summary>\n    public interface IApiStorageObjects\n    {\n\n        /// <summary>\n        /// The batch of storage objects.\n        /// </summary>\n        IEnumerable<IApiStorageObject> Objects { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObjects : IApiStorageObjects\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiStorageObject> Objects => _objects ?? new List<ApiStorageObject>(0);\n        [DataMember(Name=\"objects\"), Preserve]\n        public List<ApiStorageObject> _objects { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Objects: [\", string.Join(\", \", Objects), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Environment where a purchase/subscription took place,\n    /// </summary>\n    public enum ApiStoreEnvironment\n    {\n        /// <summary>\n        /// - UNKNOWN: Unknown environment.\n        /// </summary>\n        UNKNOWN = 0,\n        /// <summary>\n        ///  - SANDBOX: Sandbox/test environment.\n        /// </summary>\n        SANDBOX = 1,\n        /// <summary>\n        ///  - PRODUCTION: Production environment.\n        /// </summary>\n        PRODUCTION = 2,\n    }\n\n    /// <summary>\n    /// Validation Provider,\n    /// </summary>\n    public enum ApiStoreProvider\n    {\n        /// <summary>\n        /// - APPLE_APP_STORE: Apple App Store\n        /// </summary>\n        APPLE_APP_STORE = 0,\n        /// <summary>\n        ///  - GOOGLE_PLAY_STORE: Google Play Store\n        /// </summary>\n        GOOGLE_PLAY_STORE = 1,\n        /// <summary>\n        ///  - HUAWEI_APP_GALLERY: Huawei App Gallery\n        /// </summary>\n        HUAWEI_APP_GALLERY = 2,\n        /// <summary>\n        ///  - FACEBOOK_INSTANT_STORE: Facebook Instant Store\n        /// </summary>\n        FACEBOOK_INSTANT_STORE = 3,\n    }\n\n    /// <summary>\n    /// A list of validated subscriptions stored by Nakama.\n    /// </summary>\n    public interface IApiSubscriptionList\n    {\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// Stored validated subscriptions.\n        /// </summary>\n        IEnumerable<IApiValidatedSubscription> ValidatedSubscriptions { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSubscriptionList : IApiSubscriptionList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiValidatedSubscription> ValidatedSubscriptions => _validatedSubscriptions ?? new List<ApiValidatedSubscription>(0);\n        [DataMember(Name=\"validated_subscriptions\"), Preserve]\n        public List<ApiValidatedSubscription> _validatedSubscriptions { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"ValidatedSubscriptions: [\", string.Join(\", \", ValidatedSubscriptions), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A tournament on the server.\n    /// </summary>\n    public interface IApiTournament\n    {\n\n        /// <summary>\n        /// Whether the leaderboard was created authoritatively or not.\n        /// </summary>\n        bool Authoritative { get; }\n\n        /// <summary>\n        /// True if the tournament is active and can enter. A computed value.\n        /// </summary>\n        bool CanEnter { get; }\n\n        /// <summary>\n        /// The category of the tournament. e.g. \"vip\" could be category 1.\n        /// </summary>\n        int Category { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The description of the tournament. May be blank.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// Duration of the tournament in seconds.\n        /// </summary>\n        int Duration { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament stops being active until next reset. A computed value.\n        /// </summary>\n        int EndActive { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will be stopped.\n        /// </summary>\n        string EndTime { get; }\n\n        /// <summary>\n        /// The ID of the tournament.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Whether the user must join the tournament before being able to submit scores.\n        /// </summary>\n        bool JoinRequired { get; }\n\n        /// <summary>\n        /// The maximum score updates allowed per player for the current tournament.\n        /// </summary>\n        int MaxNumScore { get; }\n\n        /// <summary>\n        /// The maximum number of players for the tournament.\n        /// </summary>\n        int MaxSize { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament is next playable. A computed value.\n        /// </summary>\n        int NextReset { get; }\n\n        /// <summary>\n        /// Operator.\n        /// </summary>\n        ApiOperator Operator { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament was last reset. A computed value.\n        /// </summary>\n        int PrevReset { get; }\n\n        /// <summary>\n        /// The current number of players in the tournament.\n        /// </summary>\n        int Size { get; }\n\n        /// <summary>\n        /// ASC (0) or DESC (1) sort mode of scores in the tournament.\n        /// </summary>\n        int SortOrder { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament start being active. A computed value.\n        /// </summary>\n        int StartActive { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will start.\n        /// </summary>\n        string StartTime { get; }\n\n        /// <summary>\n        /// The title for the tournament.\n        /// </summary>\n        string Title { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiTournament : IApiTournament\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"authoritative\"), Preserve]\n        public bool Authoritative { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"can_enter\"), Preserve]\n        public bool CanEnter { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"category\"), Preserve]\n        public int Category { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"duration\"), Preserve]\n        public int Duration { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"end_active\"), Preserve]\n        public int EndActive { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"end_time\"), Preserve]\n        public string EndTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"join_required\"), Preserve]\n        public bool JoinRequired { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_num_score\"), Preserve]\n        public int MaxNumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_size\"), Preserve]\n        public int MaxSize { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_reset\"), Preserve]\n        public int NextReset { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiOperator Operator => _operator;\n        [DataMember(Name=\"operator\"), Preserve]\n        public ApiOperator _operator { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_reset\"), Preserve]\n        public int PrevReset { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"size\"), Preserve]\n        public int Size { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sort_order\"), Preserve]\n        public int SortOrder { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"start_active\"), Preserve]\n        public int StartActive { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"start_time\"), Preserve]\n        public string StartTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"title\"), Preserve]\n        public string Title { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Authoritative: \", Authoritative, \", \");\n            output = string.Concat(output, \"CanEnter: \", CanEnter, \", \");\n            output = string.Concat(output, \"Category: \", Category, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"Duration: \", Duration, \", \");\n            output = string.Concat(output, \"EndActive: \", EndActive, \", \");\n            output = string.Concat(output, \"EndTime: \", EndTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"JoinRequired: \", JoinRequired, \", \");\n            output = string.Concat(output, \"MaxNumScore: \", MaxNumScore, \", \");\n            output = string.Concat(output, \"MaxSize: \", MaxSize, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"NextReset: \", NextReset, \", \");\n            output = string.Concat(output, \"Operator: \", Operator, \", \");\n            output = string.Concat(output, \"PrevReset: \", PrevReset, \", \");\n            output = string.Concat(output, \"Size: \", Size, \", \");\n            output = string.Concat(output, \"SortOrder: \", SortOrder, \", \");\n            output = string.Concat(output, \"StartActive: \", StartActive, \", \");\n            output = string.Concat(output, \"StartTime: \", StartTime, \", \");\n            output = string.Concat(output, \"Title: \", Title, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of tournaments.\n    /// </summary>\n    public interface IApiTournamentList\n    {\n\n        /// <summary>\n        /// A pagination cursor (optional).\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The list of tournaments returned.\n        /// </summary>\n        IEnumerable<IApiTournament> Tournaments { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiTournamentList : IApiTournamentList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiTournament> Tournaments => _tournaments ?? new List<ApiTournament>(0);\n        [DataMember(Name=\"tournaments\"), Preserve]\n        public List<ApiTournament> _tournaments { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Tournaments: [\", string.Join(\", \", Tournaments), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A set of tournament records which may be part of a tournament records page or a batch of individual records.\n    /// </summary>\n    public interface IApiTournamentRecordList\n    {\n\n        /// <summary>\n        /// The cursor to send when retireving the next page (optional).\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// A batched set of tournament records belonging to specified owners.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> OwnerRecords { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page (optional).\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// The total number of ranks available.\n        /// </summary>\n        string RankCount { get; }\n\n        /// <summary>\n        /// A list of tournament records.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> Records { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiTournamentRecordList : IApiTournamentRecordList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> OwnerRecords => _ownerRecords ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"owner_records\"), Preserve]\n        public List<ApiLeaderboardRecord> _ownerRecords { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"rank_count\"), Preserve]\n        public string RankCount { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> Records => _records ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"records\"), Preserve]\n        public List<ApiLeaderboardRecord> _records { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"OwnerRecords: [\", string.Join(\", \", OwnerRecords), \"], \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"RankCount: \", RankCount, \", \");\n            output = string.Concat(output, \"Records: [\", string.Join(\", \", Records), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Update a user's account details.\n    /// </summary>\n    public interface IApiUpdateAccountRequest\n    {\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// The display name of the user.\n        /// </summary>\n        string DisplayName { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The location set by the user.\n        /// </summary>\n        string Location { get; }\n\n        /// <summary>\n        /// The timezone set by the user.\n        /// </summary>\n        string Timezone { get; }\n\n        /// <summary>\n        /// The username of the user's account.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUpdateAccountRequest : IApiUpdateAccountRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"display_name\"), Preserve]\n        public string DisplayName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"location\"), Preserve]\n        public string Location { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timezone\"), Preserve]\n        public string Timezone { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"DisplayName: \", DisplayName, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"Location: \", Location, \", \");\n            output = string.Concat(output, \"Timezone: \", Timezone, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user in the server.\n    /// </summary>\n    public interface IApiUser\n    {\n\n        /// <summary>\n        /// The Apple Sign In ID in the user's account.\n        /// </summary>\n        string AppleId { get; }\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The display name of the user.\n        /// </summary>\n        string DisplayName { get; }\n\n        /// <summary>\n        /// Number of related edges to this user.\n        /// </summary>\n        int EdgeCount { get; }\n\n        /// <summary>\n        /// The Facebook id in the user's account.\n        /// </summary>\n        string FacebookId { get; }\n\n        /// <summary>\n        /// The Facebook Instant Game ID in the user's account.\n        /// </summary>\n        string FacebookInstantGameId { get; }\n\n        /// <summary>\n        /// The Apple Game Center in of the user's account.\n        /// </summary>\n        string GamecenterId { get; }\n\n        /// <summary>\n        /// The Google id in the user's account.\n        /// </summary>\n        string GoogleId { get; }\n\n        /// <summary>\n        /// The id of the user's account.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The location set by the user.\n        /// </summary>\n        string Location { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Indicates whether the user is currently online.\n        /// </summary>\n        bool Online { get; }\n\n        /// <summary>\n        /// The Steam id in the user's account.\n        /// </summary>\n        string SteamId { get; }\n\n        /// <summary>\n        /// The timezone set by the user.\n        /// </summary>\n        string Timezone { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The username of the user's account.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUser : IApiUser\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"apple_id\"), Preserve]\n        public string AppleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"display_name\"), Preserve]\n        public string DisplayName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"edge_count\"), Preserve]\n        public int EdgeCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"facebook_id\"), Preserve]\n        public string FacebookId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"facebook_instant_game_id\"), Preserve]\n        public string FacebookInstantGameId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"gamecenter_id\"), Preserve]\n        public string GamecenterId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"google_id\"), Preserve]\n        public string GoogleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"location\"), Preserve]\n        public string Location { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"online\"), Preserve]\n        public bool Online { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"steam_id\"), Preserve]\n        public string SteamId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timezone\"), Preserve]\n        public string Timezone { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AppleId: \", AppleId, \", \");\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"DisplayName: \", DisplayName, \", \");\n            output = string.Concat(output, \"EdgeCount: \", EdgeCount, \", \");\n            output = string.Concat(output, \"FacebookId: \", FacebookId, \", \");\n            output = string.Concat(output, \"FacebookInstantGameId: \", FacebookInstantGameId, \", \");\n            output = string.Concat(output, \"GamecenterId: \", GamecenterId, \", \");\n            output = string.Concat(output, \"GoogleId: \", GoogleId, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"Location: \", Location, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Online: \", Online, \", \");\n            output = string.Concat(output, \"SteamId: \", SteamId, \", \");\n            output = string.Concat(output, \"Timezone: \", Timezone, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of groups belonging to a user, along with the user's role in each group.\n    /// </summary>\n    public interface IApiUserGroupList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// Group-role pairs for a user.\n        /// </summary>\n        IEnumerable<IUserGroupListUserGroup> UserGroups { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUserGroupList : IApiUserGroupList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IUserGroupListUserGroup> UserGroups => _userGroups ?? new List<UserGroupListUserGroup>(0);\n        [DataMember(Name=\"user_groups\"), Preserve]\n        public List<UserGroupListUserGroup> _userGroups { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"UserGroups: [\", string.Join(\", \", UserGroups), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A collection of zero or more users.\n    /// </summary>\n    public interface IApiUsers\n    {\n\n        /// <summary>\n        /// The User objects.\n        /// </summary>\n        IEnumerable<IApiUser> Users { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUsers : IApiUsers\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiUser> Users => _users ?? new List<ApiUser>(0);\n        [DataMember(Name=\"users\"), Preserve]\n        public List<ApiUser> _users { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Users: [\", string.Join(\", \", Users), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Apple IAP Purchases validation request\n    /// </summary>\n    public interface IApiValidatePurchaseAppleRequest\n    {\n\n        /// <summary>\n        /// Persist the purchase\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// Base64 encoded Apple receipt data payload.\n        /// </summary>\n        string Receipt { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatePurchaseAppleRequest : IApiValidatePurchaseAppleRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"receipt\"), Preserve]\n        public string Receipt { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"Receipt: \", Receipt, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Facebook Instant IAP Purchase validation request\n    /// </summary>\n    public interface IApiValidatePurchaseFacebookInstantRequest\n    {\n\n        /// <summary>\n        /// Persist the purchase\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// Base64 encoded Facebook Instant signedRequest receipt data payload.\n        /// </summary>\n        string SignedRequest { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatePurchaseFacebookInstantRequest : IApiValidatePurchaseFacebookInstantRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"signed_request\"), Preserve]\n        public string SignedRequest { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"SignedRequest: \", SignedRequest, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Google IAP Purchase validation request\n    /// </summary>\n    public interface IApiValidatePurchaseGoogleRequest\n    {\n\n        /// <summary>\n        /// Persist the purchase\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// JSON encoded Google purchase payload.\n        /// </summary>\n        string Purchase { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatePurchaseGoogleRequest : IApiValidatePurchaseGoogleRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase\"), Preserve]\n        public string Purchase { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"Purchase: \", Purchase, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Huawei IAP Purchase validation request\n    /// </summary>\n    public interface IApiValidatePurchaseHuaweiRequest\n    {\n\n        /// <summary>\n        /// Persist the purchase\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// JSON encoded Huawei InAppPurchaseData.\n        /// </summary>\n        string Purchase { get; }\n\n        /// <summary>\n        /// InAppPurchaseData signature.\n        /// </summary>\n        string Signature { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatePurchaseHuaweiRequest : IApiValidatePurchaseHuaweiRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase\"), Preserve]\n        public string Purchase { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"signature\"), Preserve]\n        public string Signature { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"Purchase: \", Purchase, \", \");\n            output = string.Concat(output, \"Signature: \", Signature, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Validate IAP response.\n    /// </summary>\n    public interface IApiValidatePurchaseResponse\n    {\n\n        /// <summary>\n        /// Newly seen validated purchases.\n        /// </summary>\n        IEnumerable<IApiValidatedPurchase> ValidatedPurchases { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatePurchaseResponse : IApiValidatePurchaseResponse\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiValidatedPurchase> ValidatedPurchases => _validatedPurchases ?? new List<ApiValidatedPurchase>(0);\n        [DataMember(Name=\"validated_purchases\"), Preserve]\n        public List<ApiValidatedPurchase> _validatedPurchases { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ValidatedPurchases: [\", string.Join(\", \", ValidatedPurchases), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Apple Subscription validation request\n    /// </summary>\n    public interface IApiValidateSubscriptionAppleRequest\n    {\n\n        /// <summary>\n        /// Persist the subscription.\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// Base64 encoded Apple receipt data payload.\n        /// </summary>\n        string Receipt { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidateSubscriptionAppleRequest : IApiValidateSubscriptionAppleRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"receipt\"), Preserve]\n        public string Receipt { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"Receipt: \", Receipt, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Google Subscription validation request\n    /// </summary>\n    public interface IApiValidateSubscriptionGoogleRequest\n    {\n\n        /// <summary>\n        /// Persist the subscription.\n        /// </summary>\n        bool Persist { get; }\n\n        /// <summary>\n        /// JSON encoded Google purchase payload.\n        /// </summary>\n        string Receipt { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidateSubscriptionGoogleRequest : IApiValidateSubscriptionGoogleRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persist\"), Preserve]\n        public bool Persist { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"receipt\"), Preserve]\n        public string Receipt { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persist: \", Persist, \", \");\n            output = string.Concat(output, \"Receipt: \", Receipt, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Validate Subscription response.\n    /// </summary>\n    public interface IApiValidateSubscriptionResponse\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        IApiValidatedSubscription ValidatedSubscription { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidateSubscriptionResponse : IApiValidateSubscriptionResponse\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiValidatedSubscription ValidatedSubscription => _validatedSubscription;\n        [DataMember(Name=\"validated_subscription\"), Preserve]\n        public ApiValidatedSubscription _validatedSubscription { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ValidatedSubscription: \", ValidatedSubscription, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Validated Purchase stored by Nakama.\n    /// </summary>\n    public interface IApiValidatedPurchase\n    {\n\n        /// <summary>\n        /// Timestamp when the receipt validation was stored in DB.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// Whether the purchase was done in production or sandbox environment.\n        /// </summary>\n        ApiStoreEnvironment Environment { get; }\n\n        /// <summary>\n        /// Purchase Product ID.\n        /// </summary>\n        string ProductId { get; }\n\n        /// <summary>\n        /// Raw provider validation response.\n        /// </summary>\n        string ProviderResponse { get; }\n\n        /// <summary>\n        /// Timestamp when the purchase was done.\n        /// </summary>\n        string PurchaseTime { get; }\n\n        /// <summary>\n        /// Timestamp when the purchase was refunded. Set to UNIX\n        /// </summary>\n        string RefundTime { get; }\n\n        /// <summary>\n        /// Whether the purchase had already been validated by Nakama before.\n        /// </summary>\n        bool SeenBefore { get; }\n\n        /// <summary>\n        /// Store identifier\n        /// </summary>\n        ApiStoreProvider Store { get; }\n\n        /// <summary>\n        /// Purchase Transaction ID.\n        /// </summary>\n        string TransactionId { get; }\n\n        /// <summary>\n        /// Timestamp when the receipt validation was updated in DB.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// Purchase User ID.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatedPurchase : IApiValidatedPurchase\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreEnvironment Environment => _environment;\n        [DataMember(Name=\"environment\"), Preserve]\n        public ApiStoreEnvironment _environment { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"product_id\"), Preserve]\n        public string ProductId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_response\"), Preserve]\n        public string ProviderResponse { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase_time\"), Preserve]\n        public string PurchaseTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refund_time\"), Preserve]\n        public string RefundTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"seen_before\"), Preserve]\n        public bool SeenBefore { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreProvider Store => _store;\n        [DataMember(Name=\"store\"), Preserve]\n        public ApiStoreProvider _store { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"transaction_id\"), Preserve]\n        public string TransactionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Environment: \", Environment, \", \");\n            output = string.Concat(output, \"ProductId: \", ProductId, \", \");\n            output = string.Concat(output, \"ProviderResponse: \", ProviderResponse, \", \");\n            output = string.Concat(output, \"PurchaseTime: \", PurchaseTime, \", \");\n            output = string.Concat(output, \"RefundTime: \", RefundTime, \", \");\n            output = string.Concat(output, \"SeenBefore: \", SeenBefore, \", \");\n            output = string.Concat(output, \"Store: \", Store, \", \");\n            output = string.Concat(output, \"TransactionId: \", TransactionId, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IApiValidatedSubscription\n    {\n\n        /// <summary>\n        /// Whether the subscription is currently active or not.\n        /// </summary>\n        bool Active { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the receipt validation was stored in DB.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// Whether the purchase was done in production or sandbox environment.\n        /// </summary>\n        ApiStoreEnvironment Environment { get; }\n\n        /// <summary>\n        /// Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further.\n        /// </summary>\n        string ExpiryTime { get; }\n\n        /// <summary>\n        /// Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals).\n        /// </summary>\n        string OriginalTransactionId { get; }\n\n        /// <summary>\n        /// Purchase Product ID.\n        /// </summary>\n        string ProductId { get; }\n\n        /// <summary>\n        /// Raw provider notification body.\n        /// </summary>\n        string ProviderNotification { get; }\n\n        /// <summary>\n        /// Raw provider validation response body.\n        /// </summary>\n        string ProviderResponse { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the purchase was done.\n        /// </summary>\n        string PurchaseTime { get; }\n\n        /// <summary>\n        /// Subscription refund time. If this time is set, the subscription was refunded.\n        /// </summary>\n        string RefundTime { get; }\n\n        /// <summary>\n        /// Store identifier\n        /// </summary>\n        ApiStoreProvider Store { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the receipt validation was updated in DB.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// Subscription User ID.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatedSubscription : IApiValidatedSubscription\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"active\"), Preserve]\n        public bool Active { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreEnvironment Environment => _environment;\n        [DataMember(Name=\"environment\"), Preserve]\n        public ApiStoreEnvironment _environment { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"expiry_time\"), Preserve]\n        public string ExpiryTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"original_transaction_id\"), Preserve]\n        public string OriginalTransactionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"product_id\"), Preserve]\n        public string ProductId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_notification\"), Preserve]\n        public string ProviderNotification { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_response\"), Preserve]\n        public string ProviderResponse { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase_time\"), Preserve]\n        public string PurchaseTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refund_time\"), Preserve]\n        public string RefundTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreProvider Store => _store;\n        [DataMember(Name=\"store\"), Preserve]\n        public ApiStoreProvider _store { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Active: \", Active, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Environment: \", Environment, \", \");\n            output = string.Concat(output, \"ExpiryTime: \", ExpiryTime, \", \");\n            output = string.Concat(output, \"OriginalTransactionId: \", OriginalTransactionId, \", \");\n            output = string.Concat(output, \"ProductId: \", ProductId, \", \");\n            output = string.Concat(output, \"ProviderNotification: \", ProviderNotification, \", \");\n            output = string.Concat(output, \"ProviderResponse: \", ProviderResponse, \", \");\n            output = string.Concat(output, \"PurchaseTime: \", PurchaseTime, \", \");\n            output = string.Concat(output, \"RefundTime: \", RefundTime, \", \");\n            output = string.Concat(output, \"Store: \", Store, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The object to store.\n    /// </summary>\n    public interface IApiWriteStorageObject\n    {\n\n        /// <summary>\n        /// The collection to store the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The key for the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The read access permissions for the object.\n        /// </summary>\n        int PermissionRead { get; }\n\n        /// <summary>\n        /// The write access permissions for the object.\n        /// </summary>\n        int PermissionWrite { get; }\n\n        /// <summary>\n        /// The value of the object.\n        /// </summary>\n        string Value { get; }\n\n        /// <summary>\n        /// The version hash of the object to check. Possible values are: [\"\", \"*\", \"#hash#\"].  if-match and if-none-match\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiWriteStorageObject : IApiWriteStorageObject\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_read\"), Preserve]\n        public int PermissionRead { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_write\"), Preserve]\n        public int PermissionWrite { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"PermissionRead: \", PermissionRead, \", \");\n            output = string.Concat(output, \"PermissionWrite: \", PermissionWrite, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Write objects to the storage engine.\n    /// </summary>\n    public interface IApiWriteStorageObjectsRequest\n    {\n\n        /// <summary>\n        /// The objects to store on the server.\n        /// </summary>\n        IEnumerable<IApiWriteStorageObject> Objects { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiWriteStorageObjectsRequest : IApiWriteStorageObjectsRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiWriteStorageObject> Objects => _objects ?? new List<ApiWriteStorageObject>(0);\n        [DataMember(Name=\"objects\"), Preserve]\n        public List<ApiWriteStorageObject> _objects { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Objects: [\", string.Join(\", \", Objects), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IProtobufAny\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string @type { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ProtobufAny : IProtobufAny\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"@type\"), Preserve]\n        public string @type { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"@type: \", @type, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IRpcStatus\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IProtobufAny> Details { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Message { get; }\n    }\n\n    /// <inheritdoc />\n    internal class RpcStatus : IRpcStatus\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IProtobufAny> Details => _details ?? new List<ProtobufAny>(0);\n        [DataMember(Name=\"details\"), Preserve]\n        public List<ProtobufAny> _details { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message\"), Preserve]\n        public string Message { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Details: [\", string.Join(\", \", Details), \"], \");\n            output = string.Concat(output, \"Message: \", Message, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The low level client for the Nakama API.\n    /// </summary>\n    internal class ApiClient\n    {\n        public readonly IHttpAdapter HttpAdapter;\n        public int Timeout { get; set; }\n\n        private readonly Uri _baseUri;\n\n        public ApiClient(Uri baseUri, IHttpAdapter httpAdapter, int timeout = 10)\n        {\n            _baseUri = baseUri;\n            HttpAdapter = httpAdapter;\n            Timeout = timeout;\n        }\n\n        /// <summary>\n        /// A healthcheck which load balancers can use to check the service.\n        /// </summary>\n        public async Task HealthcheckAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/healthcheck\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Delete the current user's account.\n        /// </summary>\n        public async Task DeleteAccountAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/account\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Fetch the current user's account.\n        /// </summary>\n        public async Task<IApiAccount> GetAccountAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/account\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiAccount>();\n        }\n\n        /// <summary>\n        /// Update fields in the current user's account.\n        /// </summary>\n        public async Task UpdateAccountAsync(\n            string bearerToken,\n            ApiUpdateAccountRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Authenticate a user with an Apple ID against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateAppleAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountApple account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/apple\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with a custom id against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateCustomAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountCustom account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/custom\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with a device id against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateDeviceAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountDevice account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/device\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with an email+password against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateEmailAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountEmail account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/email\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with a Facebook OAuth token against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateFacebookAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountFacebook account,\n            bool? create,\n            string username,\n            bool? sync,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/facebook\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n            if (sync != null) {\n                queryParams = string.Concat(queryParams, \"sync=\", sync.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with a Facebook Instant Game token against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateFacebookInstantGameAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountFacebookInstantGame account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/facebookinstantgame\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with Apple's GameCenter against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateGameCenterAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountGameCenter account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/gamecenter\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with Google against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateGoogleAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountGoogle account,\n            bool? create,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/google\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Authenticate a user with Steam against the server.\n        /// </summary>\n        public async Task<IApiSession> AuthenticateSteamAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAccountSteam account,\n            bool? create,\n            string username,\n            bool? sync,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/authenticate/steam\";\n\n            var queryParams = \"\";\n            if (create != null) {\n                queryParams = string.Concat(queryParams, \"create=\", create.ToString().ToLower(), \"&\");\n            }\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n            if (sync != null) {\n                queryParams = string.Concat(queryParams, \"sync=\", sync.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Add an Apple ID to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkAppleAsync(\n            string bearerToken,\n            ApiAccountApple body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/apple\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add a custom ID to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkCustomAsync(\n            string bearerToken,\n            ApiAccountCustom body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/custom\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add a device ID to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkDeviceAsync(\n            string bearerToken,\n            ApiAccountDevice body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/device\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add an email+password to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkEmailAsync(\n            string bearerToken,\n            ApiAccountEmail body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/email\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add Facebook to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkFacebookAsync(\n            string bearerToken,\n            ApiAccountFacebook account,\n            bool? sync,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/facebook\";\n\n            var queryParams = \"\";\n            if (sync != null) {\n                queryParams = string.Concat(queryParams, \"sync=\", sync.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add Facebook Instant Game to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkFacebookInstantGameAsync(\n            string bearerToken,\n            ApiAccountFacebookInstantGame body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/facebookinstantgame\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add Apple's GameCenter to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkGameCenterAsync(\n            string bearerToken,\n            ApiAccountGameCenter body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/gamecenter\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add Google to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkGoogleAsync(\n            string bearerToken,\n            ApiAccountGoogle body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/google\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add Steam to the social profiles on the current user's account.\n        /// </summary>\n        public async Task LinkSteamAsync(\n            string bearerToken,\n            ApiLinkSteamRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/link/steam\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Refresh a user's session using a refresh token retrieved from a previous authentication request.\n        /// </summary>\n        public async Task<IApiSession> SessionRefreshAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiSessionRefreshRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/session/refresh\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Remove the Apple ID from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkAppleAsync(\n            string bearerToken,\n            ApiAccountApple body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/apple\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove the custom ID from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkCustomAsync(\n            string bearerToken,\n            ApiAccountCustom body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/custom\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove the device ID from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkDeviceAsync(\n            string bearerToken,\n            ApiAccountDevice body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/device\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove the email+password from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkEmailAsync(\n            string bearerToken,\n            ApiAccountEmail body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/email\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove Facebook from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkFacebookAsync(\n            string bearerToken,\n            ApiAccountFacebook body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/facebook\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove Facebook Instant Game profile from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkFacebookInstantGameAsync(\n            string bearerToken,\n            ApiAccountFacebookInstantGame body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/facebookinstantgame\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove Apple's GameCenter from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkGameCenterAsync(\n            string bearerToken,\n            ApiAccountGameCenter body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/gamecenter\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove Google from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkGoogleAsync(\n            string bearerToken,\n            ApiAccountGoogle body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/google\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove Steam from the social profiles on the current user's account.\n        /// </summary>\n        public async Task UnlinkSteamAsync(\n            string bearerToken,\n            ApiAccountSteam body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/account/unlink/steam\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List a channel's message history.\n        /// </summary>\n        public async Task<IApiChannelMessageList> ListChannelMessagesAsync(\n            string bearerToken,\n            string channelId,\n            int? limit,\n            bool? forward,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (channelId == null)\n            {\n                throw new ArgumentException(\"'channelId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/channel/{channelId}\";\n            urlpath = urlpath.Replace(\"{channelId}\", Uri.EscapeDataString(channelId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (forward != null) {\n                queryParams = string.Concat(queryParams, \"forward=\", forward.ToString().ToLower(), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiChannelMessageList>();\n        }\n\n        /// <summary>\n        /// Submit an event for processing in the server's registered runtime custom events handler.\n        /// </summary>\n        public async Task EventAsync(\n            string bearerToken,\n            ApiEvent body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/event\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Delete one or more users by ID or username.\n        /// </summary>\n        public async Task DeleteFriendsAsync(\n            string bearerToken,\n            IEnumerable<string> ids,\n            IEnumerable<string> usernames,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/friend\";\n\n            var queryParams = \"\";\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in usernames ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"usernames=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List all friends for the current user.\n        /// </summary>\n        public async Task<IApiFriendList> ListFriendsAsync(\n            string bearerToken,\n            int? limit,\n            int? state,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/friend\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (state != null) {\n                queryParams = string.Concat(queryParams, \"state=\", state, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiFriendList>();\n        }\n\n        /// <summary>\n        /// Add friends by ID or username to a user's account.\n        /// </summary>\n        public async Task AddFriendsAsync(\n            string bearerToken,\n            IEnumerable<string> ids,\n            IEnumerable<string> usernames,\n            string metadata,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/friend\";\n\n            var queryParams = \"\";\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in usernames ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"usernames=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            if (metadata != null) {\n                queryParams = string.Concat(queryParams, \"metadata=\", Uri.EscapeDataString(metadata), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Block one or more users by ID or username.\n        /// </summary>\n        public async Task BlockFriendsAsync(\n            string bearerToken,\n            IEnumerable<string> ids,\n            IEnumerable<string> usernames,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/friend/block\";\n\n            var queryParams = \"\";\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in usernames ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"usernames=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Import Facebook friends and add them to a user's account.\n        /// </summary>\n        public async Task ImportFacebookFriendsAsync(\n            string bearerToken,\n            ApiAccountFacebook account,\n            bool? reset,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/friend/facebook\";\n\n            var queryParams = \"\";\n            if (reset != null) {\n                queryParams = string.Concat(queryParams, \"reset=\", reset.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List friends of friends for the current user.\n        /// </summary>\n        public async Task<IApiFriendsOfFriendsList> ListFriendsOfFriendsAsync(\n            string bearerToken,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/friend/friends\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiFriendsOfFriendsList>();\n        }\n\n        /// <summary>\n        /// Import Steam friends and add them to a user's account.\n        /// </summary>\n        public async Task ImportSteamFriendsAsync(\n            string bearerToken,\n            ApiAccountSteam account,\n            bool? reset,\n            CancellationToken? cancellationToken)\n        {\n            if (account == null)\n            {\n                throw new ArgumentException(\"'account' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/friend/steam\";\n\n            var queryParams = \"\";\n            if (reset != null) {\n                queryParams = string.Concat(queryParams, \"reset=\", reset.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = account.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List groups based on given filters.\n        /// </summary>\n        public async Task<IApiGroupList> ListGroupsAsync(\n            string bearerToken,\n            string name,\n            string cursor,\n            int? limit,\n            string langTag,\n            int? members,\n            bool? open,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/group\";\n\n            var queryParams = \"\";\n            if (name != null) {\n                queryParams = string.Concat(queryParams, \"name=\", Uri.EscapeDataString(name), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (langTag != null) {\n                queryParams = string.Concat(queryParams, \"lang_tag=\", Uri.EscapeDataString(langTag), \"&\");\n            }\n            if (members != null) {\n                queryParams = string.Concat(queryParams, \"members=\", members, \"&\");\n            }\n            if (open != null) {\n                queryParams = string.Concat(queryParams, \"open=\", open.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGroupList>();\n        }\n\n        /// <summary>\n        /// Create a new group with the current user as the owner.\n        /// </summary>\n        public async Task<IApiGroup> CreateGroupAsync(\n            string bearerToken,\n            ApiCreateGroupRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGroup>();\n        }\n\n        /// <summary>\n        /// Delete a group by ID.\n        /// </summary>\n        public async Task DeleteGroupAsync(\n            string bearerToken,\n            string groupId,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Update fields in a given group.\n        /// </summary>\n        public async Task UpdateGroupAsync(\n            string bearerToken,\n            string groupId,\n            ApiUpdateGroupRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add users to a group.\n        /// </summary>\n        public async Task AddGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            IEnumerable<string> userIds,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/add\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            foreach (var elem in userIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"user_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Ban a set of users from a group.\n        /// </summary>\n        public async Task BanGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            IEnumerable<string> userIds,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/ban\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            foreach (var elem in userIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"user_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Demote a set of users in a group to the next role down.\n        /// </summary>\n        public async Task DemoteGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            IEnumerable<string> userIds,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/demote\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            foreach (var elem in userIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"user_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Immediately join an open group, or request to join a closed one.\n        /// </summary>\n        public async Task JoinGroupAsync(\n            string bearerToken,\n            string groupId,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/join\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Kick a set of users from a group.\n        /// </summary>\n        public async Task KickGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            IEnumerable<string> userIds,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/kick\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            foreach (var elem in userIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"user_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Leave a group the user is a member of.\n        /// </summary>\n        public async Task LeaveGroupAsync(\n            string bearerToken,\n            string groupId,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/leave\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Promote a set of users in a group to the next role up.\n        /// </summary>\n        public async Task PromoteGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            IEnumerable<string> userIds,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/promote\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            foreach (var elem in userIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"user_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List all users that are part of a group.\n        /// </summary>\n        public async Task<IApiGroupUserList> ListGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            int? limit,\n            int? state,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/group/{groupId}/user\";\n            urlpath = urlpath.Replace(\"{groupId}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (state != null) {\n                queryParams = string.Concat(queryParams, \"state=\", state, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGroupUserList>();\n        }\n\n        /// <summary>\n        /// Validate Apple IAP Receipt\n        /// </summary>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseAppleAsync(\n            string bearerToken,\n            ApiValidatePurchaseAppleRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/purchase/apple\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatePurchaseResponse>();\n        }\n\n        /// <summary>\n        /// Validate FB Instant IAP Receipt\n        /// </summary>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseFacebookInstantAsync(\n            string bearerToken,\n            ApiValidatePurchaseFacebookInstantRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/purchase/facebookinstant\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatePurchaseResponse>();\n        }\n\n        /// <summary>\n        /// Validate Google IAP Receipt\n        /// </summary>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseGoogleAsync(\n            string bearerToken,\n            ApiValidatePurchaseGoogleRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/purchase/google\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatePurchaseResponse>();\n        }\n\n        /// <summary>\n        /// Validate Huawei IAP Receipt\n        /// </summary>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseHuaweiAsync(\n            string bearerToken,\n            ApiValidatePurchaseHuaweiRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/purchase/huawei\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatePurchaseResponse>();\n        }\n\n        /// <summary>\n        /// List user's subscriptions.\n        /// </summary>\n        public async Task<IApiSubscriptionList> ListSubscriptionsAsync(\n            string bearerToken,\n            ApiListSubscriptionsRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/subscription\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSubscriptionList>();\n        }\n\n        /// <summary>\n        /// Validate Apple Subscription Receipt\n        /// </summary>\n        public async Task<IApiValidateSubscriptionResponse> ValidateSubscriptionAppleAsync(\n            string bearerToken,\n            ApiValidateSubscriptionAppleRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/subscription/apple\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidateSubscriptionResponse>();\n        }\n\n        /// <summary>\n        /// Validate Google Subscription Receipt\n        /// </summary>\n        public async Task<IApiValidateSubscriptionResponse> ValidateSubscriptionGoogleAsync(\n            string bearerToken,\n            ApiValidateSubscriptionGoogleRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/subscription/google\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidateSubscriptionResponse>();\n        }\n\n        /// <summary>\n        /// Get subscription by product id.\n        /// </summary>\n        public async Task<IApiValidatedSubscription> GetSubscriptionAsync(\n            string bearerToken,\n            string productId,\n            CancellationToken? cancellationToken)\n        {\n            if (productId == null)\n            {\n                throw new ArgumentException(\"'productId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/iap/subscription/{productId}\";\n            urlpath = urlpath.Replace(\"{productId}\", Uri.EscapeDataString(productId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatedSubscription>();\n        }\n\n        /// <summary>\n        /// Delete a leaderboard record.\n        /// </summary>\n        public async Task DeleteLeaderboardRecordAsync(\n            string bearerToken,\n            string leaderboardId,\n            CancellationToken? cancellationToken)\n        {\n            if (leaderboardId == null)\n            {\n                throw new ArgumentException(\"'leaderboardId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/leaderboard/{leaderboardId}\";\n            urlpath = urlpath.Replace(\"{leaderboardId}\", Uri.EscapeDataString(leaderboardId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List leaderboard records.\n        /// </summary>\n        public async Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAsync(\n            string bearerToken,\n            string leaderboardId,\n            IEnumerable<string> ownerIds,\n            int? limit,\n            string cursor,\n            string expiry,\n            CancellationToken? cancellationToken)\n        {\n            if (leaderboardId == null)\n            {\n                throw new ArgumentException(\"'leaderboardId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/leaderboard/{leaderboardId}\";\n            urlpath = urlpath.Replace(\"{leaderboardId}\", Uri.EscapeDataString(leaderboardId));\n\n            var queryParams = \"\";\n            foreach (var elem in ownerIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"owner_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n            if (expiry != null) {\n                queryParams = string.Concat(queryParams, \"expiry=\", Uri.EscapeDataString(expiry), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecordList>();\n        }\n\n        /// <summary>\n        /// Write a record to a leaderboard.\n        /// </summary>\n        public async Task<IApiLeaderboardRecord> WriteLeaderboardRecordAsync(\n            string bearerToken,\n            string leaderboardId,\n            WriteLeaderboardRecordRequestLeaderboardRecordWrite record,\n            CancellationToken? cancellationToken)\n        {\n            if (leaderboardId == null)\n            {\n                throw new ArgumentException(\"'leaderboardId' is required but was null.\");\n            }\n            if (record == null)\n            {\n                throw new ArgumentException(\"'record' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/leaderboard/{leaderboardId}\";\n            urlpath = urlpath.Replace(\"{leaderboardId}\", Uri.EscapeDataString(leaderboardId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = record.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecord>();\n        }\n\n        /// <summary>\n        /// List leaderboard records around the target ownerId.\n        /// </summary>\n        public async Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAroundOwnerAsync(\n            string bearerToken,\n            string leaderboardId,\n            string ownerId,\n            int? limit,\n            string expiry,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (leaderboardId == null)\n            {\n                throw new ArgumentException(\"'leaderboardId' is required but was null.\");\n            }\n            if (ownerId == null)\n            {\n                throw new ArgumentException(\"'ownerId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/leaderboard/{leaderboardId}/owner/{ownerId}\";\n            urlpath = urlpath.Replace(\"{leaderboardId}\", Uri.EscapeDataString(leaderboardId));\n            urlpath = urlpath.Replace(\"{ownerId}\", Uri.EscapeDataString(ownerId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (expiry != null) {\n                queryParams = string.Concat(queryParams, \"expiry=\", Uri.EscapeDataString(expiry), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecordList>();\n        }\n\n        /// <summary>\n        /// List running matches and optionally filter by matching criteria.\n        /// </summary>\n        public async Task<IApiMatchList> ListMatchesAsync(\n            string bearerToken,\n            int? limit,\n            bool? authoritative,\n            string label,\n            int? minSize,\n            int? maxSize,\n            string query,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/match\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (authoritative != null) {\n                queryParams = string.Concat(queryParams, \"authoritative=\", authoritative.ToString().ToLower(), \"&\");\n            }\n            if (label != null) {\n                queryParams = string.Concat(queryParams, \"label=\", Uri.EscapeDataString(label), \"&\");\n            }\n            if (minSize != null) {\n                queryParams = string.Concat(queryParams, \"min_size=\", minSize, \"&\");\n            }\n            if (maxSize != null) {\n                queryParams = string.Concat(queryParams, \"max_size=\", maxSize, \"&\");\n            }\n            if (query != null) {\n                queryParams = string.Concat(queryParams, \"query=\", Uri.EscapeDataString(query), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiMatchList>();\n        }\n\n        /// <summary>\n        /// Get matchmaker stats.\n        /// </summary>\n        public async Task<IApiMatchmakerStats> GetMatchmakerStatsAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/matchmaker/stats\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiMatchmakerStats>();\n        }\n\n        /// <summary>\n        /// Delete one or more notifications for the current user.\n        /// </summary>\n        public async Task DeleteNotificationsAsync(\n            string bearerToken,\n            IEnumerable<string> ids,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/notification\";\n\n            var queryParams = \"\";\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Fetch list of notifications.\n        /// </summary>\n        public async Task<IApiNotificationList> ListNotificationsAsync(\n            string bearerToken,\n            int? limit,\n            string cacheableCursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/notification\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cacheableCursor != null) {\n                queryParams = string.Concat(queryParams, \"cacheable_cursor=\", Uri.EscapeDataString(cacheableCursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiNotificationList>();\n        }\n\n        /// <summary>\n        /// List parties and optionally filter by matching criteria.\n        /// </summary>\n        public async Task<IApiPartyList> ListPartiesAsync(\n            string bearerToken,\n            int? limit,\n            bool? open,\n            string query,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/party\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (open != null) {\n                queryParams = string.Concat(queryParams, \"open=\", open.ToString().ToLower(), \"&\");\n            }\n            if (query != null) {\n                queryParams = string.Concat(queryParams, \"query=\", Uri.EscapeDataString(query), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiPartyList>();\n        }\n\n        /// <summary>\n        /// Execute a Lua function on the server.\n        /// </summary>\n        public async Task<IApiRpc> RpcFunc2Async(\n            string bearerToken,\n            string basicAuthUsername,\n            string basicAuthPassword,\n            string id,\n            string payload,\n            string httpKey,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/rpc/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n            if (payload != null) {\n                queryParams = string.Concat(queryParams, \"payload=\", Uri.EscapeDataString(payload), \"&\");\n            }\n            if (httpKey != null) {\n                queryParams = string.Concat(queryParams, \"http_key=\", Uri.EscapeDataString(httpKey), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(bearerToken))\n            {\n                var header = string.Concat(\"Bearer \", bearerToken);\n                headers.Add(\"Authorization\", header);\n            }\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiRpc>();\n        }\n\n        /// <summary>\n        /// Execute a Lua function on the server.\n        /// </summary>\n        public async Task<IApiRpc> RpcFuncAsync(\n            string bearerToken,\n            string basicAuthUsername,\n            string basicAuthPassword,\n            string id,\n            string payload,\n            string httpKey,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (payload == null)\n            {\n                throw new ArgumentException(\"'payload' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/rpc/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n            if (httpKey != null) {\n                queryParams = string.Concat(queryParams, \"http_key=\", Uri.EscapeDataString(httpKey), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(bearerToken))\n            {\n                var header = string.Concat(\"Bearer \", bearerToken);\n                headers.Add(\"Authorization\", header);\n            }\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = payload.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiRpc>();\n        }\n\n        /// <summary>\n        /// Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.\n        /// </summary>\n        public async Task SessionLogoutAsync(\n            string bearerToken,\n            ApiSessionLogoutRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/session/logout\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get storage objects.\n        /// </summary>\n        public async Task<IApiStorageObjects> ReadStorageObjectsAsync(\n            string bearerToken,\n            ApiReadStorageObjectsRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/storage\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObjects>();\n        }\n\n        /// <summary>\n        /// Write objects into the storage engine.\n        /// </summary>\n        public async Task<IApiStorageObjectAcks> WriteStorageObjectsAsync(\n            string bearerToken,\n            ApiWriteStorageObjectsRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/storage\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObjectAcks>();\n        }\n\n        /// <summary>\n        /// Delete one or more objects by ID or username.\n        /// </summary>\n        public async Task DeleteStorageObjectsAsync(\n            string bearerToken,\n            ApiDeleteStorageObjectsRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/storage/delete\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List publicly readable storage objects in a given collection.\n        /// </summary>\n        public async Task<IApiStorageObjectList> ListStorageObjectsAsync(\n            string bearerToken,\n            string collection,\n            string userId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/storage/{collection}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n\n            var queryParams = \"\";\n            if (userId != null) {\n                queryParams = string.Concat(queryParams, \"user_id=\", Uri.EscapeDataString(userId), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObjectList>();\n        }\n\n        /// <summary>\n        /// List publicly readable storage objects in a given collection.\n        /// </summary>\n        public async Task<IApiStorageObjectList> ListStorageObjects2Async(\n            string bearerToken,\n            string collection,\n            string userId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/storage/{collection}/{userId}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n            urlpath = urlpath.Replace(\"{userId}\", Uri.EscapeDataString(userId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObjectList>();\n        }\n\n        /// <summary>\n        /// List current or upcoming tournaments.\n        /// </summary>\n        public async Task<IApiTournamentList> ListTournamentsAsync(\n            string bearerToken,\n            int? categoryStart,\n            int? categoryEnd,\n            int? startTime,\n            int? endTime,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/tournament\";\n\n            var queryParams = \"\";\n            if (categoryStart != null) {\n                queryParams = string.Concat(queryParams, \"category_start=\", categoryStart, \"&\");\n            }\n            if (categoryEnd != null) {\n                queryParams = string.Concat(queryParams, \"category_end=\", categoryEnd, \"&\");\n            }\n            if (startTime != null) {\n                queryParams = string.Concat(queryParams, \"start_time=\", startTime, \"&\");\n            }\n            if (endTime != null) {\n                queryParams = string.Concat(queryParams, \"end_time=\", endTime, \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiTournamentList>();\n        }\n\n        /// <summary>\n        /// Delete a tournament record.\n        /// </summary>\n        public async Task DeleteTournamentRecordAsync(\n            string bearerToken,\n            string tournamentId,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List tournament records.\n        /// </summary>\n        public async Task<IApiTournamentRecordList> ListTournamentRecordsAsync(\n            string bearerToken,\n            string tournamentId,\n            IEnumerable<string> ownerIds,\n            int? limit,\n            string cursor,\n            string expiry,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n\n            var queryParams = \"\";\n            foreach (var elem in ownerIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"owner_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n            if (expiry != null) {\n                queryParams = string.Concat(queryParams, \"expiry=\", Uri.EscapeDataString(expiry), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiTournamentRecordList>();\n        }\n\n        /// <summary>\n        /// Write a record to a tournament.\n        /// </summary>\n        public async Task<IApiLeaderboardRecord> WriteTournamentRecord2Async(\n            string bearerToken,\n            string tournamentId,\n            WriteTournamentRecordRequestTournamentRecordWrite record,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n            if (record == null)\n            {\n                throw new ArgumentException(\"'record' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = record.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecord>();\n        }\n\n        /// <summary>\n        /// Write a record to a tournament.\n        /// </summary>\n        public async Task<IApiLeaderboardRecord> WriteTournamentRecordAsync(\n            string bearerToken,\n            string tournamentId,\n            WriteTournamentRecordRequestTournamentRecordWrite record,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n            if (record == null)\n            {\n                throw new ArgumentException(\"'record' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = record.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecord>();\n        }\n\n        /// <summary>\n        /// Attempt to join an open and running tournament.\n        /// </summary>\n        public async Task JoinTournamentAsync(\n            string bearerToken,\n            string tournamentId,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}/join\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List tournament records for a given owner.\n        /// </summary>\n        public async Task<IApiTournamentRecordList> ListTournamentRecordsAroundOwnerAsync(\n            string bearerToken,\n            string tournamentId,\n            string ownerId,\n            int? limit,\n            string expiry,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (tournamentId == null)\n            {\n                throw new ArgumentException(\"'tournamentId' is required but was null.\");\n            }\n            if (ownerId == null)\n            {\n                throw new ArgumentException(\"'ownerId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/tournament/{tournamentId}/owner/{ownerId}\";\n            urlpath = urlpath.Replace(\"{tournamentId}\", Uri.EscapeDataString(tournamentId));\n            urlpath = urlpath.Replace(\"{ownerId}\", Uri.EscapeDataString(ownerId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (expiry != null) {\n                queryParams = string.Concat(queryParams, \"expiry=\", Uri.EscapeDataString(expiry), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiTournamentRecordList>();\n        }\n\n        /// <summary>\n        /// Fetch zero or more users by ID and/or username.\n        /// </summary>\n        public async Task<IApiUsers> GetUsersAsync(\n            string bearerToken,\n            IEnumerable<string> ids,\n            IEnumerable<string> usernames,\n            IEnumerable<string> facebookIds,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/user\";\n\n            var queryParams = \"\";\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in usernames ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"usernames=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in facebookIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"facebook_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiUsers>();\n        }\n\n        /// <summary>\n        /// List groups the current user belongs to.\n        /// </summary>\n        public async Task<IApiUserGroupList> ListUserGroupsAsync(\n            string bearerToken,\n            string userId,\n            int? limit,\n            int? state,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/user/{userId}/group\";\n            urlpath = urlpath.Replace(\"{userId}\", Uri.EscapeDataString(userId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (state != null) {\n                queryParams = string.Concat(queryParams, \"state=\", state, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var method = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(method, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiUserGroupList>();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/ChannelJoinMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Send a channel join message to the server.\n    /// </summary>\n    internal class ChannelJoinMessage\n    {\n        [DataMember(Name=\"hidden\"), Preserve]\n        public bool Hidden { get; set; }\n\n        [DataMember(Name=\"persistence\"), Preserve]\n        public bool Persistence { get; set; }\n\n        [DataMember(Name=\"target\"), Preserve]\n        public string Target { get; set; }\n\n        [DataMember(Name=\"type\"), Preserve]\n        public int Type { get; set; }\n\n        public override string ToString()\n        {\n            return $\"ChannelJoinMessage(Hidden={Hidden}, Persistence={Persistence}, Target='{Target}', Type={Type})\";\n        }\n    }\n\n    /// <summary>\n    /// The available channel types on the server.\n    /// </summary>\n    public enum ChannelType : uint\n    {\n        /// <summary>\n        /// A chat room which can be created dynamically with a name.\n        /// </summary>\n        Room = 1,\n        /// <summary>\n        /// A private chat between two users.\n        /// </summary>\n        DirectMessage = 2,\n        /// <summary>\n        /// A chat within a group on the server.\n        /// </summary>\n        Group = 3\n    }\n}\n"
  },
  {
    "path": "Nakama/ChannelLeaveMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A leave message to a chat channel.\n    /// </summary>\n    internal class ChannelLeaveMessage\n    {\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        public override string ToString()\n        {\n            return $\"ChannelLeaveMessage(ChannelId='{ChannelId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/ChannelRemoveMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Remove a message from a chat channel.\n    /// </summary>\n    internal class ChannelRemoveMessage\n    {\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        [DataMember(Name=\"message_id\"), Preserve]\n        public string MessageId { get; set; }\n\n        public override string ToString()\n        {\n            return $\"ChannelRemoveMessage(ChannelId='{ChannelId}', MessageId='{MessageId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/ChannelSendMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Send a chat message to a channel on the server.\n    /// </summary>\n    internal class ChannelSendMessage\n    {\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        public override string ToString()\n        {\n            return $\"ChannelSendMessage(ChannelId='{ChannelId}', Content='{Content}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/ChannelUpdateMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Update a chat message which has been sent to a channel.\n    /// </summary>\n    internal class ChannelUpdateMessage\n    {\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        [DataMember(Name=\"message_id\"), Preserve]\n        public string MessageId { get; set; }\n\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        public override string ToString()\n        {\n            return $\"ChannelUpdateMessage(ChannelId='{ChannelId}', MessageId='{MessageId}', Content='{Content}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Client.cs",
    "content": "// Copyright 2022 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    /// <inheritdoc cref=\"IClient\"/>\n    public class Client : IClient\n    {\n        /// <summary>\n        /// The default host address of the server.\n        /// </summary>\n        public const string DefaultHost = \"127.0.0.1\";\n\n        /// <summary>\n        /// The default protocol scheme for the socket connection.\n        /// </summary>\n        public const string DefaultScheme = \"http\";\n\n        /// <summary>\n        /// The default port number of the server.\n        /// </summary>\n        public const int DefaultPort = 7350;\n\n        /// <summary>\n        /// The default expired timespan used to check session lifetime.\n        /// </summary>\n        public static TimeSpan DefaultExpiredTimeSpan = TimeSpan.FromMinutes(5);\n\n        /// <inheritdoc cref=\"IClient.AutoRefreshSession\"/>\n        public bool AutoRefreshSession { get; }\n\n        /// <inheritdoc cref=\"IClient.GlobalRetryConfiguration\"/>\n        public RetryConfiguration GlobalRetryConfiguration { get; set; } = new RetryConfiguration(\n            baseDelayMs: 500,\n            jitter: RetryJitter.FullJitter,\n            listener: null,\n            maxRetries: 4);\n\n        /// <inheritdoc cref=\"IClient.Host\"/>\n        public string Host { get; }\n\n        /// <summary>\n        /// The logger to use with the client.\n        /// </summary>\n        public ILogger Logger\n        {\n            get => _logger;\n            set\n            {\n                _apiClient.HttpAdapter.Logger = value;\n                _logger = value;\n            }\n        }\n\n        /// <inheritdoc cref=\"IClient.Port\"/>\n        public int Port { get; }\n\n        /// <inheritdoc cref=\"IClient.Scheme\"/>\n        public string Scheme { get; }\n\n        /// <inheritdoc cref=\"IClient.ServerKey\"/>\n        public string ServerKey { get; }\n\n        /// <inheritdoc cref=\"IClient.ReceivedSessionUpdated\"/>\n        public event Action<ISession> ReceivedSessionUpdated;\n\n        /// <inheritdoc cref=\"IClient.Timeout\"/>\n        public int Timeout\n        {\n            get => _apiClient.Timeout;\n            set => _apiClient.Timeout = value;\n        }\n\n        private readonly ApiClient _apiClient;\n        private ILogger _logger;\n        private readonly RetryInvoker _retryInvoker;\n\n        private const int DefaultTimeout = 15;\n\n        /// There is a bug in Unity's WebGL implementation that prevents the proper invocation of constructors with more\n        /// than four parameters. For this reason, avoid defining constructors that do this.\n        public Client(string serverKey) : this(serverKey, HttpRequestAdapter.WithGzip())\n        {\n        }\n\n        public Client(string serverKey, IHttpAdapter adapter) : this(DefaultScheme,\n            DefaultHost, DefaultPort, serverKey, adapter)\n        {\n        }\n\n        public Client(string scheme, string host, int port, string serverKey) : this(\n            scheme, host, port, serverKey, HttpRequestAdapter.WithGzip())\n        {\n        }\n\n        public Client(string scheme, string host, int port, string serverKey, IHttpAdapter adapter,\n            bool autoRefreshSession = true)\n        {\n            AutoRefreshSession = autoRefreshSession;\n            Host = host;\n            Port = port;\n            Scheme = scheme;\n            ServerKey = serverKey;\n            _apiClient = new ApiClient(new UriBuilder(scheme, host, port).Uri, adapter, DefaultTimeout);\n            Logger = NullLogger.Instance; // must set logger last.\n\n            _retryInvoker = new RetryInvoker(adapter.TransientExceptionDelegate);\n        }\n\n        public Client(Uri uri, string serverKey) : this(\n            uri, serverKey, HttpRequestAdapter.WithGzip())\n        {\n        }\n\n        public Client(Uri uri, string serverKey, IHttpAdapter adapter, bool autoRefreshSession = true)\n        {\n            AutoRefreshSession = autoRefreshSession;\n            Host = uri.Host;\n            Port = uri.Port;\n            Scheme = uri.Scheme;\n            ServerKey = serverKey;\n            _apiClient = new ApiClient(uri, adapter, DefaultTimeout);\n            Logger = NullLogger.Instance; // must set logger last.\n\n            _retryInvoker = new RetryInvoker(adapter.TransientExceptionDelegate);\n        }\n\n        /// <inheritdoc cref=\"AddFriendsAsync\"/>\n        public async Task AddFriendsAsync(ISession session, IEnumerable<string> ids,\n            IEnumerable<string> usernames = null, string metadata = null,\n            RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.AddFriendsAsync(session.AuthToken, ids, usernames, metadata, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"AddGroupUsersAsync\"/>\n        public async Task AddGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.AddGroupUsersAsync(session.AuthToken, groupId, ids, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"AuthenticateAppleAsync\"/>\n        public async Task<ISession> AuthenticateAppleAsync(string token, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateAppleAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountApple { Token = token, _vars = vars }, create, username, canceller),\n                new RetryHistory(token, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateCustomAsync\"/>\n        public async Task<ISession> AuthenticateCustomAsync(string id, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateCustomAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountCustom { Id = id, _vars = vars }, create, username, canceller),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateDeviceAsync\"/>\n        public async Task<ISession> AuthenticateDeviceAsync(string id, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateDeviceAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountDevice { Id = id, _vars = vars }, create, username, canceller),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateEmailAsync\"/>\n        public async Task<ISession> AuthenticateEmailAsync(string email, string password, string username = null,\n            bool create = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateEmailAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountEmail { Email = email, Password = password, _vars = vars }, create, username,\n                    canceller),\n                new RetryHistory(email, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateFacebookAsync\"/>\n        public async Task<ISession> AuthenticateFacebookAsync(string token, string username = null, bool create = true,\n            bool import = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateFacebookAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountFacebook { Token = token, _vars = vars }, create, username, import, canceller),\n                new RetryHistory(token, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateGameCenterAsync\"/>\n        public async Task<ISession> AuthenticateGameCenterAsync(string bundleId, string playerId, string publicKeyUrl,\n            string salt, string signature, string timestamp, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateGameCenterAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountGameCenter\n                    {\n                        BundleId = bundleId,\n                        PlayerId = playerId,\n                        PublicKeyUrl = publicKeyUrl,\n                        Salt = salt,\n                        Signature = signature,\n                        TimestampSeconds = timestamp,\n                        _vars = vars\n                    }, create, username, canceller),\n                new RetryHistory(bundleId, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateGoogleAsync\"/>\n        public async Task<ISession> AuthenticateGoogleAsync(string token, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateGoogleAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountGoogle { Token = token, _vars = vars }, create, username, canceller),\n                new RetryHistory(token, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateSteamAsync\"/>\n        public async Task<ISession> AuthenticateSteamAsync(string token, string username = null, bool create = true,\n            bool import = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.AuthenticateSteamAsync(ServerKey,\n                    string.Empty,\n                    new ApiAccountSteam { Token = token, _vars = vars }, create, username, import, canceller),\n                new RetryHistory(token, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n            return new Session(response.Token, response.RefreshToken, response.Created);\n        }\n\n        /// <inheritdoc cref=\"BanGroupUsersAsync\"/>\n        public async Task BanGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.BanGroupUsersAsync(session.AuthToken, groupId, ids, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"BlockFriendsAsync\"/>\n        public async Task BlockFriendsAsync(ISession session, IEnumerable<string> ids,\n            IEnumerable<string> usernames = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.BlockFriendsAsync(session.AuthToken, ids, usernames, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"CreateGroupAsync\"/>\n        public async Task<IApiGroup> CreateGroupAsync(ISession session, string name, string description = \"\",\n            string avatarUrl = null, string langTag = null, bool open = true, int maxCount = 100,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.CreateGroupAsync(session.AuthToken,\n                new ApiCreateGroupRequest\n                {\n                    Name = name,\n                    Description = description,\n                    AvatarUrl = avatarUrl,\n                    LangTag = langTag,\n                    Open = open,\n                    MaxCount = maxCount\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteAccountAsync\"/>\n        public async Task DeleteAccountAsync(ISession session, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DeleteAccountAsync(session.AuthToken, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteFriendsAsync\"/>\n        public async Task DeleteFriendsAsync(ISession session, IEnumerable<string> ids,\n            IEnumerable<string> usernames = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DeleteFriendsAsync(session.AuthToken, ids, usernames, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteGroupAsync\"/>\n        public async Task DeleteGroupAsync(ISession session, string groupId,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DeleteGroupAsync(session.AuthToken, groupId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteLeaderboardRecordAsync\"/>\n        public async Task DeleteLeaderboardRecordAsync(ISession session, string leaderboardId,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DeleteLeaderboardRecordAsync(session.AuthToken, leaderboardId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteNotificationsAsync\"/>\n        public async Task DeleteNotificationsAsync(ISession session, IEnumerable<string> ids,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DeleteNotificationsAsync(session.AuthToken, ids, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteStorageObjectsAsync\"/>\n        public async Task DeleteStorageObjectsAsync(ISession session, StorageObjectId[] ids = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var objects = new List<ApiDeleteStorageObjectId>();\n\n            if (ids != null)\n            {\n                foreach (var id in ids)\n                {\n                    objects.Add(new ApiDeleteStorageObjectId\n                    {\n                        Collection = id.Collection,\n                        Key = id.Key,\n                        Version = id.Version\n                    });\n                }\n            }\n\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.DeleteStorageObjectsAsync(session.AuthToken,\n                    new ApiDeleteStorageObjectsRequest { _objectIds = objects }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DeleteTournamentRecordAsync\"/>\n        public async Task DeleteTournamentRecordAsync(ISession session, string tournamentId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.DeleteTournamentRecordAsync(session.AuthToken, tournamentId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"DemoteGroupUsersAsync\"/>\n        public async Task DemoteGroupUsersAsync(ISession session, string groupId, IEnumerable<string> usernames,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.DemoteGroupUsersAsync(session.AuthToken, groupId, usernames, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"EventAsync\"/>\n        public async Task EventAsync(ISession session, string name, Dictionary<string, string> properties,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.EventAsync(session.AuthToken, new ApiEvent()\n            {\n                External = true,\n                Name = name,\n                _properties = properties\n            }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"GetAccountAsync\"/>\n        public async Task<IApiAccount> GetAccountAsync(ISession session, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.GetAccountAsync(session.AuthToken, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"GetSubscriptionAsync\"/>\n        public async Task<IApiValidatedSubscription> GetSubscriptionAsync(ISession session, string productId,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.GetSubscriptionAsync(session.AuthToken, productId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"GetUsersAsync\"/>\n        public async Task<IApiUsers> GetUsersAsync(ISession session, IEnumerable<string> ids,\n            IEnumerable<string> usernames = null, IEnumerable<string> facebookIds = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.GetUsersAsync(session.AuthToken, ids, usernames, facebookIds, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ImportFacebookFriendsAsync\"/>\n        public async Task ImportFacebookFriendsAsync(ISession session, string token, bool? reset = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.ImportFacebookFriendsAsync(session.AuthToken,\n                    new ApiAccountFacebook { Token = token },\n                    reset, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ImportSteamFriendsAsync\"/>\n        public async Task ImportSteamFriendsAsync(ISession session, string token, bool? reset = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ImportSteamFriendsAsync(session.AuthToken, new ApiAccountSteam { Token = token },\n                    reset, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"JoinGroupAsync\"/>\n        public async Task JoinGroupAsync(ISession session, string groupId, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.JoinGroupAsync(session.AuthToken, groupId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"JoinTournamentAsync\"/>\n        public async Task JoinTournamentAsync(ISession session, string tournamentId,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.JoinTournamentAsync(session.AuthToken, tournamentId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"KickGroupUsersAsync\"/>\n        public async Task KickGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.KickGroupUsersAsync(session.AuthToken, groupId, ids, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LeaveGroupAsync\"/>\n        public async Task LeaveGroupAsync(ISession session, string groupId,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.LeaveGroupAsync(session.AuthToken, groupId, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkAppleAsync\"/>\n        public async Task LinkAppleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.LinkAppleAsync(session.AuthToken, new ApiAccountApple { Token = token }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkCustomAsync\"/>\n        public async Task LinkCustomAsync(ISession session, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.LinkCustomAsync(session.AuthToken, new ApiAccountCustom { Id = id }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkDeviceAsync\"/>\n        public async Task LinkDeviceAsync(ISession session, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.LinkDeviceAsync(session.AuthToken, new ApiAccountDevice { Id = id }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkEmailAsync\"/>\n        public async Task LinkEmailAsync(ISession session, string email, string password,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.LinkEmailAsync(session.AuthToken,\n                    new ApiAccountEmail { Email = email, Password = password }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkFacebookAsync\"/>\n        public async Task LinkFacebookAsync(ISession session, string token, bool? import = true,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.LinkFacebookAsync(session.AuthToken, new ApiAccountFacebook { Token = token }, import,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkGameCenterAsync\"/>\n        public async Task LinkGameCenterAsync(ISession session, string bundleId, string playerId, string publicKeyUrl,\n            string salt, string signature, string timestamp, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.LinkGameCenterAsync(session.AuthToken,\n                new ApiAccountGameCenter\n                {\n                    BundleId = bundleId,\n                    PlayerId = playerId,\n                    PublicKeyUrl = publicKeyUrl,\n                    Salt = salt,\n                    Signature = signature,\n                    TimestampSeconds = timestamp\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkGoogleAsync\"/>\n        public async Task LinkGoogleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.LinkGoogleAsync(session.AuthToken, new ApiAccountGoogle { Token = token }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"LinkSteamAsync\"/>\n        public async Task LinkSteamAsync(ISession session, string token, bool sync,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.LinkSteamAsync(session.AuthToken,\n                    new ApiLinkSteamRequest { Sync = sync, _account = new ApiAccountSteam { Token = token } },\n                    canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListChannelMessagesAsync(Nakama.ISession,Nakama.IChannel,int,bool,string,RetryConfiguration,CancellationToken)\"/>\n        public Task<IApiChannelMessageList> ListChannelMessagesAsync(ISession session, IChannel channel, int limit = 1,\n            bool forward = true, string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default) =>\n            ListChannelMessagesAsync(session, channel.Id, limit, forward, cursor, retryConfiguration, canceller);\n\n        /// <inheritdoc cref=\"ListChannelMessagesAsync(Nakama.ISession,string,int,bool,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiChannelMessageList> ListChannelMessagesAsync(ISession session, string channelId,\n            int limit = 1, bool forward = true, string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListChannelMessagesAsync(session.AuthToken, channelId, limit, forward, cursor,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListFriendsAsync\"/>\n        public async Task<IApiFriendList> ListFriendsAsync(ISession session, int? state, int limit, string cursor,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListFriendsAsync(session.AuthToken, limit, state, cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListGroupUsersAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiGroupUserList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiGroupUserList> ListGroupUsersAsync(ISession session, string groupId, int? state,\n            int limit, string cursor, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListGroupUsersAsync(session.AuthToken, groupId, limit, state, cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            foreach (var groupUser in response.GroupUsers)\n            {\n                if (session.UserId.Equals(groupUser.User.Id) && groupUser.User is ApiUser u)\n                {\n                    u.Username = session.Username;\n                }\n            }\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListGroupsAsync\"/>\n        public async Task<IApiGroupList> ListGroupsAsync(ISession session, string name = null, int limit = 1,\n            string cursor = null, string langTag = null, int? members = null, bool? open = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListGroupsAsync(session.AuthToken, name, cursor, limit, langTag, members, open,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListLeaderboardRecordsAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiLeaderboardRecordList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAsync(ISession session, string leaderboardId,\n            IEnumerable<string> ownerIds = null, long? expiry = null, int limit = 1, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.ListLeaderboardRecordsAsync(\n                    session.AuthToken, leaderboardId, ownerIds, limit,\n                    cursor, expiry?.ToString(), canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            foreach (var record in response.Records)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            foreach (var record in response.OwnerRecords)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListLeaderboardRecordsAroundOwnerAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiLeaderboardRecordList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAroundOwnerAsync(ISession session,\n            string leaderboardId, string ownerId, long? expiry = null, int limit = 1, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.ListLeaderboardRecordsAroundOwnerAsync(\n                    session.AuthToken, leaderboardId, ownerId,\n                    limit, expiry?.ToString(), cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            foreach (var record in response.Records)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            foreach (var record in response.OwnerRecords)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListMatchesAsync\"/>\n        public async Task<IApiMatchList> ListMatchesAsync(ISession session, int min, int max, int limit,\n            bool authoritative, string label, string query, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListMatchesAsync(session.AuthToken, limit, authoritative, label, min, max, query,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListNotificationsAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiNotificationList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiNotificationList> ListNotificationsAsync(ISession session, int limit = 1,\n            string cacheableCursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListNotificationsAsync(session.AuthToken, limit, cacheableCursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListPartiesAsync\"/>\n        public async Task<IApiPartyList> ListPartiesAsync(ISession session, int limit, bool? open, string query = null,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)   {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListPartiesAsync(session.AuthToken, limit, open, query, cursor,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        [Obsolete(\"ListStorageObjects is obsolete, please use ListStorageObjectsAsync instead.\", true)]\n        public Task<IApiStorageObjectList> ListStorageObjects(ISession session, string collection, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default) =>\n            _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListStorageObjectsAsync(session.AuthToken, collection, string.Empty, limit, cursor,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n        /// <inheritdoc cref=\"ListStorageObjectsAsync(Nakama.ISession,string,int,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiStorageObjectList> ListStorageObjectsAsync(ISession session, string collection,\n            int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default) =>\n            await ListStorageObjectsAsync(session, collection, session.UserId ?? string.Empty, limit, cursor,\n                retryConfiguration, canceller);\n\n        // ReSharper disable once MemberCanBePrivate.Global -- overload can be called externally\n        /// <inheritdoc cref=\"ListStorageObjectsAsync(Nakama.ISession,string,string,int,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiStorageObjectList> ListStorageObjectsAsync(ISession session, string collection,\n            string userId = \"\", int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListStorageObjectsAsync(session.AuthToken, collection, userId, limit, cursor,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListSubscriptionsAsync\"/>\n        public async Task<IApiSubscriptionList> ListSubscriptionsAsync(ISession session, int limit,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListSubscriptionsAsync(session.AuthToken,\n                    new ApiListSubscriptionsRequest { Cursor = cursor, Limit = limit }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListTournamentRecordsAroundOwnerAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiTournamentRecordList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiTournamentRecordList> ListTournamentRecordsAroundOwnerAsync(ISession session,\n            string tournamentId, string ownerId, long? expiry = null, int limit = 1, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.ListTournamentRecordsAroundOwnerAsync(\n                    session.AuthToken, tournamentId, ownerId,\n                    limit, expiry?.ToString(), cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            foreach (var record in response.Records)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            foreach (var record in response.OwnerRecords)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListTournamentRecordsAsync\"/>\n        /// <remarks>\n        /// The returned <c>IApiTournamentRecordList</c> is automatically updated to reflect username changes for the\n        /// current user.\n        /// </remarks>\n        public async Task<IApiTournamentRecordList> ListTournamentRecordsAsync(ISession session, string tournamentId,\n            IEnumerable<string> ownerIds = null, long? expiry = null, int limit = 1, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(() => _apiClient.ListTournamentRecordsAsync(\n                    session.AuthToken, tournamentId, ownerIds, limit, cursor,\n                    expiry?.ToString(), canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            foreach (var record in response.Records)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            foreach (var record in response.OwnerRecords)\n            {\n                if (session.UserId.Equals(record.OwnerId) && record is ApiLeaderboardRecord r)\n                {\n                    r.Username = session.Username;\n                }\n            }\n\n            return response;\n        }\n\n        /// <inheritdoc cref=\"ListTournamentsAsync\"/>\n        public async Task<IApiTournamentList> ListTournamentsAsync(ISession session, int categoryStart, int categoryEnd,\n            int? startTime = null, int? endTime = null, int limit = 1, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ListTournamentsAsync(session.AuthToken,\n                    categoryStart, categoryEnd, startTime,\n                    endTime, limit, cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListUserGroupsAsync(Nakama.ISession,int?,int,string,RetryConfiguration,CancellationToken)\"/>\n        public Task<IApiUserGroupList> ListUserGroupsAsync(ISession session, int? state, int limit, string cursor,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default) =>\n            ListUserGroupsAsync(session, session.UserId, state, limit, cursor);\n\n        /// <inheritdoc cref=\"ListUserGroupsAsync(Nakama.ISession,string,int?,int,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiUserGroupList> ListUserGroupsAsync(ISession session, string userId, int? state, int limit,\n            string cursor, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListUserGroupsAsync(session.AuthToken, userId, limit, state, cursor, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ListUsersStorageObjectsAsync\"/>\n        public async Task<IApiStorageObjectList> ListUsersStorageObjectsAsync(ISession session, string collection,\n            string userId, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.ListStorageObjects2Async(session.AuthToken, collection, userId, limit, cursor,\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"PromoteGroupUsersAsync\"/>\n        public async Task PromoteGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.PromoteGroupUsersAsync(session.AuthToken, groupId, ids, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ReadStorageObjectsAsync\"/>\n        public async Task<IApiStorageObjects> ReadStorageObjectsAsync(ISession session,\n            IApiReadStorageObjectId[] ids = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var objects = new List<ApiReadStorageObjectId>();\n\n            if (ids != null)\n            {\n                foreach (var id in ids)\n                {\n                    objects.Add(new ApiReadStorageObjectId\n                    {\n                        Collection = id.Collection,\n                        Key = id.Key,\n                        UserId = id.UserId\n                    });\n                }\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ReadStorageObjectsAsync(session.AuthToken,\n                    new ApiReadStorageObjectsRequest { _objectIds = objects }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"RpcAsync(Nakama.ISession,string,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiRpc> RpcAsync(ISession session, string id, string payload,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.RpcFuncAsync(session.AuthToken, string.Empty, string.Empty, id, payload, null, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"RpcAsync(Nakama.ISession,string,RetryConfiguration,CancellationToken)\"/>\n        public async Task<IApiRpc> RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.RpcFunc2Async(session.AuthToken, string.Empty, string.Empty, id, null, null, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"RpcAsync(string,string,string,RetryConfiguration,CancellationToken)\"/>\n        public Task<IApiRpc> RpcAsync(string httpkey, string id, string payload,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default) =>\n            _retryInvoker.InvokeWithRetry(() => _apiClient.RpcFuncAsync(null, string.Empty, string.Empty, id, payload, httpkey, canceller),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n        /// <inheritdoc cref=\"RpcAsync(string,string,RetryConfiguration,CancellationToken)\"/>\n        public Task<IApiRpc> RpcAsync(string httpkey, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default) =>\n            _retryInvoker.InvokeWithRetry(() => _apiClient.RpcFunc2Async(null, string.Empty, string.Empty, id, null, httpkey, canceller),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n        /// <inheritdoc cref=\"SessionLogoutAsync(Nakama.ISession,RetryConfiguration,CancellationToken)\"/>\n        public Task SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default) => SessionLogoutAsync(session.AuthToken, session.RefreshToken,\n            retryConfiguration, canceller);\n\n        /// <inheritdoc cref=\"SessionLogoutAsync(string,string,RetryConfiguration,CancellationToken)\"/>\n        public Task SessionLogoutAsync(string authToken, string refreshToken,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default) =>\n            _retryInvoker.InvokeWithRetry(() => _apiClient.SessionLogoutAsync(authToken,\n                    new ApiSessionLogoutRequest { Token = authToken, RefreshToken = refreshToken }, canceller),\n                new RetryHistory(authToken, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n        /// <inheritdoc cref=\"SessionRefreshAsync\"/>\n        public async Task<ISession> SessionRefreshAsync(ISession session, Dictionary<string, string> vars = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            // NOTE: Warn developers to encourage them to set a suitable session and refresh token lifetime.\n            if (session.Created && session.ExpireTime - session.CreateTime < 70)\n            {\n                Logger.WarnFormat(\n                    \"Session lifetime too short, please set '--session.token_expiry_sec' option. See the documentation for more info: https://heroiclabs.com/docs/install-configuration/#session\");\n            }\n\n            if (session.Created && session.RefreshExpireTime - session.CreateTime < 3700)\n            {\n                Logger.WarnFormat(\n                    \"Session refresh lifetime too short, please set '--session.refresh_token_expiry_sec' option. See the documentation for more info: https://heroiclabs.com/docs/install-configuration/#session\");\n            }\n\n            var response = await _retryInvoker.InvokeWithRetry(() =>\n                    _apiClient.SessionRefreshAsync(ServerKey, string.Empty,\n                    new ApiSessionRefreshRequest { Token = session.RefreshToken, _vars = vars }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            if (session is Session updatedSession)\n            {\n                // Update session object in place if we can.\n                updatedSession.Update(response.Token, response.RefreshToken);\n                ReceivedSessionUpdated?.Invoke(updatedSession);\n                return updatedSession;\n            }\n\n            var newSession = new Session(response.Token, response.RefreshToken, response.Created);\n            ReceivedSessionUpdated?.Invoke(newSession);\n            return newSession;\n        }\n\n        public override string ToString() =>\n            $\"Client(Host='{Host}', Port={Port}, Scheme='{Scheme}', ServerKey='{ServerKey}', Timeout={Timeout})\";\n\n        /// <inheritdoc cref=\"UnlinkAppleAsync\"/>\n        public async Task UnlinkAppleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkAppleAsync(session.AuthToken, new ApiAccountApple { Token = token }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkCustomAsync\"/>\n        public async Task UnlinkCustomAsync(ISession session, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkCustomAsync(session.AuthToken, new ApiAccountCustom { Id = id }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkDeviceAsync\"/>\n        public async Task UnlinkDeviceAsync(ISession session, string id, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkDeviceAsync(session.AuthToken, new ApiAccountDevice { Id = id }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkEmailAsync\"/>\n        public async Task UnlinkEmailAsync(ISession session, string email, string password,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.UnlinkEmailAsync(session.AuthToken,\n                    new ApiAccountEmail { Email = email, Password = password }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkFacebookAsync\"/>\n        public async Task UnlinkFacebookAsync(ISession session, string token,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkFacebookAsync(session.AuthToken, new ApiAccountFacebook { Token = token },\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkGameCenterAsync\"/>\n        public async Task UnlinkGameCenterAsync(ISession session, string bundleId, string playerId, string publicKeyUrl,\n            string salt, string signature, string timestamp, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.UnlinkGameCenterAsync(\n                session.AuthToken,\n                new ApiAccountGameCenter\n                {\n                    BundleId = bundleId,\n                    PlayerId = playerId,\n                    PublicKeyUrl = publicKeyUrl,\n                    Salt = salt,\n                    Signature = signature,\n                    TimestampSeconds = timestamp\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkGoogleAsync\"/>\n        public async Task UnlinkGoogleAsync(ISession session, string token,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkGoogleAsync(session.AuthToken, new ApiAccountGoogle { Token = token },\n                    canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UnlinkSteamAsync\"/>\n        public async Task UnlinkSteamAsync(ISession session, string token, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.UnlinkSteamAsync(session.AuthToken, new ApiAccountSteam { Token = token }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"UpdateAccountAsync\"/>\n        /// <remarks>\n        /// The current user's username will be automatically refreshed in their authorized <c>ISession</c> if the\n        /// username field is updated to become different.\n        /// </remarks>\n        public async Task UpdateAccountAsync(ISession session, string username, string displayName = null,\n            string avatarUrl = null, string langTag = null, string location = null, string timezone = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.UpdateAccountAsync(\n                session.AuthToken, new ApiUpdateAccountRequest\n                {\n                    AvatarUrl = avatarUrl,\n                    DisplayName = displayName,\n                    LangTag = langTag,\n                    Location = location,\n                    Timezone = timezone,\n                    Username = username\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n\n            if (!String.IsNullOrEmpty(username) && !username.Equals(session.Username))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n        }\n\n        /// <inheritdoc cref=\"UpdateGroupAsync\"/>\n        public async Task UpdateGroupAsync(ISession session, string groupId, string name, bool open,\n            string description = null, string avatarUrl = null, string langTag = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.UpdateGroupAsync(\n                session.AuthToken, groupId,\n                new ApiUpdateGroupRequest()\n                {\n                    Name = name,\n                    Open = open,\n                    AvatarUrl = avatarUrl,\n                    Description = description,\n                    LangTag = langTag\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ValidatePurchaseAppleAsync\"/>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseAppleAsync(ISession session, string receipt,\n            bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidatePurchaseAppleAsync(session.AuthToken,\n                new ApiValidatePurchaseAppleRequest\n                {\n                    Receipt = receipt,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ValidatePurchaseFacebookInstantAsync\"/>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseFacebookInstantAsync(ISession session, string signedRequest,\n            bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidatePurchaseFacebookInstantAsync(session.AuthToken,\n                new ApiValidatePurchaseFacebookInstantRequest\n                {\n                    SignedRequest = signedRequest,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ValidatePurchaseGoogleAsync\"/>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseGoogleAsync(ISession session, string receipt,\n            bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidatePurchaseGoogleAsync(session.AuthToken,\n                new ApiValidatePurchaseGoogleRequest\n                {\n                    Purchase = receipt,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"ValidatePurchaseHuaweiAsync\"/>\n        public async Task<IApiValidatePurchaseResponse> ValidatePurchaseHuaweiAsync(ISession session, string receipt,\n            string signature, bool persist = true, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidatePurchaseHuaweiAsync(session.AuthToken,\n                new ApiValidatePurchaseHuaweiRequest\n                {\n                    Purchase = receipt,\n                    Signature = signature,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        public async Task<IApiValidateSubscriptionResponse> ValidateSubscriptionAppleAsync(ISession session,\n            string receipt, bool persist = true, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidateSubscriptionAppleAsync(\n                session.AuthToken, new ApiValidateSubscriptionAppleRequest\n                {\n                    Receipt = receipt,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        public async Task<IApiValidateSubscriptionResponse> ValidateSubscriptionGoogleAsync(ISession session,\n            string receipt, bool persist = true, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.ValidateSubscriptionGoogleAsync(\n                session.AuthToken, new ApiValidateSubscriptionGoogleRequest\n                {\n                    Receipt = receipt,\n                    Persist = persist\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"WriteLeaderboardRecordAsync\"/>\n        public async Task<IApiLeaderboardRecord> WriteLeaderboardRecordAsync(ISession session, string leaderboardId,\n            long score, long subScore = 0, string metadata = null, ApiOperator apiOperator = ApiOperator.NO_OVERRIDE,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.WriteLeaderboardRecordAsync(\n                session.AuthToken, leaderboardId,\n                new WriteLeaderboardRecordRequestLeaderboardRecordWrite\n                {\n                    Metadata = metadata,\n                    Score = score.ToString(),\n                    Subscore = subScore.ToString(),\n                    _operator = apiOperator\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"WriteStorageObjectsAsync\"/>\n        public async Task<IApiStorageObjectAcks> WriteStorageObjectsAsync(ISession session,\n            IApiWriteStorageObject[] objects = null, RetryConfiguration retryConfiguration = null,\n            CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            var writes = new List<ApiWriteStorageObject>(objects.Length);\n            foreach (var obj in objects)\n            {\n                writes.Add(new ApiWriteStorageObject\n                {\n                    Collection = obj.Collection,\n                    Key = obj.Key,\n                    PermissionRead = obj.PermissionRead,\n                    PermissionWrite = obj.PermissionWrite,\n                    Value = obj.Value,\n                    Version = obj.Version\n                });\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.WriteStorageObjectsAsync(session.AuthToken,\n                    new ApiWriteStorageObjectsRequest { _objects = writes }, canceller),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n\n        /// <inheritdoc cref=\"WriteTournamentRecordAsync\"/>\n        public async Task<IApiLeaderboardRecord> WriteTournamentRecordAsync(ISession session, string tournamentId,\n            long score, long subScore = 0, string metadata = null, ApiOperator apiOperator = ApiOperator.NO_OVERRIDE,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, null, retryConfiguration, canceller);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.WriteTournamentRecordAsync(session.AuthToken,\n                tournamentId,\n                new WriteTournamentRecordRequestTournamentRecordWrite\n                {\n                    Metadata = metadata,\n                    Score = score.ToString(),\n                    Subscore = subScore.ToString(),\n                    _operator = apiOperator\n                }, canceller), new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, canceller));\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Console/ConsoleClient.gen.cs",
    "content": "/* Code generated by codegen/main.go. DO NOT EDIT. */\nnamespace Nakama.Console\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Runtime.Serialization;\n    using System.Text;\n    using System.Threading;\n    using System.Threading.Tasks;\n    using TinyJson;\n\n    /// <summary>\n    /// An exception generated for <c>HttpResponse</c> objects don't return a success status.\n    /// </summary>\n    public sealed class ApiResponseException : Exception\n    {\n        public long StatusCode { get; }\n\n        public int GrpcStatusCode { get; }\n\n        public ApiResponseException(long statusCode, string content, int grpcCode) : base(content)\n        {\n            StatusCode = statusCode;\n            GrpcStatusCode = grpcCode;\n        }\n\n        public ApiResponseException(string message, Exception e) : base(message, e)\n        {\n            StatusCode = -1L;\n            GrpcStatusCode = -1;\n        }\n\n        public ApiResponseException(string content) : this(-1L, content, -1)\n        {\n        }\n\n        public override string ToString()\n        {\n            return $\"ApiResponseException(StatusCode={StatusCode}, Message='{Message}', GrpcStatusCode={GrpcStatusCode})\";\n        }\n    }\n\n    /// <summary>\n    /// Add/join users to a group.\n    /// </summary>\n    public interface IApiConsole_AddGroupUsersRequest\n    {\n\n        /// <summary>\n        /// Users to add/join.\n        /// </summary>\n        string Ids { get; }\n\n        /// <summary>\n        /// Whether it is a join request.\n        /// </summary>\n        bool JoinRequest { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_AddGroupUsersRequest : IApiConsole_AddGroupUsersRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"ids\"), Preserve]\n        public string Ids { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"join_request\"), Preserve]\n        public bool JoinRequest { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Ids: \", Ids, \", \");\n            output = string.Concat(output, \"JoinRequest: \", JoinRequest, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IApiConsole_CallApiEndpointRequest\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Body { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IDictionary<string, string> SessionVars { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_CallApiEndpointRequest : IApiConsole_CallApiEndpointRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"body\"), Preserve]\n        public string Body { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> SessionVars => _sessionVars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"session_vars\"), Preserve]\n        public Dictionary<string, string> _sessionVars { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Body: \", Body, \", \");\n\n            var session_varsString = \"\";\n            foreach (var kvp in SessionVars)\n            {\n                session_varsString = string.Concat(session_varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"SessionVars: [\" + session_varsString + \"]\");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IApiConsole_CallRpcEndpointRequest\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Body { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IDictionary<string, string> SessionVars { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_CallRpcEndpointRequest : IApiConsole_CallRpcEndpointRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"body\"), Preserve]\n        public string Body { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> SessionVars => _sessionVars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"session_vars\"), Preserve]\n        public Dictionary<string, string> _sessionVars { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Body: \", Body, \", \");\n\n            var session_varsString = \"\";\n            foreach (var kvp in SessionVars)\n            {\n                session_varsString = string.Concat(session_varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"SessionVars: [\" + session_varsString + \"]\");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Make a user's mfa required or not.\n    /// </summary>\n    public interface IApiConsole_RequireUserMfaRequest\n    {\n\n        /// <summary>\n        /// Required.\n        /// </summary>\n        bool Required { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_RequireUserMfaRequest : IApiConsole_RequireUserMfaRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"required\"), Preserve]\n        public bool Required { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Required: \", Required, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Unlink a particular device ID from a user's account.\n    /// </summary>\n    public interface IApiConsole_UnlinkDeviceRequest\n    {\n\n        /// <summary>\n        /// Device ID to unlink.\n        /// </summary>\n        string DeviceId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_UnlinkDeviceRequest : IApiConsole_UnlinkDeviceRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"device_id\"), Preserve]\n        public string DeviceId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"DeviceId: \", DeviceId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Update user account information.\n    /// </summary>\n    public interface IApiConsole_UpdateAccountRequest\n    {\n\n        /// <summary>\n        /// Avatar URL.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// Custom ID.\n        /// </summary>\n        string CustomId { get; }\n\n        /// <summary>\n        /// Device ID modifications.\n        /// </summary>\n        IDictionary<string, string> DeviceIds { get; }\n\n        /// <summary>\n        /// Display name.\n        /// </summary>\n        string DisplayName { get; }\n\n        /// <summary>\n        /// Email.\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// Langtag.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// Location.\n        /// </summary>\n        string Location { get; }\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Password.\n        /// </summary>\n        string Password { get; }\n\n        /// <summary>\n        /// Timezone.\n        /// </summary>\n        string Timezone { get; }\n\n        /// <summary>\n        /// Username.\n        /// </summary>\n        string Username { get; }\n\n        /// <summary>\n        /// Wallet.\n        /// </summary>\n        string Wallet { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_UpdateAccountRequest : IApiConsole_UpdateAccountRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"custom_id\"), Preserve]\n        public string CustomId { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> DeviceIds => _deviceIds ?? new Dictionary<string, string>();\n        [DataMember(Name=\"device_ids\"), Preserve]\n        public Dictionary<string, string> _deviceIds { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"display_name\"), Preserve]\n        public string DisplayName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"location\"), Preserve]\n        public string Location { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"password\"), Preserve]\n        public string Password { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timezone\"), Preserve]\n        public string Timezone { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"wallet\"), Preserve]\n        public string Wallet { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"CustomId: \", CustomId, \", \");\n\n            var device_idsString = \"\";\n            foreach (var kvp in DeviceIds)\n            {\n                device_idsString = string.Concat(device_idsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"DeviceIds: [\" + device_idsString + \"]\");\n            output = string.Concat(output, \"DisplayName: \", DisplayName, \", \");\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"Location: \", Location, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Password: \", Password, \", \");\n            output = string.Concat(output, \"Timezone: \", Timezone, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            output = string.Concat(output, \"Wallet: \", Wallet, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Update group information.\n    /// </summary>\n    public interface IApiConsole_UpdateGroupRequest\n    {\n\n        /// <summary>\n        /// Avatar URL.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// Description.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// Langtag.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The maximum number of members allowed.\n        /// </summary>\n        int MaxCount { get; }\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Name.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Anyone can join open groups, otherwise only admins can accept members.\n        /// </summary>\n        bool Open { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_UpdateGroupRequest : IApiConsole_UpdateGroupRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"MaxCount: \", MaxCount, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Request to update an existing setting.\n    /// </summary>\n    public interface IApiConsole_UpdateSettingRequest\n    {\n\n        /// <summary>\n        /// Setting value.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_UpdateSettingRequest : IApiConsole_UpdateSettingRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Write a new storage object or update an existing one.\n    /// </summary>\n    public interface IApiConsole_WriteStorageObjectRequest\n    {\n\n        /// <summary>\n        /// Read permission value.\n        /// </summary>\n        int PermissionRead { get; }\n\n        /// <summary>\n        /// Write permission value.\n        /// </summary>\n        int PermissionWrite { get; }\n\n        /// <summary>\n        /// Value.\n        /// </summary>\n        string Value { get; }\n\n        /// <summary>\n        /// Version for OCC.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiConsole_WriteStorageObjectRequest : IApiConsole_WriteStorageObjectRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_read\"), Preserve]\n        public int PermissionRead { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_write\"), Preserve]\n        public int PermissionWrite { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"PermissionRead: \", PermissionRead, \", \");\n            output = string.Concat(output, \"PermissionWrite: \", PermissionWrite, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A warning for a configuration field.\n    /// </summary>\n    public interface IConfigWarning\n    {\n\n        /// <summary>\n        /// The config field this warning is for in a JSON pointer format.\n        /// </summary>\n        string Field { get; }\n\n        /// <summary>\n        /// Warning message text.\n        /// </summary>\n        string Message { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConfigWarning : IConfigWarning\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"field\"), Preserve]\n        public string Field { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message\"), Preserve]\n        public string Message { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Field: \", Field, \", \");\n            output = string.Concat(output, \"Message: \", Message, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single user-role pair.\n    /// </summary>\n    public interface IGroupUserListGroupUser\n    {\n\n        /// <summary>\n        /// Their relationship to the group.\n        /// </summary>\n        int State { get; }\n\n        /// <summary>\n        /// User.\n        /// </summary>\n        INakamaapiUser User { get; }\n    }\n\n    /// <inheritdoc />\n    internal class GroupUserListGroupUser : IGroupUserListGroupUser\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public NakamaapiUser _user { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"State: \", State, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Module information\n    /// </summary>\n    public interface IRuntimeInfoModuleInfo\n    {\n\n        /// <summary>\n        /// Module last modified date\n        /// </summary>\n        string ModTime { get; }\n\n        /// <summary>\n        /// Module path\n        /// </summary>\n        string Path { get; }\n    }\n\n    /// <inheritdoc />\n    internal class RuntimeInfoModuleInfo : IRuntimeInfoModuleInfo\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mod_time\"), Preserve]\n        public string ModTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"path\"), Preserve]\n        public string Path { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ModTime: \", ModTime, \", \");\n            output = string.Concat(output, \"Path: \", Path, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single group-role pair.\n    /// </summary>\n    public interface IUserGroupListUserGroup\n    {\n\n        /// <summary>\n        /// Group.\n        /// </summary>\n        IApiGroup Group { get; }\n\n        /// <summary>\n        /// The user's relationship to the group.\n        /// </summary>\n        int State { get; }\n    }\n\n    /// <inheritdoc />\n    internal class UserGroupListUserGroup : IUserGroupListUserGroup\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiGroup Group => _group;\n        [DataMember(Name=\"group\"), Preserve]\n        public ApiGroup _group { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Group: \", Group, \", \");\n            output = string.Concat(output, \"State: \", State, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Send a device to the server. Used with authenticate/link/unlink and user.\n    /// </summary>\n    public interface IApiAccountDevice\n    {\n\n        /// <summary>\n        /// A device identifier. Should be obtained by a platform-specific device API.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Extra information that will be bundled in the session token.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAccountDevice : IApiAccountDevice\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Vars => _vars ?? new Dictionary<string, string>();\n        [DataMember(Name=\"vars\"), Preserve]\n        public Dictionary<string, string> _vars { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Id: \", Id, \", \");\n\n            var varsString = \"\";\n            foreach (var kvp in Vars)\n            {\n                varsString = string.Concat(varsString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Vars: [\" + varsString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A message sent on a channel.\n    /// </summary>\n    public interface IApiChannelMessage\n    {\n\n        /// <summary>\n        /// The channel this message belongs to.\n        /// </summary>\n        string ChannelId { get; }\n\n        /// <summary>\n        /// The code representing a message type or category.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// The content payload.\n        /// </summary>\n        string Content { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The ID of the group, or an empty string if this message was not sent through a group channel.\n        /// </summary>\n        string GroupId { get; }\n\n        /// <summary>\n        /// The unique ID of this message.\n        /// </summary>\n        string MessageId { get; }\n\n        /// <summary>\n        /// True if the message was persisted to the channel's history, false otherwise.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// The name of the chat room, or an empty string if this message was not sent through a chat room.\n        /// </summary>\n        string RoomName { get; }\n\n        /// <summary>\n        /// Message sender, usually a user ID.\n        /// </summary>\n        string SenderId { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdOne { get; }\n\n        /// <summary>\n        /// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdTwo { get; }\n\n        /// <summary>\n        /// The username of the message sender, if any.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiChannelMessage : IApiChannelMessage\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"group_id\"), Preserve]\n        public string GroupId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message_id\"), Preserve]\n        public string MessageId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistent\"), Preserve]\n        public bool Persistent { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"room_name\"), Preserve]\n        public string RoomName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sender_id\"), Preserve]\n        public string SenderId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id_one\"), Preserve]\n        public string UserIdOne { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id_two\"), Preserve]\n        public string UserIdTwo { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ChannelId: \", ChannelId, \", \");\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Content: \", Content, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"GroupId: \", GroupId, \", \");\n            output = string.Concat(output, \"MessageId: \", MessageId, \", \");\n            output = string.Concat(output, \"Persistent: \", Persistent, \", \");\n            output = string.Concat(output, \"RoomName: \", RoomName, \", \");\n            output = string.Concat(output, \"SenderId: \", SenderId, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserIdOne: \", UserIdOne, \", \");\n            output = string.Concat(output, \"UserIdTwo: \", UserIdTwo, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of channel messages, usually a result of a list operation.\n    /// </summary>\n    public interface IApiChannelMessageList\n    {\n\n        /// <summary>\n        /// Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.\n        /// </summary>\n        string CacheableCursor { get; }\n\n        /// <summary>\n        /// A list of messages.\n        /// </summary>\n        IEnumerable<IApiChannelMessage> Messages { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiChannelMessageList : IApiChannelMessageList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cacheable_cursor\"), Preserve]\n        public string CacheableCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiChannelMessage> Messages => _messages ?? new List<ApiChannelMessage>(0);\n        [DataMember(Name=\"messages\"), Preserve]\n        public List<ApiChannelMessage> _messages { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CacheableCursor: \", CacheableCursor, \", \");\n            output = string.Concat(output, \"Messages: [\", string.Join(\", \", Messages), \"], \");\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A friend of a user.\n    /// </summary>\n    public interface IApiFriend\n    {\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The friend status.  one of \"Friend.State\".\n        /// </summary>\n        int State { get; }\n\n        /// <summary>\n        /// Time of the latest relationship update.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user object.\n        /// </summary>\n        INakamaapiUser User { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFriend : IApiFriend\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public int State { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public NakamaapiUser _user { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"State: \", State, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A collection of zero or more friends of the user.\n    /// </summary>\n    public interface IApiFriendList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The Friend objects.\n        /// </summary>\n        IEnumerable<IApiFriend> Friends { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFriendList : IApiFriendList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFriend> Friends => _friends ?? new List<ApiFriend>(0);\n        [DataMember(Name=\"friends\"), Preserve]\n        public List<ApiFriend> _friends { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Friends: [\", string.Join(\", \", Friends), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A group in the server.\n    /// </summary>\n    public interface IApiGroup\n    {\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The id of the user who created the group.\n        /// </summary>\n        string CreatorId { get; }\n\n        /// <summary>\n        /// A description for the group.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// The current count of all members in the group.\n        /// </summary>\n        int EdgeCount { get; }\n\n        /// <summary>\n        /// The id of a group.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The maximum number of members allowed.\n        /// </summary>\n        int MaxCount { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The unique name of the group.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Anyone can join open groups, otherwise only admins can accept members.\n        /// </summary>\n        bool Open { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGroup : IApiGroup\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"creator_id\"), Preserve]\n        public string CreatorId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"edge_count\"), Preserve]\n        public int EdgeCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"open\"), Preserve]\n        public bool Open { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"CreatorId: \", CreatorId, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"EdgeCount: \", EdgeCount, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"MaxCount: \", MaxCount, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Open: \", Open, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of users belonging to a group, along with their role.\n    /// </summary>\n    public interface IApiGroupUserList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// User-role pairs for a group.\n        /// </summary>\n        IEnumerable<IGroupUserListGroupUser> GroupUsers { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGroupUserList : IApiGroupUserList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IGroupUserListGroupUser> GroupUsers => _groupUsers ?? new List<GroupUserListGroupUser>(0);\n        [DataMember(Name=\"group_users\"), Preserve]\n        public List<GroupUserListGroupUser> _groupUsers { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"GroupUsers: [\", string.Join(\", \", GroupUsers), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Represents a complete leaderboard record with all scores and associated metadata.\n    /// </summary>\n    public interface IApiLeaderboardRecord\n    {\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires.\n        /// </summary>\n        string ExpiryTime { get; }\n\n        /// <summary>\n        /// The ID of the leaderboard this score belongs to.\n        /// </summary>\n        string LeaderboardId { get; }\n\n        /// <summary>\n        /// The maximum number of score updates allowed by the owner.\n        /// </summary>\n        int MaxNumScore { get; }\n\n        /// <summary>\n        /// Metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The number of submissions to this score record.\n        /// </summary>\n        int NumScore { get; }\n\n        /// <summary>\n        /// The ID of the score owner, usually a user or group.\n        /// </summary>\n        string OwnerId { get; }\n\n        /// <summary>\n        /// The rank of this record.\n        /// </summary>\n        string Rank { get; }\n\n        /// <summary>\n        /// The score value.\n        /// </summary>\n        string Score { get; }\n\n        /// <summary>\n        /// An optional subscore value.\n        /// </summary>\n        string Subscore { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The username of the score owner, if the owner is a user.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLeaderboardRecord : IApiLeaderboardRecord\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"expiry_time\"), Preserve]\n        public string ExpiryTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"leaderboard_id\"), Preserve]\n        public string LeaderboardId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_num_score\"), Preserve]\n        public int MaxNumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"num_score\"), Preserve]\n        public int NumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"owner_id\"), Preserve]\n        public string OwnerId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"rank\"), Preserve]\n        public string Rank { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"score\"), Preserve]\n        public string Score { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subscore\"), Preserve]\n        public string Subscore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"ExpiryTime: \", ExpiryTime, \", \");\n            output = string.Concat(output, \"LeaderboardId: \", LeaderboardId, \", \");\n            output = string.Concat(output, \"MaxNumScore: \", MaxNumScore, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"NumScore: \", NumScore, \", \");\n            output = string.Concat(output, \"OwnerId: \", OwnerId, \", \");\n            output = string.Concat(output, \"Rank: \", Rank, \", \");\n            output = string.Concat(output, \"Score: \", Score, \", \");\n            output = string.Concat(output, \"Subscore: \", Subscore, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.\n    /// </summary>\n    public interface IApiLeaderboardRecordList\n    {\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// A batched set of leaderboard records belonging to specified owners.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> OwnerRecords { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// The total number of ranks available.\n        /// </summary>\n        string RankCount { get; }\n\n        /// <summary>\n        /// A list of leaderboard records.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> Records { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLeaderboardRecordList : IApiLeaderboardRecordList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> OwnerRecords => _ownerRecords ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"owner_records\"), Preserve]\n        public List<ApiLeaderboardRecord> _ownerRecords { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"rank_count\"), Preserve]\n        public string RankCount { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> Records => _records ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"records\"), Preserve]\n        public List<ApiLeaderboardRecord> _records { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"OwnerRecords: [\", string.Join(\", \", OwnerRecords), \"], \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"RankCount: \", RankCount, \", \");\n            output = string.Concat(output, \"Records: [\", string.Join(\", \", Records), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of validated purchases stored by Nakama.\n    /// </summary>\n    public interface IApiPurchaseList\n    {\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// Stored validated purchases.\n        /// </summary>\n        IEnumerable<IApiValidatedPurchase> ValidatedPurchases { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiPurchaseList : IApiPurchaseList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiValidatedPurchase> ValidatedPurchases => _validatedPurchases ?? new List<ApiValidatedPurchase>(0);\n        [DataMember(Name=\"validated_purchases\"), Preserve]\n        public List<ApiValidatedPurchase> _validatedPurchases { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"ValidatedPurchases: [\", string.Join(\", \", ValidatedPurchases), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An object within the storage engine.\n    /// </summary>\n    public interface IApiStorageObject\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The read access permissions for the object.\n        /// </summary>\n        int PermissionRead { get; }\n\n        /// <summary>\n        /// The write access permissions for the object.\n        /// </summary>\n        int PermissionWrite { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user owner of the object.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The value of the object.\n        /// </summary>\n        string Value { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObject : IApiStorageObject\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_read\"), Preserve]\n        public int PermissionRead { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_write\"), Preserve]\n        public int PermissionWrite { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"PermissionRead: \", PermissionRead, \", \");\n            output = string.Concat(output, \"PermissionWrite: \", PermissionWrite, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A storage acknowledgement.\n    /// </summary>\n    public interface IApiStorageObjectAck\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The owner of the object.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiStorageObjectAck : IApiStorageObjectAck\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Environment where a purchase/subscription took place,\n    /// </summary>\n    public enum ApiStoreEnvironment\n    {\n        /// <summary>\n        /// - UNKNOWN: Unknown environment.\n        /// </summary>\n        UNKNOWN = 0,\n        /// <summary>\n        ///  - SANDBOX: Sandbox/test environment.\n        /// </summary>\n        SANDBOX = 1,\n        /// <summary>\n        ///  - PRODUCTION: Production environment.\n        /// </summary>\n        PRODUCTION = 2,\n    }\n\n    /// <summary>\n    /// Validation Provider,\n    /// </summary>\n    public enum ApiStoreProvider\n    {\n        /// <summary>\n        /// - APPLE_APP_STORE: Apple App Store\n        /// </summary>\n        APPLE_APP_STORE = 0,\n        /// <summary>\n        ///  - GOOGLE_PLAY_STORE: Google Play Store\n        /// </summary>\n        GOOGLE_PLAY_STORE = 1,\n        /// <summary>\n        ///  - HUAWEI_APP_GALLERY: Huawei App Gallery\n        /// </summary>\n        HUAWEI_APP_GALLERY = 2,\n        /// <summary>\n        ///  - FACEBOOK_INSTANT_STORE: Facebook Instant Store\n        /// </summary>\n        FACEBOOK_INSTANT_STORE = 3,\n    }\n\n    /// <summary>\n    /// A list of validated subscriptions stored by Nakama.\n    /// </summary>\n    public interface IApiSubscriptionList\n    {\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n\n        /// <summary>\n        /// Stored validated subscriptions.\n        /// </summary>\n        IEnumerable<IApiValidatedSubscription> ValidatedSubscriptions { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSubscriptionList : IApiSubscriptionList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiValidatedSubscription> ValidatedSubscriptions => _validatedSubscriptions ?? new List<ApiValidatedSubscription>(0);\n        [DataMember(Name=\"validated_subscriptions\"), Preserve]\n        public List<ApiValidatedSubscription> _validatedSubscriptions { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            output = string.Concat(output, \"ValidatedSubscriptions: [\", string.Join(\", \", ValidatedSubscriptions), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of groups belonging to a user, along with the user's role in each group.\n    /// </summary>\n    public interface IApiUserGroupList\n    {\n\n        /// <summary>\n        /// Cursor for the next page of results, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// Group-role pairs for a user.\n        /// </summary>\n        IEnumerable<IUserGroupListUserGroup> UserGroups { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUserGroupList : IApiUserGroupList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IUserGroupListUserGroup> UserGroups => _userGroups ?? new List<UserGroupListUserGroup>(0);\n        [DataMember(Name=\"user_groups\"), Preserve]\n        public List<UserGroupListUserGroup> _userGroups { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"UserGroups: [\", string.Join(\", \", UserGroups), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Validated Purchase stored by Nakama.\n    /// </summary>\n    public interface IApiValidatedPurchase\n    {\n\n        /// <summary>\n        /// Timestamp when the receipt validation was stored in DB.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// Whether the purchase was done in production or sandbox environment.\n        /// </summary>\n        ApiStoreEnvironment Environment { get; }\n\n        /// <summary>\n        /// Purchase Product ID.\n        /// </summary>\n        string ProductId { get; }\n\n        /// <summary>\n        /// Raw provider validation response.\n        /// </summary>\n        string ProviderResponse { get; }\n\n        /// <summary>\n        /// Timestamp when the purchase was done.\n        /// </summary>\n        string PurchaseTime { get; }\n\n        /// <summary>\n        /// Timestamp when the purchase was refunded. Set to UNIX\n        /// </summary>\n        string RefundTime { get; }\n\n        /// <summary>\n        /// Whether the purchase had already been validated by Nakama before.\n        /// </summary>\n        bool SeenBefore { get; }\n\n        /// <summary>\n        /// Store identifier\n        /// </summary>\n        ApiStoreProvider Store { get; }\n\n        /// <summary>\n        /// Purchase Transaction ID.\n        /// </summary>\n        string TransactionId { get; }\n\n        /// <summary>\n        /// Timestamp when the receipt validation was updated in DB.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// Purchase User ID.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatedPurchase : IApiValidatedPurchase\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreEnvironment Environment => _environment;\n        [DataMember(Name=\"environment\"), Preserve]\n        public ApiStoreEnvironment _environment { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"product_id\"), Preserve]\n        public string ProductId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_response\"), Preserve]\n        public string ProviderResponse { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase_time\"), Preserve]\n        public string PurchaseTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refund_time\"), Preserve]\n        public string RefundTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"seen_before\"), Preserve]\n        public bool SeenBefore { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreProvider Store => _store;\n        [DataMember(Name=\"store\"), Preserve]\n        public ApiStoreProvider _store { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"transaction_id\"), Preserve]\n        public string TransactionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Environment: \", Environment, \", \");\n            output = string.Concat(output, \"ProductId: \", ProductId, \", \");\n            output = string.Concat(output, \"ProviderResponse: \", ProviderResponse, \", \");\n            output = string.Concat(output, \"PurchaseTime: \", PurchaseTime, \", \");\n            output = string.Concat(output, \"RefundTime: \", RefundTime, \", \");\n            output = string.Concat(output, \"SeenBefore: \", SeenBefore, \", \");\n            output = string.Concat(output, \"Store: \", Store, \", \");\n            output = string.Concat(output, \"TransactionId: \", TransactionId, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IApiValidatedSubscription\n    {\n\n        /// <summary>\n        /// Whether the subscription is currently active or not.\n        /// </summary>\n        bool Active { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the receipt validation was stored in DB.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// Whether the purchase was done in production or sandbox environment.\n        /// </summary>\n        ApiStoreEnvironment Environment { get; }\n\n        /// <summary>\n        /// Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further.\n        /// </summary>\n        string ExpiryTime { get; }\n\n        /// <summary>\n        /// Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals).\n        /// </summary>\n        string OriginalTransactionId { get; }\n\n        /// <summary>\n        /// Purchase Product ID.\n        /// </summary>\n        string ProductId { get; }\n\n        /// <summary>\n        /// Raw provider notification body.\n        /// </summary>\n        string ProviderNotification { get; }\n\n        /// <summary>\n        /// Raw provider validation response body.\n        /// </summary>\n        string ProviderResponse { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the purchase was done.\n        /// </summary>\n        string PurchaseTime { get; }\n\n        /// <summary>\n        /// Subscription refund time. If this time is set, the subscription was refunded.\n        /// </summary>\n        string RefundTime { get; }\n\n        /// <summary>\n        /// Store identifier\n        /// </summary>\n        ApiStoreProvider Store { get; }\n\n        /// <summary>\n        /// UNIX Timestamp when the receipt validation was updated in DB.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// Subscription User ID.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiValidatedSubscription : IApiValidatedSubscription\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"active\"), Preserve]\n        public bool Active { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreEnvironment Environment => _environment;\n        [DataMember(Name=\"environment\"), Preserve]\n        public ApiStoreEnvironment _environment { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"expiry_time\"), Preserve]\n        public string ExpiryTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"original_transaction_id\"), Preserve]\n        public string OriginalTransactionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"product_id\"), Preserve]\n        public string ProductId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_notification\"), Preserve]\n        public string ProviderNotification { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"provider_response\"), Preserve]\n        public string ProviderResponse { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"purchase_time\"), Preserve]\n        public string PurchaseTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refund_time\"), Preserve]\n        public string RefundTime { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiStoreProvider Store => _store;\n        [DataMember(Name=\"store\"), Preserve]\n        public ApiStoreProvider _store { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Active: \", Active, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Environment: \", Environment, \", \");\n            output = string.Concat(output, \"ExpiryTime: \", ExpiryTime, \", \");\n            output = string.Concat(output, \"OriginalTransactionId: \", OriginalTransactionId, \", \");\n            output = string.Concat(output, \"ProductId: \", ProductId, \", \");\n            output = string.Concat(output, \"ProviderNotification: \", ProviderNotification, \", \");\n            output = string.Concat(output, \"ProviderResponse: \", ProviderResponse, \", \");\n            output = string.Concat(output, \"PurchaseTime: \", PurchaseTime, \", \");\n            output = string.Concat(output, \"RefundTime: \", RefundTime, \", \");\n            output = string.Concat(output, \"Store: \", Store, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An export of all information stored for a user account.\n    /// </summary>\n    public interface IConsoleAccountExport\n    {\n\n        /// <summary>\n        /// The user's account details.\n        /// </summary>\n        INakamaapiAccount Account { get; }\n\n        /// <summary>\n        /// The user's friends.\n        /// </summary>\n        IEnumerable<IApiFriend> Friends { get; }\n\n        /// <summary>\n        /// The user's groups.\n        /// </summary>\n        IEnumerable<IApiGroup> Groups { get; }\n\n        /// <summary>\n        /// The user's leaderboard records.\n        /// </summary>\n        IEnumerable<IApiLeaderboardRecord> LeaderboardRecords { get; }\n\n        /// <summary>\n        /// The user's chat messages.\n        /// </summary>\n        IEnumerable<IApiChannelMessage> Messages { get; }\n\n        /// <summary>\n        /// The user's notifications.\n        /// </summary>\n        IEnumerable<INakamaapiNotification> Notifications { get; }\n\n        /// <summary>\n        /// The user's storage.\n        /// </summary>\n        IEnumerable<IApiStorageObject> Objects { get; }\n\n        /// <summary>\n        /// The user's wallet ledger items.\n        /// </summary>\n        IEnumerable<IConsoleWalletLedger> WalletLedgers { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAccountExport : IConsoleAccountExport\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiAccount Account => _account;\n        [DataMember(Name=\"account\"), Preserve]\n        public NakamaapiAccount _account { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFriend> Friends => _friends ?? new List<ApiFriend>(0);\n        [DataMember(Name=\"friends\"), Preserve]\n        public List<ApiFriend> _friends { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiGroup> Groups => _groups ?? new List<ApiGroup>(0);\n        [DataMember(Name=\"groups\"), Preserve]\n        public List<ApiGroup> _groups { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLeaderboardRecord> LeaderboardRecords => _leaderboardRecords ?? new List<ApiLeaderboardRecord>(0);\n        [DataMember(Name=\"leaderboard_records\"), Preserve]\n        public List<ApiLeaderboardRecord> _leaderboardRecords { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiChannelMessage> Messages => _messages ?? new List<ApiChannelMessage>(0);\n        [DataMember(Name=\"messages\"), Preserve]\n        public List<ApiChannelMessage> _messages { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<INakamaapiNotification> Notifications => _notifications ?? new List<NakamaapiNotification>(0);\n        [DataMember(Name=\"notifications\"), Preserve]\n        public List<NakamaapiNotification> _notifications { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiStorageObject> Objects => _objects ?? new List<ApiStorageObject>(0);\n        [DataMember(Name=\"objects\"), Preserve]\n        public List<ApiStorageObject> _objects { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleWalletLedger> WalletLedgers => _walletLedgers ?? new List<ConsoleWalletLedger>(0);\n        [DataMember(Name=\"wallet_ledgers\"), Preserve]\n        public List<ConsoleWalletLedger> _walletLedgers { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Account: \", Account, \", \");\n            output = string.Concat(output, \"Friends: [\", string.Join(\", \", Friends), \"], \");\n            output = string.Concat(output, \"Groups: [\", string.Join(\", \", Groups), \"], \");\n            output = string.Concat(output, \"LeaderboardRecords: [\", string.Join(\", \", LeaderboardRecords), \"], \");\n            output = string.Concat(output, \"Messages: [\", string.Join(\", \", Messages), \"], \");\n            output = string.Concat(output, \"Notifications: [\", string.Join(\", \", Notifications), \"], \");\n            output = string.Concat(output, \"Objects: [\", string.Join(\", \", Objects), \"], \");\n            output = string.Concat(output, \"WalletLedgers: [\", string.Join(\", \", WalletLedgers), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of users.\n    /// </summary>\n    public interface IConsoleAccountList\n    {\n\n        /// <summary>\n        /// Next cursor.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// Approximate total number of users.\n        /// </summary>\n        int TotalCount { get; }\n\n        /// <summary>\n        /// A list of users.\n        /// </summary>\n        IEnumerable<INakamaapiUser> Users { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAccountList : IConsoleAccountList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"total_count\"), Preserve]\n        public int TotalCount { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<INakamaapiUser> Users => _users ?? new List<NakamaapiUser>(0);\n        [DataMember(Name=\"users\"), Preserve]\n        public List<NakamaapiUser> _users { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"TotalCount: \", TotalCount, \", \");\n            output = string.Concat(output, \"Users: [\", string.Join(\", \", Users), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Add a new console user\n    /// </summary>\n    public interface IConsoleAddUserRequest\n    {\n\n        /// <summary>\n        /// Email address of the user.\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// Require MFA\n        /// </summary>\n        bool MfaRequired { get; }\n\n        /// <summary>\n        /// Subscribe to newsletters\n        /// </summary>\n        bool NewsletterSubscription { get; }\n\n        /// <summary>\n        /// The password of the user.\n        /// </summary>\n        string Password { get; }\n\n        /// <summary>\n        /// Role of this user;\n        /// </summary>\n        ConsoleUserRole Role { get; }\n\n        /// <summary>\n        /// The username of the user.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAddUserRequest : IConsoleAddUserRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa_required\"), Preserve]\n        public bool MfaRequired { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"newsletter_subscription\"), Preserve]\n        public bool NewsletterSubscription { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"password\"), Preserve]\n        public string Password { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ConsoleUserRole Role => _role;\n        [DataMember(Name=\"role\"), Preserve]\n        public ConsoleUserRole _role { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"MfaRequired: \", MfaRequired, \", \");\n            output = string.Concat(output, \"NewsletterSubscription: \", NewsletterSubscription, \", \");\n            output = string.Concat(output, \"Password: \", Password, \", \");\n            output = string.Concat(output, \"Role: \", Role, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// API Explorer List of Endpoints response message\n    /// </summary>\n    public interface IConsoleApiEndpointDescriptor\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string BodyTemplate { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Method { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleApiEndpointDescriptor : IConsoleApiEndpointDescriptor\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"body_template\"), Preserve]\n        public string BodyTemplate { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"method\"), Preserve]\n        public string Method { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"BodyTemplate: \", BodyTemplate, \", \");\n            output = string.Concat(output, \"Method: \", Method, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// API Explorer List of Endpoints\n    /// </summary>\n    public interface IConsoleApiEndpointList\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IConsoleApiEndpointDescriptor> Endpoints { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IConsoleApiEndpointDescriptor> RpcEndpoints { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleApiEndpointList : IConsoleApiEndpointList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleApiEndpointDescriptor> Endpoints => _endpoints ?? new List<ConsoleApiEndpointDescriptor>(0);\n        [DataMember(Name=\"endpoints\"), Preserve]\n        public List<ConsoleApiEndpointDescriptor> _endpoints { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleApiEndpointDescriptor> RpcEndpoints => _rpcEndpoints ?? new List<ConsoleApiEndpointDescriptor>(0);\n        [DataMember(Name=\"rpc_endpoints\"), Preserve]\n        public List<ConsoleApiEndpointDescriptor> _rpcEndpoints { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Endpoints: [\", string.Join(\", \", Endpoints), \"], \");\n            output = string.Concat(output, \"RpcEndpoints: [\", string.Join(\", \", RpcEndpoints), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Log out a session and invalidate a session token.\n    /// </summary>\n    public interface IConsoleAuthenticateLogoutRequest\n    {\n\n        /// <summary>\n        /// Session token to log out.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAuthenticateLogoutRequest : IConsoleAuthenticateLogoutRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Request to change MFA.\n    /// </summary>\n    public interface IConsoleAuthenticateMFASetupRequest\n    {\n\n        /// <summary>\n        /// MFA code.\n        /// </summary>\n        string Code { get; }\n\n        /// <summary>\n        /// MFA token.\n        /// </summary>\n        string Mfa { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAuthenticateMFASetupRequest : IConsoleAuthenticateMFASetupRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public string Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa\"), Preserve]\n        public string Mfa { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Mfa: \", Mfa, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Response to change MFA.\n    /// </summary>\n    public interface IConsoleAuthenticateMFASetupResponse\n    {\n\n        /// <summary>\n        /// An one-time code to configure the MFA mechanism\n        /// </summary>\n        List<string> RecoveryCodes { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAuthenticateMFASetupResponse : IConsoleAuthenticateMFASetupResponse\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"recovery_codes\"), Preserve]\n        public List<string> RecoveryCodes { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"RecoveryCodes: [\", string.Join(\", \", RecoveryCodes), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Authenticate a console user with username and password.\n    /// </summary>\n    public interface IConsoleAuthenticateRequest\n    {\n\n        /// <summary>\n        /// Multi-factor authentication code.\n        /// </summary>\n        string Mfa { get; }\n\n        /// <summary>\n        /// The password of the user.\n        /// </summary>\n        string Password { get; }\n\n        /// <summary>\n        /// The username of the user.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleAuthenticateRequest : IConsoleAuthenticateRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa\"), Preserve]\n        public string Mfa { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"password\"), Preserve]\n        public string Password { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Mfa: \", Mfa, \", \");\n            output = string.Concat(output, \"Password: \", Password, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// API Explorer response definition for CallApiEndpoint\n    /// </summary>\n    public interface IConsoleCallApiEndpointResponse\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Body { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string ErrorMessage { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleCallApiEndpointResponse : IConsoleCallApiEndpointResponse\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"body\"), Preserve]\n        public string Body { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"error_message\"), Preserve]\n        public string ErrorMessage { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Body: \", Body, \", \");\n            output = string.Concat(output, \"ErrorMessage: \", ErrorMessage, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The current server configuration and any associated warnings.\n    /// </summary>\n    public interface IConsoleConfig\n    {\n\n        /// <summary>\n        /// JSON-encoded active server configuration.\n        /// </summary>\n        string Config { get; }\n\n        /// <summary>\n        /// Server version\n        /// </summary>\n        string ServerVersion { get; }\n\n        /// <summary>\n        /// Any warnings about the current config.\n        /// </summary>\n        IEnumerable<IConfigWarning> Warnings { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleConfig : IConsoleConfig\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"config\"), Preserve]\n        public string Config { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"server_version\"), Preserve]\n        public string ServerVersion { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConfigWarning> Warnings => _warnings ?? new List<ConfigWarning>(0);\n        [DataMember(Name=\"warnings\"), Preserve]\n        public List<ConfigWarning> _warnings { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Config: \", Config, \", \");\n            output = string.Concat(output, \"ServerVersion: \", ServerVersion, \", \");\n            output = string.Concat(output, \"Warnings: [\", string.Join(\", \", Warnings), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A console user session.\n    /// </summary>\n    public interface IConsoleConsoleSession\n    {\n\n        /// <summary>\n        /// MFA code required to setup the MFA mechanism.\n        /// </summary>\n        string MfaCode { get; }\n\n        /// <summary>\n        /// A session token (JWT) for the console user.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleConsoleSession : IConsoleConsoleSession\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa_code\"), Preserve]\n        public string MfaCode { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"MfaCode: \", MfaCode, \", \");\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IConsoleDeleteChannelMessagesResponse\n    {\n\n        /// <summary>\n        /// Total number of messages deleted.\n        /// </summary>\n        string Total { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleDeleteChannelMessagesResponse : IConsoleDeleteChannelMessagesResponse\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"total\"), Preserve]\n        public string Total { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Total: \", Total, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An export of all information stored for a group.\n    /// </summary>\n    public interface IConsoleGroupExport\n    {\n\n        /// <summary>\n        /// The group details.\n        /// </summary>\n        IApiGroup Group { get; }\n\n        /// <summary>\n        /// The group's list of members.\n        /// </summary>\n        IEnumerable<IGroupUserListGroupUser> Members { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleGroupExport : IConsoleGroupExport\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiGroup Group => _group;\n        [DataMember(Name=\"group\"), Preserve]\n        public ApiGroup _group { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IGroupUserListGroupUser> Members => _members ?? new List<GroupUserListGroupUser>(0);\n        [DataMember(Name=\"members\"), Preserve]\n        public List<GroupUserListGroupUser> _members { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Group: \", Group, \", \");\n            output = string.Concat(output, \"Members: [\", string.Join(\", \", Members), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum ConsoleListChannelMessagesRequestType\n    {\n        /// <summary>\n        /// \n        /// </summary>\n        UNKNOWN = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        ROOM = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        GROUP = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        DIRECT = 3,\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IConsoleMatchListMatch\n    {\n\n        /// <summary>\n        /// The API match\n        /// </summary>\n        INakamaapiMatch ApiMatch { get; }\n\n        /// <summary>\n        /// The node name\n        /// </summary>\n        string Node { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleMatchListMatch : IConsoleMatchListMatch\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiMatch ApiMatch => _apiMatch;\n        [DataMember(Name=\"api_match\"), Preserve]\n        public NakamaapiMatch _apiMatch { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"node\"), Preserve]\n        public string Node { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ApiMatch: \", ApiMatch, \", \");\n            output = string.Concat(output, \"Node: \", Node, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Match state\n    /// </summary>\n    public interface IConsoleMatchState\n    {\n\n        /// <summary>\n        /// Presence list.\n        /// </summary>\n        IEnumerable<IRealtimeUserPresence> Presences { get; }\n\n        /// <summary>\n        /// State.\n        /// </summary>\n        string State { get; }\n\n        /// <summary>\n        /// Current tick number.\n        /// </summary>\n        string Tick { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleMatchState : IConsoleMatchState\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IRealtimeUserPresence> Presences => _presences ?? new List<RealtimeUserPresence>(0);\n        [DataMember(Name=\"presences\"), Preserve]\n        public List<RealtimeUserPresence> _presences { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"state\"), Preserve]\n        public string State { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"tick\"), Preserve]\n        public string Tick { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Presences: [\", string.Join(\", \", Presences), \"], \");\n            output = string.Concat(output, \"State: \", State, \", \");\n            output = string.Concat(output, \"Tick: \", Tick, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Runtime information\n    /// </summary>\n    public interface IConsoleRuntimeInfo\n    {\n\n        /// <summary>\n        /// Go loaded modules\n        /// </summary>\n        IEnumerable<IRuntimeInfoModuleInfo> GoModules { get; }\n\n        /// <summary>\n        /// Go registered RPC functions\n        /// </summary>\n        List<string> GoRpcFunctions { get; }\n\n        /// <summary>\n        /// JavaScript loaded modules\n        /// </summary>\n        IEnumerable<IRuntimeInfoModuleInfo> JsModules { get; }\n\n        /// <summary>\n        /// JavaScript registered RPC functions\n        /// </summary>\n        List<string> JsRpcFunctions { get; }\n\n        /// <summary>\n        /// Lua loaded modules\n        /// </summary>\n        IEnumerable<IRuntimeInfoModuleInfo> LuaModules { get; }\n\n        /// <summary>\n        /// Lua registered RPC functions\n        /// </summary>\n        List<string> LuaRpcFunctions { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleRuntimeInfo : IConsoleRuntimeInfo\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IRuntimeInfoModuleInfo> GoModules => _goModules ?? new List<RuntimeInfoModuleInfo>(0);\n        [DataMember(Name=\"go_modules\"), Preserve]\n        public List<RuntimeInfoModuleInfo> _goModules { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"go_rpc_functions\"), Preserve]\n        public List<string> GoRpcFunctions { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IRuntimeInfoModuleInfo> JsModules => _jsModules ?? new List<RuntimeInfoModuleInfo>(0);\n        [DataMember(Name=\"js_modules\"), Preserve]\n        public List<RuntimeInfoModuleInfo> _jsModules { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"js_rpc_functions\"), Preserve]\n        public List<string> JsRpcFunctions { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IRuntimeInfoModuleInfo> LuaModules => _luaModules ?? new List<RuntimeInfoModuleInfo>(0);\n        [DataMember(Name=\"lua_modules\"), Preserve]\n        public List<RuntimeInfoModuleInfo> _luaModules { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lua_rpc_functions\"), Preserve]\n        public List<string> LuaRpcFunctions { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"GoModules: [\", string.Join(\", \", GoModules), \"], \");\n            output = string.Concat(output, \"GoRpcFunctions: [\", string.Join(\", \", GoRpcFunctions), \"], \");\n            output = string.Concat(output, \"JsModules: [\", string.Join(\", \", JsModules), \"], \");\n            output = string.Concat(output, \"JsRpcFunctions: [\", string.Join(\", \", JsRpcFunctions), \"], \");\n            output = string.Concat(output, \"LuaModules: [\", string.Join(\", \", LuaModules), \"], \");\n            output = string.Concat(output, \"LuaRpcFunctions: [\", string.Join(\", \", LuaRpcFunctions), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single setting.\n    /// </summary>\n    public interface IConsoleSetting\n    {\n\n        /// <summary>\n        /// Name identifier.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Update time.\n        /// </summary>\n        string UpdateTimeSec { get; }\n\n        /// <summary>\n        /// Setting value.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleSetting : IConsoleSetting\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time_sec\"), Preserve]\n        public string UpdateTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"UpdateTimeSec: \", UpdateTimeSec, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of settings.\n    /// </summary>\n    public interface IConsoleSettingList\n    {\n\n        /// <summary>\n        /// A list of settings.\n        /// </summary>\n        IEnumerable<IConsoleSetting> Settings { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleSettingList : IConsoleSettingList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleSetting> Settings => _settings ?? new List<ConsoleSetting>(0);\n        [DataMember(Name=\"settings\"), Preserve]\n        public List<ConsoleSetting> _settings { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Settings: [\", string.Join(\", \", Settings), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum ConsoleStatusHealth\n    {\n        /// <summary>\n        /// \n        /// </summary>\n        STATUS_HEALTH_OK = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        STATUS_HEALTH_ERROR = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        STATUS_HEALTH_CONNECTING = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        STATUS_HEALTH_DISCONNECTING = 3,\n    }\n\n    /// <summary>\n    /// List of nodes and their stats.\n    /// </summary>\n    public interface IConsoleStatusList\n    {\n\n        /// <summary>\n        /// List of nodes and their stats.\n        /// </summary>\n        IEnumerable<IConsoleStatusListStatus> Nodes { get; }\n\n        /// <summary>\n        /// Timestamp\n        /// </summary>\n        string Timestamp { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleStatusList : IConsoleStatusList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleStatusListStatus> Nodes => _nodes ?? new List<ConsoleStatusListStatus>(0);\n        [DataMember(Name=\"nodes\"), Preserve]\n        public List<ConsoleStatusListStatus> _nodes { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timestamp\"), Preserve]\n        public string Timestamp { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Nodes: [\", string.Join(\", \", Nodes), \"], \");\n            output = string.Concat(output, \"Timestamp: \", Timestamp, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The status of a Nakama node.\n    /// </summary>\n    public interface IConsoleStatusListStatus\n    {\n\n        /// <summary>\n        /// Average input bandwidth usage.\n        /// </summary>\n        double AvgInputKbs { get; }\n\n        /// <summary>\n        /// Average response latency in milliseconds.\n        /// </summary>\n        double AvgLatencyMs { get; }\n\n        /// <summary>\n        /// Average output bandwidth usage.\n        /// </summary>\n        double AvgOutputKbs { get; }\n\n        /// <summary>\n        /// Average number of requests per second.\n        /// </summary>\n        double AvgRateSec { get; }\n\n        /// <summary>\n        /// Current number of running goroutines.\n        /// </summary>\n        int GoroutineCount { get; }\n\n        /// <summary>\n        /// Health score.\n        /// </summary>\n        ConsoleStatusHealth Health { get; }\n\n        /// <summary>\n        /// Current number of active authoritative matches.\n        /// </summary>\n        int MatchCount { get; }\n\n        /// <summary>\n        /// Node name.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Currently registered live presences.\n        /// </summary>\n        int PresenceCount { get; }\n\n        /// <summary>\n        /// Currently connected sessions.\n        /// </summary>\n        int SessionCount { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleStatusListStatus : IConsoleStatusListStatus\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avg_input_kbs\"), Preserve]\n        public double AvgInputKbs { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avg_latency_ms\"), Preserve]\n        public double AvgLatencyMs { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avg_output_kbs\"), Preserve]\n        public double AvgOutputKbs { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avg_rate_sec\"), Preserve]\n        public double AvgRateSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"goroutine_count\"), Preserve]\n        public int GoroutineCount { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ConsoleStatusHealth Health => _health;\n        [DataMember(Name=\"health\"), Preserve]\n        public ConsoleStatusHealth _health { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"match_count\"), Preserve]\n        public int MatchCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"presence_count\"), Preserve]\n        public int PresenceCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"session_count\"), Preserve]\n        public int SessionCount { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AvgInputKbs: \", AvgInputKbs, \", \");\n            output = string.Concat(output, \"AvgLatencyMs: \", AvgLatencyMs, \", \");\n            output = string.Concat(output, \"AvgOutputKbs: \", AvgOutputKbs, \", \");\n            output = string.Concat(output, \"AvgRateSec: \", AvgRateSec, \", \");\n            output = string.Concat(output, \"GoroutineCount: \", GoroutineCount, \", \");\n            output = string.Concat(output, \"Health: \", Health, \", \");\n            output = string.Concat(output, \"MatchCount: \", MatchCount, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"PresenceCount: \", PresenceCount, \", \");\n            output = string.Concat(output, \"SessionCount: \", SessionCount, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IConsoleStorageCollectionsList\n    {\n\n        /// <summary>\n        /// Available collection names in the whole of the storage\n        /// </summary>\n        List<string> Collections { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleStorageCollectionsList : IConsoleStorageCollectionsList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collections\"), Preserve]\n        public List<string> Collections { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collections: [\", string.Join(\", \", Collections), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// List of storage objects.\n    /// </summary>\n    public interface IConsoleStorageList\n    {\n\n        /// <summary>\n        /// Next page cursor if any\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// List of storage objects matching list/filter operation.\n        /// </summary>\n        IEnumerable<IConsoleStorageListObject> Objects { get; }\n\n        /// <summary>\n        /// Approximate total number of storage objects.\n        /// </summary>\n        int TotalCount { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleStorageList : IConsoleStorageList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleStorageListObject> Objects => _objects ?? new List<ConsoleStorageListObject>(0);\n        [DataMember(Name=\"objects\"), Preserve]\n        public List<ConsoleStorageListObject> _objects { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"total_count\"), Preserve]\n        public int TotalCount { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"Objects: [\", string.Join(\", \", Objects), \"], \");\n            output = string.Concat(output, \"TotalCount: \", TotalCount, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An object within the storage engine.\n    /// </summary>\n    public interface IConsoleStorageListObject\n    {\n\n        /// <summary>\n        /// The collection which stores the object.\n        /// </summary>\n        string Collection { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The key of the object within the collection.\n        /// </summary>\n        string Key { get; }\n\n        /// <summary>\n        /// The read access permissions for the object.\n        /// </summary>\n        int PermissionRead { get; }\n\n        /// <summary>\n        /// The write access permissions for the object.\n        /// </summary>\n        int PermissionWrite { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user owner of the object.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The version hash of the object.\n        /// </summary>\n        string Version { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleStorageListObject : IConsoleStorageListObject\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"collection\"), Preserve]\n        public string Collection { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"key\"), Preserve]\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_read\"), Preserve]\n        public int PermissionRead { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"permission_write\"), Preserve]\n        public int PermissionWrite { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"version\"), Preserve]\n        public string Version { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Collection: \", Collection, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Key: \", Key, \", \");\n            output = string.Concat(output, \"PermissionRead: \", PermissionRead, \", \");\n            output = string.Concat(output, \"PermissionWrite: \", PermissionWrite, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Version: \", Version, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of console users.\n    /// </summary>\n    public interface IConsoleUserList\n    {\n\n        /// <summary>\n        /// A list of users.\n        /// </summary>\n        IEnumerable<IConsoleUserListUser> Users { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleUserList : IConsoleUserList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleUserListUser> Users => _users ?? new List<ConsoleUserListUser>(0);\n        [DataMember(Name=\"users\"), Preserve]\n        public List<ConsoleUserListUser> _users { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Users: [\", string.Join(\", \", Users), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A console user\n    /// </summary>\n    public interface IConsoleUserListUser\n    {\n\n        /// <summary>\n        /// Email of the user\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// Whether the user has MFA enabled.\n        /// </summary>\n        bool MfaEnabled { get; }\n\n        /// <summary>\n        /// Whether the user is required to setup MFA.\n        /// </summary>\n        bool MfaRequired { get; }\n\n        /// <summary>\n        /// Role of the user;\n        /// </summary>\n        ConsoleUserRole Role { get; }\n\n        /// <summary>\n        /// Username of the user\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleUserListUser : IConsoleUserListUser\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa_enabled\"), Preserve]\n        public bool MfaEnabled { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"mfa_required\"), Preserve]\n        public bool MfaRequired { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ConsoleUserRole Role => _role;\n        [DataMember(Name=\"role\"), Preserve]\n        public ConsoleUserRole _role { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"MfaEnabled: \", MfaEnabled, \", \");\n            output = string.Concat(output, \"MfaRequired: \", MfaRequired, \", \");\n            output = string.Concat(output, \"Role: \", Role, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// - USER_ROLE_ADMIN: All access\n    ///  - USER_ROLE_DEVELOPER: Best for developers, also enables APIs and API explorer\n    ///  - USER_ROLE_MAINTAINER: Best for users who regularly update player information.\n    ///  - USER_ROLE_READONLY: Read-only role for those only need to view data\n    /// </summary>\n    public enum ConsoleUserRole\n    {\n        /// <summary>\n        /// \n        /// </summary>\n        USER_ROLE_UNKNOWN = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        USER_ROLE_ADMIN = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        USER_ROLE_DEVELOPER = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        USER_ROLE_MAINTAINER = 3,\n        /// <summary>\n        /// \n        /// </summary>\n        USER_ROLE_READONLY = 4,\n    }\n\n    /// <summary>\n    /// An individual update to a user's wallet.\n    /// </summary>\n    public interface IConsoleWalletLedger\n    {\n\n        /// <summary>\n        /// The changeset.\n        /// </summary>\n        string Changeset { get; }\n\n        /// <summary>\n        /// The UNIX time when the wallet ledger item was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The identifier of this wallet change.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Any associated metadata.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The UNIX time when the wallet ledger item was updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The user ID this wallet ledger item belongs to.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleWalletLedger : IConsoleWalletLedger\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"changeset\"), Preserve]\n        public string Changeset { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Changeset: \", Changeset, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// List of wallet ledger items for a particular user.\n    /// </summary>\n    public interface IConsoleWalletLedgerList\n    {\n\n        /// <summary>\n        /// A list of wallet ledger items.\n        /// </summary>\n        IEnumerable<IConsoleWalletLedger> Items { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the next older page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page newer, if any.\n        /// </summary>\n        string PrevCursor { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ConsoleWalletLedgerList : IConsoleWalletLedgerList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleWalletLedger> Items => _items ?? new List<ConsoleWalletLedger>(0);\n        [DataMember(Name=\"items\"), Preserve]\n        public List<ConsoleWalletLedger> _items { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Items: [\", string.Join(\", \", Items), \"], \");\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IGooglerpcStatus\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IProtobufAny> Details { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Message { get; }\n    }\n\n    /// <inheritdoc />\n    internal class GooglerpcStatus : IGooglerpcStatus\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IProtobufAny> Details => _details ?? new List<ProtobufAny>(0);\n        [DataMember(Name=\"details\"), Preserve]\n        public List<ProtobufAny> _details { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message\"), Preserve]\n        public string Message { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Details: [\", string.Join(\", \", Details), \"], \");\n            output = string.Concat(output, \"Message: \", Message, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user with additional account details. Always the current user.\n    /// </summary>\n    public interface INakamaapiAccount\n    {\n\n        /// <summary>\n        /// The custom id in the user's account.\n        /// </summary>\n        string CustomId { get; }\n\n        /// <summary>\n        /// The devices which belong to the user's account.\n        /// </summary>\n        IEnumerable<IApiAccountDevice> Devices { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned.\n        /// </summary>\n        string DisableTime { get; }\n\n        /// <summary>\n        /// The email address of the user.\n        /// </summary>\n        string Email { get; }\n\n        /// <summary>\n        /// The user object.\n        /// </summary>\n        INakamaapiUser User { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified.\n        /// </summary>\n        string VerifyTime { get; }\n\n        /// <summary>\n        /// The user's wallet data.\n        /// </summary>\n        string Wallet { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaapiAccount : INakamaapiAccount\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"custom_id\"), Preserve]\n        public string CustomId { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiAccountDevice> Devices => _devices ?? new List<ApiAccountDevice>(0);\n        [DataMember(Name=\"devices\"), Preserve]\n        public List<ApiAccountDevice> _devices { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"disable_time\"), Preserve]\n        public string DisableTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"email\"), Preserve]\n        public string Email { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiUser User => _user;\n        [DataMember(Name=\"user\"), Preserve]\n        public NakamaapiUser _user { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"verify_time\"), Preserve]\n        public string VerifyTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"wallet\"), Preserve]\n        public string Wallet { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CustomId: \", CustomId, \", \");\n            output = string.Concat(output, \"Devices: [\", string.Join(\", \", Devices), \"], \");\n            output = string.Concat(output, \"DisableTime: \", DisableTime, \", \");\n            output = string.Concat(output, \"Email: \", Email, \", \");\n            output = string.Concat(output, \"User: \", User, \", \");\n            output = string.Concat(output, \"VerifyTime: \", VerifyTime, \", \");\n            output = string.Concat(output, \"Wallet: \", Wallet, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Represents a realtime match.\n    /// </summary>\n    public interface INakamaapiMatch\n    {\n\n        /// <summary>\n        /// True if it's an server-managed authoritative match, false otherwise.\n        /// </summary>\n        bool Authoritative { get; }\n\n        /// <summary>\n        /// Handler name\n        /// </summary>\n        string HandlerName { get; }\n\n        /// <summary>\n        /// Match label, if any.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// The ID of the match, can be used to join.\n        /// </summary>\n        string MatchId { get; }\n\n        /// <summary>\n        /// Current number of users in the match.\n        /// </summary>\n        int Size { get; }\n\n        /// <summary>\n        /// Tick Rate\n        /// </summary>\n        int TickRate { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaapiMatch : INakamaapiMatch\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"authoritative\"), Preserve]\n        public bool Authoritative { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"handler_name\"), Preserve]\n        public string HandlerName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"label\"), Preserve]\n        public string Label { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"match_id\"), Preserve]\n        public string MatchId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"size\"), Preserve]\n        public int Size { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"tick_rate\"), Preserve]\n        public int TickRate { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Authoritative: \", Authoritative, \", \");\n            output = string.Concat(output, \"HandlerName: \", HandlerName, \", \");\n            output = string.Concat(output, \"Label: \", Label, \", \");\n            output = string.Concat(output, \"MatchId: \", MatchId, \", \");\n            output = string.Concat(output, \"Size: \", Size, \", \");\n            output = string.Concat(output, \"TickRate: \", TickRate, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A notification in the server.\n    /// </summary>\n    public interface INakamaapiNotification\n    {\n\n        /// <summary>\n        /// Category code for this notification.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// Content of the notification in JSON.\n        /// </summary>\n        string Content { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// ID of the Notification.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// True if this notification was persisted to the database.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// ID of the sender, if a user. Otherwise 'null'.\n        /// </summary>\n        string SenderId { get; }\n\n        /// <summary>\n        /// Subject of the notification.\n        /// </summary>\n        string Subject { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaapiNotification : INakamaapiNotification\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistent\"), Preserve]\n        public bool Persistent { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sender_id\"), Preserve]\n        public string SenderId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subject\"), Preserve]\n        public string Subject { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Content: \", Content, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Persistent: \", Persistent, \", \");\n            output = string.Concat(output, \"SenderId: \", SenderId, \", \");\n            output = string.Concat(output, \"Subject: \", Subject, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user in the server.\n    /// </summary>\n    public interface INakamaapiUser\n    {\n\n        /// <summary>\n        /// The Apple Sign In ID in the user's account.\n        /// </summary>\n        string AppleId { get; }\n\n        /// <summary>\n        /// A URL for an avatar image.\n        /// </summary>\n        string AvatarUrl { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The display name of the user.\n        /// </summary>\n        string DisplayName { get; }\n\n        /// <summary>\n        /// Number of related edges to this user.\n        /// </summary>\n        int EdgeCount { get; }\n\n        /// <summary>\n        /// The Facebook id in the user's account.\n        /// </summary>\n        string FacebookId { get; }\n\n        /// <summary>\n        /// The Facebook Instant Game ID in the user's account.\n        /// </summary>\n        string FacebookInstantGameId { get; }\n\n        /// <summary>\n        /// The Apple Game Center in of the user's account.\n        /// </summary>\n        string GamecenterId { get; }\n\n        /// <summary>\n        /// The Google id in the user's account.\n        /// </summary>\n        string GoogleId { get; }\n\n        /// <summary>\n        /// The id of the user's account.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The language expected to be a tag which follows the BCP-47 spec.\n        /// </summary>\n        string LangTag { get; }\n\n        /// <summary>\n        /// The location set by the user.\n        /// </summary>\n        string Location { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// Indicates whether the user is currently online.\n        /// </summary>\n        bool Online { get; }\n\n        /// <summary>\n        /// The Steam id in the user's account.\n        /// </summary>\n        string SteamId { get; }\n\n        /// <summary>\n        /// The timezone set by the user.\n        /// </summary>\n        string Timezone { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The username of the user's account.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaapiUser : INakamaapiUser\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"apple_id\"), Preserve]\n        public string AppleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"avatar_url\"), Preserve]\n        public string AvatarUrl { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"display_name\"), Preserve]\n        public string DisplayName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"edge_count\"), Preserve]\n        public int EdgeCount { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"facebook_id\"), Preserve]\n        public string FacebookId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"facebook_instant_game_id\"), Preserve]\n        public string FacebookInstantGameId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"gamecenter_id\"), Preserve]\n        public string GamecenterId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"google_id\"), Preserve]\n        public string GoogleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"lang_tag\"), Preserve]\n        public string LangTag { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"location\"), Preserve]\n        public string Location { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"online\"), Preserve]\n        public bool Online { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"steam_id\"), Preserve]\n        public string SteamId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timezone\"), Preserve]\n        public string Timezone { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"AppleId: \", AppleId, \", \");\n            output = string.Concat(output, \"AvatarUrl: \", AvatarUrl, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"DisplayName: \", DisplayName, \", \");\n            output = string.Concat(output, \"EdgeCount: \", EdgeCount, \", \");\n            output = string.Concat(output, \"FacebookId: \", FacebookId, \", \");\n            output = string.Concat(output, \"FacebookInstantGameId: \", FacebookInstantGameId, \", \");\n            output = string.Concat(output, \"GamecenterId: \", GamecenterId, \", \");\n            output = string.Concat(output, \"GoogleId: \", GoogleId, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"LangTag: \", LangTag, \", \");\n            output = string.Concat(output, \"Location: \", Location, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"Online: \", Online, \", \");\n            output = string.Concat(output, \"SteamId: \", SteamId, \", \");\n            output = string.Concat(output, \"Timezone: \", Timezone, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Account information.\n    /// </summary>\n    public interface INakamaconsoleAccount\n    {\n\n        /// <summary>\n        /// The user's account details.\n        /// </summary>\n        INakamaapiAccount Account { get; }\n\n        /// <summary>\n        /// The UNIX time when the account was disabled.\n        /// </summary>\n        string DisableTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleAccount : INakamaconsoleAccount\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public INakamaapiAccount Account => _account;\n        [DataMember(Name=\"account\"), Preserve]\n        public NakamaapiAccount _account { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"disable_time\"), Preserve]\n        public string DisableTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Account: \", Account, \", \");\n            output = string.Concat(output, \"DisableTime: \", DisableTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of groups.\n    /// </summary>\n    public interface INakamaconsoleGroupList\n    {\n\n        /// <summary>\n        /// A list of groups.\n        /// </summary>\n        IEnumerable<IApiGroup> Groups { get; }\n\n        /// <summary>\n        /// Next cursor.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// Approximate total number of groups.\n        /// </summary>\n        int TotalCount { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleGroupList : INakamaconsoleGroupList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiGroup> Groups => _groups ?? new List<ApiGroup>(0);\n        [DataMember(Name=\"groups\"), Preserve]\n        public List<ApiGroup> _groups { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"total_count\"), Preserve]\n        public int TotalCount { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Groups: [\", string.Join(\", \", Groups), \"], \");\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"TotalCount: \", TotalCount, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A leaderboard.\n    /// </summary>\n    public interface INakamaconsoleLeaderboard\n    {\n\n        /// <summary>\n        /// Authoritative.\n        /// </summary>\n        bool Authoritative { get; }\n\n        /// <summary>\n        /// The category of the leaderboard. e.g. \"vip\" could be category 1.\n        /// </summary>\n        int Category { get; }\n\n        /// <summary>\n        /// The UNIX time when the leaderboard was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The description of the leaderboard. May be blank.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// Duration of the tournament in seconds.\n        /// </summary>\n        int Duration { get; }\n\n        /// <summary>\n        /// The UNIX time when the leaderboard stops being active until next reset. A computed value.\n        /// </summary>\n        int EndActive { get; }\n\n        /// <summary>\n        /// The UNIX time when the leaderboard will be stopped.\n        /// </summary>\n        string EndTime { get; }\n\n        /// <summary>\n        /// The ID of the leaderboard.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Join required.\n        /// </summary>\n        bool JoinRequired { get; }\n\n        /// <summary>\n        /// The maximum score updates allowed per player for the current leaderboard.\n        /// </summary>\n        int MaxNumScore { get; }\n\n        /// <summary>\n        /// The maximum number of players for the leaderboard.\n        /// </summary>\n        int MaxSize { get; }\n\n        /// <summary>\n        /// Additional information stored as a JSON object.\n        /// </summary>\n        string Metadata { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament is next playable. A computed value.\n        /// </summary>\n        int NextReset { get; }\n\n        /// <summary>\n        /// The operator of the leaderboard\n        /// </summary>\n        int Operator { get; }\n\n        /// <summary>\n        /// The UNIX time when the tournament was last reset. A computed value.\n        /// </summary>\n        int PrevReset { get; }\n\n        /// <summary>\n        /// Reset cron expression.\n        /// </summary>\n        string ResetSchedule { get; }\n\n        /// <summary>\n        /// The current number of players in the leaderboard.\n        /// </summary>\n        int Size { get; }\n\n        /// <summary>\n        /// ASC or DESC sort mode of scores in the leaderboard.\n        /// </summary>\n        int SortOrder { get; }\n\n        /// <summary>\n        /// The UNIX time when the leaderboard start being active. A computed value.\n        /// </summary>\n        int StartActive { get; }\n\n        /// <summary>\n        /// The UNIX time when the leaderboard will start.\n        /// </summary>\n        string StartTime { get; }\n\n        /// <summary>\n        /// The title for the leaderboard.\n        /// </summary>\n        string Title { get; }\n\n        /// <summary>\n        /// Tournament.\n        /// </summary>\n        bool Tournament { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleLeaderboard : INakamaconsoleLeaderboard\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"authoritative\"), Preserve]\n        public bool Authoritative { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"category\"), Preserve]\n        public int Category { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"duration\"), Preserve]\n        public int Duration { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"end_active\"), Preserve]\n        public int EndActive { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"end_time\"), Preserve]\n        public string EndTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"join_required\"), Preserve]\n        public bool JoinRequired { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_num_score\"), Preserve]\n        public int MaxNumScore { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"max_size\"), Preserve]\n        public int MaxSize { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"metadata\"), Preserve]\n        public string Metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_reset\"), Preserve]\n        public int NextReset { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"operator\"), Preserve]\n        public int Operator { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_reset\"), Preserve]\n        public int PrevReset { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"reset_schedule\"), Preserve]\n        public string ResetSchedule { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"size\"), Preserve]\n        public int Size { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sort_order\"), Preserve]\n        public int SortOrder { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"start_active\"), Preserve]\n        public int StartActive { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"start_time\"), Preserve]\n        public string StartTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"title\"), Preserve]\n        public string Title { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"tournament\"), Preserve]\n        public bool Tournament { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Authoritative: \", Authoritative, \", \");\n            output = string.Concat(output, \"Category: \", Category, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"Duration: \", Duration, \", \");\n            output = string.Concat(output, \"EndActive: \", EndActive, \", \");\n            output = string.Concat(output, \"EndTime: \", EndTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"JoinRequired: \", JoinRequired, \", \");\n            output = string.Concat(output, \"MaxNumScore: \", MaxNumScore, \", \");\n            output = string.Concat(output, \"MaxSize: \", MaxSize, \", \");\n            output = string.Concat(output, \"Metadata: \", Metadata, \", \");\n            output = string.Concat(output, \"NextReset: \", NextReset, \", \");\n            output = string.Concat(output, \"Operator: \", Operator, \", \");\n            output = string.Concat(output, \"PrevReset: \", PrevReset, \", \");\n            output = string.Concat(output, \"ResetSchedule: \", ResetSchedule, \", \");\n            output = string.Concat(output, \"Size: \", Size, \", \");\n            output = string.Concat(output, \"SortOrder: \", SortOrder, \", \");\n            output = string.Concat(output, \"StartActive: \", StartActive, \", \");\n            output = string.Concat(output, \"StartTime: \", StartTime, \", \");\n            output = string.Concat(output, \"Title: \", Title, \", \");\n            output = string.Concat(output, \"Tournament: \", Tournament, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of leaderboards.\n    /// </summary>\n    public interface INakamaconsoleLeaderboardList\n    {\n\n        /// <summary>\n        /// A cursor, if any.\n        /// </summary>\n        string Cursor { get; }\n\n        /// <summary>\n        /// The list of leaderboards returned.\n        /// </summary>\n        IEnumerable<INakamaconsoleLeaderboard> Leaderboards { get; }\n\n        /// <summary>\n        /// Total count of leaderboards and tournaments.\n        /// </summary>\n        int Total { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleLeaderboardList : INakamaconsoleLeaderboardList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cursor\"), Preserve]\n        public string Cursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<INakamaconsoleLeaderboard> Leaderboards => _leaderboards ?? new List<NakamaconsoleLeaderboard>(0);\n        [DataMember(Name=\"leaderboards\"), Preserve]\n        public List<NakamaconsoleLeaderboard> _leaderboards { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"total\"), Preserve]\n        public int Total { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Cursor: \", Cursor, \", \");\n            output = string.Concat(output, \"Leaderboards: [\", string.Join(\", \", Leaderboards), \"], \");\n            output = string.Concat(output, \"Total: \", Total, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A list of realtime matches, with their node names.\n    /// </summary>\n    public interface INakamaconsoleMatchList\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IConsoleMatchListMatch> Matches { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleMatchList : INakamaconsoleMatchList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IConsoleMatchListMatch> Matches => _matches ?? new List<ConsoleMatchListMatch>(0);\n        [DataMember(Name=\"matches\"), Preserve]\n        public List<ConsoleMatchListMatch> _matches { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Matches: [\", string.Join(\", \", Matches), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface INakamaconsoleNotification\n    {\n\n        /// <summary>\n        /// Category code for this notification.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// Content of the notification in JSON.\n        /// </summary>\n        string Content { get; }\n\n        /// <summary>\n        /// The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// ID of the Notification.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// True if this notification was persisted to the database.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// ID of the sender, if a user. Otherwise 'null'.\n        /// </summary>\n        string SenderId { get; }\n\n        /// <summary>\n        /// Subject of the notification.\n        /// </summary>\n        string Subject { get; }\n\n        /// <summary>\n        /// User id.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleNotification : INakamaconsoleNotification\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"content\"), Preserve]\n        public string Content { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistent\"), Preserve]\n        public bool Persistent { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"sender_id\"), Preserve]\n        public string SenderId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"subject\"), Preserve]\n        public string Subject { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Content: \", Content, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Persistent: \", Persistent, \", \");\n            output = string.Concat(output, \"SenderId: \", SenderId, \", \");\n            output = string.Concat(output, \"Subject: \", Subject, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface INakamaconsoleNotificationList\n    {\n\n        /// <summary>\n        /// Next page cursor if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// List of notifications.\n        /// </summary>\n        IEnumerable<INakamaconsoleNotification> Notifications { get; }\n\n        /// <summary>\n        /// Previous page cursor if any.\n        /// </summary>\n        string PrevCursor { get; }\n    }\n\n    /// <inheritdoc />\n    internal class NakamaconsoleNotificationList : INakamaconsoleNotificationList\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<INakamaconsoleNotification> Notifications => _notifications ?? new List<NakamaconsoleNotification>(0);\n        [DataMember(Name=\"notifications\"), Preserve]\n        public List<NakamaconsoleNotification> _notifications { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"Notifications: [\", string.Join(\", \", Notifications), \"], \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IProtobufAny\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string @type { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ProtobufAny : IProtobufAny\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"@type\"), Preserve]\n        public string @type { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"@type: \", @type, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A user session associated to a stream, usually through a list operation or a join/leave event.\n    /// </summary>\n    public interface IRealtimeUserPresence\n    {\n\n        /// <summary>\n        /// Whether this presence generates persistent data/messages, if applicable for the stream type.\n        /// </summary>\n        bool Persistence { get; }\n\n        /// <summary>\n        /// A unique session ID identifying the particular connection, because the user may have many.\n        /// </summary>\n        string SessionId { get; }\n\n        /// <summary>\n        /// A user-set status message for this stream, if applicable.\n        /// </summary>\n        string Status { get; }\n\n        /// <summary>\n        /// The user this presence belongs to.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// The username for display purposes.\n        /// </summary>\n        string Username { get; }\n    }\n\n    /// <inheritdoc />\n    internal class RealtimeUserPresence : IRealtimeUserPresence\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"persistence\"), Preserve]\n        public bool Persistence { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"session_id\"), Preserve]\n        public string SessionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"status\"), Preserve]\n        public string Status { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"user_id\"), Preserve]\n        public string UserId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"username\"), Preserve]\n        public string Username { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Persistence: \", Persistence, \", \");\n            output = string.Concat(output, \"SessionId: \", SessionId, \", \");\n            output = string.Concat(output, \"Status: \", Status, \", \");\n            output = string.Concat(output, \"UserId: \", UserId, \", \");\n            output = string.Concat(output, \"Username: \", Username, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The low level client for the Nakama.Console API.\n    /// </summary>\n    internal class ApiClient\n    {\n        public readonly IHttpAdapter HttpAdapter;\n        public int Timeout { get; set; }\n\n        private readonly Uri _baseUri;\n\n        public ApiClient(Uri baseUri, IHttpAdapter httpAdapter, int timeout = 10)\n        {\n            _baseUri = baseUri;\n            HttpAdapter = httpAdapter;\n            Timeout = timeout;\n        }\n\n        /// <summary>\n        /// Delete (non-recorded) all user accounts.\n        /// </summary>\n        public async Task ConsoleDeleteAccountsAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/account\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List (and optionally filter) accounts.\n        /// </summary>\n        public async Task<IConsoleAccountList> ConsoleListAccountsAsync(\n            string bearerToken,\n            string filter,\n            bool? tombstones,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/account\";\n\n            var queryParams = \"\";\n            if (filter != null) {\n                queryParams = string.Concat(queryParams, \"filter=\", Uri.EscapeDataString(filter), \"&\");\n            }\n            if (tombstones != null) {\n                queryParams = string.Concat(queryParams, \"tombstones=\", tombstones.ToString().ToLower(), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleAccountList>();\n        }\n\n        /// <summary>\n        /// Get a list of the user's wallet transactions.\n        /// </summary>\n        public async Task<IConsoleWalletLedgerList> ConsoleGetWalletLedgerAsync(\n            string bearerToken,\n            string accountId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n            if (accountId == null)\n            {\n                throw new ArgumentException(\"'accountId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{account_id}/wallet\";\n            urlpath = urlpath.Replace(\"{account_id}\", Uri.EscapeDataString(accountId));\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleWalletLedgerList>();\n        }\n\n        /// <summary>\n        /// Delete all information stored for a user account.\n        /// </summary>\n        public async Task ConsoleDeleteAccountAsync(\n            string bearerToken,\n            string id,\n            bool? record_deletion,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n            if (record_deletion != null) {\n                queryParams = string.Concat(queryParams, \"record_deletion=\", record_deletion.ToString().ToLower(), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get detailed account information for a single user.\n        /// </summary>\n        public async Task<INakamaconsoleAccount> ConsoleGetAccountAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleAccount>();\n        }\n\n        /// <summary>\n        /// Update one or more fields on a user account.\n        /// </summary>\n        public async Task ConsoleUpdateAccountAsync(\n            string bearerToken,\n            string id,\n            ApiConsole_UpdateAccountRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Ban a user.\n        /// </summary>\n        public async Task ConsoleBanAccountAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/ban\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Export all information stored about a user account.\n        /// </summary>\n        public async Task<IConsoleAccountExport> ConsoleExportAccountAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/export\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleAccountExport>();\n        }\n\n        /// <summary>\n        /// Get a user's list of friend relationships.\n        /// </summary>\n        public async Task<IApiFriendList> ConsoleGetFriendsAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/friend\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiFriendList>();\n        }\n\n        /// <summary>\n        /// Delete the friend relationship between two users.\n        /// </summary>\n        public async Task ConsoleDeleteFriendAsync(\n            string bearerToken,\n            string id,\n            string friendId,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (friendId == null)\n            {\n                throw new ArgumentException(\"'friendId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/friend/{friend_id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n            urlpath = urlpath.Replace(\"{friend_id}\", Uri.EscapeDataString(friendId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get a list of groups the user is a member of.\n        /// </summary>\n        public async Task<IApiUserGroupList> ConsoleGetGroupsAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/group\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiUserGroupList>();\n        }\n\n        /// <summary>\n        /// Remove a user from a group.\n        /// </summary>\n        public async Task ConsoleDeleteGroupUserAsync(\n            string bearerToken,\n            string id,\n            string groupId,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/group/{group_id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n            urlpath = urlpath.Replace(\"{group_id}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unban a user.\n        /// </summary>\n        public async Task ConsoleUnbanAccountAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unban\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Apple ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkAppleAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/apple\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the custom ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkCustomAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/custom\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the device ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkDeviceAsync(\n            string bearerToken,\n            string id,\n            ApiConsole_UnlinkDeviceRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/device\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the email from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkEmailAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/email\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Facebook ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkFacebookAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/facebook\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Facebook Instant Game ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkFacebookInstantGameAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/facebookinstantgame\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Game Center ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkGameCenterAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/gamecenter\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Google ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkGoogleAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/google\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Unlink the Steam ID from a user account.\n        /// </summary>\n        public async Task ConsoleUnlinkSteamAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/unlink/steam\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Delete a wallet ledger item.\n        /// </summary>\n        public async Task ConsoleDeleteWalletLedgerAsync(\n            string bearerToken,\n            string id,\n            string walletId,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (walletId == null)\n            {\n                throw new ArgumentException(\"'walletId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/account/{id}/wallet/{wallet_id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n            urlpath = urlpath.Replace(\"{wallet_id}\", Uri.EscapeDataString(walletId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Deletes all data\n        /// </summary>\n        public async Task ConsoleDeleteAllDataAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/all\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// API Explorer - list all endpoints\n        /// </summary>\n        public async Task<IConsoleApiEndpointList> ConsoleListApiEndpointsAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/api/endpoints\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleApiEndpointList>();\n        }\n\n        /// <summary>\n        /// API Explorer - call a custom RPC endpoint\n        /// </summary>\n        public async Task<IConsoleCallApiEndpointResponse> ConsoleCallRpcEndpointAsync(\n            string bearerToken,\n            string method,\n            ApiConsole_CallRpcEndpointRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (method == null)\n            {\n                throw new ArgumentException(\"'method' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/api/endpoints/rpc/{method}\";\n            urlpath = urlpath.Replace(\"{method}\", Uri.EscapeDataString(method));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleCallApiEndpointResponse>();\n        }\n\n        /// <summary>\n        /// API Explorer - call an endpoint\n        /// </summary>\n        public async Task<IConsoleCallApiEndpointResponse> ConsoleCallApiEndpointAsync(\n            string bearerToken,\n            string method,\n            ApiConsole_CallApiEndpointRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (method == null)\n            {\n                throw new ArgumentException(\"'method' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/api/endpoints/{method}\";\n            urlpath = urlpath.Replace(\"{method}\", Uri.EscapeDataString(method));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleCallApiEndpointResponse>();\n        }\n\n        /// <summary>\n        /// Authenticate a console user with username and password.\n        /// </summary>\n        public async Task<IConsoleConsoleSession> ConsoleAuthenticateAsync(\n            ConsoleAuthenticateRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/authenticate\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleConsoleSession>();\n        }\n\n        /// <summary>\n        /// Log out a session and invalidate the session token.\n        /// </summary>\n        public async Task ConsoleAuthenticateLogoutAsync(\n            string bearerToken,\n            ConsoleAuthenticateLogoutRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/authenticate/logout\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Change an account's MFA using a code, usually delivered over email.\n        /// </summary>\n        public async Task<IConsoleAuthenticateMFASetupResponse> ConsoleAuthenticateMFASetupAsync(\n            string bearerToken,\n            ConsoleAuthenticateMFASetupRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/authenticate/mfa\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleAuthenticateMFASetupResponse>();\n        }\n\n        /// <summary>\n        /// List channel messages with the selected filter\n        /// </summary>\n        public async Task<IApiChannelMessageList> ConsoleListChannelMessagesAsync(\n            string bearerToken,\n            string type,\n            string label,\n            string groupId,\n            string userIdOne,\n            string userIdTwo,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/channel\";\n\n            var queryParams = \"\";\n            if (type != null) {\n                queryParams = string.Concat(queryParams, \"type=\", Uri.EscapeDataString(type), \"&\");\n            }\n            if (label != null) {\n                queryParams = string.Concat(queryParams, \"label=\", Uri.EscapeDataString(label), \"&\");\n            }\n            if (groupId != null) {\n                queryParams = string.Concat(queryParams, \"group_id=\", Uri.EscapeDataString(groupId), \"&\");\n            }\n            if (userIdOne != null) {\n                queryParams = string.Concat(queryParams, \"user_id_one=\", Uri.EscapeDataString(userIdOne), \"&\");\n            }\n            if (userIdTwo != null) {\n                queryParams = string.Concat(queryParams, \"user_id_two=\", Uri.EscapeDataString(userIdTwo), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiChannelMessageList>();\n        }\n\n        /// <summary>\n        /// Get server config and configuration warnings.\n        /// </summary>\n        public async Task<IConsoleConfig> ConsoleGetConfigAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/config\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleConfig>();\n        }\n\n        /// <summary>\n        /// List (and optionally filter) groups.\n        /// </summary>\n        public async Task<INakamaconsoleGroupList> ConsoleListGroupsAsync(\n            string bearerToken,\n            string filter,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/group\";\n\n            var queryParams = \"\";\n            if (filter != null) {\n                queryParams = string.Concat(queryParams, \"filter=\", Uri.EscapeDataString(filter), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleGroupList>();\n        }\n\n        /// <summary>\n        /// Demote a user from a group.\n        /// </summary>\n        public async Task ConsoleDemoteGroupMemberAsync(\n            string bearerToken,\n            string groupId,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{group_id}/account/{id}/demote\";\n            urlpath = urlpath.Replace(\"{group_id}\", Uri.EscapeDataString(groupId));\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Promote a user from a group.\n        /// </summary>\n        public async Task ConsolePromoteGroupMemberAsync(\n            string bearerToken,\n            string groupId,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{group_id}/account/{id}/promote\";\n            urlpath = urlpath.Replace(\"{group_id}\", Uri.EscapeDataString(groupId));\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Add/join members to a group.\n        /// </summary>\n        public async Task ConsoleAddGroupUsersAsync(\n            string bearerToken,\n            string groupId,\n            ApiConsole_AddGroupUsersRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (groupId == null)\n            {\n                throw new ArgumentException(\"'groupId' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{group_id}/add\";\n            urlpath = urlpath.Replace(\"{group_id}\", Uri.EscapeDataString(groupId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Remove a group.\n        /// </summary>\n        public async Task ConsoleDeleteGroupAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get detailed group information.\n        /// </summary>\n        public async Task<IApiGroup> ConsoleGetGroupAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGroup>();\n        }\n\n        /// <summary>\n        /// Update one or more fields on a group.\n        /// </summary>\n        public async Task ConsoleUpdateGroupAsync(\n            string bearerToken,\n            string id,\n            ApiConsole_UpdateGroupRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Export all information stored about a group.\n        /// </summary>\n        public async Task<IConsoleGroupExport> ConsoleExportGroupAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{id}/export\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleGroupExport>();\n        }\n\n        /// <summary>\n        /// Get a list of members of the group.\n        /// </summary>\n        public async Task<IApiGroupUserList> ConsoleGetMembersAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/group/{id}/member\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGroupUserList>();\n        }\n\n        /// <summary>\n        /// Get purchase by transaction_id\n        /// </summary>\n        public async Task<IApiValidatedPurchase> ConsoleGetPurchaseAsync(\n            string bearerToken,\n            string transactionId,\n            CancellationToken? cancellationToken)\n        {\n            if (transactionId == null)\n            {\n                throw new ArgumentException(\"'transactionId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/iap/purchase/{transaction_id}\";\n            urlpath = urlpath.Replace(\"{transaction_id}\", Uri.EscapeDataString(transactionId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatedPurchase>();\n        }\n\n        /// <summary>\n        /// Get subscription by original_transaction_id\n        /// </summary>\n        public async Task<IApiValidatedSubscription> ConsoleGetSubscriptionAsync(\n            string bearerToken,\n            string originalTransactionId,\n            CancellationToken? cancellationToken)\n        {\n            if (originalTransactionId == null)\n            {\n                throw new ArgumentException(\"'originalTransactionId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/iap/subscription/{original_transaction_id}\";\n            urlpath = urlpath.Replace(\"{original_transaction_id}\", Uri.EscapeDataString(originalTransactionId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiValidatedSubscription>();\n        }\n\n        /// <summary>\n        /// List leaderboards\n        /// </summary>\n        public async Task<INakamaconsoleLeaderboardList> ConsoleListLeaderboardsAsync(\n            string bearerToken,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/leaderboard\";\n\n            var queryParams = \"\";\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleLeaderboardList>();\n        }\n\n        /// <summary>\n        /// Delete leaderboard\n        /// </summary>\n        public async Task ConsoleDeleteLeaderboardAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/leaderboard/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get leaderboard.\n        /// </summary>\n        public async Task<INakamaconsoleLeaderboard> ConsoleGetLeaderboardAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/leaderboard/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleLeaderboard>();\n        }\n\n        /// <summary>\n        /// Delete leaderboard record\n        /// </summary>\n        public async Task ConsoleDeleteLeaderboardRecordAsync(\n            string bearerToken,\n            string id,\n            string ownerId,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (ownerId == null)\n            {\n                throw new ArgumentException(\"'ownerId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/leaderboard/{id}/owner/{owner_id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n            urlpath = urlpath.Replace(\"{owner_id}\", Uri.EscapeDataString(ownerId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List leaderboard records.\n        /// </summary>\n        public async Task<IApiLeaderboardRecordList> ConsoleListLeaderboardRecordsAsync(\n            string bearerToken,\n            string leaderboardId,\n            IEnumerable<string> ownerIds,\n            int? limit,\n            string cursor,\n            string expiry,\n            CancellationToken? cancellationToken)\n        {\n            if (leaderboardId == null)\n            {\n                throw new ArgumentException(\"'leaderboardId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/leaderboard/{leaderboard_id}/records\";\n            urlpath = urlpath.Replace(\"{leaderboard_id}\", Uri.EscapeDataString(leaderboardId));\n\n            var queryParams = \"\";\n            foreach (var elem in ownerIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"owner_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n            if (expiry != null) {\n                queryParams = string.Concat(queryParams, \"expiry=\", Uri.EscapeDataString(expiry), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLeaderboardRecordList>();\n        }\n\n        /// <summary>\n        /// List ongoing matches\n        /// </summary>\n        public async Task<INakamaconsoleMatchList> ConsoleListMatchesAsync(\n            string bearerToken,\n            int? limit,\n            bool? authoritative,\n            string label,\n            int? min_size,\n            int? max_size,\n            string matchId,\n            string query,\n            string node,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/match\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (authoritative != null) {\n                queryParams = string.Concat(queryParams, \"authoritative=\", authoritative.ToString().ToLower(), \"&\");\n            }\n            if (label != null) {\n                queryParams = string.Concat(queryParams, \"label=\", Uri.EscapeDataString(label), \"&\");\n            }\n            if (min_size != null) {\n                queryParams = string.Concat(queryParams, \"min_size=\", min_size, \"&\");\n            }\n            if (max_size != null) {\n                queryParams = string.Concat(queryParams, \"max_size=\", max_size, \"&\");\n            }\n            if (matchId != null) {\n                queryParams = string.Concat(queryParams, \"match_id=\", Uri.EscapeDataString(matchId), \"&\");\n            }\n            if (query != null) {\n                queryParams = string.Concat(queryParams, \"query=\", Uri.EscapeDataString(query), \"&\");\n            }\n            if (node != null) {\n                queryParams = string.Concat(queryParams, \"node=\", Uri.EscapeDataString(node), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleMatchList>();\n        }\n\n        /// <summary>\n        /// Get current state of a running match\n        /// </summary>\n        public async Task<IConsoleMatchState> ConsoleGetMatchStateAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/match/{id}/state\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleMatchState>();\n        }\n\n        /// <summary>\n        /// Delete messages.\n        /// </summary>\n        public async Task<IConsoleDeleteChannelMessagesResponse> ConsoleDeleteChannelMessagesAsync(\n            string bearerToken,\n            string before,\n            IEnumerable<string> ids,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/message\";\n\n            var queryParams = \"\";\n            if (before != null) {\n                queryParams = string.Concat(queryParams, \"before=\", Uri.EscapeDataString(before), \"&\");\n            }\n            foreach (var elem in ids ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleDeleteChannelMessagesResponse>();\n        }\n\n        /// <summary>\n        /// List notifications.\n        /// </summary>\n        public async Task<INakamaconsoleNotificationList> ConsoleListNotificationsAsync(\n            string bearerToken,\n            string userId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/notification\";\n\n            var queryParams = \"\";\n            if (userId != null) {\n                queryParams = string.Concat(queryParams, \"user_id=\", Uri.EscapeDataString(userId), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleNotificationList>();\n        }\n\n        /// <summary>\n        /// Delete notification\n        /// </summary>\n        public async Task ConsoleDeleteNotificationAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/notification/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get a notification by id.\n        /// </summary>\n        public async Task<INakamaconsoleNotification> ConsoleGetNotificationAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/notification/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<NakamaconsoleNotification>();\n        }\n\n        /// <summary>\n        /// List validated purchases\n        /// </summary>\n        public async Task<IApiPurchaseList> ConsoleListPurchasesAsync(\n            string bearerToken,\n            string userId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/purchase\";\n\n            var queryParams = \"\";\n            if (userId != null) {\n                queryParams = string.Concat(queryParams, \"user_id=\", Uri.EscapeDataString(userId), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiPurchaseList>();\n        }\n\n        /// <summary>\n        /// Get runtime info\n        /// </summary>\n        public async Task<IConsoleRuntimeInfo> ConsoleGetRuntimeAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/runtime\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleRuntimeInfo>();\n        }\n\n        /// <summary>\n        /// List settings\n        /// </summary>\n        public async Task<IConsoleSettingList> ConsoleListSettingsAsync(\n            string bearerToken,\n            IEnumerable<string> names,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/setting\";\n\n            var queryParams = \"\";\n            foreach (var elem in names ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"names=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleSettingList>();\n        }\n\n        /// <summary>\n        /// Get console settings.\n        /// </summary>\n        public async Task<IConsoleSetting> ConsoleGetSettingAsync(\n            string bearerToken,\n            string name,\n            CancellationToken? cancellationToken)\n        {\n            if (name == null)\n            {\n                throw new ArgumentException(\"'name' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/setting/{name}\";\n            urlpath = urlpath.Replace(\"{name}\", Uri.EscapeDataString(name));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleSetting>();\n        }\n\n        /// <summary>\n        /// Update an existing setting.\n        /// </summary>\n        public async Task<IConsoleSetting> ConsoleUpdateSettingAsync(\n            string bearerToken,\n            string name,\n            ApiConsole_UpdateSettingRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (name == null)\n            {\n                throw new ArgumentException(\"'name' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/setting/{name}\";\n            urlpath = urlpath.Replace(\"{name}\", Uri.EscapeDataString(name));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleSetting>();\n        }\n\n        /// <summary>\n        /// Get current status data for all nodes.\n        /// </summary>\n        public async Task<IConsoleStatusList> ConsoleGetStatusAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/status\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleStatusList>();\n        }\n\n        /// <summary>\n        /// Delete all storage data.\n        /// </summary>\n        public async Task ConsoleDeleteStorageAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/storage\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List (and optionally filter) storage data.\n        /// </summary>\n        public async Task<IConsoleStorageList> ConsoleListStorageAsync(\n            string bearerToken,\n            string userId,\n            string key,\n            string collection,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/storage\";\n\n            var queryParams = \"\";\n            if (userId != null) {\n                queryParams = string.Concat(queryParams, \"user_id=\", Uri.EscapeDataString(userId), \"&\");\n            }\n            if (key != null) {\n                queryParams = string.Concat(queryParams, \"key=\", Uri.EscapeDataString(key), \"&\");\n            }\n            if (collection != null) {\n                queryParams = string.Concat(queryParams, \"collection=\", Uri.EscapeDataString(collection), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleStorageList>();\n        }\n\n        /// <summary>\n        /// List storage collections\n        /// </summary>\n        public async Task<IConsoleStorageCollectionsList> ConsoleListStorageCollectionsAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/storage/collections\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleStorageCollectionsList>();\n        }\n\n        /// <summary>\n        /// Delete a storage object.\n        /// </summary>\n        public async Task ConsoleDeleteStorageObjectAsync(\n            string bearerToken,\n            string collection,\n            string key,\n            string userId,\n            string version,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n            if (key == null)\n            {\n                throw new ArgumentException(\"'key' is required but was null.\");\n            }\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/storage/{collection}/{key}/{user_id}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n            urlpath = urlpath.Replace(\"{key}\", Uri.EscapeDataString(key));\n            urlpath = urlpath.Replace(\"{user_id}\", Uri.EscapeDataString(userId));\n\n            var queryParams = \"\";\n            if (version != null) {\n                queryParams = string.Concat(queryParams, \"version=\", Uri.EscapeDataString(version), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get a storage object.\n        /// </summary>\n        public async Task<IApiStorageObject> ConsoleGetStorageAsync(\n            string bearerToken,\n            string collection,\n            string key,\n            string userId,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n            if (key == null)\n            {\n                throw new ArgumentException(\"'key' is required but was null.\");\n            }\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/storage/{collection}/{key}/{user_id}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n            urlpath = urlpath.Replace(\"{key}\", Uri.EscapeDataString(key));\n            urlpath = urlpath.Replace(\"{user_id}\", Uri.EscapeDataString(userId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObject>();\n        }\n\n        /// <summary>\n        /// Write a new storage object or replace an existing one.\n        /// </summary>\n        public async Task<IApiStorageObjectAck> ConsoleWriteStorageObjectAsync(\n            string bearerToken,\n            string collection,\n            string key,\n            string userId,\n            ApiConsole_WriteStorageObjectRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n            if (key == null)\n            {\n                throw new ArgumentException(\"'key' is required but was null.\");\n            }\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/storage/{collection}/{key}/{user_id}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n            urlpath = urlpath.Replace(\"{key}\", Uri.EscapeDataString(key));\n            urlpath = urlpath.Replace(\"{user_id}\", Uri.EscapeDataString(userId));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiStorageObjectAck>();\n        }\n\n        /// <summary>\n        /// Delete a storage object.\n        /// </summary>\n        public async Task ConsoleDeleteStorageObject2Async(\n            string bearerToken,\n            string collection,\n            string key,\n            string userId,\n            string version,\n            CancellationToken? cancellationToken)\n        {\n            if (collection == null)\n            {\n                throw new ArgumentException(\"'collection' is required but was null.\");\n            }\n            if (key == null)\n            {\n                throw new ArgumentException(\"'key' is required but was null.\");\n            }\n            if (userId == null)\n            {\n                throw new ArgumentException(\"'userId' is required but was null.\");\n            }\n            if (version == null)\n            {\n                throw new ArgumentException(\"'version' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/storage/{collection}/{key}/{user_id}/{version}\";\n            urlpath = urlpath.Replace(\"{collection}\", Uri.EscapeDataString(collection));\n            urlpath = urlpath.Replace(\"{key}\", Uri.EscapeDataString(key));\n            urlpath = urlpath.Replace(\"{user_id}\", Uri.EscapeDataString(userId));\n            urlpath = urlpath.Replace(\"{version}\", Uri.EscapeDataString(version));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List validated subscriptions\n        /// </summary>\n        public async Task<IApiSubscriptionList> ConsoleListSubscriptionsAsync(\n            string bearerToken,\n            string userId,\n            int? limit,\n            string cursor,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/subscription\";\n\n            var queryParams = \"\";\n            if (userId != null) {\n                queryParams = string.Concat(queryParams, \"user_id=\", Uri.EscapeDataString(userId), \"&\");\n            }\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSubscriptionList>();\n        }\n\n        /// <summary>\n        /// Delete console user.\n        /// </summary>\n        public async Task ConsoleDeleteUserAsync(\n            string bearerToken,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/user\";\n\n            var queryParams = \"\";\n            if (username != null) {\n                queryParams = string.Concat(queryParams, \"username=\", Uri.EscapeDataString(username), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List (and optionally filter) users.\n        /// </summary>\n        public async Task<IConsoleUserList> ConsoleListUsersAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v2/console/user\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ConsoleUserList>();\n        }\n\n        /// <summary>\n        /// Add a new console user.\n        /// </summary>\n        public async Task ConsoleAddUserAsync(\n            string bearerToken,\n            ConsoleAddUserRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/user\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Sets the user's MFA as required or not required.\n        /// </summary>\n        public async Task ConsoleRequireUserMfaAsync(\n            string bearerToken,\n            string username,\n            ApiConsole_RequireUserMfaRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (username == null)\n            {\n                throw new ArgumentException(\"'username' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/user/{username}/mfa/require\";\n            urlpath = urlpath.Replace(\"{username}\", Uri.EscapeDataString(username));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Reset a user's multi-factor authentication credentials.\n        /// </summary>\n        public async Task ConsoleResetUserMfaAsync(\n            string bearerToken,\n            string username,\n            CancellationToken? cancellationToken)\n        {\n            if (username == null)\n            {\n                throw new ArgumentException(\"'username' is required but was null.\");\n            }\n\n            var urlpath = \"/v2/console/user/{username}/mfa/reset\";\n            urlpath = urlpath.Replace(\"{username}\", Uri.EscapeDataString(username));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/GZipHttpClientHandler.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.IO.Compression;\nusing System.Net;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    internal class GZipHttpClientHandler : DelegatingHandler\n    {\n        public GZipHttpClientHandler(HttpMessageHandler innerHandler)\n        {\n            InnerHandler = innerHandler;\n        }\n\n        protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken ct)\n        {\n            if ((request.Method == HttpMethod.Post || request.Method == HttpMethod.Put) && request.Content != null)\n            {\n                request.Content = new GZipContent(request.Content);\n            }\n\n            return base.SendAsync(request, ct);\n        }\n    }\n\n    internal class GZipContent : HttpContent\n    {\n        private readonly HttpContent _content;\n\n        public GZipContent(HttpContent content)\n        {\n            _content = content;\n            // Must copy all pre-existing headers.\n            foreach (var header in content.Headers)\n            {\n                Headers.TryAddWithoutValidation(header.Key, header.Value);\n            }\n            Headers.ContentEncoding.Add(\"gzip\");\n        }\n\n        protected override async Task SerializeToStreamAsync(System.IO.Stream stream, TransportContext context)\n        {\n            using (var gzip = new GZipStream(stream, CompressionMode.Compress, true))\n            {\n                await _content.CopyToAsync(gzip);\n            }\n        }\n\n        protected override bool TryComputeLength(out long length)\n        {\n            length = -1;\n            return false;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/HttpRequestAdapter.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Net;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.TinyJson;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// HTTP Request adapter which uses the .NET HttpClient to send requests.\n    /// </summary>\n    /// <remarks>\n    /// Accept header is always set as 'application/json'.\n    /// </remarks>\n    public class HttpRequestAdapter : IHttpAdapter\n    {\n        /// <inheritdoc cref=\"IHttpAdapter.Logger\"/>\n        public ILogger Logger { get; set; }\n\n        public TransientExceptionDelegate TransientExceptionDelegate => IsTransientException;\n\n        private readonly HttpClient _httpClient;\n\n        public HttpRequestAdapter(HttpClient httpClient)\n        {\n            _httpClient = httpClient;\n            _httpClient.Timeout = TimeSpan.FromSeconds(80); // Provide a global request timeout as a failsafe.\n        }\n\n        /// <inheritdoc cref=\"IHttpAdapter\"/>\n        public async Task<string> SendAsync(string method, Uri uri, IDictionary<string, string> headers, byte[] body,\n            int timeout, CancellationToken? userCancelToken)\n        {\n            var request = new HttpRequestMessage\n            {\n                RequestUri = uri,\n                Method = new HttpMethod(method)\n            };\n            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(\"application/json\"));\n\n            foreach (var kv in headers)\n            {\n                request.Headers.TryAddWithoutValidation(kv.Key, kv.Value);\n            }\n\n            if (body != null)\n            {\n                request.Content = new ByteArrayContent(body);\n                Logger?.InfoFormat(\"Send: method='{0}', uri='{1}', body='{2}'\", method, uri,\n                    System.Text.Encoding.UTF8.GetString(body));\n            }\n            else\n            {\n                Logger?.InfoFormat(\"Send: method='{0}', uri='{1}'\", method, uri);\n            }\n\n            using var ctsTimeout = new CancellationTokenSource(TimeSpan.FromSeconds(timeout));\n            using var cts =\n                CancellationTokenSource.CreateLinkedTokenSource(ctsTimeout.Token,\n                    userCancelToken ?? CancellationToken.None);\n\n            try\n            {\n                using var response = await _httpClient.SendAsync(request, cts.Token).ConfigureAwait(false);\n                var contents = await response.Content.ReadAsStringAsync();\n\n                if ((int)response.StatusCode >= 500)\n                {\n                    Logger?.ErrorFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n                    // TODO think of best way to map HTTP code to GRPC code since we can't rely\n                    // on server to process it. Manually adding the mapping to SDK seems brittle.\n                    throw new ApiResponseException((int)response.StatusCode, contents, -1);\n                }\n\n                if (response.IsSuccessStatusCode)\n                {\n                    Logger?.InfoFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n                    return contents;\n                }\n\n                Logger?.ErrorFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n\n                var decoded = contents.FromJson<Dictionary<string, object>>();\n                var message = decoded.TryGetValue(\"message\", out var value1) ? value1.ToString() : string.Empty;\n                var grpcCode = decoded.TryGetValue(\"code\", out var value2) ? (int)value2 : -1;\n\n                var exception = new ApiResponseException((int)response.StatusCode, message, grpcCode);\n                if (decoded.TryGetValue(\"error\", out var value))\n                {\n                    IHttpAdapterUtil.CopyResponseError(this, value, exception);\n                }\n\n                throw exception;\n            }\n            catch (TaskCanceledException e) when (ctsTimeout.IsCancellationRequested)\n            {\n                Logger?.ErrorFormat(\"Request timed out: method='{0}', uri='{1}'\", method, uri);\n                throw new TimeoutException($\"The request timed out after {timeout} seconds.\", e);\n            }\n            catch (Exception exception) when (!(exception is ApiResponseException))\n            {\n                Logger?.ErrorFormat(\"Request failed: method='{0}', uri='{1}', exception='{2}'\", method, uri,\n                    exception);\n                throw;\n            }\n        }\n\n        /// <summary>\n        /// A new HTTP adapter with configuration for gzip support in the underlying HTTP client.\n        /// </summary>\n        /// <remarks>\n        /// NOTE Decompression does not work with Mono AOT on Android.\n        /// </remarks>\n        /// <param name=\"decompression\">If automatic decompression should be enabled with the HTTP adapter.</param>\n        /// <param name=\"compression\">If automatic compression should be enabled with the HTTP adapter.</param>\n        /// <returns>A new HTTP adapter.</returns>\n        public static IHttpAdapter WithGzip(bool decompression = false, bool compression = false)\n        {\n            var handler = new HttpClientHandler();\n            if (handler.SupportsAutomaticDecompression && decompression)\n            {\n                handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;\n            }\n\n            handler.AllowAutoRedirect = true;\n\n            var client =\n                new HttpClient(compression ? (HttpMessageHandler)new GZipHttpClientHandler(handler) : handler);\n            return new HttpRequestAdapter(client);\n        }\n\n        public static bool IsTransientException(Exception e)\n        {\n            if (e is ApiResponseException apiException)\n            {\n                switch (apiException.StatusCode)\n                {\n                    case 500\n                        : // Internal Server Error often (but not always) indicates a transient issue in Nakama, e.g., DB connectivity.\n                    case 502\n                        : // LB returns this to client if server sends corrupt/invalid data to LB, which may be a transient issue.\n                    case 503\n                        : // LB returns this to client if LB determines or is told that server is unable to handle forwarded from LB, which may be a transient issue.\n                    case 504\n                        : // LB returns this to client if LB cannot communicate with server, which may be a temporary issue.\n                        return true;\n                }\n            }\n\n            return false;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IChannel.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A chat channel on the server.\n    /// </summary>\n    public interface IChannel\n    {\n        /// <summary>\n        /// The server-assigned channel ID.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The presences visible on the chat channel.\n        /// </summary>\n        IEnumerable<IUserPresence> Presences { get; }\n\n        /// <summary>\n        /// The presence of the current user. i.e. Your self.\n        /// </summary>\n        IUserPresence Self { get; }\n\n        /// <summary>\n        /// The name of the chat room, or an empty string if this message was not sent through a chat room.\n        /// </summary>\n        string RoomName { get; }\n\n        /// <summary>\n        /// The ID of the group, or an empty string if this message was not sent through a group channel.\n        /// </summary>\n        string GroupId { get; }\n\n        /// <summary>\n        /// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdOne { get; }\n\n        /// <summary>\n        /// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdTwo { get; }\n    }\n\n    /// <inheritdoc cref=\"IChannel\"/>\n    internal class Channel : IChannel\n    {\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        public IEnumerable<IUserPresence> Presences => _presences ?? UserPresence.NoPresences;\n        [DataMember(Name=\"presences\"), Preserve]\n        public List<UserPresence> _presences { get; set; }\n\n        public IUserPresence Self => _self;\n        [DataMember(Name=\"self\"), Preserve]\n        public UserPresence _self { get; set; }\n\n        [DataMember(Name=\"room_name\"), Preserve]\n        public string RoomName { get; set; }\n\n        [DataMember(Name=\"group_id\"), Preserve]\n        public string GroupId { get; set; }\n\n        [DataMember(Name=\"user_id_one\"), Preserve]\n        public string UserIdOne { get; set; }\n\n        [DataMember(Name=\"user_id_two\"), Preserve]\n        public string UserIdTwo { get; set; }\n\n        public override bool Equals(object obj)\n        {\n            if (!(obj is Channel item))\n            {\n                return false;\n            }\n            return Equals(item);\n        }\n\n        private bool Equals(IChannel other) => string.Equals(Id, other.Id);\n\n        public override int GetHashCode() => Id != null ? Id.GetHashCode() : 0;\n\n        public override string ToString()\n        {\n            var presences = string.Join(\", \", Presences);\n            return $\"Channel(Id='{Id}', Presences=[{presences}], Self={Self}, RoomName='{RoomName}', GroupId='{GroupId}', UserIdOne='{UserIdOne}', UserIdTwo='{UserIdTwo}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IChannelMessageAck.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An acknowledgement from the server when a chat message is delivered to a channel.\n    /// </summary>\n    public interface IChannelMessageAck\n    {\n        /// <summary>\n        /// The server-assigned channel ID.\n        /// </summary>\n        string ChannelId { get; }\n\n        /// <summary>\n        /// A user-defined code for the chat message.\n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// The UNIX time when the message was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// A unique ID for the chat message.\n        /// </summary>\n        string MessageId { get; }\n\n        /// <summary>\n        /// True if the chat message has been stored in history.\n        /// </summary>\n        bool Persistent { get; }\n\n        /// <summary>\n        /// The UNIX time when the message was updated.\n        /// </summary>\n        string UpdateTime { get; }\n\n        /// <summary>\n        /// The username of the sender of the message.\n        /// </summary>\n        string Username { get; }\n\n        /// <summary>\n        /// The name of the chat room, or an empty string if this message was not sent through a chat room.\n        /// </summary>\n        string RoomName { get; }\n\n        /// <summary>\n        /// The ID of the group, or an empty string if this message was not sent through a group channel.\n        /// </summary>\n        string GroupId { get; }\n\n        /// <summary>\n        /// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdOne { get; }\n\n        /// <summary>\n        /// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdTwo { get; }\n    }\n\n    /// <inheritdoc cref=\"IChannelMessageAck\"/>\n    internal class ChannelMessageAck : IChannelMessageAck\n    {\n        [DataMember(Name = \"channel_id\"), Preserve] public string ChannelId { get; set; }\n\n        [DataMember(Name = \"code\"), Preserve] public int Code { get; set; }\n\n        [DataMember(Name = \"create_time\"), Preserve] public string CreateTime { get; set; }\n\n        [DataMember(Name = \"message_id\"), Preserve] public string MessageId { get; set; }\n\n        [DataMember(Name = \"persistent\"), Preserve] public bool Persistent { get; set; }\n\n        [DataMember(Name = \"update_time\"), Preserve] public string UpdateTime { get; set; }\n\n        [DataMember(Name = \"username\"), Preserve] public string Username { get; set; }\n\n        [DataMember(Name=\"room_name\"), Preserve] public string RoomName { get; set; }\n\n        [DataMember(Name=\"group_id\"), Preserve] public string GroupId { get; set; }\n\n        [DataMember(Name=\"user_id_one\"), Preserve] public string UserIdOne { get; set; }\n\n        [DataMember(Name=\"user_id_two\"), Preserve] public string UserIdTwo { get; set; }\n\n        public override string ToString()\n        {\n            return\n                $\"ChannelMessageAck(ChannelId='{ChannelId}', Code={Code}, CreateTime={CreateTime}, MessageId='{MessageId}', Persistent={Persistent}, UpdateTime={UpdateTime}, Username='{Username}', RoomName='{RoomName}', GroupId='{GroupId}', UserIdOne='{UserIdOne}', UserIdTwo='{UserIdTwo}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IChannelPresenceEvent.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A batch of join and leave presences on a chat channel.\n    /// </summary>\n    public interface IChannelPresenceEvent\n    {\n        /// <summary>\n        /// The unique identifier of the chat channel.\n        /// </summary>\n        string ChannelId { get; }\n\n        /// <summary>\n        /// Presences of the users who joined the channel.\n        /// </summary>\n        IEnumerable<IUserPresence> Joins { get; }\n\n        /// <summary>\n        /// Presences of users who left the channel.\n        /// </summary>\n        IEnumerable<IUserPresence> Leaves { get; }\n\n        /// <summary>\n        /// The name of the chat room, or an empty string if this message was not sent through a chat room.\n        /// </summary>\n        string RoomName { get; }\n\n        /// <summary>\n        /// The ID of the group, or an empty string if this message was not sent through a group channel.\n        /// </summary>\n        string GroupId { get; }\n\n        /// <summary>\n        /// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdOne { get; }\n\n        /// <summary>\n        /// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.\n        /// </summary>\n        string UserIdTwo { get; }\n    }\n\n    /// <inheritdoc cref=\"IChannelPresenceEvent\"/>\n    internal class ChannelPresenceEvent : IChannelPresenceEvent\n    {\n        [DataMember(Name=\"channel_id\"), Preserve]\n        public string ChannelId { get; set; }\n\n        public IEnumerable<IUserPresence> Joins => _joins ?? new List<UserPresence>(0);\n        [DataMember(Name=\"joins\"), Preserve]\n        public List<UserPresence> _joins { get; set; }\n\n        public IEnumerable<IUserPresence> Leaves => _leaves ?? new List<UserPresence>(0);\n        [DataMember(Name=\"leaves\"), Preserve]\n        public List<UserPresence> _leaves { get; set; }\n\n        [DataMember(Name=\"room_name\"), Preserve]\n        public string RoomName { get; set; }\n\n        [DataMember(Name=\"group_id\"), Preserve]\n        public string GroupId { get; set; }\n\n        [DataMember(Name=\"user_id_one\"), Preserve]\n        public string UserIdOne { get; set; }\n\n        [DataMember(Name=\"user_id_two\"), Preserve]\n        public string UserIdTwo { get; set; }\n\n        public override string ToString()\n        {\n            var joins = string.Join(\",\", Joins);\n            var leaves = string.Join(\",\", Leaves);\n            return $\"ChannelPresenceEvent(ChannelId='{ChannelId}', Joins=[{joins}], Leaves=[{leaves}], RoomName='{RoomName}', GroupId='{GroupId}', UserIdOne='{UserIdOne}', UserIdTwo='{UserIdTwo}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IClient.cs",
    "content": "// Copyright 2022 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A client for the API in Nakama server.\n    /// </summary>\n    public interface IClient\n    {\n        /// <summary>\n        /// True if the session should be refreshed with an active refresh token.\n        /// </summary>\n        bool AutoRefreshSession { get; }\n\n        /// <summary>\n        /// The global retry configuration. See <see cref=\"RetryConfiguration\"/>.\n        /// </summary>\n        RetryConfiguration GlobalRetryConfiguration { get; set; }\n\n        /// <summary>\n        /// The host address of the server. Defaults to \"127.0.0.1\".\n        /// </summary>\n        string Host { get; }\n\n        /// <summary>\n        /// The port number of the server. Defaults to 7350.\n        /// </summary>\n        int Port { get; }\n\n        /// <summary>\n        /// The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".\n        /// </summary>\n        string Scheme { get; }\n\n        /// <summary>\n        /// The key used to authenticate with the server without a session. Defaults to \"defaultkey\".\n        /// </summary>\n        string ServerKey { get; }\n\n        /// <summary>\n        /// Received a new session after the current one has expired.\n        /// </summary>\n        /// <remarks>\n        /// This event will only be sent when <c>SessionRefreshAsync</c> is called which also happens automatically if\n        /// <c>AutoRefreshSession</c> is enabled.\n        /// </remarks>\n        /// <see cref=\"SessionRefreshAsync\"/>\n        /// <seealso cref=\"AutoRefreshSession\"/>\n        event Action<ISession> ReceivedSessionUpdated;\n\n        /// <summary>\n        /// Set the timeout in seconds on requests sent to the server.\n        /// </summary>\n        int Timeout { get; set; }\n\n        /// <summary>\n        /// The logger to use with the client.\n        /// </summary>\n        ILogger Logger { get; set; }\n\n        /// <summary>\n        /// Add one or more friends by id or username.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The ids of the users to add or invite as friends.</param>\n        /// <param name=\"usernames\">The usernames of the users to add as friends.</param>\n        /// <param name=\"metadata\"> Optional metadata to add to the friendship edge.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task AddFriendsAsync(ISession session, IEnumerable<string> ids, IEnumerable<string> usernames = null, string metadata = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Add one or more users to the group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The id of the group to add users into.</param>\n        /// <param name=\"ids\">The ids of the users to add or invite to the group.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task AddGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with an Apple ID against the server.\n        /// </summary>\n        /// <param name=\"username\">A username used to create the user.</param>\n        /// <param name=\"token\">The ID token received from Apple to validate.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateAppleAsync(string token, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with a custom id.\n        /// </summary>\n        /// <param name=\"id\">A custom identifier usually obtained from an external authentication service.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateCustomAsync(string id, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with a device id.\n        /// </summary>\n        /// <param name=\"id\">A device identifier usually obtained from a platform API.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateDeviceAsync(string id, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with an email and password.\n        /// </summary>\n        /// <param name=\"email\">The email address of the user.</param>\n        /// <param name=\"password\">The password for the user.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateEmailAsync(string email, string password, string username = null,\n            bool create = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with a Facebook auth token.\n        /// </summary>\n        /// <param name=\"token\">An OAuth access token from the Facebook SDK.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"import\">If the Facebook friends should be imported.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateFacebookAsync(string token, string username = null, bool create = true,\n            bool import = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with Apple Game Center.\n        /// </summary>\n        /// <param name=\"bundleId\">The bundle id of the Game Center application.</param>\n        /// <param name=\"playerId\">The player id of the user in Game Center.</param>\n        /// <param name=\"publicKeyUrl\">The URL for the public encryption key.</param>\n        /// <param name=\"salt\">A random <c>NSString</c> used to compute the hash and keep it randomized.</param>\n        /// <param name=\"signature\">The verification signature data generated.</param>\n        /// <param name=\"timestamp\">The date and time that the signature was created.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateGameCenterAsync(string bundleId, string playerId, string publicKeyUrl, string salt,\n            string signature, string timestamp, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with a Google auth token.\n        /// </summary>\n        /// <param name=\"token\">An OAuth access token from the Google SDK.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateGoogleAsync(string token, string username = null, bool create = true,\n            Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Authenticate a user with a Steam auth token.\n        /// </summary>\n        /// <param name=\"token\">An authentication token from the Steam network.</param>\n        /// <param name=\"username\">A username used to create the user. May be <c>null</c>.</param>\n        /// <param name=\"create\">If the user should be created when authenticated.</param>\n        /// <param name=\"vars\">Extra information that will be bundled in the session token.</param>\n        /// <param name=\"import\">If the Steam friends should be imported.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a session object.</returns>\n        Task<ISession> AuthenticateSteamAsync(string token, string username = null, bool create = true,\n            bool import = true, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Ban a set of users from a group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The group to ban the users from.</param>\n        /// <param name=\"ids\">The ids of the users to ban.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task BanGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Block one or more friends by id or username.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The ids of the users to block.</param>\n        /// <param name=\"usernames\">The usernames of the users to block.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task BlockFriendsAsync(ISession session, IEnumerable<string> ids, IEnumerable<string> usernames = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Create a group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"name\">The name for the group.</param>\n        /// <param name=\"description\">A description for the group.</param>\n        /// <param name=\"avatarUrl\">An avatar url for the group.</param>\n        /// <param name=\"langTag\">A language tag in BCP-47 format for the group.</param>\n        /// <param name=\"open\">If the group should have open membership.</param>\n        /// <param name=\"maxCount\">The maximum number of members allowed.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a new group object.</returns>\n        Task<IApiGroup> CreateGroupAsync(ISession session, string name, string description = \"\",\n            string avatarUrl = null, string langTag = null, bool open = true, int maxCount = 100, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete the current user's account. Note that this will invalidate your session, requiring you to reauthenticate.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteAccountAsync(ISession session, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete one more or users by id or username from friends.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The user ids to remove as friends.</param>\n        /// <param name=\"usernames\">The usernames to remove as friends.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteFriendsAsync(ISession session, IEnumerable<string> ids, IEnumerable<string> usernames = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete a group by id.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The group id to to remove.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteGroupAsync(ISession session, string groupId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete a leaderboard record.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"leaderboardId\">The id of the leaderboard with the record to be deleted.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteLeaderboardRecordAsync(ISession session, string leaderboardId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete one or more notifications by id.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The notification ids to remove.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteNotificationsAsync(ISession session, IEnumerable<string> ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete one or more storage objects.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The ids of the objects to delete.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteStorageObjectsAsync(ISession session, StorageObjectId[] ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Delete the user's tournament record.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The id of the tournament to delete from.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task DeleteTournamentRecordAsync(ISession session, string tournamentId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Demote a set of users in a group to the next role down.\n        /// <param name=\"groupId\">The group to demote users in.</param>\n        /// <param name=\"userIds\">The users to demote.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <remarks>Members who are already at the lowest rank will be skipped.</remarks>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        /// </summary>\n        Task DemoteGroupUsersAsync(ISession session, string groupId, IEnumerable<string> userIds, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Submit an event for processing in the server's registered runtime custom events handler.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"name\">The name of the event.</param>\n        /// <param name=\"properties\">The properties of the event.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task EventAsync(ISession session, string name, Dictionary<string, string> properties, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Fetch the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the account object.</returns>\n        Task<IApiAccount> GetAccountAsync(ISession session, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Get the subscription represented by the provided product id.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"productId\">The product id.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the subscription.</returns>\n        Task<IApiValidatedSubscription> GetSubscriptionAsync(ISession session, string productId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Fetch one or more users by id, usernames, and Facebook ids.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The IDs of the users to retrieve.</param>\n        /// <param name=\"usernames\">The usernames of the users to retrieve.</param>\n        /// <param name=\"facebookIds\">The facebook IDs of the users to retrieve.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a collection of user objects.</returns>\n        Task<IApiUsers> GetUsersAsync(ISession session, IEnumerable<string> ids, IEnumerable<string> usernames = null,\n            IEnumerable<string> facebookIds = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Import Facebook friends and add them to the user's account.\n        /// </summary>\n        /// <remarks>\n        /// The server will import friends when the user authenticates with Facebook. This function can be used to be\n        /// explicit with the import operation.\n        /// </remarks>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An OAuth access token from the Facebook SDK.</param>\n        /// <param name=\"reset\">If the Facebook friend import for the user should be reset.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task ImportFacebookFriendsAsync(ISession session, string token, bool? reset = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Import Steam friends and add them to the user's account.\n        /// </summary>\n        /// <remarks>\n        /// The server will import friends when the user authenticates with Steam. This function can be used to be\n        /// explicit with the import operation.\n        /// </remarks>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An access token from Steam.</param>\n        /// <param name=\"reset\">If the Steam friend import for the user should be reset.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task ImportSteamFriendsAsync(ISession session, string token, bool? reset = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Join a group if it has open membership or request to join it.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group to join.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task JoinGroupAsync(ISession session, string groupId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Join a tournament by ID.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"tournamentId\">The ID of the tournament to join.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task JoinTournamentAsync(ISession session, string tournamentId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Kick one or more users from the group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group.</param>\n        /// <param name=\"ids\">The IDs of the users to kick.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task KickGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Leave a group by ID.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group to leave.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LeaveGroupAsync(ISession session, string groupId, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link an Apple ID to the social profiles on the current user's account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">The ID token received from Apple to validate.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkAppleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a custom ID to the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">A custom identifier usually obtained from an external authentication service.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkCustomAsync(ISession session, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a device ID to the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">A device identifier usually obtained from a platform API.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkDeviceAsync(ISession session, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link an email with password to the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"email\">The email address of the user.</param>\n        /// <param name=\"password\">The password for the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkEmailAsync(ISession session, string email, string password, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a Facebook profile to a user account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An OAuth access token from the Facebook SDK.</param>\n        /// <param name=\"import\">If the Facebook friends should be imported.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkFacebookAsync(ISession session, string token, bool? import = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a Game Center profile to a user account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"bundleId\">The bundle ID of the Game Center application.</param>\n        /// <param name=\"playerId\">The player ID of the user in Game Center.</param>\n        /// <param name=\"publicKeyUrl\">The URL for the public encryption key.</param>\n        /// <param name=\"salt\">A random <c>NSString</c> used to compute the hash and keep it randomized.</param>\n        /// <param name=\"signature\">The verification signature data generated.</param>\n        /// <param name=\"timestamp\">The date and time that the signature was created.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkGameCenterAsync(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt,\n            string signature, string timestamp, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a Google profile to a user account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"token\">An OAuth access token from the Google SDK.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkGoogleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Link a Steam profile to a user account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An authentication token from the Steam network.</param>\n        /// <param name=\"import\">If the Steam friends should be imported.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LinkSteamAsync(ISession session, string token, bool import, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List messages from a chat channel.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"channel\">The chat channel object.</param>\n        /// <param name=\"limit\">The number of chat messages to list.</param>\n        /// <param name=\"forward\">Fetch messages forward from the current cursor (or the start, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default).</param>\n        /// <param name=\"cursor\">A cursor for the current position in the messages history to list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the channel message list object.</returns>\n        Task<IApiChannelMessageList> ListChannelMessagesAsync(ISession session, IChannel channel, int limit = 1,\n            bool forward = true, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List messages from a chat channel.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"channelId\">A channel identifier.</param>\n        /// <param name=\"limit\">The number of chat messages to list.</param>\n        /// <param name=\"forward\">Fetch messages forward from the current cursor (or the start, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default).</param>\n        /// <param name=\"cursor\">A cursor for the current position in the messages history to list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the channel message list object.</returns>\n        Task<IApiChannelMessageList> ListChannelMessagesAsync(ISession session, string channelId, int limit = 1,\n            bool forward = true, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List of friends of the current user.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"state\">Filter by friendship state.</param>\n        /// <param name=\"limit\">The number of friends to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the friends list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the friend objects.</returns>\n        Task<IApiFriendList> ListFriendsAsync(ISession session, int? state = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List all users part of the group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group.</param>\n        /// <param name=\"state\">Filter by group membership state.</param>\n        /// <param name=\"limit\">The number of groups to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the group listing.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the group user objects.</returns>\n        Task<IApiGroupUserList> ListGroupUsersAsync(ISession session, string groupId, int? state = null, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List groups on the server.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"name\">The name filter to apply to the group list.</param>\n        /// <param name=\"limit\">The number of groups to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the groups to list.</param>\n        /// <param name=\"langTag\">The language tag filter to apply to the group list.</param>\n        /// <param name=\"members\">The number of group members filter to apply to the group list.</param>\n        /// <param name=\"open\">The open/closed filter to apply to the group list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task to resolve group objects.</returns>\n        Task<IApiGroupList> ListGroupsAsync(ISession session, string name = null, int limit = 1, string cursor = null, string langTag = null, int? members = null, bool? open = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List records from a leaderboard.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"leaderboardId\">The ID of the leaderboard to list.</param>\n        /// <param name=\"ownerIds\">Record owners to fetch with the list of records.</param>\n        /// <param name=\"expiry\">Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</param>\n        /// <param name=\"limit\">The number of records to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the leaderboard records to list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the leaderboard record objects.</returns>\n        Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAsync(ISession session, string leaderboardId,\n            IEnumerable<string> ownerIds = null, long? expiry = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List leaderboard records that belong to a user.\n        /// </summary>\n        /// <param name=\"session\">The session for the user.</param>\n        /// <param name=\"leaderboardId\">The ID of the leaderboard to list.</param>\n        /// <param name=\"ownerId\">The ID of the user to list around.</param>\n        /// <param name=\"expiry\">Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</param>\n        /// <param name=\"limit\">The limit of the listings.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the leaderboard record objects.</returns>\n        Task<IApiLeaderboardRecordList> ListLeaderboardRecordsAroundOwnerAsync(ISession session, string leaderboardId,\n            string ownerId, long? expiry = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Fetch a list of matches active on the server.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"min\">The minimum number of match participants.</param>\n        /// <param name=\"max\">The maximum number of match participants.</param>\n        /// <param name=\"limit\">The number of matches to list.</param>\n        /// <param name=\"authoritative\">If authoritative matches should be included.</param>\n        /// <param name=\"label\">The label to filter the match list on.</param>\n        /// <param name=\"query\">A query for the matches to filter.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the match list object.</returns>\n        Task<IApiMatchList> ListMatchesAsync(ISession session, int min, int max, int limit, bool authoritative,\n            string label, string query, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List notifications for the user with an optional cursor.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"limit\">The number of notifications to list.</param>\n        /// <param name=\"cacheableCursor\">A cursor for the current position in notifications to list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task to resolve notifications objects.</returns>\n        Task<IApiNotificationList> ListNotificationsAsync(ISession session, int limit = 1,\n            string cacheableCursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        [Obsolete(\"ListStorageObjects is obsolete, please use ListStorageObjectsAsync instead.\", false)]\n        Task<IApiStorageObjectList> ListStorageObjects(ISession session, string collection, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List storage objects in a collection which have public read access.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"collection\">The collection to list over.</param>\n        /// <param name=\"limit\">The number of objects to list. Maximum 100.</param>\n        /// <param name=\"cursor\">A cursor to paginate over the collection. May be null.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the storage object list.</returns>\n        Task<IApiStorageObjectList> ListStorageObjectsAsync(ISession session, string collection, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List the user's subscriptions.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"limit\">The number of subscriptions to list.</param>\n        /// <param name=\"cursor\">An optional cursor for the next page of subscriptions.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the subscription list.</returns>\n        Task<IApiSubscriptionList> ListSubscriptionsAsync(ISession session, int limit, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List tournament records around the owner.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"tournamentId\">The ID of the tournament.</param>\n        /// <param name=\"ownerId\">The ID of the owner to pivot around.</param>\n        /// <param name=\"expiry\">Expiry in seconds (since epoch) to begin fetching records from.</param>\n        /// <param name=\"limit\">The number of records to list.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the tournament record list object.</returns>\n        Task<IApiTournamentRecordList> ListTournamentRecordsAroundOwnerAsync(ISession session, string tournamentId,\n            string ownerId, long? expiry = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List records from a tournament.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"tournamentId\">The ID of the tournament.</param>\n        /// <param name=\"ownerIds\">The IDs of the record owners to return in the result.</param>\n        /// <param name=\"expiry\">Expiry in seconds (since epoch) to begin fetching records from.</param>\n        /// <param name=\"limit\">The number of records to list.</param>\n        /// <param name=\"cursor\">An optional cursor for the next page of tournament records.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the list of tournament records.</returns>\n        Task<IApiTournamentRecordList> ListTournamentRecordsAsync(ISession session, string tournamentId,\n            IEnumerable<string> ownerIds = null, long? expiry = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List current or upcoming tournaments.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"categoryStart\">The start of the category of tournaments to include.</param>\n        /// <param name=\"categoryEnd\">The end of the category of tournaments to include.</param>\n        /// <param name=\"startTime\">The start time of the tournaments. (UNIX timestamp, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by start time.</param>\n        /// <param name=\"endTime\">The end time of the tournaments. (UNIX timestamp, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by end time.</param>\n        /// <param name=\"limit\">The number of tournaments to list.</param>\n        /// <param name=\"cursor\">An optional cursor for the next page of tournaments.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the list of tournament objects.</returns>\n        Task<IApiTournamentList> ListTournamentsAsync(ISession session, int categoryStart, int categoryEnd,\n            int? startTime = null, int? endTime = null, int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List of groups the current user is a member of.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"state\">Filter by group membership state.</param>\n        /// <param name=\"limit\">The number of records to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the listing.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the group list object.</returns>\n        Task<IApiUserGroupList> ListUserGroupsAsync(ISession session, int? state = null, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List groups a user is a member of.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"userId\">The ID of the user whose groups to list.</param>\n        /// <param name=\"state\">Filter by group membership state.</param>\n        /// <param name=\"limit\">The number of records to list.</param>\n        /// <param name=\"cursor\">A cursor for the current position in the listing.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the group list object.</returns>\n        Task<IApiUserGroupList> ListUserGroupsAsync(ISession session, string userId, int? state = null, int limit = 1,\n            string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List storage objects in a collection which belong to a specific user and have public read access.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"collection\">The collection to list over.</param>\n        /// <param name=\"userId\">The user ID of the user to list objects for.</param>\n        /// <param name=\"limit\">The number of objects to list.</param>\n        /// <param name=\"cursor\">A cursor to paginate over the collection.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the storage object list.</returns>\n        Task<IApiStorageObjectList> ListUsersStorageObjectsAsync(ISession session, string collection, string userId,\n            int limit = 1, string cursor = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// List advertised parties and optionally filter them by label.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"limit\">The number of objects to list.</param>\n        /// <param name=\"open\">Optionally filter by party open status.</param>\n        /// <param name=\"query\">Optionally provide a query to filter via custom party labels.</param>\n        /// <param name=\"cursor\">A cursor to fetch the next page of results, if any.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the party object list.</returns>\n        Task<IApiPartyList> ListPartiesAsync(ISession session, int limit, bool? open, string query = null, string cursor = null,\n            RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Promote one or more users in the group.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group to promote users into.</param>\n        /// <param name=\"ids\">The IDs of the users to promote.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task PromoteGroupUsersAsync(ISession session, string groupId, IEnumerable<string> ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Read one or more objects from the storage engine.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"ids\">The objects to read.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the storage batch object.</returns>\n        Task<IApiStorageObjects> ReadStorageObjectsAsync(ISession session, IApiReadStorageObjectId[] ids, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Execute a function with an input payload on the server.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">The ID of the function to execute on the server.</param>\n        /// <param name=\"payload\">The payload to send with the function call.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the RPC response.</returns>\n        Task<IApiRpc> RpcAsync(ISession session, string id, string payload, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Execute a function on the server.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">The ID of the function to execute on the server.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the RPC response.</returns>\n        Task<IApiRpc> RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Execute a function on the server without a session.\n        /// </summary>\n        /// <remarks>\n        /// This function is usually used with server side code. DO NOT USE client side.\n        /// </remarks>\n        /// <param name=\"httpKey\">The secure HTTP key used to authenticate.</param>\n        /// <param name=\"id\">The id of the function to execute on the server.</param>\n        /// <param name=\"payload\">A payload to send with the function call.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task to resolve an RPC response.</returns>\n        Task<IApiRpc> RpcAsync(string httpKey, string id, string payload, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Execute a function on the server without a session.\n        /// </summary>\n        /// <remarks>\n        /// This function is usually used with server side code. DO NOT USE client side.\n        /// </remarks>\n        /// <param name=\"httpKey\">The secure HTTP key used to authenticate.</param>\n        /// <param name=\"id\">The id of the function to execute on the server.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task to resolve an RPC response.</returns>\n        Task<IApiRpc> RpcAsync(string httpKey, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Log out a session which invalidates the authorization and refresh token.\n        /// </summary>\n        /// <param name=\"session\">The session to logout.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Log out a session which optionally invalidates the authorization and/or refresh tokens.\n        /// </summary>\n        /// <param name=\"authToken\">The authorization token to invalidate, may be <c>null</c>.</param>\n        /// <param name=\"refreshToken\">The refresh token to invalidate, may be <c>null</c>.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SessionLogoutAsync(string authToken, string refreshToken, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Refresh the session unless the current refresh token has expired. If vars are specified they will replace\n        /// what is currently stored inside the session token.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"vars\">Extra information which should be bundled inside the session token.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a new session object.</returns>\n        Task<ISession> SessionRefreshAsync(ISession session, Dictionary<string, string> vars = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Remove the Apple ID from the social profiles on the current user's account.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">The ID token received from Apple.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a new session object.</returns>\n        Task UnlinkAppleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a custom ID from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">A custom identifier usually obtained from an external authentication service.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkCustomAsync(ISession session, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a device ID from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">A device identifier usually obtained from a platform API.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkDeviceAsync(ISession session, string id, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink an email with password from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"email\">The email address of the user.</param>\n        /// <param name=\"password\">The password for the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkEmailAsync(ISession session, string email, string password, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a Facebook profile from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An OAuth access token from the Facebook SDK.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkFacebookAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a Game Center profile from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"bundleId\">The bundle ID of the Game Center application.</param>\n        /// <param name=\"playerId\">The player ID of the user in Game Center.</param>\n        /// <param name=\"publicKeyUrl\">The URL for the public encryption key.</param>\n        /// <param name=\"salt\">A random <c>NSString</c> used to compute the hash and keep it randomized.</param>\n        /// <param name=\"signature\">The verification signature data generated.</param>\n        /// <param name=\"timestamp\">The date and time that the signature was created.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkGameCenterAsync(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt,\n            string signature, string timestamp, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a Google profile from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An OAuth access token from the Google SDK.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkGoogleAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Unlink a Steam profile from the user account owned by the session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"token\">An authentication token from the Steam network.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnlinkSteamAsync(ISession session, string token, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Update the current user's account on the server.\n        /// </summary>\n        /// <param name=\"session\">The session for the user.</param>\n        /// <param name=\"username\">The new username for the user.</param>\n        /// <param name=\"displayName\">A new display name for the user.</param>\n        /// <param name=\"avatarUrl\">A new avatar url for the user.</param>\n        /// <param name=\"langTag\">A new language tag in BCP-47 format for the user.</param>\n        /// <param name=\"location\">A new location for the user.</param>\n        /// <param name=\"timezone\">New timezone information for the user.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UpdateAccountAsync(ISession session, string username, string displayName = null,\n            string avatarUrl = null, string langTag = null, string location = null, string timezone = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Update a group.\n        /// </summary>\n        /// <remarks>\n        /// The user must have the correct access permissions for the group.\n        /// </remarks>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"groupId\">The ID of the group to update.</param>\n        /// <param name=\"name\">A new name for the group.</param>\n        /// <param name=\"open\">If the group should have open membership.</param>\n        /// <param name=\"description\">A new description for the group.</param>\n        /// <param name=\"avatarUrl\">A new avatar url for the group.</param>\n        /// <param name=\"langTag\">A new language tag in BCP-47 format for the group.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UpdateGroupAsync(ISession session, string groupId, string name, bool open, string description = null,\n            string avatarUrl = null, string langTag = null, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate a purchase receipt against the Apple App Store.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"receipt\">The purchase receipt to be validated.</param>\n        /// <param name=\"persist\">Whether or not to track the receipt in the Nakama database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the validated list of purchase receipts.</returns>\n        Task<IApiValidatePurchaseResponse> ValidatePurchaseAppleAsync(ISession session, string receipt, bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate a purchase receipt against Facebook Instant Games.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"signedRequest\">Base64 encoded Facebook Instant receipt data payload.</param>\n        /// <param name=\"persist\">Whether or not to track the receipt in the Nakama database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the validated list of purchase receipts.</returns>\n        Task<IApiValidatePurchaseResponse> ValidatePurchaseFacebookInstantAsync(ISession session, string signedRequest,\n            bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate a purchase receipt against the Google Play Store.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"receipt\">The purchase receipt to be validated.</param>\n        /// <param name=\"persist\">Whether or not to track the receipt in the Nakama database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the validated list of purchase receipts.</returns>\n        Task<IApiValidatePurchaseResponse> ValidatePurchaseGoogleAsync(ISession session, string receipt, bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate a purchase receipt against the Huawei AppGallery.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"receipt\">The purchase receipt to be validated.</param>\n        /// <param name=\"signature\">The signature of the purchase receipt.</param>\n        /// <param name=\"persist\">Whether or not to track the receipt in the Nakama database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the validated list of purchase receipts.</returns>\n        Task<IApiValidatePurchaseResponse> ValidatePurchaseHuaweiAsync(ISession session, string receipt,\n            string signature, bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate an Apple subscription receipt.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"receipt\">The receipt to validate.</param>\n        /// <param name=\"persist\">Whether or not to persist the receipt to Nakama's database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns> A task which resolves to the subscription validation response. </returns>\n        Task<IApiValidateSubscriptionResponse> ValidateSubscriptionAppleAsync(ISession session, string receipt, bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Validate a Google subscription receipt.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"receipt\">The receipt to validate.</param>\n        /// <param name=\"persist\">Whether or not to persist the receipt to Nakama's database.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns> A task which resolves to the subscription validation response. </returns>\n        Task<IApiValidateSubscriptionResponse> ValidateSubscriptionGoogleAsync(ISession session, string receipt, bool persist = true, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Write a record to a leaderboard.\n        /// </summary>\n        /// <param name=\"session\">The session for the user.</param>\n        /// <param name=\"leaderboardId\">The ID of the leaderboard to write.</param>\n        /// <param name=\"score\">The score for the leaderboard record.</param>\n        /// <param name=\"subScore\">The sub score for the leaderboard record.</param>\n        /// <param name=\"metadata\">The metadata for the leaderboard record.</param>\n        /// <param name=\"operator\"> The operator for the record that can be used to override the one set in the leaderboard.\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the leaderboard record object written.</returns>\n        Task<IApiLeaderboardRecord> WriteLeaderboardRecordAsync(ISession session, string leaderboardId, long score,\n            long subScore = 0L, string metadata = null, ApiOperator apiOperator = ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Write objects to the storage engine.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"objects\">The objects to write.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the storage write acknowledgements.</returns>\n        Task<IApiStorageObjectAcks> WriteStorageObjectsAsync(ISession session, IApiWriteStorageObject[] objects, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\n        /// <summary>\n        /// Write a record to a tournament.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"tournamentId\">The ID of the tournament to write.</param>\n        /// <param name=\"score\">The score of the tournament record.</param>\n        /// <param name=\"subScore\">The sub score for the tournament record.</param>\n        /// <param name=\"metadata\">The metadata for the tournament record.</param>\n        /// <param name=\"operator\"> The operator for the record that can be used to override the one set in the tournament.\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <param name=\"canceller\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to the tournament record object written.</returns>\n        Task<IApiLeaderboardRecord> WriteTournamentRecordAsync(ISession session, string tournamentId, long score,\n            long subScore = 0L, string metadata = null, ApiOperator apiOperator = ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration = null, CancellationToken canceller = default);\n\t}\n}\n"
  },
  {
    "path": "Nakama/IHttpAdapter.cs",
    "content": "﻿/**\r\n * Copyright 2020 The Nakama Authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace Nakama\r\n{\r\n    /// <summary>\r\n    /// An adapter which implements the HTTP protocol.\r\n    /// </summary>\r\n    public interface IHttpAdapter\r\n    {\r\n        // A delegate used by the adapter to determine whether or not an error from the server\r\n        // should be retried or not (i.e., is 'transient').\r\n        TransientExceptionDelegate TransientExceptionDelegate { get; }\r\n\r\n        /// <summary>\r\n        /// The logger to use with the adapter.\r\n        /// </summary>\r\n        ILogger Logger { get; set; }\r\n\r\n        /// <summary>\r\n        /// Send a HTTP request.\r\n        /// </summary>\r\n        /// <param name=\"method\">HTTP method to use for this request.</param>\r\n        /// <param name=\"uri\">The fully qualified URI to use.</param>\r\n        /// <param name=\"headers\">Request headers to set.</param>\r\n        /// <param name=\"body\">Request content body to set.</param>\r\n        /// <param name=\"timeoutSec\">Request timeout.</param>\r\n        /// <param name=\"userCancelToken\">A user-generated token that can be used to cancel the request.</param>\r\n        /// <returns>A task which resolves to the contents of the response.</returns>\r\n        Task<string> SendAsync(string method, Uri uri, IDictionary<string, string> headers, byte[] body, int timeoutSec = 3, CancellationToken? userCancelToken = null);\r\n    }\r\n}\r\n"
  },
  {
    "path": "Nakama/IHttpAdapterUtil.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Utility methods for the <see cref=\"IHttpAdapter\"> interface.\n    /// NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile\n    /// them properly to WebGL.\n    /// </summary>\n    public static class IHttpAdapterUtil\n    {\n        /// <summary>\n        /// Performs an in-place copy of data from Nakama's error response into\n        /// the data dictionary of an <see cref=\"Nakama.ApiResponseException\"/>.\n        /// </summary>\n        /// <param name=\"adapter\">The adapter receiving the error response.</param>\n        /// <param name=\"err\"> The decoded error field from the server response.</param>\n        /// <param name=\"e\"> The exception whose data dictionary is being written to.</param>\n        public static void CopyResponseError(IHttpAdapter adapter, object err, ApiResponseException e)\n        {\n            var errString = err as string;\n            var errDict = err as Dictionary<string, object>;\n\n            if (errString != null)\n            {\n                e.Data[\"error\"] = err;\n            }\n            else if (errDict != null)\n            {\n                foreach (KeyValuePair<string, object> keyVal in errDict)\n                {\n                    e.Data[keyVal.Key] = keyVal.Value;\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/ILogger.cs",
    "content": "// Copyright 2018 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A simple logger to write log messages to an output sink.\n    /// </summary>\n    public interface ILogger\n    {\n        /// <summary>\n        /// Logs a formatted string with the DEBUG level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void DebugFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the ERROR level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void ErrorFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the INFO level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void InfoFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the WARN level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void WarnFormat(string format, params object[] args);\n    }\n}\n"
  },
  {
    "path": "Nakama/IMatch.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A multiplayer match.\n    /// </summary>\n    public interface IMatch\n    {\n        /// <summary>\n        /// If this match has an authoritative handler on the server.\n        /// </summary>\n        bool Authoritative { get; }\n\n        /// <summary>\n        /// The unique match identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// A label for the match which can be filtered on.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// The presences already in the match.\n        /// </summary>\n        IEnumerable<IUserPresence> Presences { get; }\n\n        /// <summary>\n        /// The number of users currently in the match.\n        /// </summary>\n        int Size { get; }\n\n        /// <summary>\n        /// The current user in this match. i.e. Yourself.\n        /// </summary>\n        IUserPresence Self { get; }\n\n        /// <summary>\n        /// Apply the joins and leaves from a presence event to the presences tracked by the match.\n        /// </summary>\n        void UpdatePresences(IMatchPresenceEvent presenceEvent);\n    }\n\n    /// <inheritdoc cref=\"IMatch\"/>\n    internal class Match : IMatch\n    {\n        [DataMember(Name = \"authoritative\"), Preserve] public bool Authoritative { get; set; }\n\n        [DataMember(Name = \"match_id\"), Preserve] public string Id { get; set; }\n\n        [DataMember(Name = \"label\"), Preserve] public string Label { get; set; }\n\n        public IEnumerable<IUserPresence> Presences => _presences ?? UserPresence.NoPresences;\n        [DataMember(Name = \"presences\"), Preserve] public List<UserPresence> _presences { get; set; }\n\n        [DataMember(Name = \"size\"), Preserve] public int Size { get; set; }\n\n        public IUserPresence Self => _self;\n        [DataMember(Name = \"self\"), Preserve] public UserPresence _self { get; set; }\n\n        public override string ToString()\n        {\n            var presences = string.Join(\", \", Presences);\n            return\n                $\"Match(Authoritative={Authoritative}, Id='{Id}', Label='{Label}', Presences=[{presences}], Size={Size}, Self={Self})\";\n        }\n\n        public void UpdatePresences(IMatchPresenceEvent presenceEvent)\n        {\n            if (presenceEvent.MatchId != Id)\n            {\n                throw new InvalidOperationException(\"Tried updating presences belonging to the wrong match.\");\n            }\n\n            _presences = PresenceUtil.CopyJoinsAndLeaves(_presences, presenceEvent.Joins, presenceEvent.Leaves);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IMatchPresenceEvent.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A batch of join and leave presences for a match.\n    /// </summary>\n    public interface IMatchPresenceEvent\n    {\n        /// <summary>\n        /// Presences of users who joined the match.\n        /// </summary>\n        IEnumerable<IUserPresence> Joins { get; }\n\n        /// <summary>\n        /// Presences of users who left the match.\n        /// </summary>\n        IEnumerable<IUserPresence> Leaves { get; }\n\n        /// <summary>\n        /// The unique match identifier.\n        /// </summary>\n        string MatchId { get; }\n    }\n\n    /// <inheritdoc cref=\"IMatchPresenceEvent\"/>\n    internal class MatchPresenceEvent : IMatchPresenceEvent\n    {\n        public IEnumerable<IUserPresence> Joins => _joins ?? UserPresence.NoPresences;\n        [DataMember(Name = \"joins\"), Preserve] public List<UserPresence> _joins { get; set; }\n\n        public IEnumerable<IUserPresence> Leaves => _leaves ?? UserPresence.NoPresences;\n        [DataMember(Name = \"leaves\"), Preserve] public List<UserPresence> _leaves { get; set; }\n\n        [DataMember(Name = \"match_id\"), Preserve] public string MatchId { get; set; }\n\n        public override string ToString()\n        {\n            var joins = string.Join(\", \", Joins);\n            var leaves = string.Join(\", \", Leaves);\n            return $\"MatchPresenceEvent(Joins=[{joins}], Leaves=[{leaves}], MatchId='{MatchId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IMatchState.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Some game state update in a match.\n    /// </summary>\n    public interface IMatchState\n    {\n        /// <summary>\n        /// The unique match identifier.\n        /// </summary>\n        string MatchId { get; }\n\n        /// <summary>\n        /// The operation code for the state change.\n        /// </summary>\n        /// <remarks>\n        /// This value can be used to mark the type of the contents of the state.\n        /// </remarks>\n        long OpCode { get; }\n\n        /// <summary>\n        /// The byte contents of the state change.\n        /// </summary>\n        byte[] State { get; }\n\n        /// <summary>\n        /// Information on the user who sent the state change.\n        /// </summary>\n        IUserPresence UserPresence { get; }\n    }\n\n    /// <inheritdoc cref=\"IMatchState\"/>\n    internal class MatchState : IMatchState\n    {\n        private static readonly byte[] NoBytes = new byte[0];\n\n        [DataMember(Name = \"match_id\"), Preserve] public string MatchId { get; set; }\n\n        public long OpCode => Convert.ToInt64(OpCodeField);\n        [DataMember(Name = \"op_code\"), Preserve] public string OpCodeField { get; set; }\n\n        public byte[] State => StateField == null ? NoBytes :  Convert.FromBase64String(StateField);\n        [DataMember(Name = \"data\"), Preserve] public string StateField { get; set; }\n\n        public IUserPresence UserPresence => UserPresenceField;\n        [DataMember(Name = \"presence\"), Preserve] public UserPresence UserPresenceField { get; set; }\n\n        public override string ToString()\n        {\n            return $\"MatchState(MatchId='{MatchId}', OpCode={OpCode}, State='{State}', UserPresence={UserPresence})\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IMatchmakerMatched.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// The result of a successful matchmaker operation sent to the server.\n    /// </summary>\n    public interface IMatchmakerMatched\n    {\n        /// <summary>\n        /// The id used to join the match.\n        /// </summary>\n        /// <remarks>\n        /// A match ID used to join the match.\n        /// </remarks>\n        string MatchId { get; }\n\n        /// <summary>\n        /// The ticket sent by the server when the user requested to matchmake for other players.\n        /// </summary>\n        string Ticket { get; }\n\n        /// <summary>\n        /// The token used to join a match.\n        /// </summary>\n        string Token { get; }\n\n        /// <summary>\n        /// The other users matched with this user and the parameters they sent.\n        /// </summary>\n        IEnumerable<IMatchmakerUser> Users { get; }\n\n        /// <summary>\n        /// The current user who matched with opponents.\n        /// </summary>\n        IMatchmakerUser Self { get; }\n    }\n\n    /// <summary>\n    /// The user with the parameters they sent to the server when asking for opponents.\n    /// </summary>\n    public interface IMatchmakerUser\n    {\n        /// <summary>\n        /// The numeric properties which this user asked to matchmake with.\n        /// </summary>\n        IDictionary<string, double> NumericProperties { get; }\n\n        /// <summary>\n        /// The presence of the user.\n        /// </summary>\n        IUserPresence Presence { get; }\n\n        /// <summary>\n        /// The string properties which this user asked to matchmake with.\n        /// </summary>\n        IDictionary<string, string> StringProperties { get; }\n    }\n\n    /// <inheritdoc cref=\"IMatchmakerMatched\"/>\n    internal class MatchmakerMatched : IMatchmakerMatched\n    {\n        [DataMember(Name = \"match_id\"), Preserve] public string MatchId { get; set; }\n\n        [DataMember(Name = \"ticket\"), Preserve] public string Ticket { get; set; }\n\n        [DataMember(Name = \"token\"), Preserve] public string Token { get; set; }\n\n        public IEnumerable<IMatchmakerUser> Users => _users ?? new List<MatchmakerUser>(0);\n        [DataMember(Name = \"users\"), Preserve] public List<MatchmakerUser> _users { get; set; }\n\n        public IMatchmakerUser Self => _self;\n        [DataMember(Name = \"self\"), Preserve] public MatchmakerUser _self { get; set; }\n\n        public override string ToString()\n        {\n            var users = string.Join(\", \", Users);\n            return\n                $\"MatchmakerMatched(MatchId='{MatchId}', Ticket='{Ticket}', Token='{Token}', Users=[{users}], Self={Self})\";\n        }\n    }\n\n    /// <inheritdoc cref=\"IMatchmakerUser\"/>\n    internal class MatchmakerUser : IMatchmakerUser\n    {\n        public IDictionary<string, double> NumericProperties => _numericProperties ?? new Dictionary<string, double>();\n\n        [DataMember(Name = \"numeric_properties\"), Preserve]\n        public Dictionary<string, double> _numericProperties { get; set; }\n\n        public IUserPresence Presence => _presence;\n        [DataMember(Name = \"presence\"), Preserve] public UserPresence _presence { get; set; }\n\n        public IDictionary<string, string> StringProperties => _stringProperties ?? new Dictionary<string, string>();\n\n        [DataMember(Name = \"string_properties\"), Preserve]\n        public Dictionary<string, string> _stringProperties { get; set; }\n\n        public override string ToString()\n        {\n            return\n                $\"MatchmakerUser(NumericProperties={NumericProperties}, Presence={Presence}, StringProperties={StringProperties})\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IMatchmakerTicket.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// The matchmaker ticket received from the server.\n    /// </summary>\n    public interface IMatchmakerTicket\n    {\n        /// <summary>\n        /// The ticket generated by the matchmaker.\n        /// </summary>\n        string Ticket { get; }\n    }\n\n    /// <inheritdoc cref=\"IMatchmakerMatched\"/>\n    internal class MatchmakerTicket : IMatchmakerTicket\n    {\n        [DataMember(Name=\"ticket\"), Preserve]\n        public string Ticket { get; set; }\n\n        public override string ToString()\n        {\n            return $\"MatchmakerTicket(Ticket='{Ticket}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IParty.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming information about a party.\n    /// </summary>\n    public interface IParty\n    {\n        /// <summary>\n        /// The unique party identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// True, if the party is open to join.\n        /// </summary>\n        bool Open { get; }\n\n        /// <summary>\n        /// True, if the party is hidden from listing.\n        /// </summary>\n        bool Hidden { get; }\n\n        /// <summary>\n        /// The maximum number of party members.\n        /// </summary>\n        int MaxSize { get; }\n\n        /// <summary>\n        /// Label to filter results in Party listing.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// The current user in this party. i.e. Yourself.\n        /// </summary>\n        IUserPresence Self { get; }\n\n        /// <summary>\n        /// The current party leader.\n        /// </summary>\n        IUserPresence Leader { get; }\n\n        /// <summary>\n        /// All members currently in the party.\n        /// </summary>\n        IEnumerable<IUserPresence> Presences { get; }\n\n        /// <summary>\n        /// Apply the joins and leaves from a presence event to the presences tracked by the party.\n        /// </summary>\n        void UpdatePresences(IPartyPresenceEvent presenceEvent);\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyClose.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// End a party, kicking all party members and closing it.\n    /// </summary>\n    public interface IPartyClose\n    {\n        /// <summary>\n        /// The ID of the party to close.\n        /// </summary>\n        string PartyId { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyData.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming party data delivered from the server.\n    /// </summary>\n    public interface IPartyData\n    {\n        /// <summary>\n        /// The ID of the party.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// A reference to the user presence that sent this data, if any.\n        /// </summary>\n        IUserPresence Presence { get; }\n\n        /// <summary>\n        /// The operation code the message was sent with.\n        /// </summary>\n        long OpCode { get; }\n\n        /// <summary>\n        /// Data payload, if any.\n        /// </summary>\n        byte[] Data { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyJoinRequest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming notification for one or more new presences attempting to join the party.\n    /// </summary>\n    public interface IPartyJoinRequest\n    {\n        /// <summary>\n        /// The ID of the party to get a list of join requests for.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// Presences attempting to join, or who have joined.\n        /// </summary>\n        IEnumerable<IUserPresence> Presences { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyLeader.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Announcement of a new party leader.\n    /// </summary>\n    public interface IPartyLeader\n    {\n        /// <summary>\n        /// The ID of the party to announce the new leader for.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// The presence of the new party leader.\n        /// </summary>\n        IUserPresence Presence { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyMatchmakerTicket.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A response from starting a new party matchmaking process.\n    /// </summary>\n    public interface IPartyMatchmakerTicket\n    {\n        /// <summary>\n        /// The ID of the party.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// The ticket that can be used to cancel matchmaking.\n        /// </summary>\n        string Ticket { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyPresenceEvent.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Presence update for a particular party.\n    /// </summary>\n    public interface IPartyPresenceEvent\n    {\n        /// <summary>\n        /// The ID of the party.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// The user presences that have just joined the party.\n        /// </summary>\n        IEnumerable<IUserPresence> Joins { get; }\n\n        /// <summary>\n        /// The user presences that have just left the party.\n        /// </summary>\n        IEnumerable<IUserPresence> Leaves { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/IPartyUpdate.cs",
    "content": "// Copyright 2025 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming information about a party.\n    /// </summary>\n    public interface IPartyUpdate\n    {\n        /// <summary>\n        /// The unique party identifier.\n        /// </summary>\n        string PartyId { get; }\n\n        /// <summary>\n        /// True, if the party is open to join.\n        /// </summary>\n        bool Open { get; }\n\n        /// <summary>\n        /// True, if the party is show in listing.\n        /// </summary>\n        bool Hidden { get; }\n\n        /// <summary>\n        /// Label to filter results in Party listing.\n        /// </summary>\n        string Label { get; }\n    }\n}\n"
  },
  {
    "path": "Nakama/ISession.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A session authenticated for a user with Nakama server.\n    /// </summary>\n    public interface ISession\n    {\n        /// <summary>\n        /// The authorization token used to construct this session.\n        /// </summary>\n        string AuthToken { get; }\n\n        /// <summary>\n        /// If the user account for this session was just created.\n        /// </summary>\n        bool Created { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when this session was created.\n        /// </summary>\n        long CreateTime { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when this session will expire.\n        /// </summary>\n        long ExpireTime { get; }\n\n        /// <summary>\n        /// If the session has expired.\n        /// </summary>\n        bool IsExpired { get; }\n\n        /// <summary>\n        /// If the refresh token has expired.\n        /// </summary>\n        bool IsRefreshExpired { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when the refresh token will expire.\n        /// </summary>\n        long RefreshExpireTime { get; }\n\n        /// <summary>\n        /// Refresh token that can be used for session token renewal.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// Any custom properties associated with this session.\n        /// </summary>\n        IDictionary<string, string> Vars { get; }\n\n        /// <summary>\n        /// The username of the user who owns this session.\n        /// </summary>\n        string Username { get; }\n\n        /// <summary>\n        /// The ID of the user who owns this session.\n        /// </summary>\n        string UserId { get; }\n\n        /// <summary>\n        /// Check the session has expired against the offset time.\n        /// </summary>\n        /// <param name=\"offset\">The datetime to compare against this session.</param>\n        /// <returns>If the session has expired.</returns>\n        bool HasExpired(DateTime offset);\n\n        /// <summary>\n        /// Check if the refresh token has expired against the offset time.\n        /// </summary>\n        /// <param name=\"offset\">The datetime to compare against this refresh token.</param>\n        /// <returns>If refresh token has expired.</returns>\n        bool HasRefreshExpired(DateTime offset);\n    }\n}\n"
  },
  {
    "path": "Nakama/ISocket.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A socket to interact with Nakama server.\n    /// </summary>\n    public interface ISocket\n    {\n        /// <summary>\n        /// Received when a socket is closed.\n        /// </summary>\n        event Action<string> Closed;\n\n        /// <summary>\n        /// Received when a socket is connected.\n        /// </summary>\n        event Action Connected;\n\n        /// <summary>\n        /// Received a chat channel message.\n        /// </summary>\n        event Action<IApiChannelMessage> ReceivedChannelMessage;\n\n        /// <summary>\n        /// Received a presence change for joins and leaves with users in a chat channel.\n        /// </summary>\n        event Action<IChannelPresenceEvent> ReceivedChannelPresence;\n\n        /// <summary>\n        /// Received when an error occurs on the socket.\n        /// </summary>\n        event Action<Exception> ReceivedError;\n\n        /// <summary>\n        /// Received a matchmaker matched message.\n        /// </summary>\n        event Action<IMatchmakerMatched> ReceivedMatchmakerMatched;\n\n        /// <summary>\n        /// Received a message from a multiplayer match.\n        /// </summary>\n        event Action<IMatchState> ReceivedMatchState;\n\n        /// <summary>\n        /// Received a presence change for joins and leaves of users in a multiplayer match.\n        /// </summary>\n        event Action<IMatchPresenceEvent> ReceivedMatchPresence;\n\n        /// <summary>\n        /// Received a notification for the current user.\n        /// </summary>\n        event Action<IApiNotification> ReceivedNotification;\n\n        /// <summary>\n        /// Received a party event. This will occur when the current user's invitation request is accepted\n        /// by the party leader of a closed party.\n        /// </summary>\n        event Action<IParty> ReceivedParty;\n\n        /// <summary>\n        /// Received a party close event.\n        /// </summary>\n        event Action<IPartyClose> ReceivedPartyClose;\n\n        /// <summary>\n        /// Received custom party data.\n        /// </summary>\n        event Action<IPartyData> ReceivedPartyData;\n\n        /// <summary>\n        /// Received a request to join the party.\n        /// </summary>\n        event Action<IPartyJoinRequest> ReceivedPartyJoinRequest;\n\n        /// <summary>\n        /// Received a change in the party leader.\n        /// </summary>\n        event Action<IPartyLeader> ReceivedPartyLeader;\n\n        /// <summary>\n        /// Received a new matchmaker ticket for the party.\n        /// </summary>\n        event Action<IPartyMatchmakerTicket> ReceivedPartyMatchmakerTicket;\n\n        /// <summary>\n        /// Received a new presence event in the party.\n        /// </summary>\n        event Action<IPartyPresenceEvent> ReceivedPartyPresence;\n\n        /// <summary>\n        /// Received a party label and/or open/closed change.\n        /// </summary>\n        event Action<IPartyUpdate> ReceivedPartyUpdate;\n\n        /// <summary>\n        /// Received a presence change for when a user updated their online status.\n        /// </summary>\n        event Action<IStatusPresenceEvent> ReceivedStatusPresence;\n\n        /// <summary>\n        /// Received a presence change for joins and leaves on a realtime stream.\n        /// </summary>\n        event Action<IStreamPresenceEvent> ReceivedStreamPresence;\n\n        /// <summary>\n        /// Received a message from a realtime stream.\n        /// </summary>\n        event Action<IStreamState> ReceivedStreamState;\n\n        /// <summary>\n        /// If the socket is connected.\n        /// </summary>\n        bool IsConnected { get; }\n\n        /// <summary>\n        /// If the socket is connecting.\n        /// </summary>\n        bool IsConnecting { get; }\n\n        /// <summary>\n        /// Accept a party member's request to join the party.\n        /// </summary>\n        /// <param name=\"partyId\">The party ID to accept the join request for.</param>\n        /// <param name=\"presence\"> The presence to accept as a party member. </param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task AcceptPartyMemberAsync(string partyId, IUserPresence presence);\n\n        /// <summary>\n        /// Join the matchmaker pool and search for opponents on the server.\n        /// </summary>\n        /// <param name=\"query\">The matchmaker query to search for opponents.</param>\n        /// <param name=\"minCount\">The minimum number of players to compete against in a match.</param>\n        /// <param name=\"maxCount\">The maximum number of players to compete against in a match.</param>\n        /// <param name=\"stringProperties\">A set of key/value properties to provide to searches.</param>\n        /// <param name=\"numericProperties\">A set of key/value numeric properties to provide to searches.</param>\n        /// <param name=\"countMultiple\">An optional integer to force the matchmaker to match in multiples of.</param>\n        /// <returns>A task which resolves to a matchmaker ticket object.</returns>\n        Task<IMatchmakerTicket> AddMatchmakerAsync(string query = \"*\", int minCount = 2, int maxCount = 8,\n            Dictionary<string, string> stringProperties = null, Dictionary<string, double> numericProperties = null, int? countMultiple = null);\n\n        /// <summary>\n        /// Begin matchmaking as a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID.</param>\n        /// <param name=\"query\">Filter query used to identify suitable users.</param>\n        /// <param name=\"minCount\">Minimum total user count to match together.</param>\n        /// <param name=\"maxCount\">Maximum total user count to match together.</param>\n        /// <param name=\"stringProperties\">String properties.</param>\n        /// <param name=\"numericProperties\">Numeric properties.</param>\n        /// <param name=\"countMultiple\">An optional integer to force the matchmaker to match in multiples of.</param>\n        /// <returns>A task which resolves to a party matchmaker ticket object.</returns>\n        Task<IPartyMatchmakerTicket> AddMatchmakerPartyAsync(string partyId, string query, int minCount, int maxCount,\n            Dictionary<string, string> stringProperties = null, Dictionary<string, double> numericProperties = null, int? countMultiple = null);\n\n        /// <summary>\n        /// End a party, kicking all party members and closing it.\n        /// </summary>\n        /// <param name=\"partyId\">The ID of the party.</param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task ClosePartyAsync(string partyId);\n\n        /// <summary>\n        /// Close the socket connection to the server.\n        /// </summary>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task CloseAsync();\n\n        /// <summary>\n        /// Connect to the server.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"appearOnline\">If the user who appear online to other users.</param>\n        /// <param name=\"connectTimeout\">The time allowed for the socket connection to be established.</param>\n        /// <param name=\"langTag\">The language tag of the user on the connected socket.</param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task ConnectAsync(ISession session, bool appearOnline = false,\n            int connectTimeout = Socket.DefaultConnectTimeout, string langTag = \"en\");\n\n        /// <summary>\n        /// Create a multiplayer match on the server.\n        /// </summary>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task<IMatch> CreateMatchAsync(string matchName = null);\n\n        /// <summary>\n        /// Create a party.\n        /// </summary>\n        /// <param name=\"open\">Whether the party will require join requests to be approved by the party leader.</param>\n        /// <param name=\"hidden\">Whether the party should be hidden from client listing.</param>\n        /// <param name=\"maxSize\">Maximum number of party members.</param>\n        /// <param name=\"label\">An optional label to set for party listing.</param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task<IParty> CreatePartyAsync(bool open, bool hidden, int maxSize, string label = null);\n\n        /// <summary>\n        /// Subscribe to one or more users for their status updates.\n        /// </summary>\n        /// <param name=\"users\">The users.</param>\n        /// <returns>A task which resolves to the current statuses for the users.</returns>\n        Task<IStatus> FollowUsersAsync(IEnumerable<IApiUser> users);\n\n        /// <summary>\n        /// Subscribe to one or more users for their status updates.\n        /// </summary>\n        /// <param name=\"userIDs\">The IDs of users.</param>\n        /// <param name=\"usernames\">The usernames of the users.</param>\n        /// <returns>A task which resolves to the current statuses for the users.</returns>\n        Task<IStatus> FollowUsersAsync(IEnumerable<string> userIDs, IEnumerable<string> usernames = null);\n\n        /// <summary>\n        /// Join a chat channel on the server.\n        /// </summary>\n        /// <param name=\"target\">The target channel to join.</param>\n        /// <param name=\"type\">The type of channel to join.</param>\n        /// <param name=\"persistence\">If chat messages should be stored.</param>\n        /// <param name=\"hidden\">If the current user should be hidden on the channel.</param>\n        /// <returns>A task which resolves to a chat channel object.</returns>\n        Task<IChannel> JoinChatAsync(string target, ChannelType type, bool persistence = false, bool hidden = false);\n\n        /// <summary>\n        /// Join a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID</param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task JoinPartyAsync(string partyId);\n\n        /// <summary>\n        /// Join a multiplayer match with the matchmaker matched object.\n        /// </summary>\n        /// <param name=\"matched\">A matchmaker matched object.</param>\n        /// <returns>A task which resolves to a multiplayer match.</returns>\n        Task<IMatch> JoinMatchAsync(IMatchmakerMatched matched);\n\n        /// <summary>\n        /// Join a multiplayer match by ID.\n        /// </summary>\n        /// <param name=\"matchId\">The ID of the match to attempt to join.</param>\n        /// <param name=\"metadata\">An optional set of key-value metadata pairs to be passed to the match handler.</param>\n        /// <returns>A task which resolves to a multiplayer match.</returns>\n        Task<IMatch> JoinMatchAsync(string matchId, IDictionary<string, string> metadata = null);\n\n        /// <summary>\n        /// Leave a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channel\">The chat channel to leave.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LeaveChatAsync(IChannel channel);\n\n        /// <summary>\n        /// Leave a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channelId\">The ID of the chat channel to leave.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LeaveChatAsync(string channelId);\n\n        /// <summary>\n        /// Leave a multiplayer match on the server.\n        /// </summary>\n        /// <param name=\"match\">The multiplayer match to leave.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LeaveMatchAsync(IMatch match);\n\n        /// <summary>\n        /// Leave a multiplayer match on the server.\n        /// </summary>\n        /// <param name=\"matchId\">The multiplayer match to leave.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task LeaveMatchAsync(string matchId);\n\n        /// <summary>\n        /// Leave the party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID.</param>\n        /// <returns>A task to represent the asynchronous operation.</returns>\n        Task LeavePartyAsync(string partyId);\n\n        /// <summary>\n        /// Request a list of pending join requests for a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID.</param>\n        /// <returns>A task which resolves to a list of all party join requests.</returns>\n        Task<IPartyJoinRequest> ListPartyJoinRequestsAsync(string partyId);\n\n        /// <summary>\n        /// Promote a new party leader.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID.</param>\n        /// <param name=\"partyMember\">The presence of an existing party member to promote as the new leader.</param>\n        /// <returns>A task which resolves to an announcement of a new party leader.</returns>\n        Task PromotePartyMemberAsync(string partyId, IUserPresence partyMember);\n\n        /// <summary>\n        /// Remove a chat message from a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channel\">The chat channel with the message to remove.</param>\n        /// <param name=\"messageId\">The ID of the chat message to remove.</param>\n        /// <returns>A task which resolves to an acknowledgement of the removed message.</returns>\n        Task<IChannelMessageAck> RemoveChatMessageAsync(IChannel channel, string messageId);\n\n        /// <summary>\n        /// Remove a chat message from a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channelId\">The ID of the chat channel with the message to remove.</param>\n        /// <param name=\"messageId\">The ID of the chat message to remove.</param>\n        /// <returns>A task which resolves to an acknowledgement of the removed message.</returns>\n        Task<IChannelMessageAck> RemoveChatMessageAsync(string channelId, string messageId);\n\n        /// <summary>\n        /// Leave the matchmaker pool with the ticket.\n        /// </summary>\n        /// <param name=\"ticket\">The ticket returned by the matchmaker on join.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task RemoveMatchmakerAsync(IMatchmakerTicket ticket);\n\n        /// <summary>\n        /// Leave the matchmaker pool with the ticket contents.\n        /// </summary>\n        /// <param name=\"ticket\">The contents of the ticket returned by the matchmaker on join.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task RemoveMatchmakerAsync(string ticket);\n\n        /// <summary>\n        /// Cancel a party matchmaking process using a ticket.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID.</param>\n        /// <param name=\"ticket\">The ticket to cancel.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task RemoveMatchmakerPartyAsync(string partyId, string ticket);\n\n        /// <summary>\n        /// Kick a party member, or decline a request to join.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID to remove/reject from.</param>\n        /// <param name=\"presence\">The presence to remove or reject.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task RemovePartyMemberAsync(string partyId, IUserPresence presence);\n\n        /// <summary>\n        /// Execute an RPC function to the server.\n        /// </summary>\n        /// <param name=\"funcId\">The ID of the function to execute.</param>\n        /// <param name=\"payload\">An (optional) payload to send to the server.</param>\n        /// <returns>A task which resolves to the RPC function response object.</returns>\n        Task<IApiRpc> RpcAsync(string funcId, string payload = null);\n\n        /// <summary>\n        /// Execute an RPC function to the server.\n        /// </summary>\n        /// <param name=\"funcId\">The ID of the function to execute.</param>\n        /// <param name=\"payload\">An (optional) payload sent to the server from the byte buffer.</param>\n        /// <returns>A task which resolves to the RPC function response object.</returns>\n        Task<IApiRpc> RpcAsync(string funcId, ArraySegment<byte> payload);\n\n        /// <summary>\n        /// Send input to a multiplayer match on the server.\n        /// </summary>\n        /// /// <remarks>\n        /// When no presences are supplied the new match state will be sent to all presences.\n        /// </remarks>\n        /// <param name=\"matchId\">The ID of the match.</param>\n        /// <param name=\"opCode\">An operation code for the input.</param>\n        /// <param name=\"state\">The input data to send.</param>\n        /// <param name=\"presences\">The presences in the match who should receive the input.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendMatchStateAsync(string matchId, long opCode, string state,\n            IEnumerable<IUserPresence> presences = null);\n\n        /// <summary>\n        /// Send input to a multiplayer match on the server.\n        /// </summary>\n        /// <param name=\"matchId\">The ID of the match.</param>\n        /// <param name=\"opCode\">An operation code for the input.</param>\n        /// <param name=\"state\">The input data to send from the byte buffer.</param>\n        /// <param name=\"presences\">The presences in the match who should receive the input.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendMatchStateAsync(string matchId, long opCode, ArraySegment<byte> state,\n            IEnumerable<IUserPresence> presences = null);\n\n        /// <summary>\n        /// Send input to a multiplayer match on the server.\n        /// </summary>\n        /// /// <remarks>\n        /// When no presences are supplied the new match state will be sent to all presences.\n        /// </remarks>\n        /// <param name=\"matchId\">The ID of the match.</param>\n        /// <param name=\"opCode\">An operation code for the input.</param>\n        /// <param name=\"state\">The input data to send.</param>\n        /// <param name=\"presences\">The presences in the match who should receive the input.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendMatchStateAsync(string matchId, long opCode, byte[] state,\n            IEnumerable<IUserPresence> presences = null);\n\n        /// <summary>\n        /// Send data to a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID to send to.</param>\n        /// <param name=\"opCode\">Op code value.</param>\n        /// <param name=\"data\">The input data to send from the byte buffer, if any.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendPartyDataAsync(string partyId, long opCode, ArraySegment<byte> data);\n\n        /// <summary>\n        /// Send data to a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID to send to.</param>\n        /// <param name=\"opCode\">Op code value.</param>\n        /// <param name=\"data\">Data payload, if any.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendPartyDataAsync(string partyId, long opCode, string data);\n\n        /// <summary>\n        /// Send data to a party.\n        /// </summary>\n        /// <param name=\"partyId\">Party ID to send to.</param>\n        /// <param name=\"opCode\">Op code value.</param>\n        /// <param name=\"data\">Data payload, if any.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task SendPartyDataAsync(string partyId, long opCode, byte[] data);\n\n        /// <summary>\n        /// Unfollow one or more users from their status updates.\n        /// </summary>\n        /// <param name=\"users\">The users to unfollow.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnfollowUsersAsync(IEnumerable<IApiUser> users);\n\n        /// <summary>\n        /// Unfollow one or more users from their status updates.\n        /// </summary>\n        /// <param name=\"userIDs\">The IDs of the users to unfollow.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UnfollowUsersAsync(IEnumerable<string> userIDs);\n\n        /// <summary>\n        /// Update a chat message on a chat channel in the server.\n        /// </summary>\n        /// <param name=\"channel\">The chat channel with the message to update.</param>\n        /// <param name=\"messageId\">The ID of the message to update.</param>\n        /// <param name=\"content\">The new contents of the chat message.</param>\n        /// <returns>A task which resolves to an acknowledgement of the updated message.</returns>\n        Task<IChannelMessageAck> UpdateChatMessageAsync(IChannel channel, string messageId, string content);\n\n        /// <summary>\n        /// Update a chat message on a chat channel in the server.\n        /// </summary>\n        /// <param name=\"channelId\">The ID of the chat channel with the message to update.</param>\n        /// <param name=\"messageId\">The ID of the message to update.</param>\n        /// <param name=\"content\">The new contents of the chat message.</param>\n        /// <returns>A task which resolves to an acknowledgement of the updated message.</returns>\n        Task<IChannelMessageAck> UpdateChatMessageAsync(string channelId, string messageId, string content);\n\n        /// <summary>\n        /// Update party label and optionally whether it is open or closed.\n        /// </summary>\n        /// <param name=\"partyId\">The Party ID.</param>\n        /// <param name=\"open\">Whether the party is open or closed.</param>\n        /// <param name=\"hidden\">Whether the party should be hidden from client listing.</param>\n        /// <param name=\"label\">The new custom label to set to the party.</param>\n        /// <returns></returns>\n        Task<IPartyUpdate> UpdatePartyAsync(string partyId, bool open, bool hidden, string label = \"\");\n\n        /// <summary>\n        /// Update the status for the current user online.\n        /// </summary>\n        /// <param name=\"status\">The new status for the user.</param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        Task UpdateStatusAsync(string status);\n\n        /// <summary>\n        /// Send a chat message to a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channel\">The chat channel to send onto.</param>\n        /// <param name=\"content\">The contents of the message to send.</param>\n        /// <returns>A task which resolves to the acknowledgement of the chat message write.</returns>\n        Task<IChannelMessageAck> WriteChatMessageAsync(IChannel channel, string content);\n\n        /// <summary>\n        /// Send a chat message to a chat channel on the server.\n        /// </summary>\n        /// <param name=\"channelId\">The ID of the chat channel to send onto.</param>\n        /// <param name=\"content\">The contents of the message to send.</param>\n        /// <returns>A task which resolves to the acknowledgement of the chat message write.</returns>\n        Task<IChannelMessageAck> WriteChatMessageAsync(string channelId, string content);\n    }\n}\n"
  },
  {
    "path": "Nakama/ISocketAdapter.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An adapter which implements a socket with a protocol supported by Nakama.\n    /// </summary>\n    public interface ISocketAdapter\n    {\n        /// <summary>\n        /// An event dispatched when the socket is connected.\n        /// </summary>\n        event Action Connected;\n\n        /// <summary>\n        /// An event dispatched when the socket is disconnected.\n        /// </summary>\n        event Action<string> Closed;\n\n        /// <summary>\n        /// An event dispatched when the socket has an error when connected.\n        /// </summary>\n        event Action<Exception> ReceivedError;\n\n        /// <summary>\n        /// An event dispatched when the socket receives a message.\n        /// </summary>\n        event Action<ArraySegment<byte>> Received;\n\n        /// <summary>\n        /// If the socket is connected.\n        /// </summary>\n        bool IsConnected { get; }\n\n        /// <summary>\n        /// If the socket is connecting.\n        /// </summary>\n        bool IsConnecting { get; }\n\n        /// <summary>\n        /// Close the socket with an asynchronous operation.\n        /// </summary>\n        Task CloseAsync();\n\n        /// <summary>\n        /// Connect to the server with an asynchronous operation.\n        /// </summary>\n        /// <param name=\"uri\">The URI of the server.</param>\n        /// <param name=\"timeout\">The timeout for the connect attempt on the socket.</param>\n        Task ConnectAsync(Uri uri, int timeout);\n\n        /// <summary>\n        /// Send data to the server with an asynchronous operation.\n        /// </summary>\n        /// <param name=\"buffer\">The buffer with the message to send.</param>\n        /// <param name=\"reliable\">If the message should be sent reliably (will be ignored by some protocols).</param>\n        /// <param name=\"canceller\">A cancellation token used to propagate when the operation should be canceled.</param>\n        Task SendAsync(ArraySegment<byte> buffer, bool reliable = true, CancellationToken canceller = default);\n    }\n}\n"
  },
  {
    "path": "Nakama/IStatus.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Receive status updates for users.\n    /// </summary>\n    public interface IStatus\n    {\n        /// <summary>\n        /// The status events for the users followed.\n        /// </summary>\n        IEnumerable<IUserPresence> Presences { get; }\n    }\n\n    /// <inheritdoc cref=\"IStatus\"/>\n    internal class Status : IStatus\n    {\n        public IEnumerable<IUserPresence> Presences => PresencesField ?? UserPresence.NoPresences;\n        [DataMember(Name=\"presences\"), Preserve]\n        public List<UserPresence> PresencesField { get; set; }\n\n        public override string ToString()\n        {\n            var presences = string.Join(\", \", Presences);\n            return $\"Status(Presences=[{presences}])\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IStatusPresenceEvent.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A status update event about other users who've come online or gone offline.\n    /// </summary>\n    public interface IStatusPresenceEvent\n    {\n        /// <summary>\n        /// Presences of users who left the server.\n        /// </summary>\n        /// <remarks>\n        /// This leave information is in response to a subscription made to be notified when a user goes offline.\n        /// </remarks>\n        IEnumerable<IUserPresence> Leaves { get; }\n\n        /// <summary>\n        /// Presences of users who joined the server.\n        /// </summary>\n        /// <remarks>\n        /// This join information is in response to a subscription made to be notified when a user comes online.\n        /// </remarks>\n        IEnumerable<IUserPresence> Joins { get; }\n    }\n\n    /// <inheritdoc cref=\"IStatusPresenceEvent\"/>\n    internal class StatusPresenceEvent : IStatusPresenceEvent\n    {\n        public IEnumerable<IUserPresence> Leaves => _leaves ?? UserPresence.NoPresences;\n        [DataMember(Name = \"leaves\"), Preserve] public List<UserPresence> _leaves { get; set; }\n\n        public IEnumerable<IUserPresence> Joins => _joins ?? UserPresence.NoPresences;\n        [DataMember(Name = \"joins\"), Preserve] public List<UserPresence> _joins { get; set; }\n\n        public override string ToString()\n        {\n            var joins = string.Join(\", \", Joins);\n            var leaves = string.Join(\", \", Leaves);\n            return $\"StatusPresenceEvent(Leaves=[{leaves}], Joins=[{joins}])\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/IStreamPresenceEvent.cs",
    "content": "// Copyright 2018 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\nusing static System.String;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A batch of joins and leaves on the low level stream.\n    /// </summary>\n    /// <remarks>\n    /// Streams are built on to provide abstractions for matches, chat channels, etc. In most cases you'll never need to\n    /// interact with the low level stream itself.\n    /// </remarks>\n    public interface IStreamPresenceEvent\n    {\n        /// <summary>\n        /// Presences of users who joined the stream.\n        /// </summary>\n        IEnumerable<IUserPresence> Leaves { get; }\n\n        /// <summary>\n        /// Presences of users who left the stream.\n        /// </summary>\n        IEnumerable<IUserPresence> Joins { get; }\n\n        /// <summary>\n        /// The identifier for the stream.\n        /// </summary>\n        IStream Stream { get; }\n    }\n\n    /// <summary>\n    /// A state change received from a stream.\n    /// </summary>\n    public interface IStreamState\n    {\n        /// <summary>\n        /// The user who sent the state change. May be <c>null</c>.\n        /// </summary>\n        IUserPresence Sender { get; }\n\n        /// <summary>\n        /// The contents of the state change.\n        /// </summary>\n        string State { get; }\n\n        /// <summary>\n        /// The identifier for the stream.\n        /// </summary>\n        IStream Stream { get; }\n    }\n\n    /// <summary>\n    /// A realtime socket stream on the server.\n    /// </summary>\n    public interface IStream\n    {\n        /// <summary>\n        /// The descriptor of the stream. Used with direct chat messages and contains a second user id.\n        /// </summary>\n        string Descriptor { get; }\n\n        /// <summary>\n        /// Identifies streams which have a context across users like a chat channel room.\n        /// </summary>\n        string Label { get; }\n\n        /// <summary>\n        /// The mode of the stream.\n        /// </summary>\n        int Mode { get; }\n\n        /// <summary>\n        /// The subject of the stream. This is usually a user id.\n        /// </summary>\n        string Subject { get; }\n    }\n\n    /// <inheritdoc cref=\"IStreamPresenceEvent\"/>\n    [Preserve]\n    internal class StreamPresenceEvent : IStreamPresenceEvent\n    {\n        public IEnumerable<IUserPresence> Leaves => LeavesField ?? UserPresence.NoPresences;\n        [DataMember(Name = \"leaves\"), Preserve] public List<UserPresence> LeavesField { get; set; }\n\n        public IEnumerable<IUserPresence> Joins => JoinsField ?? UserPresence.NoPresences;\n        [DataMember(Name = \"joins\"), Preserve] public List<UserPresence> JoinsField { get; set; }\n\n        public IStream Stream => StreamField;\n        [DataMember(Name = \"stream\"), Preserve] public Stream StreamField { get; set; }\n\n        public override string ToString() =>\n            $\"StreamPresenceEvent(Leaves=[{Join(\", \", Leaves)}], Joins=[{Join(\", \", Joins)}], Stream={Stream})\";\n    }\n\n    /// <inheritdoc cref=\"IStreamState\"/>\n    [Preserve]\n    internal class StreamState : IStreamState\n    {\n        public IUserPresence Sender => SenderField;\n        [DataMember(Name = \"sender\"), Preserve] public UserPresence SenderField { get; set; }\n\n        public string State => StateField;\n        [DataMember(Name = \"data\"), Preserve] public string StateField { get; set; }\n\n        public IStream Stream => StreamField;\n        [DataMember(Name = \"stream\"), Preserve] public Stream StreamField { get; set; }\n\n        public override string ToString() => $\"StreamState(Sender={Sender}, State='{StateField}', Stream={Stream})\";\n    }\n\n    /// <inheritdoc cref=\"IStream\"/>\n    [Preserve]\n    internal class Stream : IStream\n    {\n        [DataMember(Name = \"descriptor\"), Preserve] public string Descriptor { get; set; }\n\n        [DataMember(Name = \"label\"), Preserve] public string Label { get; set; }\n\n        [DataMember(Name = \"mode\"), Preserve] public int Mode { get; set; }\n\n        [DataMember(Name = \"subject\"), Preserve] public string Subject { get; set; }\n\n        public override string ToString() =>\n            $\"Stream(Descriptor='{Descriptor}', Label='{Label}', Mode={Mode}, Subject='{Subject}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/IUserPresence.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An object which represents a connected user in the server.\n    /// </summary>\n    /// <remarks>\n    /// The server allows the same user to be connected with multiple sessions. To uniquely identify them a tuple of\n    /// <c>{ node_id, user_id, session_id }</c> is used which is exposed as this object.\n    /// </remarks>\n    public interface IUserPresence\n    {\n        /// <summary>\n        /// If this presence generates stored events like persistent chat messages or notifications.\n        /// </summary>\n        bool Persistence { get; }\n\n        /// <summary>\n        /// The session id of the user.\n        /// </summary>\n        string SessionId { get; }\n\n        /// <summary>\n        /// The status of the user with the presence on the server.\n        /// </summary>\n        string Status { get; }\n\n        /// <summary>\n        /// The username for the user.\n        /// </summary>\n        string Username { get; }\n\n        /// <summary>\n        /// The id of the user.\n        /// </summary>\n        string UserId { get; }\n    }\n\n    /// <inheritdoc cref=\"IUserPresence\"/>\n    internal class UserPresence : IUserPresence\n    {\n        internal static readonly IReadOnlyList<UserPresence> NoPresences = new List<UserPresence>(0);\n\n        [DataMember(Name = \"persistence\"), Preserve] public bool Persistence { get; set; }\n\n        [DataMember(Name = \"session_id\"), Preserve] public string SessionId { get; set; }\n\n        [DataMember(Name = \"status\"), Preserve] public string Status { get; set; }\n\n        [DataMember(Name = \"username\"), Preserve] public string Username { get; set; }\n\n        [DataMember(Name = \"user_id\"), Preserve] public string UserId { get; set; }\n\n        public override bool Equals(object obj)\n        {\n            if (!(obj is UserPresence item))\n            {\n                return false;\n            }\n            return Equals(item);\n        }\n\n        private bool Equals(IUserPresence other) => string.Equals(SessionId, other.SessionId) && string.Equals(UserId, other.UserId);\n\n        public override int GetHashCode()\n        {\n            unchecked\n            {\n                // ReSharper disable twice NonReadonlyMemberInGetHashCode\n                return ((SessionId?.GetHashCode() ?? 0) * 397) ^ (UserId?.GetHashCode() ?? 0);\n            }\n        }\n\n        public override string ToString()\n        {\n            return\n                $\"UserPresence(Persistence={Persistence}, SessionId='{SessionId}', Status='{Status}', Username='{Username}', UserId='{UserId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchCreateMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A create message for a match on the server.\n    /// </summary>\n    internal class MatchCreateMessage\n    {\n        [DataMember(Name = \"name\"), Preserve]\n        public string Name { get; set; }\n        \n        public override string ToString() => $\"MatchCreateMessage(name='{Name}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchJoinMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A join message for a match on the server.\n    /// </summary>\n    internal class MatchJoinMessage\n    {\n        [DataMember(Name=\"match_id\"), Preserve]\n        public string MatchId { get; set; }\n\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        [DataMember(Name=\"metadata\"), Preserve]\n        public IDictionary<string, string> Metadata { get; set; }\n\n        public override string ToString()\n        {\n            return $\"MatchJoinMessage(MatchId='{MatchId}', Token='{Token}, Metadata='{Metadata}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchLeaveMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A leave message for a match on the server.\n    /// </summary>\n    internal class MatchLeaveMessage\n    {\n        [DataMember(Name=\"match_id\"), Preserve]\n        public string MatchId { get; set; }\n\n        public override string ToString()\n        {\n            return $\"MatchLeaveMessage(MatchId='{MatchId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchSendMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Send new state to a match on the server.\n    /// </summary>\n    internal class MatchSendMessage\n    {\n        [DataMember(Name=\"match_id\"), Preserve]\n        public string MatchId { get; set; }\n\n        [DataMember(Name=\"op_code\"), Preserve]\n        public string OpCode { get; set; }\n\n        [DataMember(Name=\"presences\"), Preserve]\n        public List<UserPresence> Presences { get; set; }\n\n        [DataMember(Name=\"data\"), Preserve]\n        public string State { get; set; }\n\n        public override string ToString()\n        {\n            var presences = string.Join(\", \", Presences);\n            return $\"MatchSendMessage(MatchId='{MatchId}', OpCode={OpCode}, Presences=[{presences}], State='{State}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchmakerAddMessage.cs",
    "content": "// Copyright 2018 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Add the user to the matchmaker pool with properties.\n    /// </summary>\n    internal class MatchmakerAddMessage\n    {\n        [DataMember(Name = \"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        [DataMember(Name = \"min_count\"), Preserve]\n        public int MinCount { get; set; }\n\n        [DataMember(Name = \"numeric_properties\"), Preserve]\n        public Dictionary<string, double> NumericProperties { get; set; }\n\n        [DataMember(Name = \"query\"), Preserve] public string Query { get; set; }\n\n        [DataMember(Name = \"string_properties\"), Preserve]\n        public Dictionary<string, string> StringProperties { get; set; }\n        \n        [DataMember(Name = \"count_multiple\"), Preserve]\n        public int? CountMultiple { get; set; }\n\n        public override string ToString() =>\n            $\"MatchmakerAddMessage(MaxCount={MaxCount}, MinCount={MinCount}, NumericProperties={NumericProperties}, Query='{Query}', StringProperties={StringProperties}, CountMultiple={CountMultiple})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/MatchmakerRemoveMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Remove the user from the matchmaker pool by ticket.\n    /// </summary>\n    internal class MatchmakerRemoveMessage\n    {\n        [DataMember(Name=\"ticket\"), Preserve]\n        public string Ticket { get; set; }\n\n        public override string ToString()\n        {\n            return $\"MatchmakerRemoveMessage(Ticket='{Ticket}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Nakama.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n    <PropertyGroup>\n        <TargetFrameworks>net46;netstandard2.1</TargetFrameworks>\n        <LangVersion>8</LangVersion>\n\n        <GenerateAssemblyInfo>true</GenerateAssemblyInfo>\n        <AssemblyVersion>3.0.0.0</AssemblyVersion>\n        <FileVersion>3.0.0.0</FileVersion>\n        <InformationalVersion Condition=\"'$(GitTag)' == ''\">3.0.0-dev</InformationalVersion>\n        <PackageReadmeFile>README.md</PackageReadmeFile>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"System.Net.Http\" Version=\"4.3.4\"/>\n    </ItemGroup>\n\n    <ItemGroup>\n        <None Include=\"../README.md\" Pack=\"true\" PackagePath=\"README.md\"/>\n    </ItemGroup>\n\n    <Target Name=\"GetGitTag\" BeforeTargets=\"BeforeBuild\">\n        <Exec Command=\"git describe --tags\" ConsoleToMsBuild=\"true\" ContinueOnError=\"true\">\n            <Output TaskParameter=\"ConsoleOutput\" PropertyName=\"GitTag\"/>\n        </Exec>\n        <Message Text=\"Git describe output: '$(GitTag)'\" Importance=\"High\"/>\n        <PropertyGroup>\n            <InformationalVersion Condition=\"'$(GitTag)' != ''\">$([System.String]::new('$(GitTag)').Substring(1))</InformationalVersion>\n        </PropertyGroup>\n    </Target>\n\n    <PropertyGroup Label=\"NuGet package definition\" Condition=\" '$(Configuration)' == 'Release' \">\n        <Authors>Nakama Authors &amp; contributors</Authors>\n        <Company>Heroic Labs</Company>\n        <Description>\n            Nakama is an open-source server designed to power modern games and apps.\n\n            Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much more. The official client which implements the full API and socket options for Nakama server. It's written in C# with minimal dependencies to support Unity, Xamarin, Godot, XNA, and other engines and frameworks.\n        </Description>\n        <PackageId>NakamaClient</PackageId>\n        <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>\n        <PackageTags>clientsdk;nakama;gameserver;backend;restapi</PackageTags>\n        <RepositoryUrl>https://github.com/heroiclabs/nakama-dotnet</RepositoryUrl>\n    </PropertyGroup>\n</Project>\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/BufferPool.cs",
    "content": "﻿using System;\nusing System.Collections.Concurrent;\nusing System.IO;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.Ninja.WebSockets.Exceptions;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// This buffer pool is instance thread safe\n    /// Use GetBuffer to get a MemoryStream (with a publically accessible buffer)\n    /// Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse\n    /// MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in)\n    /// and the underlying buffers will be returned to the pool at their larger sizes\n    /// </summary>\n    public class BufferPool : IBufferPool\n    {\n        const int DEFAULT_BUFFER_SIZE = 16384;\n        private readonly ConcurrentStack<byte[]> _bufferPoolStack;\n        private readonly int _bufferSize;\n\n        public BufferPool() : this(DEFAULT_BUFFER_SIZE)\n        {\n        }\n\n        public BufferPool(int bufferSize)\n        {\n            _bufferSize = bufferSize;\n            _bufferPoolStack = new ConcurrentStack<byte[]>();\n        }\n\n        /// <summary>\n        /// This memory stream is not instance thread safe (not to be confused with the BufferPool which is instance thread safe)\n        /// </summary>\n        protected class PublicBufferMemoryStream : MemoryStream\n        {\n            private readonly BufferPool _bufferPoolInternal;\n            private byte[] _buffer;\n            private MemoryStream _ms;\n\n            public PublicBufferMemoryStream(byte[] buffer, BufferPool bufferPool) : base(new byte[0])\n            {\n                _bufferPoolInternal = bufferPool;\n                _buffer = buffer;\n                _ms = new MemoryStream(buffer, 0, buffer.Length, true, true);\n            }\n\n            public override long Length => base.Length;\n\n            public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback,\n                object state)\n            {\n                return _ms.BeginRead(buffer, offset, count, callback, state);\n            }\n\n            public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback,\n                object state)\n            {\n                return _ms.BeginWrite(buffer, offset, count, callback, state);\n            }\n\n            public override bool CanRead => _ms.CanRead;\n            public override bool CanSeek => _ms.CanSeek;\n            public override bool CanTimeout => _ms.CanTimeout;\n            public override bool CanWrite => _ms.CanWrite;\n\n            public override int Capacity\n            {\n                get => _ms.Capacity;\n                set => _ms.Capacity = value;\n            }\n\n            public override void Close()\n            {\n                // clear the buffer - we only need to clear up to the number of bytes we have already written\n                Array.Clear(_buffer, 0, (int)_ms.Position);\n\n                _ms.Close();\n\n                // return the buffer to the pool\n                _bufferPoolInternal.ReturnBuffer(_buffer);\n            }\n\n            public override Task CopyToAsync(System.IO.Stream destination, int bufferSize, CancellationToken cancellationToken)\n            {\n                return _ms.CopyToAsync(destination, bufferSize, cancellationToken);\n            }\n\n            public override int EndRead(IAsyncResult asyncResult)\n            {\n                return _ms.EndRead(asyncResult);\n            }\n\n            public override void EndWrite(IAsyncResult asyncResult)\n            {\n                _ms.EndWrite(asyncResult);\n            }\n\n            public override void Flush()\n            {\n                _ms.Flush();\n            }\n\n            public override Task FlushAsync(CancellationToken cancellationToken)\n            {\n                return _ms.FlushAsync(cancellationToken);\n            }\n\n            public override byte[] GetBuffer()\n            {\n                return _buffer;\n            }\n\n            public override long Position\n            {\n                get => _ms.Position;\n                set => _ms.Position = value;\n            }\n\n            public override int Read(byte[] buffer, int offset, int count)\n            {\n                return _ms.Read(buffer, offset, count);\n            }\n\n            private void EnlargeBufferIfRequired(int count)\n            {\n                // we cannot fit the data into the existing buffer, time for a new buffer\n                if (count > (_buffer.Length - _ms.Position))\n                {\n                    int position = (int)_ms.Position;\n\n                    // double the buffer size\n                    long newSize = (long)_buffer.Length * 2;\n\n                    // make sure the new size is big enough\n                    long requiredSize = (long)count + _buffer.Length - position;\n\n                    if (requiredSize > int.MaxValue)\n                    {\n                        throw new WebSocketBufferOverflowException(\n                            $\"Tried to create a buffer ({requiredSize:#,##0} bytes) that was larger than the max allowed size ({int.MaxValue:#,##0})\");\n                    }\n\n                    if (requiredSize > newSize)\n                    {\n                        // compute the power of two larger than requiredSize. so 40000 => 65536\n                        long candidateSize = (long)Math.Pow(2, Math.Ceiling(Math.Log(requiredSize) / Math.Log(2)));\n                        if (candidateSize > int.MaxValue)\n                        {\n                            newSize = requiredSize;\n                        }\n                        else\n                        {\n                            newSize = candidateSize;\n                        }\n                    }\n\n                    var newBuffer = new byte[newSize];\n                    Buffer.BlockCopy(_buffer, 0, newBuffer, 0, position);\n                    _ms = new MemoryStream(newBuffer, 0, newBuffer.Length, true, true)\n                    {\n                        Position = position\n                    };\n\n                    _buffer = newBuffer;\n                }\n            }\n\n            public override void WriteByte(byte value)\n            {\n                EnlargeBufferIfRequired(1);\n                _ms.WriteByte(value);\n            }\n\n            public override void Write(byte[] buffer, int offset, int count)\n            {\n                EnlargeBufferIfRequired(count);\n                _ms.Write(buffer, offset, count);\n            }\n\n            public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)\n            {\n                EnlargeBufferIfRequired(count);\n                return _ms.WriteAsync(buffer, offset, count);\n            }\n\n            public override object InitializeLifetimeService()\n            {\n                return _ms.InitializeLifetimeService();\n            }\n\n            public override Task<int> ReadAsync(byte[] buffer, int offset, int count,\n                CancellationToken cancellationToken)\n            {\n                return _ms.ReadAsync(buffer, offset, count, cancellationToken);\n            }\n\n            public override int ReadByte()\n            {\n                return _ms.ReadByte();\n            }\n\n            public override int ReadTimeout\n            {\n                get => _ms.ReadTimeout;\n                set => _ms.ReadTimeout = value;\n            }\n\n            public override long Seek(long offset, SeekOrigin loc)\n            {\n                return _ms.Seek(offset, loc);\n            }\n\n            /// <summary>\n            /// Note: This will not make the MemoryStream any smaller, only larger\n            /// </summary>\n            public override void SetLength(long value)\n            {\n                EnlargeBufferIfRequired((int)value);\n            }\n\n            public override byte[] ToArray()\n            {\n                // you should never call this\n                return _ms.ToArray();\n            }\n\n            public override int WriteTimeout\n            {\n                get => _ms.WriteTimeout;\n                set => _ms.WriteTimeout = value;\n            }\n\n#if !NET45\n            public override bool TryGetBuffer(out ArraySegment<byte> buffer)\n            {\n                buffer = new ArraySegment<byte>(_buffer, 0, (int)_ms.Position);\n                return true;\n            }\n#endif\n\n            public override void WriteTo(System.IO.Stream stream)\n            {\n                _ms.WriteTo(stream);\n            }\n        }\n\n        /// <summary>\n        /// Gets a MemoryStream built from a buffer plucked from a thread safe pool\n        /// The pool grows automatically.\n        /// Closing the memory stream clears the buffer and returns it to the pool\n        /// </summary>\n        public MemoryStream GetBuffer()\n        {\n            byte[] buffer;\n            if (!_bufferPoolStack.TryPop(out buffer))\n            {\n                buffer = new byte[_bufferSize];\n            }\n\n            return new PublicBufferMemoryStream(buffer, this);\n        }\n\n        protected void ReturnBuffer(byte[] buffer)\n        {\n            _bufferPoolStack.Push(buffer);\n        }\n    }\n}"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/EntityTooLargeException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class EntityTooLargeException : Exception\n    {\n        public EntityTooLargeException() : base()\n        {\n            \n        }\n\n        /// <summary>\n        /// Http header too large to fit in buffer\n        /// </summary>\n        public EntityTooLargeException(string message) : base(message)\n        {\n            \n        }\n\n        public EntityTooLargeException(string message, Exception inner) : base(message, inner)\n        {\n\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/InvalidHttpResponseCodeException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class InvalidHttpResponseCodeException : Exception\n    {\n        public string ResponseCode { get; private set; }\n        \n        public string ResponseHeader { get; private set; }\n\n        public string ResponseDetails { get; private set; }\n\n        public InvalidHttpResponseCodeException() : base()\n        {\n        }\n\n        public InvalidHttpResponseCodeException(string message) : base(message)\n        {\n        }\n\n        public InvalidHttpResponseCodeException(string responseCode, string responseDetails, string responseHeader) : base(responseCode)\n        {\n            ResponseCode = responseCode;\n            ResponseDetails = responseDetails;\n            ResponseHeader = responseHeader;\n        }\n\n        public InvalidHttpResponseCodeException(string message, Exception inner) : base(message, inner)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/README.txt",
    "content": "﻿Make sure that exceptions follow the microsoft standards"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/SecWebSocketKeyMissingException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class SecWebSocketKeyMissingException : Exception\n    {\n        public SecWebSocketKeyMissingException() : base()\n        {\n\n        }\n\n        public SecWebSocketKeyMissingException(string message) : base(message)\n        {\n\n        }\n\n        public SecWebSocketKeyMissingException(string message, Exception inner) : base(message, inner)\n        {\n\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/ServerListenerSocketException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class ServerListenerSocketException : Exception\n    {\n        public ServerListenerSocketException() : base()\n        {            \n        }\n\n        public ServerListenerSocketException(string message) : base(message)\n        {            \n        }\n\n        public ServerListenerSocketException(string message, Exception inner) : base(message, inner)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/WebSocketBufferOverflowException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class WebSocketBufferOverflowException : Exception\n    {\n        public WebSocketBufferOverflowException() : base()\n        {\n        }\n\n        public WebSocketBufferOverflowException(string message) : base(message)\n        {\n        }\n\n        public WebSocketBufferOverflowException(string message, Exception inner) : base(message, inner)\n        {\n        }\n    }\n}"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/WebSocketHandshakeFailedException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class WebSocketHandshakeFailedException : Exception\n    {\n        public WebSocketHandshakeFailedException() : base()\n        {            \n        }\n\n        public WebSocketHandshakeFailedException(string message) : base(message)\n        {            \n        }\n\n        public WebSocketHandshakeFailedException(string message, Exception inner) : base(message, inner)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Exceptions/WebSocketVersionNotSupportedException.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets.Exceptions\n{\n    [Serializable]\n    public class WebSocketVersionNotSupportedException : Exception\n    {\n        public WebSocketVersionNotSupportedException() : base()\n        {            \n        }\n\n        public WebSocketVersionNotSupportedException(string message) : base(message)\n        {            \n        }\n\n        public WebSocketVersionNotSupportedException(string message, Exception inner) : base(message, inner)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/HttpHelper.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy \n// of this software and associated documentation files (the \"Software\"), to deal \n// in the Software without restriction, including without limitation the rights \n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell \n// copies of the Software, and to permit persons to whom the Software is \n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in \n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.Collections.Generic;\nusing System.Security.Cryptography;\nusing System.Text;\nusing System.Text.RegularExpressions;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing System.Linq;\nusing Nakama.Ninja.WebSockets.Exceptions;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    public class HttpHelper\n    {\n        private const string HTTP_GET_HEADER_REGEX = @\"^GET(.*)HTTP\\/1\\.1\";\n\n        /// <summary>\n        /// Calculates a random WebSocket key that can be used to initiate a WebSocket handshake\n        /// </summary>\n        /// <returns>A random websocket key</returns>\n        public static string CalculateWebSocketKey()\n        {\n            // this is not used for cryptography so doing something simple like he code below is op\n            Random rand = new Random((int)DateTime.Now.Ticks);\n            byte[] keyAsBytes = new byte[16];\n            rand.NextBytes(keyAsBytes);\n            return Convert.ToBase64String(keyAsBytes);\n        }\n\n        /// <summary>\n        /// Computes a WebSocket accept string from a given key\n        /// </summary>\n        /// <param name=\"secWebSocketKey\">The web socket key to base the accept string on</param>\n        /// <returns>A web socket accept string</returns>\n        public static string ComputeSocketAcceptString(string secWebSocketKey)\n        {\n            // this is a guid as per the web socket spec\n            const string webSocketGuid = \"258EAFA5-E914-47DA-95CA-C5AB0DC85B11\";\n            string concatenated = secWebSocketKey + webSocketGuid;\n            byte[] concatenatedAsBytes = Encoding.UTF8.GetBytes(concatenated);\n\n            // note an instance of SHA1 is not threadsafe so we have to create a new one every time here\n            byte[] sha1Hash = SHA1.Create().ComputeHash(concatenatedAsBytes);\n            string secWebSocketAccept = Convert.ToBase64String(sha1Hash);\n            return secWebSocketAccept;\n        }\n\n        /// <summary>\n        /// Reads an http header as per the HTTP spec\n        /// </summary>\n        /// <param name=\"stream\">The stream to read UTF8 text from</param>\n        /// <param name=\"token\">The cancellation token</param>\n        /// <returns>The HTTP header</returns>\n        public static async Task<string> ReadHttpHeaderAsync(System.IO.Stream stream, CancellationToken token)\n        {\n            int length = 1024 * 16; // 16KB buffer more than enough for http header\n            byte[] buffer = new byte[length];\n            int offset = 0;\n            int bytesRead = 0;\n\n            do\n            {\n                if (offset >= length)\n                {\n                    throw new EntityTooLargeException(\"Http header message too large to fit in buffer (16KB)\");\n                }\n\n                bytesRead = await stream.ReadAsync(buffer, offset, length - offset, token);\n                offset += bytesRead;\n                string header = Encoding.UTF8.GetString(buffer, 0, offset);\n\n                // as per http specification, all headers should end this this\n                if (header.Contains(\"\\r\\n\\r\\n\"))\n                {\n                    return header;\n                }\n            } while (bytesRead > 0);\n\n            return string.Empty;\n        }\n\n        /// <summary>\n        /// Decodes the header to detect is this is a web socket upgrade response\n        /// </summary>\n        /// <param name=\"header\">The HTTP header</param>\n        /// <returns>True if this is an http WebSocket upgrade response</returns>\n        public static bool IsWebSocketUpgradeRequest(String header)\n        {\n            Regex getRegex = new Regex(HTTP_GET_HEADER_REGEX, RegexOptions.IgnoreCase);\n            System.Text.RegularExpressions.Match getRegexMatch = getRegex.Match(header);\n\n            if (getRegexMatch.Success)\n            {\n                // check if this is a web socket upgrade request\n                Regex webSocketUpgradeRegex = new Regex(\"Upgrade: websocket\", RegexOptions.IgnoreCase);\n                System.Text.RegularExpressions.Match webSocketUpgradeRegexMatch = webSocketUpgradeRegex.Match(header);\n                return webSocketUpgradeRegexMatch.Success;\n            }\n\n            return false;\n        }\n\n        /// <summary>\n        /// Gets the path from the HTTP header\n        /// </summary>\n        /// <param name=\"httpHeader\">The HTTP header to read</param>\n        /// <returns>The path</returns>\n        public static string GetPathFromHeader(string httpHeader)\n        {\n            Regex getRegex = new Regex(HTTP_GET_HEADER_REGEX, RegexOptions.IgnoreCase);\n            System.Text.RegularExpressions.Match getRegexMatch = getRegex.Match(httpHeader);\n\n            if (getRegexMatch.Success)\n            {\n                // extract the path attribute from the first line of the header\n                return getRegexMatch.Groups[1].Value.Trim();\n            }\n\n            return null;\n        }\n\n        public static IList<string> GetSubProtocols(string httpHeader)\n        {\n            Regex regex = new Regex(@\"Sec-WebSocket-Protocol:(?<protocols>.+)\", RegexOptions.IgnoreCase);\n            System.Text.RegularExpressions.Match match = regex.Match(httpHeader);\n\n            if (match.Success)\n            {\n                const int MAX_LEN = 2048;\n                if (match.Length > MAX_LEN)\n                {\n                    throw new EntityTooLargeException(\n                        $\"Sec-WebSocket-Protocol exceeded the maximum of length of {MAX_LEN}\");\n                }\n\n                // extract a csv list of sub protocols (in order of highest preference first)\n                string csv = match.Groups[\"protocols\"].Value.Trim();\n                return csv.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)\n                    .Select(x => x.Trim())\n                    .ToList();\n            }\n\n            return new List<string>();\n        }\n\n        /// <summary>\n        /// Reads the HTTP response code from the http response string\n        /// </summary>\n        /// <param name=\"response\">The response string</param>\n        /// <returns>the response code</returns>\n        public static string ReadHttpResponseCode(string response)\n        {\n            Regex getRegex = new Regex(@\"HTTP\\/1\\.1 (.*)\", RegexOptions.IgnoreCase);\n            System.Text.RegularExpressions.Match getRegexMatch = getRegex.Match(response);\n\n            if (getRegexMatch.Success)\n            {\n                // extract the path attribute from the first line of the header\n                return getRegexMatch.Groups[1].Value.Trim();\n            }\n\n            return null;\n        }\n\n        /// <summary>\n        /// Writes an HTTP response string to the stream\n        /// </summary>\n        /// <param name=\"response\">The response (without the new line characters)</param>\n        /// <param name=\"stream\">The stream to write to</param>\n        /// <param name=\"token\">The cancellation token</param>\n        public static async Task WriteHttpHeaderAsync(string response, System.IO.Stream stream, CancellationToken token)\n        {\n            response = response.Trim() + \"\\r\\n\\r\\n\";\n            Byte[] bytes = Encoding.UTF8.GetBytes(response);\n            await stream.WriteAsync(bytes, 0, bytes.Length, token);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/IBufferPool.cs",
    "content": "﻿using System.IO;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    public interface IBufferPool\n    {\n        /// <summary>\n        /// Gets a MemoryStream built from a buffer plucked from a thread safe pool\n        /// The pool grows automatically.\n        /// Closing the memory stream clears the buffer and returns it to the pool\n        /// </summary>\n        MemoryStream GetBuffer();\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/IPingPongManager.cs",
    "content": "﻿using System;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Ping Pong Manager used to facilitate ping pong WebSocket messages\n    /// </summary>\n    interface IPingPongManager\n    {\n        /// <summary>\n        /// Raised when a Pong frame is received\n        /// </summary>\n        event EventHandler<PongEventArgs> Pong;\n\n        /// <summary>\n        /// Sends a ping frame\n        /// </summary>\n        /// <param name=\"payload\">The payload (must be 125 bytes of less)</param>\n        /// <param name=\"cancellation\">The cancellation token</param>\n        Task SendPing(ArraySegment<byte> payload, CancellationToken cancellation);\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/IWebSocketClientFactory.cs",
    "content": "﻿using System;\nusing System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Web socket client factory used to open web socket client connections\n    /// </summary>\n    public interface IWebSocketClientFactory\n    {\n        /// <summary>\n        /// Connect with default options\n        /// </summary>\n        /// <param name=\"uri\">The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket instance</returns>\n        Task<WebSocket> ConnectAsync(Uri uri, CancellationToken token = default(CancellationToken));\n\n        /// <summary>\n        /// Connect with options specified\n        /// </summary>\n        /// <param name=\"uri\">The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</param>\n        /// <param name=\"options\">The WebSocket client options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket instance</returns>\n        Task<WebSocket> ConnectAsync(Uri uri, WebSocketClientOptions options, CancellationToken token = default(CancellationToken));\n\n        /// <summary>\n        /// Connect with a stream that has already been opened and HTTP websocket upgrade request sent\n        /// This function will check the handshake response from the server and proceed if successful\n        /// Use this function if you have specific requirements to open a conenction like using special http headers and cookies\n        /// You will have to build your own HTTP websocket upgrade request\n        /// You may not even choose to use TCP/IP and this function will allow you to do that\n        /// </summary>\n        /// <param name=\"responseStream\">The full duplex response stream from the server</param>\n        /// <param name=\"secWebSocketKey\">The secWebSocketKey you used in the handshake request</param>\n        /// <param name=\"options\">The WebSocket client options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns></returns>\n        Task<WebSocket> ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token = default(CancellationToken));\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/IWebSocketServerFactory.cs",
    "content": "﻿using System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Web socket server factory used to open web socket server connections\n    /// </summary>\n    public interface IWebSocketServerFactory\n    {\n        /// <summary>\n        /// Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade\n        /// </summary>\n        /// <param name=\"stream\">The network stream</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>Http data read from the stream</returns>\n        Task<WebSocketHttpContext> ReadHttpHeaderFromStreamAsync(System.IO.Stream stream, CancellationToken token = default(CancellationToken));\n\n        /// <summary>\n        /// Accept web socket with default options\n        /// Call ReadHttpHeaderFromStreamAsync first to get WebSocketHttpContext\n        /// </summary>\n        /// <param name=\"context\">The http context used to initiate this web socket request</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket</returns>\n        Task<WebSocket> AcceptWebSocketAsync(WebSocketHttpContext context, CancellationToken token = default(CancellationToken));\n\n        /// <summary>\n        /// Accept web socket with options specified\n        /// Call ReadHttpHeaderFromStreamAsync first to get WebSocketHttpContext\n        /// </summary>\n        /// <param name=\"context\">The http context used to initiate this web socket request</param>\n        /// <param name=\"options\">The web socket options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket</returns>\n        Task<WebSocket> AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token = default(CancellationToken));\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/BinaryReaderWriter.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy \n// of this software and associated documentation files (the \"Software\"), to deal \n// in the Software without restriction, including without limitation the rights \n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell \n// copies of the Software, and to permit persons to whom the Software is \n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in \n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.IO;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    internal class BinaryReaderWriter\n    {\n        public static async Task ReadExactly(int length, System.IO.Stream stream, ArraySegment<byte> buffer, CancellationToken cancellationToken)\n        {\n            if (length == 0)\n            {\n                return;\n            }\n\n            if (buffer.Count < length)\n            {\n                // This will happen if the calling function supplied a buffer that was too small to fit the payload of the websocket frame.\n                // Note that this can happen on the close handshake where the message size can be larger than the regular payload\n                throw new InternalBufferOverflowException($\"Unable to read {length} bytes into buffer (offset: {buffer.Offset} size: {buffer.Count}). Use a larger read buffer\");\n            }\n\n            int offset = 0;\n            do\n            {\n                int bytesRead = await stream.ReadAsync(buffer.Array, buffer.Offset + offset, length - offset, cancellationToken);\n                if (bytesRead == 0)\n                {\n                    throw new EndOfStreamException(string.Format(\"Unexpected end of stream encountered whilst attempting to read {0:#,##0} bytes\", length));\n                }\n\n                offset += bytesRead;\n            } while (offset < length);\n\n            return;\n        }\n\n        public static async Task<ushort> ReadUShortExactly(System.IO.Stream stream, bool isLittleEndian, ArraySegment<byte> buffer, CancellationToken cancellationToken)\n        {\n            await ReadExactly(2, stream, buffer, cancellationToken);\n\n            if (!isLittleEndian)\n            {\n                Array.Reverse(buffer.Array, buffer.Offset, 2); // big endian\n            }\n\n            return BitConverter.ToUInt16(buffer.Array, buffer.Offset);\n        }\n\n        public static async Task<ulong> ReadULongExactly(System.IO.Stream stream, bool isLittleEndian, ArraySegment<byte> buffer, CancellationToken cancellationToken)\n        {\n            await ReadExactly(8, stream, buffer, cancellationToken);\n\n            if (!isLittleEndian)\n            {\n                Array.Reverse(buffer.Array, buffer.Offset, 8); // big endian\n            }\n\n            return BitConverter.ToUInt64(buffer.Array, buffer.Offset);\n        }\n\n        public static async Task<long> ReadLongExactly(System.IO.Stream stream, bool isLittleEndian, ArraySegment<byte> buffer, CancellationToken cancellationToken)\n        {\n            await ReadExactly(8, stream, buffer, cancellationToken);\n\n            if (!isLittleEndian)\n            {\n                Array.Reverse(buffer.Array, buffer.Offset, 8); // big endian\n            }\n\n            return BitConverter.ToInt64(buffer.Array, buffer.Offset);\n        }\n\n        public static void WriteInt(int value, System.IO.Stream stream, bool isLittleEndian)\n        {\n            byte[] buffer = BitConverter.GetBytes(value);\n            if (BitConverter.IsLittleEndian && !isLittleEndian)\n            {\n                Array.Reverse(buffer);\n            }\n\n            stream.Write(buffer, 0, buffer.Length);\n        }\n\n        public static void WriteULong(ulong value, System.IO.Stream stream, bool isLittleEndian)\n        {\n            byte[] buffer = BitConverter.GetBytes(value);\n            if (BitConverter.IsLittleEndian && ! isLittleEndian)\n            {\n                Array.Reverse(buffer);\n            }\n\n            stream.Write(buffer, 0, buffer.Length);\n        }\n\n        public static void WriteLong(long value, System.IO.Stream stream, bool isLittleEndian)\n        {\n            byte[] buffer = BitConverter.GetBytes(value);\n            if (BitConverter.IsLittleEndian && !isLittleEndian)\n            {\n                Array.Reverse(buffer);\n            }\n\n            stream.Write(buffer, 0, buffer.Length);\n        }\n\n        public static void WriteUShort(ushort value, System.IO.Stream stream, bool isLittleEndian)\n        {\n            byte[] buffer = BitConverter.GetBytes(value);\n            if (BitConverter.IsLittleEndian && !isLittleEndian)\n            {\n                Array.Reverse(buffer);\n            }\n\n            stream.Write(buffer, 0, buffer.Length);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketFrame.cs",
    "content": "﻿using System;\nusing System.Net.WebSockets;\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    internal class WebSocketFrame\n    {\n        public bool IsFinBitSet { get; private set; }\n\n        public WebSocketOpCode OpCode { get; private set; }\n\n        public int Count { get; private set; }\n\n        public WebSocketCloseStatus? CloseStatus { get; private set; }\n\n        public string CloseStatusDescription { get; private set; }\n\n        public ArraySegment<byte> MaskKey { get; private set; }\n\n        public WebSocketFrame(bool isFinBitSet, WebSocketOpCode webSocketOpCode, int count, ArraySegment<byte> maskKey)\n        {\n            IsFinBitSet = isFinBitSet;\n            OpCode = webSocketOpCode;\n            Count = count;\n            MaskKey = maskKey;\n        }\n\n        public WebSocketFrame(bool isFinBitSet, WebSocketOpCode webSocketOpCode, int count, WebSocketCloseStatus closeStatus, string closeStatusDescription, ArraySegment<byte> maskKey) : this(isFinBitSet, webSocketOpCode, count, maskKey)\n        {\n            CloseStatus = closeStatus;\n            CloseStatusDescription = closeStatusDescription;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketFrameCommon.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy \n// of this software and associated documentation files (the \"Software\"), to deal \n// in the Software without restriction, including without limitation the rights \n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell \n// copies of the Software, and to permit persons to whom the Software is \n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in \n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    internal static class WebSocketFrameCommon\n    {\n        public const int MaskKeyLength = 4;\n\n        /// <summary>\n        /// Mutate payload with the mask key\n        /// This is a reversible process\n        /// If you apply this to masked data it will be unmasked and visa versa\n        /// </summary>\n        /// <param name=\"maskKey\">The 4 byte mask key</param>\n        /// <param name=\"payload\">The payload to mutate</param>\n        public static void ToggleMask(ArraySegment<byte> maskKey, ArraySegment<byte> payload)\n        {\n            if (maskKey.Count != MaskKeyLength)\n            {\n                throw new Exception($\"MaskKey key must be {MaskKeyLength} bytes\");\n            }\n\n            byte[] buffer = payload.Array;\n            byte[] maskKeyArray = maskKey.Array;\n            int payloadOffset = payload.Offset;\n            int payloadCountPlusOffset = payload.Count + payloadOffset;\n            int maskKeyOffset = maskKey.Offset;\n\n            // apply the mask key (this is a reversible process so no need to copy the payload)\n            // NOTE: this is a hot function\n            // TODO: make this faster\n            for (int i = payloadOffset; i < payloadCountPlusOffset; i++)\n            {\n                int payloadIndex = i - payloadOffset; // index should start at zero\n                int maskKeyIndex = maskKeyOffset + (payloadIndex % MaskKeyLength);\n                buffer[i] = (Byte)(buffer[i] ^ maskKeyArray[maskKeyIndex]);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketFrameReader.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy \n// of this software and associated documentation files (the \"Software\"), to deal \n// in the Software without restriction, including without limitation the rights \n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell \n// copies of the Software, and to permit persons to whom the Software is \n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in \n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.IO;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    /// <summary>\n    /// Reads a WebSocket frame\n    /// see http://tools.ietf.org/html/rfc6455 for specification\n    /// </summary>\n    internal static class WebSocketFrameReader\n    {\n        private static int CalculateNumBytesToRead(int numBytesLetfToRead, int bufferSize)\n        {\n            if (bufferSize < numBytesLetfToRead)\n            {\n                // the count needs to be a multiple of the mask key\n                return bufferSize - bufferSize % 4;\n            }\n            else\n            {\n                return numBytesLetfToRead;\n            }\n        }\n\n        /// <summary>\n        /// The last read could not be completed because the read buffer was too small. \n        /// We need to continue reading bytes off the stream.\n        /// Not to be confused with a continuation frame\n        /// </summary>\n        /// <param name=\"fromStream\">The stream to read from</param>\n        /// <param name=\"intoBuffer\">The buffer to read into</param>\n        /// <param name=\"readCursor\">The previous partial websocket frame read plus cursor information</param>\n        /// <param name=\"cancellationToken\">the cancellation token</param>\n        /// <returns>A websocket frame</returns>\n        public static async Task<WebSocketReadCursor> ReadFromCursorAsync(System.IO.Stream fromStream,\n            ArraySegment<byte> intoBuffer, WebSocketReadCursor readCursor, CancellationToken cancellationToken)\n        {\n            var remainingFrame = readCursor.WebSocketFrame;\n            var minCount = CalculateNumBytesToRead(readCursor.NumBytesLeftToRead, intoBuffer.Count);\n            await BinaryReaderWriter.ReadExactly(minCount, fromStream, intoBuffer, cancellationToken);\n            if (remainingFrame.MaskKey.Count > 0)\n            {\n                ArraySegment<byte> payloadToMask =\n                    new ArraySegment<byte>(intoBuffer.Array, intoBuffer.Offset, minCount);\n                WebSocketFrameCommon.ToggleMask(remainingFrame.MaskKey, payloadToMask);\n            }\n\n            return new WebSocketReadCursor(remainingFrame, minCount, readCursor.NumBytesLeftToRead - minCount);\n        }\n\n        /// <summary>\n        /// Read a WebSocket frame from the stream\n        /// </summary>\n        /// <param name=\"fromStream\">The stream to read from</param>\n        /// <param name=\"intoBuffer\">The buffer to read into</param>\n        /// <param name=\"cancellationToken\">the cancellation token</param>\n        /// <returns>A websocket frame</returns>\n        public static async Task<WebSocketReadCursor> ReadAsync(System.IO.Stream fromStream, ArraySegment<byte> intoBuffer,\n            CancellationToken cancellationToken)\n        {\n            // allocate a small buffer to read small chunks of data from the stream\n            var smallBuffer = new ArraySegment<byte>(new byte[8]);\n\n            await BinaryReaderWriter.ReadExactly(2, fromStream, smallBuffer, cancellationToken);\n            byte byte1 = smallBuffer.Array[0];\n            byte byte2 = smallBuffer.Array[1];\n\n            // process first byte\n            byte finBitFlag = 0x80;\n            byte opCodeFlag = 0x0F;\n            bool isFinBitSet = (byte1 & finBitFlag) == finBitFlag;\n            WebSocketOpCode opCode = (WebSocketOpCode)(byte1 & opCodeFlag);\n\n            // read and process second byte\n            byte maskFlag = 0x80;\n            bool isMaskBitSet = (byte2 & maskFlag) == maskFlag;\n            uint len = await ReadLength(byte2, smallBuffer, fromStream, cancellationToken);\n            int count = (int)len;\n            var minCount = CalculateNumBytesToRead(count, intoBuffer.Count);\n            ArraySegment<byte> maskKey = new ArraySegment<byte>();\n\n            try\n            {\n                // use the masking key to decode the data if needed\n                if (isMaskBitSet)\n                {\n                    maskKey = new ArraySegment<byte>(smallBuffer.Array, 0, WebSocketFrameCommon.MaskKeyLength);\n                    await BinaryReaderWriter.ReadExactly(maskKey.Count, fromStream, maskKey, cancellationToken);\n                    await BinaryReaderWriter.ReadExactly(minCount, fromStream, intoBuffer, cancellationToken);\n                    ArraySegment<byte> payloadToMask =\n                        new ArraySegment<byte>(intoBuffer.Array, intoBuffer.Offset, minCount);\n                    WebSocketFrameCommon.ToggleMask(maskKey, payloadToMask);\n                }\n                else\n                {\n                    await BinaryReaderWriter.ReadExactly(minCount, fromStream, intoBuffer, cancellationToken);\n                }\n            }\n            catch (InternalBufferOverflowException e)\n            {\n                throw new InternalBufferOverflowException(\n                    $\"Supplied buffer too small to read {0} bytes from {Enum.GetName(typeof(WebSocketOpCode), opCode)} frame\",\n                    e);\n            }\n\n            WebSocketFrame frame;\n            if (opCode == WebSocketOpCode.ConnectionClose)\n            {\n                frame = DecodeCloseFrame(isFinBitSet, opCode, count, intoBuffer, maskKey);\n            }\n            else\n            {\n                // note that by this point the payload will be populated\n                frame = new WebSocketFrame(isFinBitSet, opCode, count, maskKey);\n            }\n\n            return new WebSocketReadCursor(frame, minCount, count - minCount);\n        }\n\n        /// <summary>\n        /// Extracts close status and close description information from the web socket frame\n        /// </summary>\n        private static WebSocketFrame DecodeCloseFrame(bool isFinBitSet, WebSocketOpCode opCode, int count,\n            ArraySegment<byte> buffer, ArraySegment<byte> maskKey)\n        {\n            WebSocketCloseStatus closeStatus;\n            string closeStatusDescription;\n\n            if (count >= 2)\n            {\n                Array.Reverse(buffer.Array, buffer.Offset, 2); // network byte order\n                int closeStatusCode = (int)BitConverter.ToUInt16(buffer.Array, buffer.Offset);\n                if (Enum.IsDefined(typeof(WebSocketCloseStatus), closeStatusCode))\n                {\n                    closeStatus = (WebSocketCloseStatus)closeStatusCode;\n                }\n                else\n                {\n                    closeStatus = WebSocketCloseStatus.Empty;\n                }\n\n                int offset = buffer.Offset + 2;\n                int descCount = count - 2;\n\n                if (descCount > 0)\n                {\n                    closeStatusDescription = Encoding.UTF8.GetString(buffer.Array, offset, descCount);\n                }\n                else\n                {\n                    closeStatusDescription = null;\n                }\n            }\n            else\n            {\n                closeStatus = WebSocketCloseStatus.Empty;\n                closeStatusDescription = null;\n            }\n\n            return new WebSocketFrame(isFinBitSet, opCode, count, closeStatus, closeStatusDescription, maskKey);\n        }\n\n        /// <summary>\n        /// Reads the length of the payload according to the contents of byte2\n        /// </summary>\n        private static async Task<uint> ReadLength(byte byte2, ArraySegment<byte> smallBuffer, System.IO.Stream fromStream,\n            CancellationToken cancellationToken)\n        {\n            byte payloadLenFlag = 0x7F;\n            uint len = (uint)(byte2 & payloadLenFlag);\n\n            // read a short length or a long length depending on the value of len\n            if (len == 126)\n            {\n                len = await BinaryReaderWriter.ReadUShortExactly(fromStream, false, smallBuffer, cancellationToken);\n            }\n            else if (len == 127)\n            {\n                len = (uint)await BinaryReaderWriter.ReadULongExactly(fromStream, false, smallBuffer,\n                    cancellationToken);\n                const uint\n                    maxLen = 2147483648; // 2GB - not part of the spec but just a precaution. Send large volumes of data in smaller frames.\n\n                // protect ourselves against bad data\n                if (len > maxLen || len < 0)\n                {\n                    throw new ArgumentOutOfRangeException(\n                        $\"Payload length out of range. Min 0 max 2GB. Actual {len:#,##0} bytes.\");\n                }\n            }\n\n            return len;\n        }\n    }\n}"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketFrameWriter.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy \n// of this software and associated documentation files (the \"Software\"), to deal \n// in the Software without restriction, including without limitation the rights \n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell \n// copies of the Software, and to permit persons to whom the Software is \n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in \n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System.IO;\nusing System;\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    // see http://tools.ietf.org/html/rfc6455 for specification\n    // see fragmentation section for sending multi part messages\n    // EXAMPLE: For a text message sent as three fragments, \n    //   the first fragment would have an opcode of TextFrame and isLastFrame false,\n    //   the second fragment would have an opcode of ContinuationFrame and isLastFrame false,\n    //   the third fragment would have an opcode of ContinuationFrame and isLastFrame true.\n    internal static class WebSocketFrameWriter\n    {\n        /// <summary>\n        /// This is used for data masking so that web proxies don't cache the data\n        /// Therefore, there are no cryptographic concerns\n        /// </summary>\n        private static readonly Random _random;\n\n        static WebSocketFrameWriter()\n        {\n            _random = new Random((int)DateTime.Now.Ticks);\n        }\n\n        /// <summary>\n        /// No async await stuff here because we are dealing with a memory stream\n        /// </summary>\n        /// <param name=\"opCode\">The web socket opcode</param>\n        /// <param name=\"fromPayload\">Array segment to get payload data from</param>\n        /// <param name=\"toStream\">Stream to write to</param>\n        /// <param name=\"isLastFrame\">True is this is the last frame in this message (usually true)</param>\n        public static void Write(WebSocketOpCode opCode, ArraySegment<byte> fromPayload, MemoryStream toStream,\n            bool isLastFrame, bool isClient)\n        {\n            MemoryStream memoryStream = toStream;\n            byte finBitSetAsByte = isLastFrame ? (byte)0x80 : (byte)0x00;\n            byte byte1 = (byte)(finBitSetAsByte | (byte)opCode);\n            memoryStream.WriteByte(byte1);\n\n            // NB, set the mask flag if we are constructing a client frame\n            byte maskBitSetAsByte = isClient ? (byte)0x80 : (byte)0x00;\n\n            // depending on the size of the length we want to write it as a byte, ushort or ulong\n            if (fromPayload.Count < 126)\n            {\n                byte byte2 = (byte)(maskBitSetAsByte | (byte)fromPayload.Count);\n                memoryStream.WriteByte(byte2);\n            }\n            else if (fromPayload.Count <= ushort.MaxValue)\n            {\n                byte byte2 = (byte)(maskBitSetAsByte | 126);\n                memoryStream.WriteByte(byte2);\n                BinaryReaderWriter.WriteUShort((ushort)fromPayload.Count, memoryStream, false);\n            }\n            else\n            {\n                byte byte2 = (byte)(maskBitSetAsByte | 127);\n                memoryStream.WriteByte(byte2);\n                BinaryReaderWriter.WriteULong((ulong)fromPayload.Count, memoryStream, false);\n            }\n\n            // if we are creating a client frame then we MUST mack the payload as per the spec\n            if (isClient)\n            {\n                byte[] maskKey = new byte[WebSocketFrameCommon.MaskKeyLength];\n                _random.NextBytes(maskKey);\n                memoryStream.Write(maskKey, 0, maskKey.Length);\n\n                // mask the payload\n                ArraySegment<byte> maskKeyArraySegment = new ArraySegment<byte>(maskKey, 0, maskKey.Length);\n                WebSocketFrameCommon.ToggleMask(maskKeyArraySegment, fromPayload);\n            }\n\n            memoryStream.Write(fromPayload.Array, fromPayload.Offset, fromPayload.Count);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketImplementation.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.IO;\nusing System.IO.Compression;\nusing System.Net.WebSockets;\nusing System.Runtime.CompilerServices;\nusing System.Text;\nusing System.Threading;\nusing System.Threading.Tasks;\n\n#if RELEASESIGNED\n[assembly: InternalsVisibleTo(\"Ninja.WebSockets.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b1707056f4761b7846ed503642fcde97fc350c939f78026211304a56ba51e094c9cefde77fadce5b83c0a621c17f032c37c520b6d9ab2da8291a21472175d9caad55bf67bab4bffb46a96f864ea441cf695edc854296e02a44062245a4e09ccd9a77ef6146ecf941ce1d9da078add54bc2d4008decdac2fa2b388e17794ee6a6\")]\n#else\n[assembly: InternalsVisibleTo(\"Ninja.WebSockets.UnitTests\")]\n#endif\n\nnamespace Nakama.Ninja.WebSockets.Internal\n{\n    /// <summary>\n    /// Main implementation of the WebSocket abstract class\n    /// </summary>\n    internal class WebSocketImplementation : WebSocket\n    {\n        private readonly Guid _guid;\n        private readonly Func<MemoryStream> _recycledStreamFactory;\n        private readonly System.IO.Stream _stream;\n        private readonly bool _includeExceptionInCloseResponse;\n        private readonly bool _isClient;\n        private readonly string _subProtocol;\n        private CancellationTokenSource _internalReadCts;\n        private WebSocketState _state;\n        private readonly IPingPongManager _pingPongManager;\n        private bool _isContinuationFrame;\n        private WebSocketMessageType _continuationFrameMessageType = WebSocketMessageType.Binary;\n        private WebSocketReadCursor _readCursor;\n        private readonly bool _usePerMessageDeflate = false;\n        private bool _tryGetBufferFailureLogged = false;\n        const int MAX_PING_PONG_PAYLOAD_LEN = 125;\n        private WebSocketCloseStatus? _closeStatus;\n        private string _closeStatusDescription;\n        private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1);\n\n        public event EventHandler<PongEventArgs> Pong;\n\n        internal WebSocketImplementation(Guid guid, Func<MemoryStream> recycledStreamFactory, System.IO.Stream stream,\n            TimeSpan keepAliveInterval, string secWebSocketExtensions, bool includeExceptionInCloseResponse,\n            bool isClient, string subProtocol)\n        {\n            _guid = guid;\n            _recycledStreamFactory = recycledStreamFactory;\n            _stream = stream;\n            _isClient = isClient;\n            _subProtocol = subProtocol;\n            _internalReadCts = new CancellationTokenSource();\n            _state = WebSocketState.Open;\n            _readCursor = new WebSocketReadCursor(null, 0, 0);\n\n            if (secWebSocketExtensions?.IndexOf(\"permessage-deflate\") >= 0)\n            {\n                _usePerMessageDeflate = true;\n            }\n\n            KeepAliveInterval = keepAliveInterval;\n            _includeExceptionInCloseResponse = includeExceptionInCloseResponse;\n            if (keepAliveInterval.Ticks < 0)\n            {\n                throw new InvalidOperationException(\"KeepAliveInterval must be Zero or positive\");\n            }\n\n            if (keepAliveInterval != TimeSpan.Zero)\n            {\n                _pingPongManager = new PingPongManager(guid, this, keepAliveInterval, _internalReadCts.Token);\n            }\n        }\n\n        public override WebSocketCloseStatus? CloseStatus => _closeStatus;\n\n        public override string CloseStatusDescription => _closeStatusDescription;\n\n        public override WebSocketState State { get { return _state; } }\n\n        public override string SubProtocol => _subProtocol;\n\n        public TimeSpan KeepAliveInterval { get; private set; }\n\n        /// <summary>\n        /// Receive web socket result\n        /// </summary>\n        /// <param name=\"buffer\">The buffer to copy data into</param>\n        /// <param name=\"cancellationToken\">The cancellation token</param>\n        /// <returns>The web socket result details</returns>\n        public override async Task<WebSocketReceiveResult> ReceiveAsync(ArraySegment<byte> buffer,\n            CancellationToken cancellationToken)\n        {\n            try\n            {\n                // we may receive control frames so reading needs to happen in an infinite loop\n                while (true)\n                {\n                    // allow this operation to be cancelled from iniside OR outside this instance\n                    using (CancellationTokenSource linkedCts =\n                           CancellationTokenSource.CreateLinkedTokenSource(_internalReadCts.Token, cancellationToken))\n                    {\n                        WebSocketFrame frame;\n\n                        try\n                        {\n                            if (_readCursor.NumBytesLeftToRead > 0)\n                            {\n                                // If the buffer used to read the frame was too small to fit the whole frame then we need to \"remember\" this frame\n                                // and return what we have. Subsequent calls to the read function will simply continue reading off the stream without \n                                // decoding the first few bytes as a websocket header.\n                                _readCursor =\n                                    await WebSocketFrameReader.ReadFromCursorAsync(_stream, buffer, _readCursor,\n                                        linkedCts.Token);\n                                frame = _readCursor.WebSocketFrame;\n                            }\n                            else\n                            {\n                                _readCursor = await WebSocketFrameReader.ReadAsync(_stream, buffer, linkedCts.Token);\n                                frame = _readCursor.WebSocketFrame;\n                            }\n                        }\n                        catch (InternalBufferOverflowException ex)\n                        {\n                            await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.MessageTooBig,\n                                \"Frame too large to fit in buffer. Use message fragmentation\", ex);\n                            throw;\n                        }\n                        catch (ArgumentOutOfRangeException ex)\n                        {\n                            await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.ProtocolError,\n                                \"Payload length out of range\", ex);\n                            throw;\n                        }\n                        catch (EndOfStreamException ex)\n                        {\n                            await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.InvalidPayloadData,\n                                \"Unexpected end of stream encountered\", ex);\n                            throw;\n                        }\n                        catch (OperationCanceledException ex)\n                        {\n                            await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.EndpointUnavailable,\n                                \"Operation cancelled\", ex);\n                            throw;\n                        }\n                        catch (Exception ex)\n                        {\n                            await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.InternalServerError,\n                                \"Error reading WebSocket frame\", ex);\n                            throw;\n                        }\n\n                        var endOfMessage = frame.IsFinBitSet && _readCursor.NumBytesLeftToRead == 0;\n                        switch (frame.OpCode)\n                        {\n                            case WebSocketOpCode.ConnectionClose:\n                                return await RespondToCloseFrame(frame, buffer, linkedCts.Token);\n                            case WebSocketOpCode.Ping:\n                                ArraySegment<byte> pingPayload = new ArraySegment<byte>(buffer.Array, buffer.Offset,\n                                    _readCursor.NumBytesRead);\n                                await SendPongAsync(pingPayload, linkedCts.Token);\n                                break;\n                            case WebSocketOpCode.Pong:\n                                ArraySegment<byte> pongBuffer = new ArraySegment<byte>(buffer.Array,\n                                    _readCursor.NumBytesRead, buffer.Offset);\n                                Pong?.Invoke(this, new PongEventArgs(pongBuffer));\n                                break;\n                            case WebSocketOpCode.TextFrame:\n                                if (!frame.IsFinBitSet)\n                                {\n                                    // continuation frames will follow, record the message type Text\n                                    _continuationFrameMessageType = WebSocketMessageType.Text;\n                                }\n\n                                return new WebSocketReceiveResult(_readCursor.NumBytesRead, WebSocketMessageType.Text,\n                                    endOfMessage);\n                            case WebSocketOpCode.BinaryFrame:\n                                if (!frame.IsFinBitSet)\n                                {\n                                    // continuation frames will follow, record the message type Binary\n                                    _continuationFrameMessageType = WebSocketMessageType.Binary;\n                                }\n\n                                return new WebSocketReceiveResult(_readCursor.NumBytesRead, WebSocketMessageType.Binary,\n                                    endOfMessage);\n                            case WebSocketOpCode.ContinuationFrame:\n                                return new WebSocketReceiveResult(_readCursor.NumBytesRead,\n                                    _continuationFrameMessageType, endOfMessage);\n                            default:\n                                Exception ex = new NotSupportedException($\"Unknown WebSocket opcode {frame.OpCode}\");\n                                await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.ProtocolError, ex.Message, ex);\n                                throw ex;\n                        }\n                    }\n                }\n            }\n            catch (Exception catchAll)\n            {\n                // Most exceptions will be caught closer to their source to send an appropriate close message (and set the WebSocketState)\n                // However, if an unhandled exception is encountered and a close message not sent then send one here\n                if (_state == WebSocketState.Open)\n                {\n                    await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.InternalServerError,\n                        \"Unexpected error reading from WebSocket\", catchAll);\n                }\n\n                throw;\n            }\n        }\n\n        /// <summary>\n        /// Send data to the web socket\n        /// </summary>\n        /// <param name=\"buffer\">the buffer containing data to send</param>\n        /// <param name=\"messageType\">The message type. Can be Text or Binary</param>\n        /// <param name=\"endOfMessage\">True if this message is a standalone message (this is the norm)\n        /// If it is a multi-part message then false (and true for the last message)</param>\n        /// <param name=\"cancellationToken\">the cancellation token</param>\n        public override async Task SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType,\n            bool endOfMessage, CancellationToken cancellationToken)\n        {\n            using (MemoryStream stream = _recycledStreamFactory())\n            {\n                WebSocketOpCode opCode = GetOppCode(messageType);\n\n                if (_usePerMessageDeflate)\n                {\n                    // NOTE: Compression is currently work in progress and should NOT be used in this library.\n                    // The code below is very inefficient for small messages. Ideally we would like to have some sort of moving window\n                    // of data to get the best compression. And we don't want to create new buffers which is bad for GC.\n                    using (MemoryStream temp = new MemoryStream())\n                    {\n                        DeflateStream deflateStream = new DeflateStream(temp, CompressionMode.Compress);\n                        deflateStream.Write(buffer.Array, buffer.Offset, buffer.Count);\n                        deflateStream.Flush();\n                        var compressedBuffer = new ArraySegment<byte>(temp.ToArray());\n                        WebSocketFrameWriter.Write(opCode, compressedBuffer, stream, endOfMessage, _isClient);\n                    }\n                }\n                else\n                {\n                    WebSocketFrameWriter.Write(opCode, buffer, stream, endOfMessage, _isClient);\n                }\n\n                await WriteStreamToNetwork(stream, cancellationToken);\n                _isContinuationFrame = !endOfMessage; // TODO: is this correct??\n            }\n        }\n\n        /// <summary>\n        /// Call this automatically from server side each keepAliveInterval period\n        /// NOTE: ping payload must be 125 bytes or less\n        /// </summary>\n        public async Task SendPingAsync(ArraySegment<byte> payload, CancellationToken cancellationToken)\n        {\n            if (payload.Count > MAX_PING_PONG_PAYLOAD_LEN)\n            {\n                throw new InvalidOperationException(\n                    $\"Cannot send Ping: Max ping message size {MAX_PING_PONG_PAYLOAD_LEN} exceeded: {payload.Count}\");\n            }\n\n            if (_state == WebSocketState.Open)\n            {\n                using (MemoryStream stream = _recycledStreamFactory())\n                {\n                    WebSocketFrameWriter.Write(WebSocketOpCode.Ping, payload, stream, true, _isClient);\n                    await WriteStreamToNetwork(stream, cancellationToken);\n                }\n            }\n        }\n\n        /// <summary>\n        /// Aborts the WebSocket without sending a Close frame\n        /// </summary>\n        public override void Abort()\n        {\n            _state = WebSocketState.Aborted;\n            _internalReadCts.Cancel();\n        }\n\n        /// <summary>\n        /// Polite close (use the close handshake)\n        /// </summary>\n        public override async Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription,\n            CancellationToken cancellationToken)\n        {\n            if (_state == WebSocketState.Open)\n            {\n                using (MemoryStream stream = _recycledStreamFactory())\n                {\n                    ArraySegment<byte> buffer = BuildClosePayload(closeStatus, statusDescription);\n                    WebSocketFrameWriter.Write(WebSocketOpCode.ConnectionClose, buffer, stream, true, _isClient);\n                    await WriteStreamToNetwork(stream, cancellationToken);\n                    _state = WebSocketState.CloseSent;\n                }\n            }\n        }\n\n        /// <summary>\n        /// Fire and forget close\n        /// </summary>\n        public override async Task CloseOutputAsync(WebSocketCloseStatus closeStatus, string statusDescription,\n            CancellationToken cancellationToken)\n        {\n            if (_state == WebSocketState.Open)\n            {\n                _state = WebSocketState.Closed; // set this before we write to the network because the write may fail\n\n                using (MemoryStream stream = _recycledStreamFactory())\n                {\n                    ArraySegment<byte> buffer = BuildClosePayload(closeStatus, statusDescription);\n                    WebSocketFrameWriter.Write(WebSocketOpCode.ConnectionClose, buffer, stream, true, _isClient);\n                    await WriteStreamToNetwork(stream, cancellationToken).ConfigureAwait(false);\n                }\n            }\n\n            // cancel pending reads\n            _internalReadCts.Cancel();\n        }\n\n        /// <summary>\n        /// Dispose will send a close frame if the connection is still open\n        /// </summary>\n        public override void Dispose()\n        {\n            try\n            {\n                if (_state == WebSocketState.Open)\n                {\n                    CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));\n                    try\n                    {\n                        CloseOutputAsync(WebSocketCloseStatus.EndpointUnavailable, \"Service is Disposed\", cts.Token)\n                            .Wait();\n                    }\n                    catch (OperationCanceledException) {}\n                }\n\n                // cancel pending reads - usually does nothing\n                _internalReadCts.Cancel();\n                _stream.Close();\n            }\n            catch\n            {\n                // ignored\n            }\n        }\n\n        /// <summary>\n        /// Called when a Pong frame is received\n        /// </summary>\n        /// <param name=\"e\"></param>\n        protected virtual void OnPong(PongEventArgs e)\n        {\n            Pong?.Invoke(this, e);\n        }\n\n        /// <summary>\n        /// As per the spec, write the close status followed by the close reason\n        /// </summary>\n        /// <param name=\"closeStatus\">The close status</param>\n        /// <param name=\"statusDescription\">Optional extra close details</param>\n        /// <returns>The payload to sent in the close frame</returns>\n        private ArraySegment<byte> BuildClosePayload(WebSocketCloseStatus closeStatus, string statusDescription)\n        {\n            byte[] statusBuffer = BitConverter.GetBytes((ushort)closeStatus);\n            Array.Reverse(statusBuffer); // network byte order (big endian)\n\n            if (statusDescription == null)\n            {\n                return new ArraySegment<byte>(statusBuffer);\n            }\n            else\n            {\n                byte[] descBuffer = Encoding.UTF8.GetBytes(statusDescription);\n                byte[] payload = new byte[statusBuffer.Length + descBuffer.Length];\n                Buffer.BlockCopy(statusBuffer, 0, payload, 0, statusBuffer.Length);\n                Buffer.BlockCopy(descBuffer, 0, payload, statusBuffer.Length, descBuffer.Length);\n                return new ArraySegment<byte>(payload);\n            }\n        }\n\n        /// NOTE: pong payload must be 125 bytes or less\n        /// Pong should contain the same payload as the ping\n        private async Task SendPongAsync(ArraySegment<byte> payload, CancellationToken cancellationToken)\n        {\n            // as per websocket spec\n            if (payload.Count > MAX_PING_PONG_PAYLOAD_LEN)\n            {\n                Exception ex =\n                    new InvalidOperationException(\n                        $\"Max ping message size {MAX_PING_PONG_PAYLOAD_LEN} exceeded: {payload.Count}\");\n                await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.ProtocolError, ex.Message, ex);\n                throw ex;\n            }\n\n            try\n            {\n                if (_state == WebSocketState.Open)\n                {\n                    using (MemoryStream stream = _recycledStreamFactory())\n                    {\n                        WebSocketFrameWriter.Write(WebSocketOpCode.Pong, payload, stream, true, _isClient);\n                        await WriteStreamToNetwork(stream, cancellationToken);\n                    }\n                }\n            }\n            catch (Exception ex)\n            {\n                await CloseOutputAutoTimeoutAsync(WebSocketCloseStatus.EndpointUnavailable,\n                    \"Unable to send Pong response\", ex);\n                throw;\n            }\n        }\n\n        /// <summary>\n        /// Called when a Close frame is received\n        /// Send a response close frame if applicable\n        /// </summary>\n        private async Task<WebSocketReceiveResult> RespondToCloseFrame(WebSocketFrame frame, ArraySegment<byte> buffer,\n            CancellationToken token)\n        {\n            _closeStatus = frame.CloseStatus;\n            _closeStatusDescription = frame.CloseStatusDescription;\n\n            if (_state == WebSocketState.CloseSent)\n            {\n                // this is a response to close handshake initiated by this instance\n                _state = WebSocketState.Closed;\n            }\n            else if (_state == WebSocketState.Open)\n            {\n                // do not echo the close payload back to the client, there is no requirement for it in the spec.\n                // However, the same CloseStatus as recieved should be sent back.\n                ArraySegment<byte> closePayload = new ArraySegment<byte>(new byte[0], 0, 0);\n                _state = WebSocketState.CloseReceived;\n\n                using (MemoryStream stream = _recycledStreamFactory())\n                {\n                    WebSocketFrameWriter.Write(WebSocketOpCode.ConnectionClose, closePayload, stream, true, _isClient);\n                    await WriteStreamToNetwork(stream, token);\n                }\n            }\n\n            return new WebSocketReceiveResult(frame.Count, WebSocketMessageType.Close, frame.IsFinBitSet,\n                frame.CloseStatus, frame.CloseStatusDescription);\n        }\n\n        /// <summary>\n        /// Note that the way in which the stream buffer is accessed can lead to significant performance problems\n        /// You want to avoid a call to stream.ToArray to avoid extra memory allocation\n        /// MemoryStream can be configured to have its internal buffer accessible.\n        /// </summary>\n        private ArraySegment<byte> GetBuffer(MemoryStream stream)\n        {\n#if NET45\n            // NET45 does not have a TryGetBuffer function on Stream\n            if (_tryGetBufferFailureLogged)\n            {\n                return new ArraySegment<byte>(stream.ToArray(), 0, (int)stream.Position);\n            }\n\n            // note that a MemoryStream will throw an UnuthorizedAccessException if the internal buffer is not public. Set publiclyVisible = true\n            try\n            {\n                return new ArraySegment<byte>(stream.GetBuffer(), 0, (int)stream.Position);\n            }\n            catch (UnauthorizedAccessException)\n            {\n                _tryGetBufferFailureLogged = true;\n                return new ArraySegment<byte>(stream.ToArray(), 0, (int)stream.Position);\n            }\n#else\n            // Avoid calling ToArray on the MemoryStream because it allocates a new byte array on tha heap\n            // We avoid this by attempting to access the internal memory stream buffer\n            // This works with supported streams like the recyclable memory stream and writable memory streams\n            ArraySegment<byte> buffer;\n            if (!stream.TryGetBuffer(out buffer))\n            {\n                if (!_tryGetBufferFailureLogged)\n                {\n                    _tryGetBufferFailureLogged = true;\n                }\n\n                // internal buffer not suppoted, fall back to ToArray()\n                byte[] array = stream.ToArray();\n                buffer = new ArraySegment<byte>(array, 0, array.Length);\n            }\n\n            return new ArraySegment<byte>(buffer.Array, buffer.Offset, (int)stream.Position);\n#endif\n        }\n\n        /// <summary>\n        /// Puts data on the wire\n        /// </summary>\n        /// <param name=\"stream\">The stream to read data from</param>\n        private async Task WriteStreamToNetwork(MemoryStream stream, CancellationToken cancellationToken)\n        {\n            ArraySegment<byte> buffer = GetBuffer(stream);\n            await _semaphore.WaitAsync(cancellationToken).ConfigureAwait(false);\n            try\n            {\n                await _stream.WriteAsync(buffer.Array, buffer.Offset, buffer.Count, cancellationToken).ConfigureAwait(false);\n            }\n            finally\n            {\n                _semaphore.Release();\n            }\n        }\n\n        /// <summary>\n        /// Turns a spec websocket frame opcode into a WebSocketMessageType\n        /// </summary>\n        private WebSocketOpCode GetOppCode(WebSocketMessageType messageType)\n        {\n            if (_isContinuationFrame)\n            {\n                return WebSocketOpCode.ContinuationFrame;\n            }\n            else\n            {\n                switch (messageType)\n                {\n                    case WebSocketMessageType.Binary:\n                        return WebSocketOpCode.BinaryFrame;\n                    case WebSocketMessageType.Text:\n                        return WebSocketOpCode.TextFrame;\n                    case WebSocketMessageType.Close:\n                        throw new NotSupportedException(\n                            \"Cannot use Send function to send a close frame. Use Close function.\");\n                    default:\n                        throw new NotSupportedException($\"MessageType {messageType} not supported\");\n                }\n            }\n        }\n\n        /// <summary>\n        /// Automatic WebSocket close in response to some invalid data from the remote websocket host\n        /// </summary>\n        /// <param name=\"closeStatus\">The close status to use</param>\n        /// <param name=\"statusDescription\">A description of why we are closing</param>\n        /// <param name=\"ex\">The exception (for logging)</param>\n        private async Task CloseOutputAutoTimeoutAsync(WebSocketCloseStatus closeStatus, string statusDescription,\n            Exception ex)\n        {\n            TimeSpan timeSpan = TimeSpan.FromSeconds(5);\n\n            try\n            {\n                // we may not want to send sensitive information to the client / server\n                if (_includeExceptionInCloseResponse)\n                {\n                    statusDescription = statusDescription + \"\\r\\n\\r\\n\" + ex.ToString();\n                }\n\n                var autoCancel = new CancellationTokenSource(timeSpan);\n                await CloseOutputAsync(closeStatus, statusDescription, autoCancel.Token);\n            }\n            catch (OperationCanceledException)\n            {\n                // do not throw an exception because that will mask the original exception\n            }\n            catch\n            {\n                // do not throw an exception because that will mask the original exception\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketOpCode.cs",
    "content": "﻿namespace Nakama.Ninja.WebSockets.Internal\n{\n    internal enum WebSocketOpCode\n    {\n        ContinuationFrame = 0,\n        TextFrame = 1,\n        BinaryFrame = 2,\n        ConnectionClose = 8,\n        Ping = 9,\n        Pong = 10\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/Internal/WebSocketReadCursor.cs",
    "content": "namespace Nakama.Ninja.WebSockets.Internal\n{\n    internal class WebSocketReadCursor\n    {\n        public WebSocketFrame WebSocketFrame { get; private set; }\n\n        // Number of bytes read in the last read operation\n        public int NumBytesRead { get; private set; }\n\n        // Number of bytes remaining to read before we are done reading the entire frame\n        public int NumBytesLeftToRead { get; private set; }\n\n        public WebSocketReadCursor(WebSocketFrame frame, int numBytesRead, int numBytesLeftToRead)\n        {\n            WebSocketFrame = frame;\n            NumBytesRead = numBytesRead;\n            NumBytesLeftToRead = numBytesLeftToRead;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/LICENCE",
    "content": "﻿The MIT License (MIT)\n\nCopyright 2018 David Haig\n\nPermission is hereby granted, free of charge, to any person obtaining a copy \nof this software and associated documentation files (the \"Software\"), to deal \nin the Software without restriction, including without limitation the rights \nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell \ncopies of the Software, and to permit persons to whom the Software is \nfurnished to do so, subject to the following conditions:\n \nThe above copyright notice and this permission notice shall be included in \nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR \nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, \nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE \nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER \nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, \nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN \nTHE SOFTWARE."
  },
  {
    "path": "Nakama/Ninja.WebSockets/PingPongManager.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.Diagnostics;\nusing System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.Ninja.WebSockets.Internal;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Ping Pong Manager used to facilitate ping pong WebSocket messages\n    /// </summary>\n    public class PingPongManager : IPingPongManager\n    {\n        private readonly WebSocketImplementation _webSocket;\n        private readonly Guid _guid;\n        private readonly TimeSpan _keepAliveInterval;\n        private readonly Task _pingTask;\n        private readonly CancellationToken _cancellationToken;\n        private Stopwatch _stopwatch;\n        private long _pingSentTicks;\n\n        /// <summary>\n        /// Raised when a Pong frame is received\n        /// </summary>\n        public event EventHandler<PongEventArgs> Pong;\n\n        /// <summary>\n        /// Initialises a new instance of the PingPongManager to facilitate ping pong WebSocket messages.\n        /// If you are manually creating an instance of this class then it is advisable to set keepAliveInterval to\n        /// TimeSpan.Zero when you create the WebSocket instance (using a factory) otherwise you may be automatically\n        /// be sending duplicate Ping messages (see keepAliveInterval below)\n        /// </summary>\n        /// <param name=\"webSocket\">The web socket used to listen to ping messages and send pong messages</param>\n        /// <param name=\"keepAliveInterval\">The time between automatically sending ping messages.\n        /// Set this to TimeSpan.Zero if you with to manually control sending ping messages.\n        /// </param>\n        /// <param name=\"cancellationToken\">The token used to cancel a pending ping send AND the automatic sending of ping messages\n        /// if keepAliveInterval is positive</param>\n        public PingPongManager(Guid guid, WebSocket webSocket, TimeSpan keepAliveInterval,\n            CancellationToken cancellationToken)\n        {\n            var webSocketImpl = webSocket as WebSocketImplementation;\n            _webSocket = webSocketImpl ?? throw new InvalidCastException(\n                \"Cannot cast WebSocket to an instance of WebSocketImplementation. Please use the web socket factories to create a web socket\");\n            _guid = guid;\n            _keepAliveInterval = keepAliveInterval;\n            _cancellationToken = cancellationToken;\n            webSocketImpl.Pong += WebSocketImpl_Pong;\n            _stopwatch = Stopwatch.StartNew();\n\n            if (keepAliveInterval == TimeSpan.Zero)\n            {\n                _pingTask = Task.FromResult(0);\n            }\n            else\n            {\n                _pingTask = Task.Run(PingForever, cancellationToken);\n            }\n        }\n\n        /// <summary>\n        /// Sends a ping frame\n        /// </summary>\n        /// <param name=\"payload\">The payload (must be 125 bytes of less)</param>\n        /// <param name=\"cancellation\">The cancellation token</param>\n        public async Task SendPing(ArraySegment<byte> payload, CancellationToken cancellation)\n        {\n            await _webSocket.SendPingAsync(payload, cancellation);\n        }\n\n        protected virtual void OnPong(PongEventArgs e)\n        {\n            Pong?.Invoke(this, e);\n        }\n\n        private async Task PingForever()\n        {\n            try\n            {\n                while (!_cancellationToken.IsCancellationRequested)\n                {\n                    await Task.Delay(_keepAliveInterval, _cancellationToken);\n\n                    if (_webSocket.State != WebSocketState.Open)\n                    {\n                        break;\n                    }\n\n                    if (_pingSentTicks != 0)\n                    {\n                        await _webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure,\n                            $\"No Pong message received in response to a Ping after KeepAliveInterval {_keepAliveInterval}\",\n                        _cancellationToken);\n                        break;\n                    }\n\n                    if (!_cancellationToken.IsCancellationRequested)\n                    {\n                        _pingSentTicks = _stopwatch.Elapsed.Ticks;\n                        ArraySegment<byte> buffer = new ArraySegment<byte>(BitConverter.GetBytes(_pingSentTicks));\n                        await SendPing(buffer, _cancellationToken);\n                    }\n                }\n            }\n            catch (OperationCanceledException)\n            {\n                // normal, do nothing\n            }\n        }\n\n        private void WebSocketImpl_Pong(object sender, PongEventArgs e)\n        {\n            _pingSentTicks = 0;\n            OnPong(e);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/PongEventArgs.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Pong EventArgs\n    /// </summary>\n    public class PongEventArgs : EventArgs\n    {\n        /// <summary>\n        /// The data extracted from a Pong WebSocket frame\n        /// </summary>\n        public ArraySegment<byte> Payload { get; private set; }\n\n        /// <summary>\n        /// Initialises a new instance of the PongEventArgs class\n        /// </summary>\n        /// <param name=\"payload\">The pong payload must be 125 bytes or less (can be zero bytes)</param>\n        public PongEventArgs(ArraySegment<byte> payload)\n        {\n            Payload = payload;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/WebSocketClientFactory.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Net;\nusing System.Net.Security;\nusing System.Net.Sockets;\nusing System.Net.WebSockets;\nusing System.Security.Authentication;\nusing System.Security.Cryptography.X509Certificates;\nusing System.Text;\nusing System.Text.RegularExpressions;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.Ninja.WebSockets.Exceptions;\nusing Nakama.Ninja.WebSockets.Internal;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Web socket client factory used to open web socket client connections\n    /// </summary>\n    public class WebSocketClientFactory : IWebSocketClientFactory\n    {\n        private readonly Func<MemoryStream> _bufferFactory;\n        private readonly IBufferPool _bufferPool;\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketClientFactory class without caring about internal buffers\n        /// </summary>\n        public WebSocketClientFactory()\n        {\n            _bufferPool = new BufferPool();\n            _bufferFactory = _bufferPool.GetBuffer;\n        }\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketClientFactory class with control over internal buffer creation\n        /// </summary>\n        /// <param name=\"bufferFactory\">Used to get a memory stream. Feel free to implement your own buffer pool. MemoryStreams will be disposed when no longer needed and can be returned to the pool.</param>\n        public WebSocketClientFactory(Func<MemoryStream> bufferFactory)\n        {\n            _bufferFactory = bufferFactory;\n        }\n\n        /// <summary>\n        /// Connect with default options\n        /// </summary>\n        /// <param name=\"uri\">The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket instance</returns>\n        public async Task<WebSocket> ConnectAsync(Uri uri, CancellationToken token = default(CancellationToken))\n        {\n            return await ConnectAsync(uri, new WebSocketClientOptions(), token);\n        }\n\n        /// <summary>\n        /// Connect with options specified\n        /// </summary>\n        /// <param name=\"uri\">The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</param>\n        /// <param name=\"options\">The WebSocket client options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket instance</returns>\n        public async Task<WebSocket> ConnectAsync(Uri uri, WebSocketClientOptions options,\n            CancellationToken token = default(CancellationToken))\n        {\n            Guid guid = Guid.NewGuid();\n            string host = uri.Host;\n            int port = uri.Port;\n            string uriScheme = uri.Scheme.ToLower();\n            bool useSsl = uriScheme == \"wss\" || uriScheme == \"https\";\n            System.IO.Stream stream = await GetStream(guid, useSsl, options.NoDelay, host, port, token);\n            return await PerformHandshake(guid, uri, stream, options, token);\n        }\n\n        /// <summary>\n        /// Connect with a stream that has already been opened and HTTP websocket upgrade request sent\n        /// This function will check the handshake response from the server and proceed if successful\n        /// Use this function if you have specific requirements to open a conenction like using special http headers and cookies\n        /// You will have to build your own HTTP websocket upgrade request\n        /// You may not even choose to use TCP/IP and this function will allow you to do that\n        /// </summary>\n        /// <param name=\"responseStream\">The full duplex response stream from the server</param>\n        /// <param name=\"secWebSocketKey\">The secWebSocketKey you used in the handshake request</param>\n        /// <param name=\"options\">The WebSocket client options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns></returns>\n        public async Task<WebSocket> ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey,\n            WebSocketClientOptions options, CancellationToken token = default(CancellationToken))\n        {\n            Guid guid = Guid.NewGuid();\n            return await ConnectAsync(guid, responseStream, secWebSocketKey, options.KeepAliveInterval,\n                options.SecWebSocketExtensions, options.IncludeExceptionInCloseResponse, token);\n        }\n\n        private async Task<WebSocket> ConnectAsync(Guid guid, System.IO.Stream responseStream, string secWebSocketKey,\n            TimeSpan keepAliveInterval, string secWebSocketExtensions, bool includeExceptionInCloseResponse,\n            CancellationToken token)\n        {\n            string response = string.Empty;\n\n            try\n            {\n                response = await HttpHelper.ReadHttpHeaderAsync(responseStream, token);\n            }\n            catch (Exception ex)\n            {\n                throw new WebSocketHandshakeFailedException(\"Handshake unexpected failure\", ex);\n            }\n\n            ThrowIfInvalidResponseCode(response);\n            ThrowIfInvalidAcceptString(guid, response, secWebSocketKey);\n            string subProtocol = GetSubProtocolFromHeader(response);\n            return new WebSocketImplementation(guid, _bufferFactory, responseStream, keepAliveInterval,\n                secWebSocketExtensions, includeExceptionInCloseResponse, true, subProtocol);\n        }\n\n        private string GetSubProtocolFromHeader(string response)\n        {\n            // make sure we escape the accept string which could contain special regex characters\n            string regexPattern = \"Sec-WebSocket-Protocol: (.*)\";\n            Regex regex = new Regex(regexPattern, RegexOptions.IgnoreCase);\n            System.Text.RegularExpressions.Match match = regex.Match(response);\n            if (match.Success)\n            {\n                return match.Groups[1].Value.Trim();\n            }\n\n            return null;\n        }\n\n        private void ThrowIfInvalidAcceptString(Guid guid, string response, string secWebSocketKey)\n        {\n            // make sure we escape the accept string which could contain special regex characters\n            string regexPattern = \"Sec-WebSocket-Accept: (.*)\";\n            Regex regex = new Regex(regexPattern, RegexOptions.IgnoreCase);\n            string actualAcceptString = regex.Match(response).Groups[1].Value.Trim();\n\n            // check the accept string\n            string expectedAcceptString = HttpHelper.ComputeSocketAcceptString(secWebSocketKey);\n            if (expectedAcceptString != actualAcceptString)\n            {\n                string warning =\n                    string.Format(\n                        $\"Handshake failed because the accept string from the server '{expectedAcceptString}' was not the expected string '{actualAcceptString}'\");\n                throw new WebSocketHandshakeFailedException(warning);\n            }\n        }\n\n        private void ThrowIfInvalidResponseCode(string responseHeader)\n        {\n            string responseCode = HttpHelper.ReadHttpResponseCode(responseHeader);\n            if (responseCode == null)\n            {\n                throw new InvalidHttpResponseCodeException(null, null, responseHeader);\n            }\n\n            if (!responseCode.StartsWith(\"101 \", StringComparison.InvariantCultureIgnoreCase))\n            {\n                string[] lines = responseHeader.Split(new string[] { \"\\r\\n\" }, StringSplitOptions.None);\n\n                for (int i = 0; i < lines.Length; i++)\n                {\n                    // if there is more to the message than just the header\n                    if (string.IsNullOrWhiteSpace(lines[i]))\n                    {\n                        StringBuilder builder = new StringBuilder();\n                        for (int j = i + 1; j < lines.Length - 1; j++)\n                        {\n                            builder.AppendLine(lines[j]);\n                        }\n\n                        string responseDetails = builder.ToString();\n                        throw new InvalidHttpResponseCodeException(responseCode, responseDetails, responseHeader);\n                    }\n                }\n            }\n        }\n\n        /// <summary>\n        /// Override this if you need more fine grained control over the TLS handshake like setting the SslProtocol or adding a client certificate\n        /// </summary>\n        protected virtual void TlsAuthenticateAsClient(SslStream sslStream, string host)\n        {\n            sslStream.AuthenticateAsClient(host, null, SslProtocols.Tls12, true);\n        }\n\n        /// <summary>\n        /// Override this if you need more control over how the stream used for the websocket is created. It does not event need to be a TCP stream\n        /// </summary>\n        /// <param name=\"loggingGuid\">For logging purposes only</param>\n        /// <param name=\"isSecure\">Make a secure connection</param>\n        /// <param name=\"noDelay\">Set to true to send a message immediately with the least amount of latency (typical usage for chat)</param>\n        /// <param name=\"host\">The destination host (can be an IP address)</param>\n        /// <param name=\"port\">The destination port</param>\n        /// <param name=\"cancellationToken\">Used to cancel the request</param>\n        /// <returns>A connected and open stream</returns>\n        protected virtual async Task<System.IO.Stream> GetStream(Guid loggingGuid, bool isSecure, bool noDelay, string host,\n            int port, CancellationToken cancellationToken)\n        {\n            var tcpClient = new TcpClient(AddressFamily.InterNetworkV6);\n            tcpClient.Client.NoDelay = noDelay;\n            tcpClient.Client.DualMode = true;\n            IPAddress ipAddress;\n            if (IPAddress.TryParse(host, out ipAddress))\n            {\n                await tcpClient.ConnectAsync(ipAddress, port);\n            }\n            else\n            {\n                await tcpClient.ConnectAsync(host, port);\n            }\n\n            cancellationToken.ThrowIfCancellationRequested();\n            System.IO.Stream stream = tcpClient.GetStream();\n\n            if (isSecure)\n            {\n                SslStream sslStream = new SslStream(stream, false,\n                    new RemoteCertificateValidationCallback(ValidateServerCertificate), null);\n\n                // This will throw an AuthenticationException if the certificate is not valid\n                TlsAuthenticateAsClient(sslStream, host);\n                return sslStream;\n            }\n            else\n            {\n                return stream;\n            }\n        }\n\n        /// <summary>\n        /// Invoked by the RemoteCertificateValidationDelegate\n        /// If you want to ignore certificate errors (for debugging) then return true\n        /// </summary>\n        private static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain,\n            SslPolicyErrors sslPolicyErrors)\n        {\n            if (sslPolicyErrors == SslPolicyErrors.None)\n            {\n                return true;\n            }\n\n            // Do not allow this client to communicate with unauthenticated servers.\n            return false;\n        }\n\n        private static string GetAdditionalHeaders(Dictionary<string, string> additionalHeaders)\n        {\n            if (additionalHeaders == null || additionalHeaders.Count == 0)\n            {\n                return string.Empty;\n            }\n            else\n            {\n                StringBuilder builder = new StringBuilder();\n                foreach (KeyValuePair<string, string> pair in additionalHeaders)\n                {\n                    builder.Append($\"{pair.Key}: {pair.Value}\\r\\n\");\n                }\n\n                return builder.ToString();\n            }\n        }\n\n        private async Task<WebSocket> PerformHandshake(Guid guid, Uri uri, System.IO.Stream stream,\n            WebSocketClientOptions options, CancellationToken token)\n        {\n            Random rand = new Random();\n            byte[] keyAsBytes = new byte[16];\n            rand.NextBytes(keyAsBytes);\n            string secWebSocketKey = Convert.ToBase64String(keyAsBytes);\n            string additionalHeaders = GetAdditionalHeaders(options.AdditionalHttpHeaders);\n            string handshakeHttpRequest = $\"GET {uri.PathAndQuery} HTTP/1.1\\r\\n\" +\n                                          $\"Host: {uri.Host}:{uri.Port}\\r\\n\" +\n                                          \"Upgrade: websocket\\r\\n\" +\n                                          \"Connection: Upgrade\\r\\n\" +\n                                          $\"Sec-WebSocket-Key: {secWebSocketKey}\\r\\n\" +\n                                          $\"Origin: http://{uri.Host}:{uri.Port}\\r\\n\" +\n                                          $\"Sec-WebSocket-Protocol: {options.SecWebSocketProtocol}\\r\\n\" +\n                                          additionalHeaders +\n                                          \"Sec-WebSocket-Version: 13\\r\\n\\r\\n\";\n\n            byte[] httpRequest = Encoding.UTF8.GetBytes(handshakeHttpRequest);\n            stream.Write(httpRequest, 0, httpRequest.Length);\n            return await ConnectAsync(stream, secWebSocketKey, options, token);\n        }\n    }\n}"
  },
  {
    "path": "Nakama/Ninja.WebSockets/WebSocketClientOptions.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Client WebSocket init options\n    /// </summary>\n    public class WebSocketClientOptions\n    {\n        /// <summary>\n        /// How often to send ping requests to the Server\n        /// This is done to prevent proxy servers from closing your connection\n        /// The default is TimeSpan.Zero meaning that it is disabled.\n        /// WebSocket servers usually send ping messages so it is not normally necessary for the client to send them (hence the TimeSpan.Zero default)\n        /// You can manually control ping pong messages using the PingPongManager class.\n        /// If you do that it is advisible to set this KeepAliveInterval to zero for the WebSocketClientFactory\n        /// </summary>\n        public TimeSpan KeepAliveInterval { get; set; }\n\n        /// <summary>\n        /// Set to true to send a message immediately with the least amount of latency (typical usage for chat)\n        /// This will disable Nagle's algorithm which can cause high tcp latency for small packets sent infrequently\n        /// However, if you are streaming large packets or sending large numbers of small packets frequently it is advisable to set NoDelay to false\n        /// This way data will be bundled into larger packets for better throughput\n        /// </summary>\n        public bool NoDelay { get; set; }\n\n        /// <summary>\n        /// Add any additional http headers to this dictionary\n        /// </summary>\n        public Dictionary<string, string> AdditionalHttpHeaders { get; set; }\n\n        /// <summary>\n        /// Include the full exception (with stack trace) in the close response \n        /// when an exception is encountered and the WebSocket connection is closed\n        /// The default is false\n        /// </summary>\n        public bool IncludeExceptionInCloseResponse { get; set; }\n\n        /// <summary>\n        /// WebSocket Extensions as an HTTP header value\n        /// </summary>\n        public string SecWebSocketExtensions { get; set; }\n\n        /// <summary>\n        /// A comma separated list of sub protocols in preference order (first one being the most preferred)\n        /// The server will return the first supported sub protocol (or none if none are supported)\n        /// Can be null\n        /// </summary>\n        public string SecWebSocketProtocol { get; set; }\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketClientOptions class\n        /// </summary>\n        public WebSocketClientOptions()\n        {\n            KeepAliveInterval = TimeSpan.FromSeconds(20);\n            NoDelay = true;\n            AdditionalHttpHeaders = new Dictionary<string, string>();\n            IncludeExceptionInCloseResponse = false;\n            SecWebSocketProtocol = null;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/WebSocketHttpContext.cs",
    "content": "﻿using System.Collections.Generic;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// The WebSocket HTTP Context used to initiate a WebSocket handshake\n    /// </summary>\n    public class WebSocketHttpContext\n    {\n        /// <summary>\n        /// True if this is a valid WebSocket request\n        /// </summary>\n        public bool IsWebSocketRequest { get; private set; }\n\n        public IList<string> WebSocketRequestedProtocols { get; private set; }\n\n        /// <summary>\n        /// The raw http header extracted from the stream\n        /// </summary>\n        public string HttpHeader { get; private set; }\n\n        /// <summary>\n        /// The Path extracted from the http header\n        /// </summary>\n        public string Path { get; private set; }\n\n        /// <summary>\n        /// The stream AFTER the header has already been read\n        /// </summary>\n        public System.IO.Stream Stream { get; private set; }\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketHttpContext class\n        /// </summary>\n        /// <param name=\"isWebSocketRequest\">True if this is a valid WebSocket request</param>\n        /// <param name=\"httpHeader\">The raw http header extracted from the stream</param>\n        /// <param name=\"path\">The Path extracted from the http header</param>\n        /// <param name=\"stream\">The stream AFTER the header has already been read</param>\n        public WebSocketHttpContext(bool isWebSocketRequest, IList<string> webSocketRequestedProtocols,\n            string httpHeader, string path, System.IO.Stream stream)\n        {\n            IsWebSocketRequest = isWebSocketRequest;\n            WebSocketRequestedProtocols = webSocketRequestedProtocols;\n            HttpHeader = httpHeader;\n            Path = path;\n            Stream = stream;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/WebSocketServerFactory.cs",
    "content": "﻿// ---------------------------------------------------------------------\n// Copyright 2018 David Haig\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ---------------------------------------------------------------------\n\nusing System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Net.WebSockets;\nusing System.Text.RegularExpressions;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.Ninja.WebSockets.Exceptions;\nusing Nakama.Ninja.WebSockets.Internal;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Web socket server factory used to open web socket server connections\n    /// </summary>\n    public class WebSocketServerFactory : IWebSocketServerFactory\n    {\n        private readonly Func<MemoryStream> _bufferFactory;\n        private readonly IBufferPool _bufferPool;\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketServerFactory class without caring about internal buffers\n        /// </summary>\n        public WebSocketServerFactory()\n        {\n            _bufferPool = new BufferPool();\n            _bufferFactory = _bufferPool.GetBuffer;\n        }\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketClientFactory class with control over internal buffer creation\n        /// </summary>\n        /// <param name=\"bufferPool\">Used to get a memory stream. Feel free to implement your own buffer pool. MemoryStreams will be disposed when no longer needed and can be returned to the pool.</param>\n        /// </param>\n        public WebSocketServerFactory(Func<MemoryStream> bufferFactory)\n        {\n            _bufferFactory = bufferFactory;\n        }\n\n        /// <summary>\n        /// Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade\n        /// </summary>\n        /// <param name=\"stream\">The network stream</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>Http data read from the stream</returns>\n        public async Task<WebSocketHttpContext> ReadHttpHeaderFromStreamAsync(System.IO.Stream stream,\n            CancellationToken token = default(CancellationToken))\n        {\n            string header = await HttpHelper.ReadHttpHeaderAsync(stream, token);\n            string path = HttpHelper.GetPathFromHeader(header);\n            bool isWebSocketRequest = HttpHelper.IsWebSocketUpgradeRequest(header);\n            IList<string> subProtocols = HttpHelper.GetSubProtocols(header);\n            return new WebSocketHttpContext(isWebSocketRequest, subProtocols, header, path, stream);\n        }\n\n        /// <summary>\n        /// Accept web socket with default options\n        /// Call ReadHttpHeaderFromStreamAsync first to get WebSocketHttpContext\n        /// </summary>\n        /// <param name=\"context\">The http context used to initiate this web socket request</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket</returns>\n        public async Task<WebSocket> AcceptWebSocketAsync(WebSocketHttpContext context,\n            CancellationToken token = default(CancellationToken))\n        {\n            return await AcceptWebSocketAsync(context, new WebSocketServerOptions(), token);\n        }\n\n        /// <summary>\n        /// Accept web socket with options specified\n        /// Call ReadHttpHeaderFromStreamAsync first to get WebSocketHttpContext\n        /// </summary>\n        /// <param name=\"context\">The http context used to initiate this web socket request</param>\n        /// <param name=\"options\">The web socket options</param>\n        /// <param name=\"token\">The optional cancellation token</param>\n        /// <returns>A connected web socket</returns>\n        public async Task<WebSocket> AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options,\n            CancellationToken token = default(CancellationToken))\n        {\n            Guid guid = Guid.NewGuid();\n            await PerformHandshakeAsync(guid, context.HttpHeader, options.SubProtocol, context.Stream, token);\n            string secWebSocketExtensions = null;\n            return new WebSocketImplementation(guid, _bufferFactory, context.Stream, options.KeepAliveInterval,\n                secWebSocketExtensions, options.IncludeExceptionInCloseResponse, false, options.SubProtocol);\n        }\n\n        private static void CheckWebSocketVersion(string httpHeader)\n        {\n            Regex webSocketVersionRegex = new Regex(\"Sec-WebSocket-Version: (.*)\", RegexOptions.IgnoreCase);\n\n            // check the version. Support version 13 and above\n            const int WebSocketVersion = 13;\n            System.Text.RegularExpressions.Match match = webSocketVersionRegex.Match(httpHeader);\n            if (match.Success)\n            {\n                int secWebSocketVersion = Convert.ToInt32(match.Groups[1].Value.Trim());\n                if (secWebSocketVersion < WebSocketVersion)\n                {\n                    throw new WebSocketVersionNotSupportedException(\n                        $\"WebSocket Version {secWebSocketVersion} not suported. Must be {WebSocketVersion} or above\");\n                }\n            }\n            else\n            {\n                throw new WebSocketVersionNotSupportedException(\"Cannot find \\\"Sec-WebSocket-Version\\\" in http header\");\n            }\n        }\n\n        private static async Task PerformHandshakeAsync(Guid guid, String httpHeader, string subProtocol,\n            System.IO.Stream stream, CancellationToken token)\n        {\n            try\n            {\n                Regex webSocketKeyRegex = new Regex(\"Sec-WebSocket-Key: (.*)\", RegexOptions.IgnoreCase);\n                CheckWebSocketVersion(httpHeader);\n\n                System.Text.RegularExpressions.Match match = webSocketKeyRegex.Match(httpHeader);\n                if (match.Success)\n                {\n                    string secWebSocketKey = match.Groups[1].Value.Trim();\n                    string setWebSocketAccept = HttpHelper.ComputeSocketAcceptString(secWebSocketKey);\n                    string response = (\"HTTP/1.1 101 Switching Protocols\\r\\n\"\n                                       + \"Connection: Upgrade\\r\\n\"\n                                       + \"Upgrade: websocket\\r\\n\"\n                                       + (subProtocol != null ? $\"Sec-WebSocket-Protocol: {subProtocol}\\r\\n\" : \"\")\n                                       + $\"Sec-WebSocket-Accept: {setWebSocketAccept}\");\n\n                    await HttpHelper.WriteHttpHeaderAsync(response, stream, token);\n                }\n                else\n                {\n                    throw new SecWebSocketKeyMissingException(\"Unable to read \\\"Sec-WebSocket-Key\\\" from http header\");\n                }\n            }\n            catch (WebSocketVersionNotSupportedException ex)\n            {\n                string response = \"HTTP/1.1 426 Upgrade Required\\r\\nSec-WebSocket-Version: 13\" + ex.Message;\n                await HttpHelper.WriteHttpHeaderAsync(response, stream, token);\n                throw;\n            }\n            catch (Exception)\n            {\n                await HttpHelper.WriteHttpHeaderAsync(\"HTTP/1.1 400 Bad Request\", stream, token);\n                throw;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Ninja.WebSockets/WebSocketServerOptions.cs",
    "content": "﻿using System;\n\nnamespace Nakama.Ninja.WebSockets\n{\n    /// <summary>\n    /// Server WebSocket init options\n    /// </summary>\n    public class WebSocketServerOptions\n    {\n        /// <summary>\n        /// How often to send ping requests to the Client\n        /// The default is 60 seconds\n        /// This is done to prevent proxy servers from closing your connection\n        /// A timespan of zero will disable the automatic ping pong mechanism\n        /// You can manually control ping pong messages using the PingPongManager class.\n        /// If you do that it is advisible to set this KeepAliveInterval to zero in the WebSocketServerFactory\n        /// </summary>\n        public TimeSpan KeepAliveInterval { get; set; }\n\n        /// <summary>\n        /// Include the full exception (with stack trace) in the close response \n        /// when an exception is encountered and the WebSocket connection is closed\n        /// The default is false\n        /// </summary>\n        public bool IncludeExceptionInCloseResponse { get; set; }\n\n        /// <summary>\n        /// Specifies the sub protocol to send back to the client in the opening handshake\n        /// Can be null (the most common use case)\n        /// The client can specify multiple preferred protocols in the opening handshake header\n        /// The server should use the first supported one or set this to null if none of the requested sub protocols are supported\n        /// </summary>\n        public string SubProtocol { get; set; }\n\n        /// <summary>\n        /// Initialises a new instance of the WebSocketServerOptions class\n        /// </summary>\n        public WebSocketServerOptions()\n        {\n            KeepAliveInterval = TimeSpan.FromSeconds(60);\n            IncludeExceptionInCloseResponse = false;\n            SubProtocol = null;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/NullLogger.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A logger which writes to nowhere.\n    /// </summary>\n    internal class NullLogger : ILogger\n    {\n        public static readonly ILogger Instance = new NullLogger();\n\n        private NullLogger()\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.DebugFormat\"/>\n        public void DebugFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.ErrorFormat\"/>\n        public void ErrorFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.InfoFormat\"/>\n        public void InfoFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.WarnFormat\"/>\n        public void WarnFormat(string format, params object[] args)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Party.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming information about a party.\n    /// </summary>\n    internal class Party : IParty\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string Id { get; set; }\n\n        [DataMember(Name = \"open\"), Preserve]\n        public bool Open { get; set; }\n\n        [DataMember(Name = \"hidden\"), Preserve]\n        public bool Hidden { get; set; }\n\n        [DataMember(Name = \"max_size\"), Preserve]\n        public int MaxSize { get; set; }\n\n        [DataMember(Name = \"label\"), Preserve]\n        public string Label { get; set; }\n\n        public IUserPresence Self => SelfField;\n\n        [DataMember(Name = \"self\"), Preserve] public UserPresence SelfField { get; set; }\n\n        public IUserPresence Leader => LeaderField;\n\n        [DataMember(Name = \"leader\"), Preserve]\n        public UserPresence LeaderField { get; set; }\n\n        public IEnumerable<IUserPresence> Presences => PresencesField ?? UserPresence.NoPresences;\n\n        [DataMember(Name = \"presences\"), Preserve]\n        public List<UserPresence> PresencesField { get; set; }\n\n\n        public void UpdatePresences(IPartyPresenceEvent presenceEvent)\n        {\n            if (presenceEvent.PartyId != Id)\n            {\n                throw new InvalidOperationException(\"Tried updating presences belonging to the wrong party.\");\n            }\n\n            PresencesField = PresenceUtil.CopyJoinsAndLeaves(PresencesField, presenceEvent.Joins, presenceEvent.Leaves);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyAccept.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    // Accept a request to join.\n    internal class PartyAccept\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"presence\"), Preserve]\n        public UserPresence Presence { get; set; }\n\n        public override string ToString() => $\"PartyAccept(PartyId='{PartyId}', Presence={Presence})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyClose.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// End a party, kicking all party members, and closing it.\n    /// </summary>\n    internal class PartyClose : IPartyClose\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public override string ToString() => $\"PartyClose(PartyId='{PartyId}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyCreate.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Create a new party.\n    /// </summary>\n    internal class PartyCreate\n    {\n        [DataMember(Name = \"open\"), Preserve]\n        public bool Open { get; set; }\n\n        [DataMember(Name = \"hidden\"), Preserve]\n        public bool Hidden { get; set; }\n\n        [DataMember(Name = \"max_size\"), Preserve]\n        public int MaxSize { get; set; }\n\n        [DataMember(Name = \"label\"), Preserve]\n        public string Label { get; set; }\n\n        public override string ToString() => $\"PartyCreate(Open={Open}, MaxSize={MaxSize}, Label={Label})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyData.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming party data delivered from the server.\n    /// </summary>\n    internal class PartyData : IPartyData\n    {\n        private static readonly byte[] NoBytes = new byte[0];\n\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public IUserPresence Presence => PresenceField;\n\n        [DataMember(Name = \"presence\"), Preserve]\n        public UserPresence PresenceField { get; set; }\n\n        public long OpCode => Convert.ToInt64(OpCodeField);\n\n        [DataMember(Name = \"op_code\"), Preserve]\n        public string OpCodeField { get; set; }\n\n        public byte[] Data => DataField == null ? NoBytes : Convert.FromBase64String(DataField);\n        [DataMember(Name = \"data\"), Preserve] public string DataField { get; set; }\n\n        public override string ToString() =>\n            $\"PartyData(PartyId='{PartyId}', Presence={Presence}, OpCode={OpCode}, Data={Data})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyDataSend.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Send data to a party.\n    /// </summary>\n    internal class PartyDataSend\n    {\n      [DataMember(Name = \"party_id\"), Preserve]\n      public string PartyId { get; set; }\n\n      [DataMember(Name = \"op_code\"), Preserve]\n      public string OpCode { get; set; }\n\n      [DataMember(Name = \"data\"), Preserve]\n      public string Data { get; set; }\n\n      public override string ToString() => $\"PartyDataSend(PartyId='{PartyId}', OpCode={OpCode}, Data='{Data}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyJoin.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Join a party, or request to join if the party is not open.\n    /// </summary>\n    internal class PartyJoin\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public override string ToString() => $\"PartyJoin(PartyId='{PartyId}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyJoinRequest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Incoming notification for one or more new presences attempting to join the party.\n    /// </summary>\n    internal class PartyJoinRequest : IPartyJoinRequest\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public IEnumerable<IUserPresence> Presences => PresencesField ?? UserPresence.NoPresences;\n\n        [DataMember(Name = \"presences\"), Preserve]\n        public List<UserPresence> PresencesField { get; set; }\n\n        public override string ToString() =>\n            $\"PartyJoinRequest(PartyId='{PartyId}', Presences={string.Join(\", \", Presences)})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyJoinRequestList.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Request a list of pending join requests for a party.\n    /// </summary>\n    internal class PartyJoinRequestList\n    {\n        [DataMember(Name = \"party_id\"), Preserve] public string PartyId { get; set; }\n\n        public override string ToString() => $\"PartyJoinRequestList(PartyId='{PartyId}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyLeader.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Announcement of a new party leader.\n    /// </summary>\n    internal class PartyLeader : IPartyLeader\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public IUserPresence Presence => PresenceField;\n\n        [DataMember(Name = \"presence\"), Preserve]\n        public UserPresence PresenceField { get; set; }\n\n        public override string ToString() => $\"PartyLeader(PartyId='{PartyId}', Presence={Presence})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyLeave.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Leave a party.\n    /// </summary>\n    internal class PartyLeave\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public override string ToString() => $\"PartyLeave(PartyId='{PartyId}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyMatchmakerAdd.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Begin matchmaking as a party.\n    /// </summary>\n    internal class PartyMatchmakerAdd\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"max_count\"), Preserve]\n        public int MaxCount { get; set; }\n\n        [DataMember(Name = \"min_count\"), Preserve]\n        public int MinCount { get; set; }\n\n        [DataMember(Name = \"query\"), Preserve] public string Query { get; set; }\n\n        [DataMember(Name = \"string_properties\"), Preserve]\n        public Dictionary<string, string> StringProperties { get; set; }\n\n        [DataMember(Name = \"numeric_properties\"), Preserve]\n        public Dictionary<string, double> NumericProperties { get; set; }\n        \n        [DataMember(Name = \"count_multiple\"), Preserve]\n        public int? CountMultiple { get; set; }\n\n        public override string ToString() =>\n            $\"PartyMatchmakerAdd(PartyId='{PartyId}', MaxCount={MaxCount}, MinCount={MinCount}, NumericProperties={NumericProperties}, Query='{Query}', StringProperties={StringProperties}, CountMultiple={CountMultiple})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyMatchmakerRemove.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Remove the party from the matchmaker.\n    /// </summary>\n    internal class PartyMatchmakerRemove\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"ticket\"), Preserve]\n        public string Ticket { get; set; }\n\n        public override string ToString() => $\"PartyMatchmakerRemove(PartyId='{PartyId}', Ticket='{Ticket}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyMatchmakerTicket.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <inheritdoc cref=\"IPartyMatchmakerTicket\"/>\n    internal class PartyMatchmakerTicket : IPartyMatchmakerTicket\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"ticket\"), Preserve]\n        public string Ticket { get; set; }\n\n        public override string ToString() => $\"PartyMatchmakerTicket(PartyId='{PartyId}', Ticket='{Ticket}')\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyMemberRemove.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Kick a party member, or decline a request to join.\n    /// </summary>\n    internal class PartyMemberRemove\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"presence\"), Preserve]\n        public UserPresence Presence { get; set; }\n\n        public override string ToString() => $\"PartyMemberRemove(PartyId='{PartyId}', Presence={Presence})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyPresenceEvent.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\nusing static System.String;\n\nnamespace Nakama\n{\n    /// <inheritdoc cref=\"IPartyPresenceEvent\"/>\n    internal class PartyPresenceEvent : IPartyPresenceEvent\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        public IEnumerable<IUserPresence> Leaves => LeavesField ?? UserPresence.NoPresences;\n\n        [DataMember(Name = \"leaves\"), Preserve]\n        public List<UserPresence> LeavesField { get; set; }\n\n        public IEnumerable<IUserPresence> Joins => JoinsField ?? UserPresence.NoPresences;\n        [DataMember(Name = \"joins\"), Preserve] public List<UserPresence> JoinsField { get; set; }\n\n        public override string ToString() =>\n            $\"PartyPresenceEvent(PartyId='{PartyId}', Leaves=[{Join(\", \", Leaves)}], Joins=[{Join(\", \", Joins)}])\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyPromote.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Promote a new party leader.\n    /// </summary>\n    internal class PartyPromote\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"presence\"), Preserve]\n        public UserPresence Presence { get; set; }\n\n        public override string ToString() => $\"PartyPromote(PartyId='{PartyId}', Presence={Presence})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PartyUpdate.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Create a new party.\n    /// </summary>\n    internal class PartyUpdate : IPartyUpdate\n    {\n        [DataMember(Name = \"party_id\"), Preserve]\n        public string PartyId { get; set; }\n\n        [DataMember(Name = \"open\"), Preserve]\n        public bool Open { get; set; }\n\n        [DataMember(Name = \"hidden\"), Preserve]\n        public bool Hidden { get; set; }\n\n        [DataMember(Name = \"label\"), Preserve]\n        public string Label { get; set; }\n\n        public override string ToString() => $\"PartyUpdate(PartyId={PartyId}, Open={Open}, Label={Label})\";\n    }\n}\n"
  },
  {
    "path": "Nakama/PresenceUtil.cs",
    "content": "// Copyright 2023 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    internal static class PresenceUtil\n    {\n        /// <summary>\n        /// Applies joins and leaves of a presence event to a copy of the provided presence list and returns the result.\n        /// </summary>\n        public static List<UserPresence> CopyJoinsAndLeaves(List<UserPresence> currentPresences, IEnumerable<IUserPresence> joins, IEnumerable<IUserPresence> leaves)\n        {\n            currentPresences = currentPresences ?? new List<UserPresence>();\n            joins = joins ?? new List<UserPresence>();\n            leaves = leaves ?? new List<UserPresence>();\n\n            var newPresences = new Dictionary<string, UserPresence>();\n\n            foreach (UserPresence presence in currentPresences)\n            {\n                newPresences[presence.UserId] = presence;\n            }\n\n            foreach (IUserPresence join in joins)\n            {\n                if (newPresences.ContainsKey(join.UserId))\n                {\n                    // unexpected\n                    continue;\n                }\n\n                newPresences.Add(join.UserId, join as UserPresence ?? IUserPresenceToUserPresence(join));\n            }\n\n            foreach (IUserPresence leave in leaves)\n            {\n                if (!newPresences.ContainsKey(leave.UserId))\n                {\n                    // unexpected\n                    continue;\n                }\n\n                newPresences.Remove(leave.UserId);\n            }\n\n            return new List<UserPresence>(newPresences.Values);\n        }\n\n        private static UserPresence IUserPresenceToUserPresence(IUserPresence userPresence)\n        {\n            return new UserPresence\n            {\n                Persistence = userPresence.Persistence,\n                SessionId = userPresence.SessionId,\n                Status = userPresence.Status,\n                Username = userPresence.Username,\n                UserId = userPresence.UserId\n            };\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/PreserveAttribute.cs",
    "content": "/*\n * Copyright 2020 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A custom attribute recognized by Unity3D. When added to a class member, it prevents\n    /// the Unity linker from stripping the code it is associated with. This is used in addition\n    /// to the link.xml file because the Unity Package Manager does not recognize link.xml files\n    /// inside Unity packages.\n    /// https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\n    /// </summary>\n    internal class PreserveAttribute : System.Attribute\n    {\n    }\n}\n"
  },
  {
    "path": "Nakama/Retry.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Represents a single retry attempt.\n    /// </summary>\n    public class Retry\n    {\n        /// <summary>\n        /// The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm.\n        /// </summary>\n        public int ExponentialBackoff { get; }\n\n        /// <summary>\n        /// The delay (milliseconds) in the request retry attributable to the jitter algorithm.\n        /// </summary>\n        public int JitterBackoff { get; }\n\n        internal Retry(int expoBackoff, int jitterBackoff)\n        {\n            ExponentialBackoff = expoBackoff;\n            JitterBackoff = jitterBackoff;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/RetryConfiguration.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A configuration for controlling retriable requests.\n    /// </summary>\n    /// <remarks>\n    /// Retry configurations can be assigned to the <see cref=\"IClient\"/> on a request-by-request basis via\n    /// the see <cref=\"RequestConfiguration\"/> parameter.\n    ///\n    /// Retry configurations can also be assigned on a global basis using <see cref=\"IClient.GlobalRetryConfiguration\"/>.\n    /// Configurations passed via the see <cref=\"RequestConfiguraiton\"/> parameter take precedence over the global configuration.\n    /// </remarks>\n    public class RetryConfiguration\n    {\n        /// <summary>\n        /// The base delay (milliseconds) used to calculate the time before making another request attempt.\n        /// This base will be raised to N, where N is the number of retry attempts.\n        /// </summary>\n        public int BaseDelayMs { get; }\n\n        /// <summary>\n        /// The jitter algorithm used to apply randomness to the retry delay. Defaults to <see cref=\"RetryJitter.FullJitter\"/>\n        /// </summary>\n        public Jitter Jitter { get; }\n\n        /// <summary>\n        /// The maximum number of attempts to make before cancelling the request task.\n        /// </summary>\n        public int MaxAttempts { get; }\n\n        /// <summary>\n        /// A callback that is invoked before a new retry attempt is made.\n        /// </summary>\n        public RetryListener RetryListener { get; }\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries) :\n            this(baseDelayMs, maxRetries, null, RetryJitter.FullJitter) {}\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        /// <param name=\"listener\">A callback that is invoked before a new retry attempt is made.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener) :\n            this(baseDelayMs, maxRetries, listener, RetryJitter.FullJitter) {}\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        /// <param name=\"listener\">A callback that is invoked before a new retry attempt is made.</param>\n        /// <param name=\"jitter\">The jitter algorithm used to apply randomness to the retry delay.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)\n        {\n            BaseDelayMs = baseDelayMs;\n            RetryListener = listener;\n            MaxAttempts = maxRetries;\n            Jitter = jitter;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/RetryHistory.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\n\nnamespace Nakama\n{\n    internal class RetryHistory\n    {\n        public RetryConfiguration Configuration { get; }\n        public List<Retry> Retries { get; }\n        public CancellationToken? UserCancelToken { get; }\n        public Random Random { get; }\n\n        public RetryHistory(ISession session, RetryConfiguration configuration, CancellationToken? userCancelToken) : this(session.AuthToken, configuration, userCancelToken)\n        {\n        }\n\n        public RetryHistory(string jitterHashKey, RetryConfiguration configuration, CancellationToken? userCancelToken)\n        {\n            Configuration = configuration;\n            Retries = new List<Retry>();\n            UserCancelToken = userCancelToken;\n            Random = new Random(jitterHashKey.GetHashCode());\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/RetryInvoker.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Threading.Tasks;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Invokes requests with retry and exponential backoff.\n    /// </summary>\n    internal class RetryInvoker\n    {\n        private readonly TransientExceptionDelegate _del;\n\n        public RetryInvoker(TransientExceptionDelegate del)\n        {\n            if (del == null)\n            {\n                throw new ArgumentException(\"Cannot initialize retry invoker with a null transient exception delegate.\");\n            }\n\n            _del = del;\n        }\n\n        public async Task<T> InvokeWithRetry<T>(Func<Task<T>> request, RetryHistory history)\n        {\n            try\n            {\n                return await request();\n            }\n            catch (Exception e)\n            {\n                if (history.Configuration != null && _del(e))\n                {\n                    await Backoff(history, e);\n                    return await InvokeWithRetry<T>(request, history);\n                }\n                else\n                {\n                    throw;\n                }\n            }\n        }\n\n        public async Task InvokeWithRetry(Func<Task> request, RetryHistory history)\n        {\n            try\n            {\n                await request();\n            }\n            catch (Exception e)\n            {\n                if (history.Configuration != null && _del(e))\n                {\n                    await Backoff(history, e);\n                    await InvokeWithRetry(request, history);\n                }\n                else\n                {\n                    throw;\n                }\n            }\n        }\n\n        private Retry CreateNewRetry(RetryHistory history)\n        {\n            int expoBackoff = System.Convert.ToInt32(Math.Pow(2, history.Retries.Count)) * history.Configuration.BaseDelayMs;\n            int jitteredBackoff = history.Configuration.Jitter(history.Retries, expoBackoff, history.Random);\n            return new Retry(expoBackoff, jitteredBackoff);\n        }\n\n        private Task Backoff(RetryHistory history, Exception e)\n        {\n            if (history.Retries.Count >= history.Configuration.MaxAttempts)\n            {\n                throw new TaskCanceledException(\"Exceeded max retry attempts.\", e);\n            }\n\n            Retry newRetry = CreateNewRetry(history);\n            history.Retries.Add(newRetry);\n            history.Configuration.RetryListener?.Invoke(history.Retries.Count, newRetry);\n\n            if (history.UserCancelToken.HasValue)\n            {\n                return Task.Delay(newRetry.JitterBackoff, history.UserCancelToken.Value);\n            }\n            else\n            {\n                return Task.Delay(newRetry.JitterBackoff);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/RetryJitter.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\n    /// </summary>\n    /// <param name=\"retryHistory\">Information about previous retry attempts.</param>\n    /// <param name=\"retryDelay\">A delay (milliseconds) between the last failed attempt in the retry history\n    /// and the next upcoming attempt.</param>\n    /// <param name=\"random\">A <see cref=\"Random\"/> object that has been seeded by <see cref=\"IClient.RetryJitterSeed\"/>.\n    /// <returns>A new delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</returns>\n    public delegate int Jitter(IList<Retry> retryHistory, int retryDelay, Random random);\n\n    /// <summary>\n    /// A collection of <see cref=\"Jitter\"/> algorithms.\n    /// </summary>\n    public static class RetryJitter\n    {\n        /// <summary>\n        /// FullJitter is a Jitter algorithm that selects a random point between now and the next retry time.\n        /// </summary>\n        public static int FullJitter(IList<Retry> retries, int retryDelay, Random random)\n        {\n            return System.Convert.ToInt32(retryDelay * random.NextDouble());\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/RetryListener.cs",
    "content": "/*\n * Copyright 2021 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Listens to retry events for a particular request.\n    /// </summary>\n    /// <param name=\"numRetry\">The number of retries made so far, including this retry.</param>\n    /// <param name=\"retry\">An holding inromation about the retry attempt.</param>\n    public delegate void RetryListener(int numRetry, Retry retry);\n}\n"
  },
  {
    "path": "Nakama/Session.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing Nakama.TinyJson;\n\nnamespace Nakama\n{\n    /// <inheritdoc cref=\"ISession\"/>\n    public class Session : ISession\n    {\n        public static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);\n\n        /// <inheritdoc cref=\"ISession.AuthToken\"/>\n        public string AuthToken { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.Created\"/>\n        public bool Created { get; }\n\n        /// <inheritdoc cref=\"ISession.CreateTime\"/>\n        public long CreateTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.ExpireTime\"/>\n        public long ExpireTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.IsExpired\"/>\n        public bool IsExpired => HasExpired(DateTime.UtcNow);\n\n        /// <inheritdoc cref=\"IsRefreshExpired\"/>\n        public bool IsRefreshExpired => HasRefreshExpired(DateTime.UtcNow);\n\n        /// <inheritdoc cref=\"ISession.RefreshExpireTime\"/>\n        public long RefreshExpireTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.RefreshToken\"/>\n        public string RefreshToken { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.Vars\"/>\n        public IDictionary<string, string> Vars { get; }\n\n        /// <inheritdoc cref=\"ISession.Username\"/>\n        public string Username { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.UserId\"/>\n        public string UserId { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.HasExpired\"/>\n        public bool HasExpired(DateTime offset)\n        {\n            var expireDateTime = Epoch + TimeSpan.FromSeconds(ExpireTime);\n            return offset > expireDateTime;\n        }\n\n        /// <inheritdoc cref=\"ISession.HasRefreshExpired\"/>\n        public bool HasRefreshExpired(DateTime offset)\n        {\n            var expireDateTime = Epoch + TimeSpan.FromSeconds(RefreshExpireTime);\n            return offset > expireDateTime;\n        }\n\n        public override string ToString()\n        {\n            var variables = \"{\";\n            foreach (var variable in Vars)\n            {\n                variables = string.Concat(variables, \" '\", variable.Key, \"': '\", variable.Value, \"', \");\n            }\n            variables = string.Concat(variables, \"}\");\n            return\n                $\"Session(AuthToken='{AuthToken}', Created={Created}, CreateTime={CreateTime}, ExpireTime={ExpireTime}, RefreshToken={RefreshToken}, RefreshExpireTime={RefreshExpireTime}, Variables={variables}, Username='{Username}', UserId='{UserId}')\";\n        }\n\n        internal Session(string authToken, string refreshToken, bool created)\n        {\n            Created = created;\n            CreateTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds();\n            RefreshExpireTime = 0L;\n            Vars = new Dictionary<string, string>();\n\n            Update(authToken, refreshToken);\n        }\n\n        /// <summary>\n        /// Update the current session token with a new authorization token and refresh token.\n        /// </summary>\n        /// <param name=\"authToken\">The authorization token to update into the session.</param>\n        /// <param name=\"refreshToken\">The refresh token to update into the session.</param>\n        public void Update(string authToken, string refreshToken)\n        {\n            AuthToken = authToken;\n            RefreshToken = refreshToken;\n\n            var json = JwtUnpack(authToken);\n            var decoded = json.FromJson<Dictionary<string, object>>();\n            ExpireTime = Convert.ToInt64(decoded[\"exp\"]);\n            Username = decoded[\"usn\"].ToString();\n            UserId = decoded[\"uid\"].ToString();\n            if (decoded.ContainsKey(\"vrs\") && decoded[\"vrs\"] is Dictionary<string, object> dictionary)\n            {\n                foreach (var variable in dictionary)\n                {\n                    Vars[variable.Key] = variable.Value.ToString();\n                }\n            }\n\n            if (decoded.ContainsKey(\"iat\"))\n            {\n                CreateTime = Convert.ToInt64(decoded[\"iat\"]);\n            }\n\n            // Check in case clients have not updated to use refresh tokens yet.\n            if (!string.IsNullOrEmpty(refreshToken))\n            {\n                var json2 = JwtUnpack(refreshToken);\n                var decoded2 = json2.FromJson<Dictionary<string, object>>();\n                RefreshExpireTime = Convert.ToInt64(decoded2[\"exp\"]);\n            }\n        }\n\n        /// <summary>\n        /// Restore a session from the auth token.\n        /// </summary>\n        /// <remarks>\n        /// A <c>null</c> or empty authentication token will return null.\n        /// </remarks>\n        /// <param name=\"authToken\">The authorization token to restore as a session.</param>\n        /// <param name=\"refreshToken\">The refresh token for the session.</param>\n        /// <returns>A session.</returns>\n        public static ISession Restore(string authToken, string refreshToken = null)\n        {\n            return string.IsNullOrEmpty(authToken) ? null : new Session(authToken, refreshToken, false);\n        }\n\n        private static string JwtUnpack(string jwt)\n        {\n            // Hack decode JSON payload from JWT.\n            var payload = jwt.Split('.')[1];\n            var padLength = Math.Ceiling(payload.Length / 4.0) * 4;\n            payload = payload.PadRight(Convert.ToInt32(padLength), '=').Replace('-', '+').Replace('_', '/');\n            return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(payload));\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/Socket.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Linq;\nusing System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.TinyJson;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A socket which implements the Nakama realtime API.\n    /// </summary>\n    public class Socket : ISocket\n    {\n        private int _cid; // callback id.\n\n        /// <summary>\n        /// The default timeout for when the socket connects.\n        /// </summary>\n        public const int DefaultConnectTimeout = 30;\n\n        /// <summary>\n        /// The default timeout for when the socket sends a message.\n        /// </summary>\n        public const int DefaultSendTimeout = 10;\n\n        /// <inheritdoc cref=\"Closed\"/>\n        public event Action<string> Closed;\n\n        /// <inheritdoc cref=\"Connected\"/>\n        public event Action Connected;\n\n        /// <inheritdoc cref=\"ReceivedChannelMessage\"/>\n        public event Action<IApiChannelMessage> ReceivedChannelMessage;\n\n        /// <inheritdoc cref=\"ReceivedChannelPresence\"/>\n        public event Action<IChannelPresenceEvent> ReceivedChannelPresence;\n\n        /// <inheritdoc cref=\"ReceivedError\"/>\n        public event Action<Exception> ReceivedError;\n\n        /// <inheritdoc cref=\"ReceivedMatchmakerMatched\"/>\n        public event Action<IMatchmakerMatched> ReceivedMatchmakerMatched;\n\n        /// <inheritdoc cref=\"ReceivedMatchState\"/>\n        public event Action<IMatchState> ReceivedMatchState;\n\n        /// <inheritdoc cref=\"ReceivedMatchPresence\"/>\n        public event Action<IMatchPresenceEvent> ReceivedMatchPresence;\n\n        /// <inheritdoc cref=\"ReceivedNotification\"/>\n        public event Action<IApiNotification> ReceivedNotification;\n\n        /// <inheritdoc cref=\"ReceivedStatusPresence\"/>\n        public event Action<IStatusPresenceEvent> ReceivedStatusPresence;\n\n        /// <inheritdoc cref=\"ReceivedStreamPresence\"/>\n        public event Action<IStreamPresenceEvent> ReceivedStreamPresence;\n\n        /// <inheritdoc cref=\"ReceivedStreamState\"/>\n        public event Action<IStreamState> ReceivedStreamState;\n\n        /// <inheritdoc cref=\"ReceivedParty\"/>\n        public event Action<IParty> ReceivedParty;\n\n        /// <inheritdoc cref=\"ReceivedPartyClose\"/>\n        public event Action<IPartyClose> ReceivedPartyClose;\n\n        /// <inheritdoc cref=\"ReceivedPartyData\"/>\n        public event Action<IPartyData> ReceivedPartyData;\n\n        /// <inheritdoc cref=\"ReceivedPartyUpdate\"/>\n        public event Action<IPartyUpdate> ReceivedPartyUpdate;\n\n        /// <inheritdoc cref=\"ReceivedPartyJoinRequest\"/>\n        public event Action<IPartyJoinRequest> ReceivedPartyJoinRequest;\n\n        /// <inheritdoc cref=\"ReceivedPartyLeader\"/>\n        public event Action<IPartyLeader> ReceivedPartyLeader;\n\n        /// <inheritdoc cref=\"ReceivedPartyPresence\"/>\n        public event Action<IPartyPresenceEvent> ReceivedPartyPresence;\n\n        /// <inheritdoc cref=\"ReceivedPartyMatchmakerTicket\"/>\n        public event Action<IPartyMatchmakerTicket> ReceivedPartyMatchmakerTicket;\n\n        /// <inheritdoc cref=\"IsConnected\"/>\n        public bool IsConnected => _adapter.IsConnected;\n\n        /// <inheritdoc cref=\"IsConnecting\"/>\n        public bool IsConnecting => _adapter.IsConnecting;\n\n        /// <summary>\n        /// The logger to use with the socket.\n        /// </summary>\n        public ILogger Logger { get; set; }\n\n        private readonly ISocketAdapter _adapter;\n        private readonly Uri _baseUri;\n        private readonly Dictionary<string, TaskCompletionSource<WebSocketMessageEnvelope>> _responses;\n        private readonly TimeSpan _sendTimeoutSec;\n\n        private readonly object _responsesLock = new object();\n\n        /// <summary>\n        /// A new socket with default options.\n        /// </summary>\n        public Socket() : this(Client.DefaultScheme, Client.DefaultHost, Client.DefaultPort, new WebSocketStdlibAdapter())\n        {\n        }\n\n        /// <summary>\n        /// A new socket with an adapter.\n        /// </summary>\n        /// <param name=\"adapter\">The adapter for use with the socket.</param>\n        public Socket(ISocketAdapter adapter) : this(Client.DefaultScheme, Client.DefaultHost, Client.DefaultPort,\n            adapter)\n        {\n        }\n\n        /// <summary>\n        /// A new socket with server connection and adapter options.\n        /// </summary>\n        /// <param name=\"scheme\">The protocol scheme. Must be \"ws\" or \"wss\".</param>\n        /// <param name=\"host\">The host address of the server.</param>\n        /// <param name=\"port\">The port number of the server.</param>\n        /// <param name=\"adapter\">The adapter for use with the socket.</param>\n        /// <param name=\"sendTimeoutSec\">The maximum time allowed for a message to be sent.</param>\n        public Socket(string scheme, string host, int port, ISocketAdapter adapter, int sendTimeoutSec = DefaultSendTimeout)\n        {\n            Logger = NullLogger.Instance;\n            _adapter = adapter;\n            _baseUri = new UriBuilder(scheme, host, port).Uri;\n            _responses = new Dictionary<string, TaskCompletionSource<WebSocketMessageEnvelope>>();\n            _sendTimeoutSec = TimeSpan.FromSeconds(sendTimeoutSec);\n\n            _adapter.Connected += () => Connected?.Invoke();\n            _adapter.Closed += (reason) =>\n            {\n                lock (_responsesLock)\n                {\n                    foreach (var response in _responses)\n                    {\n                        response.Value.TrySetCanceled();\n                    }\n\n                    _responses.Clear();\n                }\n\n                Closed?.Invoke(reason);\n            };\n            _adapter.ReceivedError += e =>\n            {\n                if (!_adapter.IsConnected)\n                {\n                    lock (_responsesLock)\n                    {\n                        foreach (var response in _responses)\n                        {\n                            response.Value.TrySetCanceled();\n                        }\n\n                        _responses.Clear();\n                    }\n                }\n\n                ReceivedError?.Invoke(e);\n            };\n\n            _adapter.Received += ProcessMessage;\n        }\n\n        /// <inheritdoc cref=\"AcceptPartyMemberAsync\"/>\n        public Task AcceptPartyMemberAsync(string partyId, IUserPresence presence)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyAccept = new PartyAccept\n                {\n                    PartyId = partyId,\n                    Presence = presence as UserPresence // TODO serialize interface directly in protobuf\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"AddMatchmakerAsync\"/>\n        public async Task<IMatchmakerTicket> AddMatchmakerAsync(string query = \"*\", int minCount = 2, int maxCount = 8,\n            Dictionary<string, string> stringProperties = null, Dictionary<string, double> numericProperties = null, int? countMultiple = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchmakerAdd = new MatchmakerAddMessage\n                {\n                    Query = query,\n                    MinCount = minCount,\n                    MaxCount = maxCount,\n                    StringProperties = stringProperties,\n                    NumericProperties = numericProperties,\n                    CountMultiple = countMultiple\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.MatchmakerTicket;\n        }\n\n        /// <inheritdoc cref=\"AddMatchmakerPartyAsync\"/>\n        public async Task<IPartyMatchmakerTicket> AddMatchmakerPartyAsync(string partyId, string query, int minCount,\n            int maxCount, Dictionary<string, string> stringProperties = null,\n            Dictionary<string, double> numericProperties = null, int? countMultiple = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyMatchmakerAdd = new PartyMatchmakerAdd\n                {\n                    PartyId = partyId,\n                    Query = query,\n                    MinCount = minCount,\n                    MaxCount = maxCount,\n                    StringProperties = stringProperties,\n                    NumericProperties = numericProperties,\n                    CountMultiple = countMultiple\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.PartyMatchmakerTicket;\n        }\n\n        /// <inheritdoc cref=\"CloseAsync\"/>\n        public Task CloseAsync() => _adapter.CloseAsync();\n\n        /// <inheritdoc cref=\"ConnectAsync\"/>\n        public Task ConnectAsync(ISession session, bool appearOnline = false,\n            int connectTimeoutSec = DefaultConnectTimeout, string langTag = \"en\")\n        {\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = \"/ws\",\n                Query = $\"lang={langTag}&status={appearOnline}&token={session.AuthToken}\"\n            }.Uri;\n            return _adapter.ConnectAsync(uri, connectTimeoutSec);\n        }\n\n        /// <inheritdoc cref=\"ClosePartyAsync\"/>\n        public Task ClosePartyAsync(string partyId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyClose = new PartyClose { PartyId = partyId }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"CreateMatchAsync\"/>\n        public async Task<IMatch> CreateMatchAsync(string name = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchCreate = new MatchCreateMessage { Name = name }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Match;\n        }\n\n        /// <inheritdoc cref=\"CreatePartyAsync\"/>\n        public async Task<IParty> CreatePartyAsync(bool open, bool hidden, int maxSize, string label = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyCreate = new PartyCreate\n                {\n                    Open = open,\n                    Hidden = hidden,\n                    MaxSize = maxSize,\n                    Label = label\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Party;\n        }\n\n        /// <inheritdoc cref=\"FollowUsersAsync(System.Collections.Generic.IEnumerable{Nakama.IApiUser})\"/>\n        public Task<IStatus> FollowUsersAsync(IEnumerable<IApiUser> users) =>\n            FollowUsersAsync(users.Select(user => user.Id));\n\n        /// <inheritdoc cref=\"FollowUsersAsync(System.Collections.Generic.IEnumerable{string},System.Collections.Generic.IEnumerable{string})\"/>\n        public async Task<IStatus> FollowUsersAsync(IEnumerable<string> userIDs, IEnumerable<string> usernames = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                StatusFollow = new StatusFollowMessage\n                {\n                    UserIds = new List<string>(userIDs),\n                    Usernames = usernames != null ? new List<string>(usernames) : new List<string>()\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Status;\n        }\n\n        /// <inheritdoc cref=\"JoinChatAsync\"/>\n        public async Task<IChannel> JoinChatAsync(string target, ChannelType type, bool persistence = false,\n            bool hidden = false)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                ChannelJoin = new ChannelJoinMessage\n                {\n                    Hidden = hidden,\n                    Persistence = persistence,\n                    Target = target,\n                    Type = (int)type\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Channel;\n        }\n\n        /// <inheritdoc cref=\"JoinMatchAsync(Nakama.IMatchmakerMatched)\"/>\n        public async Task<IMatch> JoinMatchAsync(IMatchmakerMatched matched)\n        {\n            var message = new MatchJoinMessage();\n            if (matched.Token != null)\n            {\n                message.Token = matched.Token;\n            }\n            else\n            {\n                message.MatchId = matched.MatchId;\n            }\n\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchJoin = message\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Match;\n        }\n\n        /// <inheritdoc cref=\"JoinMatchAsync(string,IDictionary{string, string})\"/>\n        public async Task<IMatch> JoinMatchAsync(string matchId, IDictionary<string, string> metadata = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchJoin = new MatchJoinMessage\n                {\n                    MatchId = matchId,\n                    Metadata = metadata\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Match;\n        }\n\n        /// <inheritdoc cref=\"JoinPartyAsync\"/>\n        public Task JoinPartyAsync(string partyId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyJoin = new PartyJoin\n                {\n                    PartyId = partyId\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"LeaveChatAsync(Nakama.IChannel)\"/>\n        public Task LeaveChatAsync(IChannel channel) => LeaveChatAsync(channel.Id);\n\n        /// <inheritdoc cref=\"LeaveChatAsync(string)\"/>\n        public Task LeaveChatAsync(string channelId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                ChannelLeave = new ChannelLeaveMessage\n                {\n                    ChannelId = channelId\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"LeaveMatchAsync(Nakama.IMatch)\"/>\n        public Task LeaveMatchAsync(IMatch match) => LeaveMatchAsync(match.Id);\n\n        /// <inheritdoc cref=\"LeaveMatchAsync(string)\"/>\n        public Task LeaveMatchAsync(string matchId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchLeave = new MatchLeaveMessage\n                {\n                    MatchId = matchId\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"LeavePartyAsync\"/>\n        public Task LeavePartyAsync(string partyId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyLeave = new PartyLeave\n                {\n                    PartyId = partyId\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"ListPartyJoinRequestsAsync\"/>\n        public async Task<IPartyJoinRequest> ListPartyJoinRequestsAsync(string partyId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyJoinRequestList = new PartyJoinRequestList\n                {\n                    PartyId = partyId,\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.PartyJoinRequest;\n        }\n\n        /// <inheritdoc cref=\"PromotePartyMemberAsync\"/>\n        public Task PromotePartyMemberAsync(string partyId, IUserPresence partyMember)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyPromote = new PartyPromote\n                {\n                    PartyId = partyId,\n                    Presence = partyMember as UserPresence // TODO serialize interface directly in protobuf\n                }\n            };\n\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"RemoveChatMessageAsync(Nakama.IChannel,string)\"/>\n        public Task<IChannelMessageAck> RemoveChatMessageAsync(IChannel channel, string messageId) =>\n            RemoveChatMessageAsync(channel.Id, messageId);\n\n        /// <inheritdoc cref=\"RemoveChatMessageAsync(string,string)\"/>\n        public async Task<IChannelMessageAck> RemoveChatMessageAsync(string channelId, string messageId)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                ChannelMessageRemove = new ChannelRemoveMessage\n                {\n                    ChannelId = channelId,\n                    MessageId = messageId\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.ChannelMessageAck;\n        }\n\n        /// <inheritdoc cref=\"RemoveMatchmakerAsync(Nakama.IMatchmakerTicket)\"/>\n        public Task RemoveMatchmakerAsync(IMatchmakerTicket ticket) => RemoveMatchmakerAsync(ticket.Ticket);\n\n        /// <inheritdoc cref=\"RemoveMatchmakerAsync(string)\"/>\n        public Task RemoveMatchmakerAsync(string ticket)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                MatchmakerRemove = new MatchmakerRemoveMessage\n                {\n                    Ticket = ticket\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"RemoveMatchmakerPartyAsync\"/>\n        public Task RemoveMatchmakerPartyAsync(string partyId, string ticket)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyMatchmakerRemove = new PartyMatchmakerRemove\n                {\n                    PartyId = partyId,\n                    Ticket = ticket\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"RemovePartyMemberAsync\"/>\n        public Task RemovePartyMemberAsync(string partyId, IUserPresence presence)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyMemberRemove = new PartyMemberRemove\n                {\n                    PartyId = partyId,\n                    Presence = presence as UserPresence\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"RpcAsync(string,string)\"/>\n        public async Task<IApiRpc> RpcAsync(string funcId, string payload = null)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                Rpc = new ApiRpc\n                {\n                    Id = funcId,\n                    Payload = payload\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Rpc;\n        }\n\n        /// <inheritdoc cref=\"RpcAsync(string,ArraySegment{byte})\"/>\n        public async Task<IApiRpc> RpcAsync(string funcId, ArraySegment<byte> payload)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                Rpc = new ApiRpc\n                {\n                    Id = funcId,\n                    Payload = Convert.ToBase64String(payload.Array, payload.Offset, payload.Count)\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.Rpc;\n        }\n\n        /// <inheritdoc cref=\"SendMatchStateAsync(string,long,ArraySegment{byte},System.Collections.Generic.IEnumerable{Nakama.IUserPresence})\"/>\n        public Task SendMatchStateAsync(string matchId, long opCode, ArraySegment<byte> state,\n            IEnumerable<IUserPresence> presences = null)\n        {\n            var envelope = new WebSocketMessageEnvelope\n            {\n                MatchStateSend = new MatchSendMessage\n                {\n                    MatchId = matchId,\n                    OpCode = Convert.ToString(opCode),\n                    Presences = BuildPresenceList(presences),\n                    State = Convert.ToBase64String(state.Array, state.Offset, state.Count)\n                }\n            };\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"SendMatchStateAsync(string,long,string,System.Collections.Generic.IEnumerable{Nakama.IUserPresence})\"/>\n        public Task SendMatchStateAsync(string matchId, long opCode, string state,\n            IEnumerable<IUserPresence> presences = null) => SendMatchStateAsync(matchId, opCode,\n            System.Text.Encoding.UTF8.GetBytes(state), presences);\n\n        /// <inheritdoc cref=\"SendMatchStateAsync(string,long,byte[],System.Collections.Generic.IEnumerable{Nakama.IUserPresence})\"/>\n        public Task SendMatchStateAsync(string matchId, long opCode, byte[] state,\n            IEnumerable<IUserPresence> presences = null)\n        {\n            var envelope = new WebSocketMessageEnvelope\n            {\n                MatchStateSend = new MatchSendMessage\n                {\n                    MatchId = matchId,\n                    OpCode = Convert.ToString(opCode),\n                    Presences = BuildPresenceList(presences),\n                    State = Convert.ToBase64String(state)\n                }\n            };\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"SendPartyDataAsync(string,long,ArraySegment{byte})\"/>\n        public Task SendPartyDataAsync(string partyId, long opCode, ArraySegment<byte> data)\n        {\n            var envelope = new WebSocketMessageEnvelope\n            {\n                PartyDataSend = new PartyDataSend\n                {\n                    PartyId = partyId,\n                    OpCode = Convert.ToString(opCode),\n                    Data = Convert.ToBase64String(data.Array, data.Offset, data.Count)\n                }\n            };\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"SendPartyDataAsync(string,long,string)\"/>\n        public Task SendPartyDataAsync(string partyId, long opCode, string data) =>\n            SendPartyDataAsync(partyId, opCode, System.Text.Encoding.UTF8.GetBytes(data));\n\n        /// <inheritdoc cref=\"SendPartyDataAsync(string,long,byte[])\"/>\n        public Task SendPartyDataAsync(string partyId, long opCode, byte[] data)\n        {\n            var envelope = new WebSocketMessageEnvelope\n            {\n                PartyDataSend = new PartyDataSend\n                {\n                    PartyId = partyId,\n                    OpCode = Convert.ToString(opCode),\n                    Data = Convert.ToBase64String(data)\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        public override string ToString()\n        {\n            return\n                $\"Socket(_baseUri='{_baseUri}', _cid={_cid}, IsConnected={IsConnected}, IsConnecting={IsConnecting})\";\n        }\n\n        /// <inheritdoc cref=\"UnfollowUsersAsync(System.Collections.Generic.IEnumerable{Nakama.IApiUser})\"/>\n        public Task UnfollowUsersAsync(IEnumerable<IApiUser> users) =>\n            UnfollowUsersAsync(users.Select(user => user.Id));\n\n        /// <inheritdoc cref=\"UnfollowUsersAsync(System.Collections.Generic.IEnumerable{string})\"/>\n        public Task UnfollowUsersAsync(IEnumerable<string> userIDs)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                StatusUnfollow = new StatusUnfollowMessage\n                {\n                    UserIds = new List<string>(userIDs)\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"UpdateChatMessageAsync(Nakama.IChannel,string,string)\"/>\n        public Task<IChannelMessageAck> UpdateChatMessageAsync(IChannel channel, string messageId, string content) =>\n            UpdateChatMessageAsync(channel.Id, messageId, content);\n\n        /// <inheritdoc cref=\"UpdateChatMessageAsync(string,string,string)\"/>\n        public async Task<IChannelMessageAck> UpdateChatMessageAsync(string channelId, string messageId, string content)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                ChannelMessageUpdate = new ChannelUpdateMessage\n                {\n                    ChannelId = channelId,\n                    MessageId = messageId,\n                    Content = content\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.ChannelMessageAck;\n        }\n\n        public async Task<IPartyUpdate> UpdatePartyAsync(string partyId, bool open, bool hidden, string label)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                PartyUpdate = new PartyUpdate\n                {\n                    PartyId = partyId,\n                    Label = label,\n                    Open = open,\n                    Hidden = hidden\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.PartyUpdate;\n        }\n\n        /// <inheritdoc cref=\"UpdateStatusAsync\"/>\n        public Task UpdateStatusAsync(string status)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                StatusUpdate = new StatusUpdateMessage\n                {\n                    Status = status\n                }\n            };\n\n            return SendAsync(envelope);\n        }\n\n        /// <inheritdoc cref=\"WriteChatMessageAsync(Nakama.IChannel,string)\"/>\n        public Task<IChannelMessageAck> WriteChatMessageAsync(IChannel channel, string content) =>\n            WriteChatMessageAsync(channel.Id, content);\n\n        /// <inheritdoc cref=\"WriteChatMessageAsync(string,string)\"/>\n        public async Task<IChannelMessageAck> WriteChatMessageAsync(string channelId, string content)\n        {\n            int cid = Interlocked.Increment(ref _cid);\n            var envelope = new WebSocketMessageEnvelope\n            {\n                Cid = $\"{cid}\",\n                ChannelMessageSend = new ChannelSendMessage\n                {\n                    ChannelId = channelId,\n                    Content = content\n                }\n            };\n\n            var response = await SendAsync(envelope);\n            return response.ChannelMessageAck;\n        }\n\n        /// <summary>\n        /// Build a socket from a client object.\n        /// </summary>\n        /// <param name=\"client\">A client object.</param>\n        /// <returns>A new socket with the connection settings from the client.</returns>\n        public static ISocket From(IClient client) => From(client, new WebSocketAdapter());\n\n        /// <summary>\n        /// Build a socket from a client object and socket adapter.\n        /// </summary>\n        /// <param name=\"client\">A client object.</param>\n        /// <param name=\"adapter\">The socket adapter to use with the connection.</param>\n        /// <returns>A new socket with connection settings from the client.</returns>\n        public static ISocket From(IClient client, ISocketAdapter adapter)\n        {\n            var scheme = client.Scheme.ToLower().Equals(\"http\") ? \"ws\" : \"wss\";\n            return new Socket(scheme, client.Host, client.Port, adapter) { Logger = client.Logger };\n        }\n\n        private void ProcessMessage(ArraySegment<byte> buffer)\n        {\n            var contents = System.Text.Encoding.UTF8.GetString(buffer.Array, buffer.Offset, buffer.Count);\n\n            Logger?.DebugFormat(\"Received JSON over web socket: {0}\", contents);\n\n            var envelope = contents.FromJson<WebSocketMessageEnvelope>();\n            try\n            {\n                if (!string.IsNullOrEmpty(envelope.Cid))\n                {\n                    lock (_responsesLock)\n                    {\n                        // Handle message response.\n                        if (_responses.ContainsKey(envelope.Cid))\n                        {\n                            var completer = _responses[envelope.Cid];\n                            _responses.Remove(envelope.Cid);\n\n                            if (envelope.Error != null)\n                            {\n                                completer.SetException(new WebSocketException(WebSocketError.InvalidState,\n                                    envelope.Error.Message));\n                            }\n                            else\n                            {\n                                completer.SetResult(envelope);\n                            }\n                        }\n                        else\n                        {\n                            // it is valid for this to occur if a completer timed out and was\n                            // removed from the responses dictionary after the timeout.\n                            Logger?.WarnFormat(\"No completer for message cid: {0}\", envelope.Cid);\n                        }\n                    }\n                }\n                else if (envelope.Error != null)\n                {\n                    ReceivedError?.Invoke(new WebSocketException(WebSocketError.InvalidState, envelope.Error.Message));\n                }\n                else if (envelope.ChannelMessage != null)\n                {\n                    ReceivedChannelMessage?.Invoke(envelope.ChannelMessage);\n                }\n                else if (envelope.ChannelPresenceEvent != null)\n                {\n                    ReceivedChannelPresence?.Invoke(envelope.ChannelPresenceEvent);\n                }\n                else if (envelope.MatchmakerMatched != null)\n                {\n                    ReceivedMatchmakerMatched?.Invoke(envelope.MatchmakerMatched);\n                }\n                else if (envelope.MatchPresenceEvent != null)\n                {\n                    ReceivedMatchPresence?.Invoke(envelope.MatchPresenceEvent);\n                }\n                else if (envelope.MatchState != null)\n                {\n                    ReceivedMatchState?.Invoke(envelope.MatchState);\n                }\n                else if (envelope.NotificationList != null)\n                {\n                    foreach (var notification in envelope.NotificationList.Notifications)\n                    {\n                        ReceivedNotification?.Invoke(notification);\n                    }\n                }\n                else if (envelope.StatusPresenceEvent != null)\n                {\n                    ReceivedStatusPresence?.Invoke(envelope.StatusPresenceEvent);\n                }\n                else if (envelope.StreamPresenceEvent != null)\n                {\n                    ReceivedStreamPresence?.Invoke(envelope.StreamPresenceEvent);\n                }\n                else if (envelope.StreamState != null)\n                {\n                    ReceivedStreamState?.Invoke(envelope.StreamState);\n                }\n                else if (envelope.Party != null)\n                {\n                    ReceivedParty?.Invoke(envelope.Party);\n                }\n                else if (envelope.PartyClose != null)\n                {\n                    ReceivedPartyClose?.Invoke(envelope.PartyClose);\n                }\n                else if (envelope.PartyData != null)\n                {\n                    ReceivedPartyData?.Invoke(envelope.PartyData);\n                }\n                else if (envelope.PartyUpdate != null)\n                {\n                    ReceivedPartyUpdate?.Invoke(envelope.PartyUpdate);\n                }\n                else if (envelope.PartyJoinRequest != null)\n                {\n                    ReceivedPartyJoinRequest?.Invoke(envelope.PartyJoinRequest);\n                }\n                else if (envelope.PartyLeader != null)\n                {\n                    ReceivedPartyLeader?.Invoke(envelope.PartyLeader);\n                }\n                else if (envelope.PartyMatchmakerTicket != null)\n                {\n                    ReceivedPartyMatchmakerTicket?.Invoke(envelope.PartyMatchmakerTicket);\n                }\n                else if (envelope.PartyPresenceEvent != null)\n                {\n                    ReceivedPartyPresence?.Invoke(envelope.PartyPresenceEvent);\n                }\n                else\n                {\n                    Logger?.ErrorFormat(\"Received unrecognised message: '{0}'\", contents);\n                }\n            }\n            catch (Exception e)\n            {\n                ReceivedError?.Invoke(e);\n            }\n        }\n\n        private async Task<WebSocketMessageEnvelope> SendAsync(WebSocketMessageEnvelope envelope)\n        {\n            var json = envelope.ToJson();\n\n            Logger?.DebugFormat(\"Sending JSON over web socket: {0}\", json);\n\n            var buffer = System.Text.Encoding.UTF8.GetBytes(json);\n            var cts = new CancellationTokenSource(_sendTimeoutSec);\n            if (string.IsNullOrEmpty(envelope.Cid))\n            {\n                await _adapter.SendAsync(new ArraySegment<byte>(buffer), true, cts.Token);\n                return null; // No response required.\n            }\n\n            var completer = new TaskCompletionSource<WebSocketMessageEnvelope>();\n            lock (_responsesLock)\n            {\n                _responses[envelope.Cid] = completer;\n            }\n            cts.Token.Register(() => {\n                lock (_responsesLock)\n                {\n                    if (_responses.ContainsKey(envelope.Cid))\n                    {\n                        _responses.Remove(envelope.Cid);\n                    }\n                }\n\n                completer.TrySetCanceled();\n            });\n\n            await _adapter.SendAsync(new ArraySegment<byte>(buffer), true, cts.Token);\n            return await completer.Task;\n        }\n\n        private static List<UserPresence> BuildPresenceList(IEnumerable<IUserPresence> presences)\n        {\n            if (presences == null)\n            {\n                return (List<UserPresence>)UserPresence.NoPresences;\n            }\n\n            var presenceList = presences as List<UserPresence>;\n            if (presenceList != null)\n            {\n                return presenceList;\n            }\n\n            presenceList = new List<UserPresence>();\n            foreach (var userPresence in presences)\n            {\n                var concretePresence = (UserPresence)userPresence;\n                presenceList.Add(concretePresence);\n            }\n\n            return presenceList;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/StatusFollowMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Follow one or more other users for status updates.\n    /// </summary>\n    internal class StatusFollowMessage\n    {\n        [DataMember(Name = \"user_ids\"), Preserve] public List<string> UserIds { get; set; }\n\n        [DataMember(Name = \"usernames\"), Preserve] public List<string> Usernames { get; set; }\n\n        public override string ToString()\n        {\n            var userIds = string.Join(\", \", UserIds);\n            var usernames = string.Join(\", \", Usernames);\n            return $\"StatusFollowMessage(UserIds=[{userIds}],Usernames=[{usernames}])\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/StatusUnfollowMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Unfollow one or more users on the server.\n    /// </summary>\n    internal class StatusUnfollowMessage\n    {\n        [DataMember(Name=\"user_ids\"), Preserve]\n        public List<string> UserIds { get; set; }\n\n        public override string ToString()\n        {\n            var userIds = string.Join(\", \", UserIds);\n            return $\"StatusUnfollowMessage(UserIds=[{userIds}])\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/StatusUpdateMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// Update the status of the current user.\n    /// </summary>\n    internal class StatusUpdateMessage\n    {\n        [DataMember(Name=\"status\"), Preserve]\n        public string Status { get; set; }\n\n        public override string ToString()\n        {\n            return $\"StatusUpdateMessage(Status='{Status}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/StorageObjectId.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An identifier for a storage object.\n    /// </summary>\n    /// <inheritdoc cref=\"IApiReadStorageObjectId\"/>\n    public class StorageObjectId : IApiReadStorageObjectId, IApiDeleteStorageObjectId\n    {\n        /// <inheritdoc cref=\"IApiReadStorageObjectId\" />\n        public string Collection { get; set; }\n\n        /// <inheritdoc cref=\"IApiReadStorageObjectId\" />\n        public string Key { get; set; }\n\n        /// <inheritdoc />\n        public string Version { get; set; }\n\n        /// <inheritdoc />\n        public string UserId { get; set; }\n\n        public override string ToString()\n        {\n            return $\"StorageObjectId(Collection='{Collection}', Key='{Key}', Version='{Version}', UserId='{UserId}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/TinyJson/JsonParser.cs",
    "content": "// The MIT License (MIT)\n//\n// Copyright (c) 2018 Alex Parker\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files(the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions :\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nusing System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\nusing System.Runtime.Serialization;\nusing System.Text;\nusing System.Text.RegularExpressions;\n\nnamespace Nakama.TinyJson\n{\n    // Really simple JSON parser in ~300 lines\n    // - Attempts to parse JSON files with minimal GC allocation\n    // - Nice and simple \"[1,2,3]\".FromJson<List<int>>() API\n    // - Classes and structs can be parsed too!\n    //      class Foo { public int Value; }\n    //      \"{\\\"Value\\\":10}\".FromJson<Foo>()\n    // - Can parse JSON without type information into Dictionary<string,object> and List<object> e.g.\n    //      \"[1,2,3]\".FromJson<object>().GetType() == typeof(List<object>)\n    //      \"{\\\"Value\\\":10}\".FromJson<object>().GetType() == typeof(Dictionary<string,object>)\n    // - No JIT Emit support to support AOT compilation on iOS\n    // - Attempts are made to NOT throw an exception if the JSON is corrupted or invalid: returns null instead.\n    // - Only public fields and property setters on classes/structs will be written to\n    //\n    // Limitations:\n    // - No JIT Emit support to parse structures quickly\n    // - Limited to parsing <2GB JSON files (due to int.MaxValue)\n    // - Parsing of abstract classes or interfaces is NOT supported and will throw an exception.\n    public static class JsonParser\n    {\n        [ThreadStatic] private static Stack<List<string>> _splitArrayPool;\n        [ThreadStatic] private static StringBuilder _stringBuilder;\n        [ThreadStatic] private static Dictionary<Type, Dictionary<string, FieldInfo>> _fieldInfoCache;\n        [ThreadStatic] private static Dictionary<Type, Dictionary<string, PropertyInfo>> _propertyInfoCache;\n\n        public static T FromJson<T>(this string json)\n        {\n            // Initialize, if needed, the ThreadStatic variables\n            if (_propertyInfoCache == null)\n            {\n                _propertyInfoCache = new Dictionary<Type, Dictionary<string, PropertyInfo>>();\n            }\n\n            if (_fieldInfoCache == null)\n            {\n                _fieldInfoCache = new Dictionary<Type, Dictionary<string, FieldInfo>>();\n            }\n\n            if (_stringBuilder == null)\n            {\n                _stringBuilder = new StringBuilder();\n            }\n\n            if (_splitArrayPool == null)\n            {\n                _splitArrayPool = new Stack<List<string>>();\n            }\n\n            // Remove all whitespace not within strings to make parsing simpler\n            _stringBuilder.Length = 0;\n            for (var i = 0; i < json.Length; i++)\n            {\n                var c = json[i];\n                if (c == '\"')\n                {\n                    i = AppendUntilStringEnd(true, i, json);\n                    continue;\n                }\n\n                if (char.IsWhiteSpace(c))\n                    continue;\n\n                _stringBuilder.Append(c);\n            }\n\n            //Parse the thing!\n            return (T) ParseValue(typeof(T), _stringBuilder.ToString());\n        }\n\n        private static int AppendUntilStringEnd(bool appendEscapeCharacter, int startIdx, string json)\n        {\n            _stringBuilder.Append(json[startIdx]);\n            for (var i = startIdx + 1; i < json.Length; i++)\n            {\n                if (json[i] == '\\\\')\n                {\n                    if (appendEscapeCharacter)\n                        _stringBuilder.Append(json[i]);\n                    _stringBuilder.Append(json[i + 1]);\n                    i++; //Skip next character as it is escaped\n                }\n                else if (json[i] == '\"')\n                {\n                    _stringBuilder.Append(json[i]);\n                    return i;\n                }\n                else\n                {\n                    _stringBuilder.Append(json[i]);\n                }\n            }\n\n            return json.Length - 1;\n        }\n\n        //Splits { <value>:<value>, <value>:<value> } and [ <value>, <value> ] into a list of <value> strings\n        private static List<string> Split(string json)\n        {\n            var splitArray = _splitArrayPool.Count > 0 ? _splitArrayPool.Pop() : new List<string>();\n            splitArray.Clear();\n            if (json.Length == 2)\n                return splitArray;\n            var parseDepth = 0;\n            _stringBuilder.Length = 0;\n            for (var i = 1; i < json.Length - 1; i++)\n            {\n                if (json[i] == '[' || json[i] == '{')\n                {\n                    parseDepth++;\n                }\n                else if (json[i] == ']' || json[i] == '}')\n                {\n                    parseDepth--;\n                }\n                else if (json[i] == '\"')\n                {\n                    i = AppendUntilStringEnd(true, i, json);\n                    continue;\n                }\n                else if (json[i] == ',' || json[i] == ':')\n                {\n                    if (parseDepth == 0)\n                    {\n                        splitArray.Add(_stringBuilder.ToString());\n                        _stringBuilder.Length = 0;\n                        continue;\n                    }\n                }\n\n                _stringBuilder.Append(json[i]);\n            }\n\n            splitArray.Add(_stringBuilder.ToString());\n\n            return splitArray;\n        }\n\n        private static object ParseValue(Type type, string json)\n        {\n            if (type == typeof(string))\n            {\n                // Return the raw value if it is unquoted (e.g. a number)\n                var validQuotes = new[] {'\"', '\\''};\n                if (json.Length > 0 && !validQuotes.Contains(json[0]) && !validQuotes.Contains(json[json.Length-1]))\n                {\n                    return json;\n                }\n                \n                if (json.Length <= 2)\n                    return string.Empty;\n\n                var parseStringBuilder = new StringBuilder(json.Length);\n\n                for (var i = 1; i < json.Length - 1; ++i)\n                {\n                    if (json[i] == '\\\\' && i + 1 < json.Length - 1)\n                    {\n                        var j = \"\\\"\\\\nrtbf/\".IndexOf(json[i + 1]);\n                        if (j >= 0)\n                        {\n                            parseStringBuilder.Append(\"\\\"\\\\\\n\\r\\t\\b\\f/\"[j]);\n                            ++i;\n                            continue;\n                        }\n\n                        if (json[i + 1] == 'u' && i + 5 < json.Length - 1)\n                        {\n                            uint c;\n                            if (uint.TryParse(json.Substring(i + 2, 4),\n                                    System.Globalization.NumberStyles.AllowHexSpecifier, null, out c))\n                            {\n                                parseStringBuilder.Append((char) c);\n                                i += 5;\n                                continue;\n                            }\n                        }\n                    }\n\n                    parseStringBuilder.Append(json[i]);\n                }\n\n                return parseStringBuilder.ToString();\n            }\n\n            if (type.IsPrimitive)\n            {\n                var result = Convert.ChangeType(json, type, System.Globalization.CultureInfo.InvariantCulture);\n                return result;\n            }\n\n            if (type == typeof(decimal))\n            {\n                decimal result;\n                decimal.TryParse(json, System.Globalization.NumberStyles.Float,\n                    System.Globalization.CultureInfo.InvariantCulture, out result);\n                return result;\n            }\n\n            if (json == \"null\")\n            {\n                return null;\n            }\n\n            if (type.IsEnum)\n            {\n                if (json[0] == '\"')\n                    json = json.Substring(1, json.Length - 2);\n                try\n                {\n                    return Enum.Parse(type, json, false);\n                }\n                catch\n                {\n                    return 0;\n                }\n            }\n\n            if (type.IsArray)\n            {\n                var arrayType = type.GetElementType();\n                if (json[0] != '[' || json[json.Length - 1] != ']')\n                    return null;\n\n                var elems = Split(json);\n                var newArray = Array.CreateInstance(arrayType, elems.Count);\n                for (var i = 0; i < elems.Count; i++)\n                    newArray.SetValue(ParseValue(arrayType, elems[i]), i);\n                _splitArrayPool.Push(elems);\n                return newArray;\n            }\n\n            if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))\n            {\n                var listType = type.GetGenericArguments()[0];\n                if (json[0] != '[' || json[json.Length - 1] != ']')\n                    return null;\n\n                var elems = Split(json);\n                var list = (IList) type.GetConstructor(new Type[] {typeof(int)}).Invoke(new object[] {elems.Count});\n                foreach (var t in elems)\n                    list.Add(ParseValue(listType, t));\n\n                _splitArrayPool.Push(elems);\n                return list;\n            }\n\n            if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Dictionary<,>))\n            {\n                Type keyType, valueType;\n                {\n                    var args = type.GetGenericArguments();\n                    keyType = args[0];\n                    valueType = args[1];\n                }\n\n                // Refuse to parse dictionary keys that aren't of type string\n                if (keyType != typeof(string))\n                    return null;\n                // Must be a valid dictionary element\n                if (json[0] != '{' || json[json.Length - 1] != '}')\n                    return null;\n                // The list is split into key/value pairs only, this means the split must be divisible by 2 to be valid JSON\n                var elems = Split(json);\n                if (elems.Count % 2 != 0)\n                    return null;\n\n                var dictionary = (IDictionary) type.GetConstructor(new Type[] {typeof(int)})\n                    .Invoke(new object[] {elems.Count / 2});\n                for (var i = 0; i < elems.Count; i += 2)\n                {\n                    if (elems[i].Length <= 2)\n                        continue;\n                    var keyValue = elems[i].Substring(1, elems[i].Length - 2);\n                    var val = ParseValue(valueType, elems[i + 1]);\n                    dictionary.Add(keyValue, val);\n                }\n\n                return dictionary;\n            }\n\n            if (type == typeof(object))\n            {\n                return ParseAnonymousValue(json);\n            }\n\n            if (json[0] == '{' && json[json.Length - 1] == '}')\n            {\n                return ParseObject(type, json);\n            }\n\n            return null;\n        }\n\n        private static object ParseAnonymousValue(string json)\n        {\n            if (json.Length == 0)\n                return null;\n            if (json[0] == '{' && json[json.Length - 1] == '}')\n            {\n                var elems = Split(json);\n                if (elems.Count % 2 != 0)\n                    return null;\n                var dict = new Dictionary<string, object>(elems.Count / 2);\n                for (var i = 0; i < elems.Count; i += 2)\n                    dict.Add(elems[i].Substring(1, elems[i].Length - 2), ParseAnonymousValue(elems[i + 1]));\n                return dict;\n            }\n\n            if (json[0] == '[' && json[json.Length - 1] == ']')\n            {\n                var items = Split(json);\n                var finalList = new List<object>(items.Count);\n                foreach (var t in items)\n                    finalList.Add(ParseAnonymousValue(t));\n\n                return finalList;\n            }\n\n            if (json[0] == '\"' && json[json.Length - 1] == '\"')\n            {\n                var str = json.Substring(1, json.Length - 2);\n                return str.Replace(\"\\\\\", string.Empty);\n            }\n\n            if (char.IsDigit(json[0]) || json[0] == '-')\n            {\n                if (json.Contains(\".\"))\n                {\n                    double result;\n                    double.TryParse(json, System.Globalization.NumberStyles.Float,\n                        System.Globalization.CultureInfo.InvariantCulture, out result);\n                    return result;\n                }\n                else\n                {\n                    int result;\n                    int.TryParse(json, out result);\n                    return result;\n                }\n            }\n\n            if (json == \"true\")\n                return true;\n            if (json == \"false\")\n                return false;\n            // handles json == \"null\" as well as invalid JSON\n            return null;\n        }\n\n        private static Dictionary<string, T> CreateMemberNameDictionary<T>(IEnumerable<T> members) where T : MemberInfo\n        {\n            // NOTE The StringComparer is disabled intentionally because of how our generated code.\n//            var nameToMember = new Dictionary<string, T>(StringComparer.OrdinalIgnoreCase);\n            var nameToMember = new Dictionary<string, T>();\n            foreach (var member in members)\n            {\n                if (member.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                    continue;\n\n                var name = member.Name;\n                if (member.IsDefined(typeof(DataMemberAttribute), true))\n                {\n                    var dataMemberAttribute =\n                        (DataMemberAttribute) Attribute.GetCustomAttribute(member, typeof(DataMemberAttribute), true);\n                    if (!string.IsNullOrEmpty(dataMemberAttribute.Name))\n                        name = dataMemberAttribute.Name;\n                }\n\n                nameToMember.Add(name, member);\n            }\n\n            return nameToMember;\n        }\n\n        private static object ParseObject(Type type, string json)\n        {\n            var instance = FormatterServices.GetUninitializedObject(type);\n\n            // The list is split into key/value pairs only, this means the split must be divisible by 2 to be valid JSON\n            var elems = Split(json);\n            if (elems.Count % 2 != 0)\n                return instance;\n\n            Dictionary<string, FieldInfo> nameToField;\n            Dictionary<string, PropertyInfo> nameToProperty;\n            if (!_fieldInfoCache.TryGetValue(type, out nameToField))\n            {\n                nameToField = CreateMemberNameDictionary(\n                    type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy));\n                _fieldInfoCache.Add(type, nameToField);\n            }\n\n            if (!_propertyInfoCache.TryGetValue(type, out nameToProperty))\n            {\n                nameToProperty = CreateMemberNameDictionary(\n                    type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy));\n                _propertyInfoCache.Add(type, nameToProperty);\n            }\n\n            for (var i = 0; i < elems.Count; i += 2)\n            {\n                if (elems[i].Length <= 2)\n                    continue;\n                var key = elems[i].Substring(1, elems[i].Length - 2);\n                var value = elems[i + 1];\n\n                FieldInfo fieldInfo;\n                PropertyInfo propertyInfo;\n                if (nameToField.TryGetValue(key, out fieldInfo))\n                    fieldInfo.SetValue(instance, ParseValue(fieldInfo.FieldType, value));\n                else if (nameToProperty.TryGetValue(key, out propertyInfo))\n                    propertyInfo.SetValue(instance, ParseValue(propertyInfo.PropertyType, value), null);\n            }\n\n            return instance;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/TinyJson/JsonWriter.cs",
    "content": "﻿// The MIT License (MIT)\n//\n// Copyright (c) 2018 Alex Parker\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files(the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions :\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nusing System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing System.Runtime.Serialization;\nusing System.Text;\n\nnamespace Nakama.TinyJson\n{\n    // Really simple JSON writer\n    // - Outputs JSON structures from an object\n    // - Really simple API (new List<int> { 1, 2, 3 }).ToJson() == \"[1,2,3]\"\n    // - Will only output public fields and property getters on objects\n    public static class JsonWriter\n    {\n        public static string ToJson(this object item)\n        {\n            var stringBuilder = new StringBuilder();\n            AppendValue(stringBuilder, item);\n            return stringBuilder.ToString();\n        }\n\n        private static void AppendValue(StringBuilder stringBuilder, object item)\n        {\n            if (item == null)\n            {\n                stringBuilder.Append(\"null\");\n                return;\n            }\n\n            var type = item.GetType();\n            if (type == typeof(string) || type == typeof(char))\n            {\n                stringBuilder.Append('\"');\n                var str = (string) item;\n                foreach (var t in str)\n                    if (t < ' ' || t == '\"' || t == '\\\\')\n                    {\n                        stringBuilder.Append('\\\\');\n                        var j = \"\\\"\\\\\\n\\r\\t\\b\\f\".IndexOf(t);\n                        if (j >= 0)\n                            stringBuilder.Append(\"\\\"\\\\nrtbf\"[j]);\n                        else\n                            stringBuilder.AppendFormat(\"u{0:X4}\", (uint) t);\n                    }\n                    else\n                        stringBuilder.Append(t);\n\n                stringBuilder.Append('\"');\n            }\n            else if (type == typeof(byte) || type == typeof(sbyte))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(short) || type == typeof(ushort))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(int) || type == typeof(uint))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(long) || type == typeof(ulong))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(float))\n            {\n                stringBuilder.Append(((float) item).ToString(System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof(double))\n            {\n                stringBuilder.Append(((double) item).ToString(System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof (decimal)) {\n                stringBuilder.Append (((decimal) item).ToString (System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof(bool))\n            {\n                stringBuilder.Append((bool) item ? \"true\" : \"false\");\n            }\n            else if (type.IsEnum)\n            {\n                stringBuilder.Append('\"');\n                stringBuilder.Append(item);\n                stringBuilder.Append('\"');\n            }\n            else if (item is IList)\n            {\n                stringBuilder.Append('[');\n                var isFirst = true;\n                var list = (IList) item;\n                foreach (var t in list)\n                {\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    AppendValue(stringBuilder, t);\n                }\n                stringBuilder.Append(']');\n            }\n            else if (item is IDictionary dict)\n            {\n                var keyType = type.GetGenericArguments()[0];\n\n                //Refuse to output dictionary keys that aren't of type string\n                if (keyType != typeof(string))\n                {\n                    stringBuilder.Append(\"{}\");\n                    return;\n                }\n\n                stringBuilder.Append('{');\n                var isFirst = true;\n                foreach (var key in dict.Keys)\n                {\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append((string) key);\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, dict[key]);\n                }\n                stringBuilder.Append('}');\n            }\n            else\n            {\n                stringBuilder.Append('{');\n\n                var isFirst = true;\n                var fieldInfos =\n                    type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);\n                foreach (var t in fieldInfos)\n                {\n                    if (t.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                        continue;\n\n                    var value = t.GetValue(item);\n                    if (value == null) continue;\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append(GetMemberName(t));\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, value);\n                }\n\n                var propertyInfo =\n                    type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);\n                foreach (var t in propertyInfo)\n                {\n                    if (!t.CanRead || t.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                        continue;\n\n                    var value = t.GetValue(item, null);\n                    if (value == null) continue;\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append(GetMemberName(t));\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, value);\n                }\n\n                stringBuilder.Append('}');\n            }\n        }\n\n        private static string GetMemberName(MemberInfo member)\n        {\n            if (!member.IsDefined(typeof(DataMemberAttribute), true)) return member.Name;\n            var dataMemberAttribute =\n                (DataMemberAttribute) Attribute.GetCustomAttribute(member, typeof(DataMemberAttribute), true);\n            return !string.IsNullOrEmpty(dataMemberAttribute.Name) ? dataMemberAttribute.Name : member.Name;\n        }\n    }\n}"
  },
  {
    "path": "Nakama/TinyJson/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018 Alex Parker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "Nakama/TransientExceptionDelegate.cs",
    "content": "using System;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A delegate used to determine whether or not a network exception is\n    /// due to a temporary bad state on the server. For example, timeouts can be transient in cases where\n    /// the server is experiencing temporarily high load.\n    /// </summary>\n    public delegate bool TransientExceptionDelegate(Exception e);\n}"
  },
  {
    "path": "Nakama/WebSocketAdapter.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.IO;\nusing System.Net.Sockets;\nusing System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Nakama.Ninja.WebSockets;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An adapter which uses the WebSocket protocol with Nakama server.\n    /// </summary>\n    public class WebSocketAdapter : ISocketAdapter\n    {\n        private const int KeepAliveIntervalSec = 15;\n        private const int MaxMessageReadSize = 1024 * 256;\n        private const int SendTimeoutSec = 10;\n\n        /// <inheritdoc cref=\"ISocketAdapter.Connected\"/>\n        public event Action Connected;\n\n        /// <inheritdoc cref=\"ISocketAdapter.Closed\"/>\n        public event Action<string> Closed;\n\n        /// <inheritdoc cref=\"ISocketAdapter.ReceivedError\"/>\n        public event Action<Exception> ReceivedError;\n\n        /// <inheritdoc cref=\"ISocketAdapter.Received\"/>\n        public event Action<ArraySegment<byte>> Received;\n\n        /// <summary>\n        /// If the WebSocket is connected.\n        /// </summary>\n        public bool IsConnected => _webSocket?.State == WebSocketState.Open;\n\n        /// <summary>\n        /// If the WebSocket is connecting.\n        /// </summary>\n        public bool IsConnecting => _webSocket?.State == WebSocketState.Connecting;\n\n        private readonly int _maxMessageReadSize;\n        private readonly WebSocketClientOptions _options;\n        private readonly TimeSpan _sendTimeoutSec;\n        private CancellationTokenSource _cancellationSource;\n        private WebSocket _webSocket;\n        private Uri _uri;\n        private readonly ILogger _logger;\n\n        public WebSocketAdapter(int keepAliveIntervalSec = KeepAliveIntervalSec, int sendTimeoutSec = SendTimeoutSec,\n            int maxMessageReadSize = MaxMessageReadSize, ILogger logger = null) :\n            this(new WebSocketClientOptions\n            {\n                IncludeExceptionInCloseResponse = true,\n                KeepAliveInterval = TimeSpan.FromSeconds(keepAliveIntervalSec),\n                NoDelay = true\n            }, sendTimeoutSec, maxMessageReadSize, logger)\n        {\n        }\n\n        public WebSocketAdapter(WebSocketClientOptions options, int sendTimeoutSec, int maxMessageReadSize, ILogger logger)\n        {\n            _maxMessageReadSize = maxMessageReadSize;\n            _options = options;\n            _sendTimeoutSec = TimeSpan.FromSeconds(sendTimeoutSec);\n            _logger = logger;\n        }\n\n        /// <inheritdoc cref=\"ISocketAdapter.CloseAsync\"/>\n        public async Task CloseAsync()\n        {\n            if (_webSocket == null) return;\n\n            if (_webSocket.State == WebSocketState.Open)\n            {\n                await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, \"\", CancellationToken.None);\n            }\n            else if (_webSocket.State == WebSocketState.Connecting)\n            {\n                // cancel mid-connect\n                _cancellationSource?.Cancel();\n            }\n\n            _webSocket = null;\n        }\n\n        /// <inheritdoc cref=\"ISocketAdapter.ConnectAsync\"/>\n        public async Task ConnectAsync(Uri uri, int timeout)\n        {\n            if (_webSocket?.State == WebSocketState.Open || _webSocket?.State == WebSocketState.Connecting)\n            {\n                // Already connected so we can return.\n                return;\n            }\n\n            _cancellationSource = new CancellationTokenSource();\n            _uri = uri;\n\n            var clientFactory = new WebSocketClientFactory();\n\n            var cts = new CancellationTokenSource(TimeSpan.FromSeconds(timeout));\n            var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(_cancellationSource.Token, cts.Token);\n            _webSocket = await clientFactory.ConnectAsync(_uri, _options, linkedCts.Token).ConfigureAwait(false);\n            _ = Task.Factory.StartNew(_ => ReceiveLoop(_webSocket, _cancellationSource.Token),\n                TaskCreationOptions.LongRunning, _cancellationSource.Token);\n            Connected?.Invoke();\n        }\n\n        /// <inheritdoc cref=\"ISocketAdapter.SendAsync\"/>\n        public Task SendAsync(ArraySegment<byte> buffer, bool reliable = true,\n            CancellationToken canceller = default)\n        {\n            if (_webSocket?.State != WebSocketState.Open)\n            {\n                throw new SocketException((int)SocketError.NotConnected);\n            }\n\n            canceller.ThrowIfCancellationRequested();\n\n            try\n            {\n                var cts = new CancellationTokenSource(_sendTimeoutSec);\n                var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(canceller, cts.Token);\n                var t = _webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, linkedCts.Token);\n                t.ConfigureAwait(false);\n                return t;\n            }\n            catch\n            {\n                _ = CloseAsync();\n                throw;\n            }\n        }\n\n        /// <inheritdoc cref=\"object.ToString\" />\n        public override string ToString() => $\"WebSocketAdapter(MaxMessageSize={_maxMessageReadSize}, Uri='{_uri}')\";\n\n        private async Task ReceiveLoop(WebSocket webSocket, CancellationToken canceller)\n        {\n            canceller.ThrowIfCancellationRequested();\n\n            var buffer = new byte[_maxMessageReadSize];\n            var bufferReadCount = 0;\n            var closeReason = \"\";\n\n            try\n            {\n                do\n                {\n                    var bufferSegment =\n                        new ArraySegment<byte>(buffer, bufferReadCount, _maxMessageReadSize - bufferReadCount);\n                    var result = await webSocket.ReceiveAsync(bufferSegment, canceller).ConfigureAwait(false);\n                    if (result == null)\n                    {\n                        break;\n                    }\n\n                    if (result.MessageType == WebSocketMessageType.Close)\n                    {\n                        if (webSocket.State == WebSocketState.CloseReceived)\n                        {\n                            try\n                            {\n                                closeReason = result.CloseStatusDescription ?? \"\";\n                                await webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, \"\",\n                                    CancellationToken.None);\n                            }\n                            // Ignore these exceptions from CloseOutputAsync as we're already closing the socket\n                            // anyway. In the MonoRuntime, the Close message can be received after the socket has\n                            // been disposed, causing these exceptions to be thrown.\n                            catch (WebSocketException e) when (e.WebSocketErrorCode ==\n                                                               WebSocketError.ConnectionClosedPrematurely)\n                            {\n                                // ignored.\n                            }\n                            catch (Exception e) when (e is ObjectDisposedException || e is InvalidOperationException ||\n                                                      e is IOException)\n                            {\n                                // ignored.\n                            }\n                        }\n                        break;\n                    }\n\n                    bufferReadCount += result.Count;\n                    if (!result.EndOfMessage) continue;\n\n                    try\n                    {\n                        Received?.Invoke(new ArraySegment<byte>(buffer, 0, bufferReadCount));\n                    }\n                    catch (Exception e)\n                    {\n                        // Don't stop receive loop if received function throws.\n                        ReceivedError?.Invoke(e);\n                    }\n\n                    bufferReadCount = 0;\n                } while (!canceller.IsCancellationRequested && _webSocket?.State == WebSocketState.Open);\n            }\n            catch (EndOfStreamException)\n            {\n                // IGNORE:\n                // \"Unexpected end of stream encountered whilst attempting to read 2 bytes.\"\n            }\n            catch (IOException)\n            {\n                // IGNORE.\n            }\n            catch (SocketException)\n            {\n                // IGNORE:\n                // \"Unable to read data from the transport connection: Access denied.\"\n                // \"Unable to read data from the transport connection: Network subsystem is down.\"\n                // \"Unable to write data to the transport connection: The socket has been shut down.\"\n                // \"The socket is not connected\"\n                // \"Unable to read data from the transport connection: Connection reset by peer.\"\n                // \"Unable to read data from the transport connection: Connection timed out.\"\n                // \"Unable to read data from the transport connection: Connection refused.\"\n            }\n            catch (Exception e)\n            {\n                ReceivedError?.Invoke(e);\n            }\n            finally\n            {\n                Closed?.Invoke(closeReason);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/WebSocketErrorMessage.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// A logical error received on the WebSocket connection.\n    /// </summary>\n    internal class WebSocketErrorMessage\n    {\n        [DataMember(Name = \"code\"), Preserve] public int Code { get; set; }\n\n        [DataMember(Name = \"context\"), Preserve] public Dictionary<string, string> Context { get; set; }\n\n        [DataMember(Name = \"message\"), Preserve] public string Message { get; set; }\n\n        public override string ToString()\n        {\n            return $\"WebSocketErrorMessage(Code={Code}, Context={Context}, Message='{Message}')\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/WebSocketMessageEnvelope.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Runtime.Serialization;\n\nnamespace Nakama\n{\n    /// <summary>\n    /// An envelope for messages received or sent on a <c>WebSocket</c>.\n    /// </summary>\n    internal class WebSocketMessageEnvelope\n    {\n        [DataMember(Name=\"cid\"), Preserve]\n        public string Cid { get; set; }\n\n        [DataMember(Name=\"channel\"), Preserve]\n        public Channel Channel { get; set; }\n\n        [DataMember(Name=\"channel_join\"), Preserve]\n        public ChannelJoinMessage ChannelJoin { get; set; }\n\n        [DataMember(Name=\"channel_leave\"), Preserve]\n        public ChannelLeaveMessage ChannelLeave { get; set; }\n\n        [DataMember(Name=\"channel_message\"), Preserve]\n        public ApiChannelMessage ChannelMessage { get; set; }\n\n        [DataMember(Name=\"channel_message_ack\"), Preserve]\n        public ChannelMessageAck ChannelMessageAck { get; set; }\n\n        [DataMember(Name=\"channel_message_remove\"), Preserve]\n        public ChannelRemoveMessage ChannelMessageRemove { get; set; }\n\n        [DataMember(Name=\"channel_message_send\"), Preserve]\n        public ChannelSendMessage ChannelMessageSend { get; set; }\n\n        [DataMember(Name=\"channel_message_update\"), Preserve]\n        public ChannelUpdateMessage ChannelMessageUpdate { get; set; }\n\n        [DataMember(Name=\"channel_presence_event\"), Preserve]\n        public ChannelPresenceEvent ChannelPresenceEvent { get; set; }\n\n        [DataMember(Name=\"error\"), Preserve]\n        public WebSocketErrorMessage Error { get; set; }\n\n        [DataMember(Name=\"matchmaker_add\"), Preserve]\n        public MatchmakerAddMessage MatchmakerAdd { get; set; }\n\n        [DataMember(Name=\"matchmaker_matched\"), Preserve]\n        public MatchmakerMatched MatchmakerMatched { get; set; }\n\n        [DataMember(Name=\"matchmaker_remove\"), Preserve]\n        public MatchmakerRemoveMessage MatchmakerRemove { get; set; }\n\n        [DataMember(Name=\"matchmaker_ticket\"), Preserve]\n        public MatchmakerTicket MatchmakerTicket { get; set; }\n\n        [DataMember(Name=\"match\"), Preserve]\n        public Match Match { get; set; }\n\n        [DataMember(Name=\"match_create\"), Preserve]\n        public MatchCreateMessage MatchCreate { get; set; }\n\n        [DataMember(Name=\"match_join\"), Preserve]\n        public MatchJoinMessage MatchJoin { get; set; }\n\n        [DataMember(Name=\"match_leave\"), Preserve]\n        public MatchLeaveMessage MatchLeave { get; set; }\n\n        [DataMember(Name=\"match_presence_event\"), Preserve]\n        public MatchPresenceEvent MatchPresenceEvent { get; set; }\n\n        [DataMember(Name=\"match_data\"), Preserve]\n        public MatchState MatchState { get; set; }\n\n        [DataMember(Name=\"match_data_send\"), Preserve]\n        public MatchSendMessage MatchStateSend { get; set; }\n\n        [DataMember(Name=\"notifications\"), Preserve]\n        public ApiNotificationList NotificationList { get; set; }\n\n        [DataMember(Name=\"rpc\"), Preserve]\n        public ApiRpc Rpc { get; set; }\n\n        [DataMember(Name=\"status\"), Preserve]\n        public Status Status { get; set; }\n\n        [DataMember(Name=\"status_follow\"), Preserve]\n        public StatusFollowMessage StatusFollow { get; set; }\n\n        [DataMember(Name=\"status_presence_event\"), Preserve]\n        public StatusPresenceEvent StatusPresenceEvent { get; set; }\n\n        [DataMember(Name=\"status_unfollow\"), Preserve]\n        public StatusUnfollowMessage StatusUnfollow { get; set; }\n\n        [DataMember(Name=\"status_update\"), Preserve]\n        public StatusUpdateMessage StatusUpdate { get; set; }\n\n        [DataMember(Name=\"stream_presence_event\"), Preserve]\n        public StreamPresenceEvent StreamPresenceEvent { get; set; }\n\n        [DataMember(Name=\"stream_data\"), Preserve]\n        public StreamState StreamState { get; set; }\n\n        [DataMember(Name=\"party\"), Preserve]\n        public Party Party { get; set; }\n\n        [DataMember(Name=\"party_create\"), Preserve]\n        public PartyCreate PartyCreate { get; set; }\n\n        [DataMember(Name=\"party_update\"), Preserve]\n        public PartyUpdate PartyUpdate { get; set; }\n\n        [DataMember(Name=\"party_join\"), Preserve]\n        public PartyJoin PartyJoin { get; set; }\n\n        [DataMember(Name=\"party_leave\"), Preserve]\n        public PartyLeave PartyLeave { get; set; }\n\n        [DataMember(Name=\"party_promote\"), Preserve]\n        public PartyPromote PartyPromote { get; set; }\n\n        [DataMember(Name=\"party_leader\"), Preserve]\n        public PartyLeader PartyLeader { get; set; }\n\n        [DataMember(Name=\"party_accept\"), Preserve]\n        public PartyAccept PartyAccept { get; set; }\n\n        [DataMember(Name=\"party_remove\"), Preserve]\n        public PartyMemberRemove PartyMemberRemove { get; set; }\n\n        [DataMember(Name=\"party_close\"), Preserve]\n        public PartyClose PartyClose { get; set; }\n\n        [DataMember(Name=\"party_join_request_list\"), Preserve]\n        public PartyJoinRequestList PartyJoinRequestList { get; set; }\n\n        [DataMember(Name=\"party_join_request\"), Preserve]\n        public PartyJoinRequest PartyJoinRequest { get; set; }\n\n        [DataMember(Name=\"party_matchmaker_add\"), Preserve]\n        public PartyMatchmakerAdd PartyMatchmakerAdd { get; set; }\n\n        [DataMember(Name=\"party_matchmaker_remove\"), Preserve]\n        public PartyMatchmakerRemove PartyMatchmakerRemove { get; set; }\n\n        [DataMember(Name=\"party_matchmaker_ticket\"), Preserve]\n        public PartyMatchmakerTicket PartyMatchmakerTicket { get; set; }\n\n        [DataMember(Name=\"party_data\"), Preserve]\n        public PartyData PartyData { get; set; }\n\n        [DataMember(Name=\"party_data_send\"), Preserve]\n        public PartyDataSend PartyDataSend { get; set; }\n\n        [DataMember(Name=\"party_presence_event\"), Preserve]\n        public PartyPresenceEvent PartyPresenceEvent { get; set; }\n\n        public override string ToString()\n        {\n            return \"WebSocketMessageEnvelope\";\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama/WebSocketStdlibAdapter.cs",
    "content": "﻿// Copyright 2022 The Nakama Authors\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n\r\nusing System;\r\nusing System.IO;\r\nusing System.Net.Sockets;\r\nusing System.Net.WebSockets;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace Nakama\r\n{\r\n    /// <summary>\r\n    /// An adapter which uses the WebSocket protocol with Nakama server.\r\n    /// </summary>\r\n    public class WebSocketStdlibAdapter : ISocketAdapter\r\n    {\r\n        private const int KeepAliveIntervalSec = 15;\r\n        private const int MaxMessageReadSize = 1024 * 256;\r\n        private const int SendTimeoutSec = 10;\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.Connected\"/>\r\n        public event Action Connected;\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.Closed\"/>\r\n        public event Action<string> Closed;\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.ReceivedError\"/>\r\n        public event Action<Exception> ReceivedError;\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.Received\"/>\r\n        public event Action<ArraySegment<byte>> Received;\r\n\r\n        /// <summary>\r\n        /// If the WebSocket is connected.\r\n        /// </summary>\r\n        public bool IsConnected => _webSocket?.State == WebSocketState.Open;\r\n\r\n        /// <summary>\r\n        /// If the WebSocket is connecting.\r\n        /// </summary>\r\n        public bool IsConnecting => _webSocket?.State == WebSocketState.Connecting;\r\n\r\n        private CancellationTokenSource _cancellationSource;\r\n        private Uri _uri;\r\n        private ClientWebSocket _webSocket;\r\n        private readonly int _maxMessageReadSize;\r\n        private readonly TimeSpan _sendTimeoutSec;\r\n\r\n        public WebSocketStdlibAdapter(int sendTimeoutSec = SendTimeoutSec, int maxMessageReadSize = MaxMessageReadSize)\r\n        {\r\n            _maxMessageReadSize = maxMessageReadSize;\r\n            _sendTimeoutSec = TimeSpan.FromSeconds(sendTimeoutSec);\r\n            _webSocket = new ClientWebSocket();\r\n        }\r\n\r\n        public WebSocketStdlibAdapter(ClientWebSocket webSocket)\r\n        {\r\n            // There is no way to override options so allow constructor to take a websocket that already has options.\r\n            _webSocket = webSocket;\r\n        }\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.CloseAsync\"/>\r\n        public async Task CloseAsync()\r\n        {\r\n            if (_webSocket == null) return;\r\n\r\n            if (_webSocket.State == WebSocketState.Open)\r\n            {\r\n                await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, \"\", CancellationToken.None);\r\n            }\r\n            else if (_webSocket.State == WebSocketState.Connecting)\r\n            {\r\n                // cancel mid-connect\r\n                _cancellationSource?.Cancel();\r\n            }\r\n\r\n            _webSocket = null;\r\n        }\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.ConnectAsync\"/>\r\n        public async Task ConnectAsync(Uri uri, int timeout)\r\n        {\r\n            if (_webSocket?.State == WebSocketState.Open || _webSocket?.State == WebSocketState.Connecting)\r\n            {\r\n                // Already connecting or connected so we can return.\r\n                return;\r\n            }\r\n\r\n            _cancellationSource = new CancellationTokenSource();\r\n            _uri = uri;\r\n            _webSocket = new ClientWebSocket();\r\n\r\n            var cts = new CancellationTokenSource(TimeSpan.FromSeconds(timeout));\r\n            var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(_cancellationSource.Token, cts.Token);\r\n            await _webSocket.ConnectAsync(_uri, linkedCts.Token).ConfigureAwait(false);\r\n            _ = ReceiveLoop(_webSocket, _cancellationSource.Token);\r\n            Connected?.Invoke();\r\n        }\r\n\r\n        /// <inheritdoc cref=\"ISocketAdapter.SendAsync\"/>\r\n        public Task SendAsync(ArraySegment<byte> buffer, bool reliable = true, CancellationToken canceller = default)\r\n        {\r\n            if (_webSocket?.State != WebSocketState.Open)\r\n            {\r\n                throw new SocketException((int)SocketError.NotConnected);\r\n            }\r\n\r\n            canceller.ThrowIfCancellationRequested();\r\n\r\n            try\r\n            {\r\n                var cts = new CancellationTokenSource(_sendTimeoutSec);\r\n                var linkedCts = CancellationTokenSource.CreateLinkedTokenSource(canceller, cts.Token);\r\n                var t = _webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, linkedCts.Token);\r\n                t.ConfigureAwait(false);\r\n                return t;\r\n            }\r\n            catch\r\n            {\r\n                _ = CloseAsync();\r\n                throw;\r\n            }\r\n        }\r\n\r\n        /// <inheritdoc cref=\"object.ToString\" />\r\n        public override string ToString() =>\r\n            $\"WebSocketStdlibAdapter(MaxMessageSize={_maxMessageReadSize}, Uri='{_uri}')\";\r\n\r\n        private async Task ReceiveLoop(WebSocket webSocket, CancellationToken canceller)\r\n        {\r\n            canceller.ThrowIfCancellationRequested();\r\n\r\n            var buffer = new byte[_maxMessageReadSize];\r\n            var bufferReadCount = 0;\r\n            var closeReason = \"\";\r\n            try\r\n            {\r\n                do\r\n                {\r\n                    var bufferSegment =\r\n                        new ArraySegment<byte>(buffer, bufferReadCount, _maxMessageReadSize - bufferReadCount);\r\n                    var result = await webSocket.ReceiveAsync(bufferSegment, canceller).ConfigureAwait(false);\r\n                    if (result == null)\r\n                    {\r\n                        break;\r\n                    }\r\n\r\n                    if (result.MessageType == WebSocketMessageType.Close)\r\n                    {\r\n                        if (webSocket.State == WebSocketState.CloseReceived)\r\n                        {\r\n                            try\r\n                            {\r\n                                closeReason = result.CloseStatusDescription ?? \"\";\r\n                                await webSocket.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, \"\",\r\n                                    CancellationToken.None);\r\n                            }\r\n                            // Ignore these exceptions from CloseOutputAsync as we're already closing the socket\r\n                            // anyway. In the MonoRuntime, the Close message can be received after the socket has\r\n                            // been disposed, causing these exceptions to be thrown.\r\n                            catch (WebSocketException e) when (e.WebSocketErrorCode ==\r\n                                                               WebSocketError.ConnectionClosedPrematurely)\r\n                            {\r\n                                // ignored.\r\n                            }\r\n                            catch (Exception e) when (e is ObjectDisposedException || e is InvalidOperationException ||\r\n                                                      e is IOException)\r\n                            {\r\n                                // ignored.\r\n                            }\r\n                        }\r\n\r\n                        break;\r\n                    }\r\n\r\n                    bufferReadCount += result.Count;\r\n                    if (!result.EndOfMessage) continue;\r\n\r\n                    try\r\n                    {\r\n                        Received?.Invoke(new ArraySegment<byte>(buffer, 0, bufferReadCount));\r\n                    }\r\n                    catch (Exception e)\r\n                    {\r\n                        ReceivedError?.Invoke(e);\r\n                    }\r\n\r\n                    bufferReadCount = 0;\r\n                } while (!canceller.IsCancellationRequested && _webSocket?.State == WebSocketState.Open);\r\n            }\r\n            catch (Exception e)\r\n            {\r\n                ReceivedError?.Invoke(e);\r\n            }\r\n            finally\r\n            {\r\n                Closed?.Invoke(closeReason);\r\n            }\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Nakama/WriteStorageObject.cs",
    "content": "/**\n * Copyright 2018 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama\n{\n    /// <inheritdoc cref=\"IApiWriteStorageObject\"/>\n    public class WriteStorageObject : IApiWriteStorageObject\n    {\n        /// <inheritdoc cref=\"Collection\"/>\n        public string Collection { get; set; }\n\n        /// <inheritdoc cref=\"Key\"/>\n        public string Key { get; set; }\n\n        /// <inheritdoc cref=\"PermissionRead\"/>\n        public int PermissionRead { get; set; } = 1;\n\n        /// <inheritdoc cref=\"PermissionWrite\"/>\n        public int PermissionWrite { get; set; } = 1;\n\n        /// <inheritdoc cref=\"Value\"/>\n        public string Value { get; set; }\n\n        /// <inheritdoc cref=\"Version\"/>\n        public string Version { get; set; }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/AssemblyInfo.cs",
    "content": "using Xunit;\n\n// resolve test hangs\n[assembly: CollectionBehavior(DisableTestParallelization = true)]\n"
  },
  {
    "path": "Nakama.Tests/AuthenticateTest.cs",
    "content": "﻿/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Linq;\nusing System.Net;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Api\n{\n    public class AuthenticateTest\n    {\n        private IClient _client;\n\n        public AuthenticateTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAuthenticateCustomId()\n        {\n            var customid = Guid.NewGuid();\n            var session = await _client.AuthenticateCustomAsync(customid.ToString());\n\n            Assert.NotNull(session);\n            Assert.NotNull(session.UserId);\n            Assert.NotNull(session.Username);\n            Assert.False(session.IsExpired);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAuthenticateDeviceId()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n\n            Assert.NotNull(session);\n            Assert.NotNull(session.UserId);\n            Assert.NotNull(session.Username);\n            Assert.False(session.IsExpired);\n\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(1, account.Devices.Count(d => d.Id == deviceid));\n        }\n\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAuthenticateDeviceAndSaveUsername()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var username = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid, username);\n\n\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.Equal(username, session.Username);\n            Assert.Equal(username, account.User.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAuthenticateEmail()\n        {\n            var session = await _client.AuthenticateEmailAsync(\"super@heroes.com\", \"batsignal\");\n\n            Assert.NotNull(session);\n            Assert.NotNull(session.UserId);\n            Assert.NotNull(session.Username);\n            Assert.False(session.IsExpired);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void ShouldNotAuthenticateFacebook()\n        {\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.AuthenticateFacebookAsync(\"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void ShouldNotAuthenticateGameCenter()\n        {\n            var bundleId = string.Empty;\n            var playerId = string.Empty;\n            var publicKeyUrl = string.Empty;\n            var salt = string.Empty;\n            var signature = string.Empty;\n            var timestamp = string.Empty;\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _client.AuthenticateGameCenterAsync(bundleId, playerId, publicKeyUrl, salt, signature, timestamp));\n\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void ShouldNotAuthenticateGoogle()\n        {\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.AuthenticateGoogleAsync(\"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void ShouldNotAuthenticateSteam()\n        {\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.AuthenticateSteamAsync(\"invalid\"));\n\n            // Precondition failed because Steam requires special configuration with the server.\n            // Maps to 400, because gRPC precondition failed != HTTP precondition failed.\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void ShouldNotAuthenticateApple()\n        {\n            // Fails because Apple requires special configuration with the server.\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.AuthenticateAppleAsync(\"some_token\"));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/AwaitedSocketTaskTest.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Net.Sockets;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests\n{\n    public class AwaitedSocketTaskTest : IDisposable\n    {\n        private IClient _client;\n        private readonly ISocket _socket;\n\n        public AwaitedSocketTaskTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        public void Dispose() => _client = null;\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void Socket_AwaitedTasks_AreCanceled()\n        {\n            var id = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(id);\n            await _socket.ConnectAsync(session);\n\n            var matchmakerTask1 = _socket.AddMatchmakerAsync(\"+label.foo:\\\"val\\\"\", 15, 20);\n            var matchmakerTask2 = _socket.AddMatchmakerAsync(\"+label.bar:\\\"val\\\"\", 15, 20);\n            await _socket.CloseAsync();\n\n            await Assert.ThrowsAsync<TaskCanceledException>(() => Task.WhenAll(matchmakerTask1, matchmakerTask2));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void Socket_AwaitedTasksAfterDisconnect_ThrowException()\n        {\n            var id = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(id);\n            await _socket.ConnectAsync(session);\n\n            await _socket.CloseAsync();\n            var statusTask1 = _socket.FollowUsersAsync(new[] {session.UserId});\n            var statusTask2 = _socket.FollowUsersAsync(new[] {session.UserId});\n\n            await Assert.ThrowsAsync<SocketException>(() => Task.WhenAll(statusTask1, statusTask2));\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/CancelTest.cs",
    "content": "/**\n* Copyright 2021 The Nakama Authors\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests\n{\n    public class CancelTest\n    {\n        [Fact]\n        public async void TestBasicCancel()\n        {\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath);\n\n            var canceller = new CancellationTokenSource();\n\n            Task<ISession> authTask = client.AuthenticateCustomAsync(\"test_id\", null, true, null, null, canceller.Token);\n            canceller.Cancel();\n            await Assert.ThrowsAsync<TaskCanceledException>(async () => await authTask);\n        }\n\n        [Fact]\n        public async void TestCancelDuringBackoff()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[3] {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            var canceller = new CancellationTokenSource();\n\n            RetryListener retryListener = (int numRetry, Retry retry) => {\n                canceller.Cancel();\n            };\n\n\n            Task<ISession> authTask = client.AuthenticateCustomAsync(\"test_id\", null, true, null, new RetryConfiguration(100, 2, retryListener), canceller.Token);\n            await Assert.ThrowsAsync<TaskCanceledException>(async () => await authTask);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/FriendTest.cs",
    "content": "/**\n * Copyright 2023 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Api\n{\n    public class FriendTest\n    {\n        private IClient _client;\n        private ISocket _socket;\n\n        public FriendTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task AddingBannedFriendShouldNoop()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            await _socket.ConnectAsync(session2);\n\n            IApiNotification? session2Notif = null;\n\n            _socket.ReceivedNotification += (IApiNotification notif) => {\n                session2Notif = notif;\n            };\n\n            await _client.BlockFriendsAsync(session, new string[]{session2.UserId});\n            await _client.AddFriendsAsync(session, new string[]{session2.UserId});\n            var friendList = await _client.ListFriendsAsync(session);\n            Assert.Single(friendList.Friends);\n            Assert.Equal(3, friendList.Friends.First().State); // banned\n            Assert.Null(session2Notif);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task FriendsShouldBeAddedAndAccepted()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket2 = Nakama.Socket.From(_client);\n\n            await _socket.ConnectAsync(session);\n            await socket2.ConnectAsync(session2);\n\n            IApiNotification? session1Notif = null;\n\n            _socket.ReceivedNotification += (IApiNotification notif) => {\n                session1Notif = notif;\n            };\n\n            IApiNotification? session2Notif = null;\n\n            socket2.ReceivedNotification += (IApiNotification notif) => {\n                session2Notif = notif;\n            };\n\n            await _client.AddFriendsAsync(session, new string[]{session2.UserId});\n\n            await Task.Delay(1000);\n            Assert.NotNull(session2Notif);\n\n            var friendList = await _client.ListFriendsAsync(session, 1); // has sent invitation\n            Assert.Single(friendList.Friends);\n\n            await _client.AddFriendsAsync(session2, new string[]{session.UserId});\n            await Task.Delay(1000);\n            Assert.NotNull(session1Notif);\n\n            friendList = await _client.ListFriendsAsync(session, 0); // friends\n\n            Assert.Single(friendList.Friends);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/GroupTest.cs",
    "content": "﻿/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Api\n{\n    public class GroupTest\n    {\n        private IClient _client;\n        private ISocket _socket;\n\n        public GroupTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateGroup()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var name = $\"{Guid.NewGuid()}\";\n            const string desc = \"A group for Marvel super heroes.\";\n            const string avatarUrl = \"http://graph.facebook.com/892489324234/picture?type=square\";\n            const string langTag = \"en_US\";\n            const bool open = false;\n            var group = await _client.CreateGroupAsync(session, name, desc, avatarUrl, langTag, open);\n\n            Assert.NotNull(group);\n            Assert.NotNull(group.Id);\n            Assert.NotNull(group.CreateTime);\n            Assert.NotNull(group.UpdateTime);\n            Assert.Equal(1, group.EdgeCount);\n            Assert.Equal(name, group.Name);\n            Assert.Equal(desc, group.Description);\n            Assert.Equal(avatarUrl, group.AvatarUrl);\n            Assert.Equal(langTag, group.LangTag);\n            Assert.Equal(open, group.Open);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateGroupDefault()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var name = $\"{Guid.NewGuid()}\";\n            var group = await _client.CreateGroupAsync(session, name);\n\n            Assert.NotNull(group);\n            Assert.NotNull(group.Id);\n            Assert.NotNull(group.CreateTime);\n            Assert.NotNull(group.UpdateTime);\n            Assert.Null(group.AvatarUrl);\n            Assert.Null(group.Description);\n            Assert.Equal(1, group.EdgeCount);\n            Assert.True(group.Open);\n            Assert.Equal(name, group.Name);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotCreateGroup()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var name = $\"{Guid.NewGuid()}\";\n            await _client.CreateGroupAsync(session, name);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.CreateGroupAsync(session, name));\n            Assert.Equal((int) HttpStatusCode.Conflict, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListGroups()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            // Must create at least one group.\n            await _client.CreateGroupAsync(session, $\"{Guid.NewGuid()}\");\n            var result = await _client.ListGroupsAsync(session);\n\n            Assert.NotNull(result);\n            Assert.NotEmpty(result.Groups);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListGroupsNameFilter()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var name = $\"{Guid.NewGuid()}\";\n            await _client.CreateGroupAsync(session, name);\n            var result = await _client.ListGroupsAsync(session, name, 1);\n\n            Assert.NotNull(result);\n            Assert.True(result.Groups.Count() == 1);\n            Assert.True(result.Groups.Count(g => name.Equals(g.Name)) == 1);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListGroupsFilterTwo()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var basename = $\"{Guid.NewGuid()}\";\n            var name1 = string.Concat(basename, \"1\");\n            await _client.CreateGroupAsync(session, name1);\n            var name2 = string.Concat(basename, \"2\");\n            await _client.CreateGroupAsync(session, name2);\n            // Filter on name with a wildcard.\n            var result = await _client.ListGroupsAsync(session, string.Concat(basename, \"%\"), 2);\n\n            Assert.NotNull(result);\n            Assert.True(result.Groups.Count() == 2);\n            Assert.True(result.Groups.Count(g => name1.Equals(g.Name) || name2.Equals(g.Name)) == 2);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListGroupsCursor()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            await _client.CreateGroupAsync(session, $\"{Guid.NewGuid()}\");\n            await _client.CreateGroupAsync(session, $\"{Guid.NewGuid()}\");\n\n            var result = await _client.ListGroupsAsync(session);\n            Assert.NotNull(result);\n            Assert.NotNull(result.Cursor);\n            result = await _client.ListGroupsAsync(session, null, 10, result.Cursor);\n\n            Assert.NotNull(result);\n            Assert.True(result.Groups.Count() >= 1);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListGroupsByNameWithCursor()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            List<string> expectedNames = new List<string>();\n            for (var i = 0; i < 10; i++)\n            {\n                var name = $\"Test{i.ToString()}\";\n                try\n                {\n                    await _client.CreateGroupAsync(session, name);\n                }\n                catch {}\n                expectedNames.Add(name);\n            }\n\n            var page1 = await _client.ListGroupsAsync(session, \"Tes%\", 5);\n            Assert.NotNull(page1);\n            Assert.NotNull(page1.Cursor);\n            Assert.Equal(5, page1.Groups.Count());\n            var idx = 0;\n            foreach (var g in page1.Groups)\n            {\n                Assert.Equal(expectedNames[idx], g.Name);\n                idx++;\n            }\n\n            var page2 = await _client.ListGroupsAsync(session, \"Tes%\", 5, page1.Cursor);\n\n            Assert.NotNull(page2);\n            Assert.Null(page2.Cursor);\n            Assert.Equal(5, page2.Groups.Count());\n            foreach (var g in page2.Groups)\n            {\n                Assert.Equal(expectedNames[idx], g.Name);\n                idx++;\n            }\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldDeleteGroup()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var name = $\"{Guid.NewGuid()}\";\n            var group = await _client.CreateGroupAsync(session, name);\n            await _client.DeleteGroupAsync(session, group.Id);\n\n            var result1 = await _client.ListGroupsAsync(session, name);\n            Assert.NotNull(result1);\n            Assert.Empty(result1.Groups);\n\n            var result2 = await _client.ListUserGroupsAsync(session);\n            Assert.NotNull(result2);\n            Assert.Empty(result2.UserGroups);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldDeleteGroupInvalid()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _client.DeleteGroupAsync(session, $\"{Guid.NewGuid()}\"));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotDeleteGroupNotSuperAdmin()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var group = await _client.CreateGroupAsync(session1, $\"{Guid.NewGuid()}\");\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.DeleteGroupAsync(session2, group.Id));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldPromoteAndDemoteUsers()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var group = await _client.CreateGroupAsync(session1, $\"{Guid.NewGuid()}\");\n\n            await _client.AddGroupUsersAsync(session1, group.Id, new string[]{session2.UserId, session3.UserId});\n            await _client.PromoteGroupUsersAsync(session1, group.Id, new string[]{session2.UserId, session3.UserId});\n\n            var admins = await _client.ListGroupUsersAsync(session1, group.Id, state: 1, limit: 2);\n\n            Assert.Equal(2, admins.GroupUsers.Count());\n\n            await _client.DemoteGroupUsersAsync(session1, group.Id, new string[]{session2.UserId, session3.UserId});\n\n            admins = await _client.ListGroupUsersAsync(session1, group.Id, state: 1, limit: 2);\n            Assert.Empty(admins.GroupUsers);\n\n            var members = await _client.ListGroupUsersAsync(session1, group.Id, state: 2, limit: 2);\n            Assert.Equal(2, members.GroupUsers.Count());\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldBanUsers()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var group = await _client.CreateGroupAsync(session1, $\"{Guid.NewGuid()}\");\n\n            await _client.AddGroupUsersAsync(session1, group.Id, new string[]{session2.UserId, session3.UserId});\n            await _client.BanGroupUsersAsync(session1, group.Id, new []{session2.UserId, session3.UserId});\n            var remainingMembers = await _client.ListGroupUsersAsync(session1, group.Id, state: null, limit: 100);\n            Assert.Single(remainingMembers.GroupUsers);\n\n            await _client.JoinGroupAsync(session2, group.Id);\n\n            remainingMembers = await _client.ListGroupUsersAsync(session1, group.Id, state: null, limit: 100);\n            Assert.Single(remainingMembers.GroupUsers);\n\n            var groupList = await _client.ListUserGroupsAsync(session2, null, 100);\n            Assert.Empty(groupList.UserGroups);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/HttpErrorTest.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Collections.Generic;\nusing Nakama.TinyJson;\n\nnamespace Nakama.Tests.Api\n{\n    using System;\n    using System.Collections;\n    using System.Threading.Tasks;\n    using Xunit;\n\n    // NOTE: Requires Lua modules from server repo.\n\n    public class HttpErrorTest\n    {\n        private IClient _client;\n\n        // ReSharper disable RedundantArgumentDefaultValue\n\n        public HttpErrorTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task BadLuaRpcReturnsErrorMessageAndDict()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            const string funcid = \"clientrpc.rpc_error\";\n            \n            _client.GlobalRetryConfiguration = null;\n\n            var exception = await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid));\n            await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid));\n            Assert.NotNull(exception.Message);\n            Assert.NotEmpty(exception.Message);\n            var decoded = exception.Message.FromJson<Dictionary<string, object>>();\n            Assert.Equal(\"Some error occured.\",  decoded[\"message\"]);\n        }\n\n        [Fact(Skip = \"requires go plugin\")]\n        public async Task BadGoRpcReturnsErrorMessageAndEmptyDict()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            const string funcid = \"clientrpc.rpc_error_go\";\n\n            var exception = await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid));\n            await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid));\n            Assert.NotNull(exception.Message);\n            Assert.NotEmpty(exception.Message);\n            Assert.Empty(exception.Data);\n        }\n\n        /*\n        Make RPC calls to storage API as an example to test error format in Lua and Go runtimes.\n        */\n\n        [Fact (Skip = \"requires go plugin\")]\n        public async Task BadGoStorageRpcReturnsErrorMessageAndEmptyDict()\n        {\n            var session = await _client.AuthenticateCustomAsync(\"user_rpc_error_storage_go\");\n            const string funcid = \"clientrpc.rpc_error_storage_go\";\n\n            var exception = await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid, session.UserId));\n            await Assert.ThrowsAsync<ApiResponseException>(() => _client.RpcAsync(session, funcid));\n            Assert.NotNull(exception.Message);\n            Assert.NotEmpty(exception.Message);\n            // go runtime returns an empty object\n            Assert.Empty(exception.Data);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/LeaderboardAroundOwnerTest.cs",
    "content": "/**\n * Copyright 2021 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Api\n{\n    public class LeaderboardAroundOwnerTest : LeaderboardTest\n    {\n        private ISession[] _sessions = null;\n        \n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OwnerInFront()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 10, limit: 4, ownerIndex: 0);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            Assert.Equal(\"109\", recordArray[0].Score);\n            Assert.Equal(\"108\", recordArray[1].Score);\n            Assert.Equal(\"107\", recordArray[2].Score);\n            Assert.Equal(\"106\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OwnerInBack()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 10, limit: 4, ownerIndex: 9);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            Assert.Equal(\"103\", recordArray[0].Score);\n            Assert.Equal(\"102\", recordArray[1].Score);\n            Assert.Equal(\"101\", recordArray[2].Score);\n            Assert.Equal(\"100\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OwnerNearFront()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 10, limit: 4, ownerIndex: 1);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            Assert.Equal(\"109\", recordArray[0].Score);\n            Assert.Equal(\"108\", recordArray[1].Score);\n            Assert.Equal(\"107\", recordArray[2].Score);\n            Assert.Equal(\"106\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OwnerNearBack()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 10, limit: 4, ownerIndex: 8);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            Assert.Equal(\"103\", recordArray[0].Score);\n            Assert.Equal(\"102\", recordArray[1].Score);\n            Assert.Equal(\"101\", recordArray[2].Score);\n            Assert.Equal(\"100\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OwnerInMiddle()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 10, limit: 4, ownerIndex: 5);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            // owner score is 104\n            Assert.Equal(\"105\", recordArray[0].Score);\n            Assert.Equal(\"104\", recordArray[1].Score);\n            Assert.Equal(\"103\", recordArray[2].Score);\n            Assert.Equal(\"102\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task NotEnoughRecordsForLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 4, limit: 10, ownerIndex: 2);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(4, recordArray.Length);\n            Assert.Equal(\"103\", recordArray[0].Score);\n            Assert.Equal(\"102\", recordArray[1].Score);\n            Assert.Equal(\"101\", recordArray[2].Score);\n            Assert.Equal(\"100\", recordArray[3].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OddLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 5, limit: 3, ownerIndex: 3);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(3, recordArray.Length);\n            // owner score is 101\n            Assert.Equal(\"102\", recordArray[0].Score);\n            Assert.Equal(\"101\", recordArray[1].Score);\n            Assert.Equal(\"100\", recordArray[2].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task NoRecords()\n        {\n            await Assert.ThrowsAsync<ApiResponseException>(() => CreateAndFetchRecords(numRecords: 1, limit: 0, ownerIndex: 0));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task OneRecordOneLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 1, limit: 1, ownerIndex: 0);\n            var recordArray = records.Records.ToArray();\n            Assert.Single(recordArray);\n            Assert.Equal(\"100\", recordArray[0].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task TwoRecordsTwoLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 2, limit: 2, ownerIndex: 1);\n            var recordArray = records.Records.ToArray();\n            Assert.Equal(2, recordArray.Length);\n            Assert.Equal(\"101\", recordArray[0].Score);\n            Assert.Equal(\"100\", recordArray[1].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ThreeRecordsTwoLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 3, limit: 2, ownerIndex: 1);\n            var recordArray = records.Records.ToArray();\n            Assert.Equal(2, recordArray.Length);\n            Assert.Equal(\"101\", recordArray[0].Score);\n            Assert.Equal(\"100\", recordArray[1].Score);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ThreeRecordsThreeLimit()\n        {\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 3, limit: 3, ownerIndex: 1);\n            var recordArray = records.Records.ToArray();\n\n            Assert.Equal(3, recordArray.Length);\n            Assert.Equal(\"102\", recordArray[0].Score);\n            Assert.Equal(\"101\", recordArray[1].Score);\n            Assert.Equal(\"100\", recordArray[2].Score);\n        }\n        \n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task TestCursorsRecordInTheMiddle()\n        {\n            var ownerIndex = 1;\n            IApiLeaderboardRecordList records = await CreateAndFetchRecords(numRecords: 3, limit: 1, ownerIndex: ownerIndex);\n            var recordArray = records.Records.ToArray();\n            \n            Assert.Equal(1, recordArray.Length);\n            Assert.Equal(\"101\", recordArray[0].Score);\n            Assert.NotNull(records.NextCursor);\n            Assert.NotNull(records.PrevCursor);\n\n            var nextRecords = await _client.ListLeaderboardRecordsAroundOwnerAsync(_sessions[ownerIndex], _leaderboardId, _sessions[ownerIndex].UserId, null, 1, records.NextCursor);\n            recordArray = nextRecords.Records.ToArray();\n            \n            Assert.Single(recordArray);\n            Assert.Equal(\"100\", recordArray[0].Score);\n            Assert.Null(nextRecords.NextCursor);\n            Assert.NotNull(nextRecords.PrevCursor);\n            \n            var prevRecords = await _client.ListLeaderboardRecordsAroundOwnerAsync(_sessions[ownerIndex], _leaderboardId, _sessions[ownerIndex].UserId, null, 1, records.PrevCursor);\n            recordArray = prevRecords.Records.ToArray();\n            \n            Assert.Single(recordArray);\n            Assert.Equal(\"102\", recordArray[0].Score);\n            Assert.NotNull(prevRecords.NextCursor);\n            Assert.Null(prevRecords.PrevCursor);\n        }\n\n        private async Task<IApiLeaderboardRecordList> CreateAndFetchRecords(int numRecords, int limit, int ownerIndex)\n        {\n            var authTasks = new List<Task<ISession>>();\n\n            for (int i = 0; i < numRecords; i++)\n            {\n                authTasks.Add(_client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\"));\n            }\n\n            ISession[] sessions = await Task.WhenAll(authTasks.ToArray());\n            _sessions = sessions;\n\n            var listTasks = new List<Task<IApiLeaderboardRecord>>();\n\n            for (int i = 0; i < numRecords; i++)\n            {\n                int score = 100 + numRecords - i - 1;\n                listTasks.Add(_client.WriteLeaderboardRecordAsync(sessions[i], _leaderboardId, score));\n            }\n\n            Task.WaitAll(listTasks.ToArray());\n\n            IApiLeaderboardRecordList records = await _client.ListLeaderboardRecordsAroundOwnerAsync(sessions[ownerIndex], _leaderboardId, sessions[ownerIndex].UserId, null, limit);\n            return records;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/LeaderboardTest.cs",
    "content": "﻿/**\n * Copyright 2021 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama.Tests.Api\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Linq;\n    using System.Threading.Tasks;\n    using Xunit;\n    using TinyJson;\n\n    public class LeaderboardTest : IAsyncLifetime\n    {\n        protected IClient _client;\n        protected string _leaderboardId;\n\n        // ReSharper disable RedundantArgumentDefaultValue\n\n        public LeaderboardTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldWriteLeaderboardRecord()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            const long score = long.MaxValue;\n            const int subscore = 10;\n            const string metadata = \"{\\\"race_conditions\\\": \\\"wet\\\"}\";\n            var record = await _client.WriteLeaderboardRecordAsync(session, _leaderboardId, score, subscore, metadata);\n\n            Assert.NotNull(record);\n            Assert.NotEmpty(record.CreateTime);\n            Assert.NotEmpty(record.UpdateTime);\n            Assert.Equal(_leaderboardId, record.LeaderboardId);\n            Assert.Equal(1, record.NumScore);\n            Assert.Equal(score, long.Parse(record.Score));\n            Assert.Equal(subscore, long.Parse(record.Subscore));\n            Assert.Equal(session.UserId, record.OwnerId);\n            Assert.Equal(session.Username, record.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListLeaderboardRecordsWithOwnerId()\n        {\n            string guid = Guid.NewGuid().ToString();\n            string username = guid + \"_username\";\n            var session = await _client.AuthenticateCustomAsync(guid, username);\n            await _client.WriteLeaderboardRecordAsync(session, _leaderboardId, 10L);\n            var result = await _client.ListLeaderboardRecordsAsync(session, _leaderboardId, new[] {session.UserId});\n\n            Assert.NotNull(result);\n            Assert.Null(result.NextCursor);\n            Assert.Null(result.PrevCursor);\n            Assert.NotEmpty(result.Records);\n            Assert.Equal(1, result.OwnerRecords.Count(r => r.OwnerId == session.UserId));\n            Assert.Contains(result.Records, record => record.Username == username);\n            Assert.Contains(result.OwnerRecords, record => record.Username == username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldListLeaderboardRecordsEmpty()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var result = await _client.ListLeaderboardRecordsAsync(session, _leaderboardId);\n\n            Assert.NotNull(result);\n            Assert.Null(result.NextCursor);\n            Assert.Null(result.PrevCursor);\n            Assert.Empty(result.Records);\n            Assert.Empty(result.OwnerRecords);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldDeleteLeaderboardRecord()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _client.WriteLeaderboardRecordAsync(session, _leaderboardId, 10L);\n            await _client.DeleteLeaderboardRecordAsync(session, _leaderboardId);\n            var result = await _client.ListLeaderboardRecordsAsync(session, _leaderboardId, null, 100);\n\n            Assert.NotNull(result);\n            Assert.Null(result.NextCursor);\n            Assert.Null(result.PrevCursor);\n            Assert.Empty(result.Records);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldDeleteLeaderboardRecordNotFound()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _client.DeleteLeaderboardRecordAsync(session, _leaderboardId);\n        }\n\n        [Fact (Skip = \"investigate this!\")]\n        public async Task ShouldDeleteLeaderboardRecordNotExists()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _client.DeleteLeaderboardRecordAsync(session, \"invalid\");\n        }\n\n\n\n        public async Task InitializeAsync()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            // Must create a leaderboard.\n            var payload = new Dictionary<string, string>\n            {\n                {\"operator\", \"best\"}\n            }.ToJson();\n\n\n            var rpc = await _client.RpcAsync(session, \"clientrpc.create_leaderboard\", payload);\n            _leaderboardId = rpc.Payload.FromJson<Dictionary<string, string>>()[\"leaderboard_id\"];\n        }\n\n        public Task DisposeAsync()\n        {\n            return Task.CompletedTask;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/LinkUnlinkTest.cs",
    "content": "﻿/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama.Tests.Api\n{\n    using System;\n    using System.Linq;\n    using System.Net;\n    using System.Threading.Tasks;\n    using Xunit;\n\n    public class LinkUnlinkTest\n    {\n        private IClient _client;\n\n        public LinkUnlinkTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkCustomId()\n        {\n            var customid1 = Guid.NewGuid().ToString();\n            var original = await _client.AuthenticateCustomAsync(customid1);\n            var customid2 = Guid.NewGuid().ToString();\n            await _client.LinkCustomAsync(original, customid2);\n            var updated = await _client.AuthenticateCustomAsync(customid2);\n\n            Assert.NotNull(original);\n            Assert.NotNull(updated);\n            Assert.Equal(original.UserId, updated.UserId);\n            Assert.Equal(original.Username, updated.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkCustomIdSame()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n            await _client.LinkCustomAsync(session, customid);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(session.UserId, account.User.Id);\n            Assert.Equal(session.Username, account.User.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkCustomIdFieldEmpty()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n            var customid = Guid.NewGuid().ToString();\n            await _client.LinkCustomAsync(session, customid);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(1, account.Devices.Count(d => d.Id == deviceid));\n            Assert.Equal(customid, account.CustomId);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldUnlinkCustomId()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n            var deviceid = Guid.NewGuid().ToString();\n            await _client.LinkDeviceAsync(session, deviceid);\n            await _client.UnlinkCustomAsync(session, customid);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Single(account.Devices, d => d.Id == deviceid);\n            Assert.Null(account.CustomId);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkCustomIdInuse()\n        {\n            var customid = Guid.NewGuid().ToString();\n            await _client.AuthenticateCustomAsync(customid);\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkCustomAsync(session, customid));\n            Assert.Equal((int) HttpStatusCode.Conflict, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkCustomId()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkCustomAsync(session, customid));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkCustomIdNotOwned()\n        {\n            var customid = Guid.NewGuid().ToString();\n            await _client.AuthenticateCustomAsync(customid);\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkCustomAsync(session, customid));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkDeviceId()\n        {\n            var deviceid1 = Guid.NewGuid().ToString();\n            var original = await _client.AuthenticateDeviceAsync(deviceid1);\n            var deviceid2 = Guid.NewGuid().ToString();\n            await _client.LinkDeviceAsync(original, deviceid2);\n            var updated = await _client.AuthenticateDeviceAsync(deviceid2);\n\n            Assert.NotNull(original);\n            Assert.NotNull(updated);\n            Assert.Equal(original.UserId, updated.UserId);\n            Assert.Equal(original.Username, updated.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkDeviceIdSame()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n            await _client.LinkDeviceAsync(session, deviceid);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(session.UserId, account.User.Id);\n            Assert.Equal(session.Username, account.User.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkDeviceIdInuse()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            await _client.AuthenticateDeviceAsync(deviceid);\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkDeviceAsync(session, deviceid));\n            Assert.Equal((int) HttpStatusCode.Conflict, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldUnlinkDeviceId()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n            await _client.LinkDeviceAsync(session, Guid.NewGuid().ToString());\n            await _client.UnlinkDeviceAsync(session, deviceid);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(0, account.Devices.Count(d => d.Id == deviceid));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkDeviceId()\n        {\n            var deviceid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkDeviceAsync(session, deviceid));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkDeviceIdNotOwned()\n        {\n            var deviceid1 = Guid.NewGuid().ToString();\n            await _client.AuthenticateDeviceAsync(deviceid1);\n            var deviceid2 = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateDeviceAsync(deviceid2);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkDeviceAsync(session, deviceid1));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkEmail()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var original = await _client.AuthenticateCustomAsync(customid);\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            await _client.LinkEmailAsync(original, email, password);\n            var updated = await _client.AuthenticateEmailAsync(email, password);\n\n            Assert.NotNull(original);\n            Assert.NotNull(updated);\n            Assert.Equal(original.UserId, updated.UserId);\n            Assert.Equal(original.Username, updated.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldLinkEmailSame()\n        {\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            var session = await _client.AuthenticateEmailAsync(email, password);\n            await _client.LinkEmailAsync(session, email, password);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.Equal(session.UserId, account.User.Id);\n            Assert.Equal(session.Username, account.User.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkEmailInuse()\n        {\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            await _client.AuthenticateEmailAsync(email, password);\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkEmailAsync(session, email, password));\n            Assert.Equal((int) HttpStatusCode.Conflict, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldUnlinkEmail()\n        {\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            var session = await _client.AuthenticateEmailAsync(email, password);\n            var customid = Guid.NewGuid().ToString();\n            await _client.LinkCustomAsync(session, customid);\n            await _client.UnlinkEmailAsync(session, email, password);\n            var account = await _client.GetAccountAsync(session);\n\n            Assert.NotNull(account);\n            Assert.NotEqual(email, account.Email);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkEmail()\n        {\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            var session = await _client.AuthenticateEmailAsync(email, password);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkEmailAsync(session, email, password));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkEmailNotOwned()\n        {\n            var email = string.Format(\"{0}@{0}.com\", Guid.NewGuid().ToString());\n            const string password = \"newpassword\";\n            await _client.AuthenticateEmailAsync(email, password);\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkEmailAsync(session, email, password));\n            Assert.Equal((int) HttpStatusCode.Forbidden, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkFacebook()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkFacebookAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkFacebook()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkFacebookAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkGameCenter()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            const string bundleId = \"a\";\n            const string playerId = \"b\";\n            const string publicKeyUrl = \"c\";\n            const string salt = \"d\";\n            const string signature = \"e\";\n            const string timestamp = \"f\";\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _client.LinkGameCenterAsync(session, bundleId, playerId, publicKeyUrl, salt, signature, timestamp));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkGameCenterBadInput()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var bundleId = string.Empty;\n            var playerId = string.Empty;\n            var publicKeyUrl = string.Empty;\n            var salt = string.Empty;\n            var signature = string.Empty;\n            var timestamp = string.Empty;\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _client.LinkGameCenterAsync(session, bundleId, playerId, publicKeyUrl, salt, signature, timestamp));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkGameCenterBadInput()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var bundleId = string.Empty;\n            var playerId = string.Empty;\n            var publicKeyUrl = string.Empty;\n            var salt = string.Empty;\n            var signature = string.Empty;\n            var timestamp = string.Empty;\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _client.UnlinkGameCenterAsync(session, bundleId, playerId, publicKeyUrl, salt, signature, timestamp));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkGoogle()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkGoogleAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkGoogle()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkGoogleAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkSteam()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkSteamAsync(session, \"invalid\", false));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkSteam()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkSteamAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotLinkApple()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.LinkAppleAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.BadRequest, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotUnlinkApple()\n        {\n            var customid = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(customid);\n\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => _client.UnlinkAppleAsync(session, \"invalid\"));\n            Assert.Equal((int) HttpStatusCode.Unauthorized, ex.StatusCode);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Nakama.Tests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n  <PropertyGroup>\r\n    <TargetFramework>net8.0</TargetFramework>\r\n    <Nullable>enable</Nullable>\r\n\r\n    <IsPackable>false</IsPackable>\r\n  </PropertyGroup>\r\n\r\n  <ItemGroup>\r\n    <PackageReference Include=\"Microsoft.Extensions.Configuration.Json\" Version=\"10.0.0\" />\r\n    <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"18.0.1\" />\r\n    <PackageReference Include=\"xunit\" Version=\"2.9.3\" />\r\n    <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"3.1.5\">\r\n      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\r\n      <PrivateAssets>all</PrivateAssets>\r\n    </PackageReference>\r\n    <PackageReference Include=\"coverlet.collector\" Version=\"6.0.4\">\r\n      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\r\n      <PrivateAssets>all</PrivateAssets>\r\n    </PackageReference>\r\n  </ItemGroup>\r\n\r\n  <ItemGroup>\r\n    <ProjectReference Include=\"..\\Nakama\\Nakama.csproj\" />\r\n  </ItemGroup>\r\n\r\n  <ItemGroup>\r\n    <Content Include=\"settings.json\">\r\n      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r\n    </Content>\r\n  </ItemGroup>\r\n</Project>\r\n"
  },
  {
    "path": "Nakama.Tests/PresenceUtilTest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Xunit;\nusing Xunit.Abstractions;\n\nnamespace Nakama.Tests.Socket\n{\n    public class PresenceUtilTest\n    {\n        private readonly ITestOutputHelper _testOutputHelper;\n        private readonly IClient _client;\n\n        public PresenceUtilTest(ITestOutputHelper testOutputHelper)\n        {\n            _testOutputHelper = testOutputHelper;\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAddPresencesParty()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket1 = Nakama.Socket.From(_client);\n            await socket1.ConnectAsync(session);\n            var createdParty = await socket1.CreatePartyAsync(true, false, 2);\n\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n\n            var partyJoinTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket1.ReceivedPartyPresence += presenceEvent =>\n            {\n                createdParty.UpdatePresences(presenceEvent);\n                partyJoinTcs.SetResult(presenceEvent);\n            };\n\n            await socket2.JoinPartyAsync(createdParty.Id);\n            await partyJoinTcs.Task;\n            Assert.Equal(2, createdParty.Presences.Count());\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAddAndRemovePresencesMatch()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket1 = Nakama.Socket.From(_client);\n            await socket1.ConnectAsync(session);\n            var createdMatch = await socket1.CreateMatchAsync();\n\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n\n            var matchJoinTcs = new TaskCompletionSource<IMatchPresenceEvent>();\n            Action<IMatchPresenceEvent> matchPresenceHandler = presenceEvent =>\n            {\n                createdMatch.UpdatePresences(presenceEvent);\n\n                matchJoinTcs.SetResult(presenceEvent);\n            };\n\n            socket1.ReceivedMatchPresence += matchPresenceHandler;\n            await socket2.JoinMatchAsync(createdMatch.Id);\n            await matchJoinTcs.Task;\n            socket1.ReceivedMatchPresence -= matchPresenceHandler;\n\n            Assert.Equal(1, createdMatch.Presences.Count());\n\n            var matchLeaveTcs = new TaskCompletionSource<IMatchPresenceEvent>();\n            socket1.ReceivedMatchPresence += presenceEvent =>\n            {\n                createdMatch.UpdatePresences(presenceEvent);\n                matchLeaveTcs.SetResult(presenceEvent);\n            };\n\n            await socket2.LeaveMatchAsync(createdMatch);\n            await matchLeaveTcs.Task;\n\n            socket1.ReceivedMatchPresence -= matchPresenceHandler;\n            Assert.Equal(0, createdMatch.Presences.Count());\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/RetryTest.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Linq;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing Xunit;\nusing System;\n\nnamespace Nakama.Tests\n{\n    public class RetryTest\n    {\n        [Fact]\n        public async void TransientHttpAdapter_ServerDefault_CreatesSession()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[1] { TransientAdapterResponseType.ServerOk };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n            ISession session = await client.AuthenticateCustomAsync(\"test_id\");\n            Assert.NotNull(session);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_OneRetries_RetriesExactlyOnce()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[2]\n                { TransientAdapterResponseType.TransientError, TransientAdapterResponseType.ServerOk };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            int lastNumRetry = -1;\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { lastNumRetry = numRetry; };\n\n            var config = new RetryConfiguration(baseDelayMs: 10, maxRetries: 1, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            ISession session = await client.AuthenticateCustomAsync(\"test_id\");\n\n            Assert.NotNull(session);\n            Assert.Equal(1, lastNumRetry);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_FiveRetries_RetriesExactlyFiveTimes()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[6]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.ServerOk\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            int lastNumRetry = -1;\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { lastNumRetry = numRetry; };\n\n            var config = new RetryConfiguration(baseDelayMs: 1, maxRetries: 5, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            Task<ISession> sessionTask = client.AuthenticateCustomAsync(\"test_id\");\n\n            ISession session = await sessionTask;\n            Assert.NotNull(session);\n            Assert.Equal(5, lastNumRetry);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_PastMaxRetries_ThrowsTaskCancelledException()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[4]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            int lastNumRetry = 3;\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { lastNumRetry = numRetry; };\n\n            var config = new RetryConfiguration(baseDelayMs: 500, maxRetries: 3, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            Task<ISession> sessionTask = client.AuthenticateCustomAsync(\"test_id\");\n\n            await Assert.ThrowsAsync<TaskCanceledException>(async () => await sessionTask);\n            Assert.Equal(3, lastNumRetry);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_ZeroRetries_RetriesZeroTimes()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[1] { TransientAdapterResponseType.TransientError };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            int lastNumRetry = -1;\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { lastNumRetry = numRetry; };\n\n            var config = new RetryConfiguration(baseDelayMs: 10, maxRetries: 0, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            Task<ISession> sessionTask = client.AuthenticateCustomAsync(\"test_id\");\n\n            await Assert.ThrowsAsync<TaskCanceledException>(async () => await sessionTask);\n            Assert.Equal(-1, lastNumRetry);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_OverrideSet_OverridesGlobal()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[4]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.ServerOk\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            int lastNumRetry = -1;\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { lastNumRetry = numRetry; };\n\n            var globalConfig = new RetryConfiguration(baseDelayMs: 10, maxRetries: 1, retryListener);\n            client.GlobalRetryConfiguration = globalConfig;\n\n            var localConfig = new RetryConfiguration(baseDelayMs: 10, maxRetries: 3, retryListener);\n            var session = await client.AuthenticateCustomAsync(\"test_id\", null, true, null, localConfig);\n\n            Assert.NotNull(session);\n            Assert.Equal(3, lastNumRetry);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_Delay_ExpectedExponentialTimes()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[4]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.ServerOk\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n\n            var retries = new List<Retry>();\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { retries.Add(retry); };\n\n            var config = new RetryConfiguration(baseDelayMs: 10, maxRetries: 3, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            Task<ISession> sessionTask = client.AuthenticateCustomAsync(\"test_id\");\n\n            ISession session = await sessionTask;\n            Assert.NotNull(session);\n\n            Assert.Equal(10, retries[0].ExponentialBackoff);\n            Assert.Equal(20, retries[1].ExponentialBackoff);\n            Assert.Equal(40, retries[2].ExponentialBackoff);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_Delay_ExpectedDelays()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[3]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n            var retries = new List<Retry>();\n\n            RetryListener retryListener = (int numRetry, Retry retry) => { retries.Add(retry); };\n\n            var config = new RetryConfiguration(baseDelayMs: 10, maxRetries: 3, retryListener);\n            client.GlobalRetryConfiguration = config;\n\n            DateTime timeBeforeRequest = DateTime.Now;\n            DateTime timeAfterRequest = default(DateTime);\n\n            try\n            {\n                await client.AuthenticateCustomAsync(\"test_id\");\n            }\n            catch\n            {\n                timeAfterRequest = DateTime.Now;\n            }\n\n            int expectedElapsedTime = retries.Sum(retry => retry.JitterBackoff);\n            int actualElapsedTime = (int)(timeAfterRequest - timeBeforeRequest).TotalMilliseconds;\n\n            // actual will be slightly higher due to cpu elapsed time\n            Assert.True(expectedElapsedTime < actualElapsedTime);\n        }\n\n        [Fact]\n        public async void RetryConfiguration_NullConfiguration_DoesNotThrowNullRef()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[3]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            client.GlobalRetryConfiguration = null;\n\n            await Assert.ThrowsAsync<ApiResponseException>(async () => await client.AuthenticateCustomAsync(\"test_id\"));\n        }\n\n        [Fact]\n        public async void RetryConfiguration_NoRetries_ThrowsBaseApiResponseException()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[3]\n            {\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n                TransientAdapterResponseType.TransientError,\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            client.GlobalRetryConfiguration = new RetryConfiguration(baseDelayMs: 1, maxRetries: 0);\n\n            try\n            {\n                await client.AuthenticateCustomAsync(\"test_id\");\n                throw new Exception(\"Test failed due to not throwing an exception\");\n            }\n            catch (TaskCanceledException e)\n            {\n                Assert.True(e.GetBaseException() != null && e.GetBaseException() is ApiResponseException);\n            }\n            catch (Exception e)\n            {\n                throw e;\n            }\n        }\n\n        [Fact]\n        public async void RetryConfiguration_NonTransientError_Throws()\n        {\n            var adapterSchedule = new TransientAdapterResponseType[1]\n            {\n                TransientAdapterResponseType.NonTransientError,\n            };\n\n            var adapter = new TransientExceptionHttpAdapter(adapterSchedule);\n            var client = TestsUtil.FromSettingsFile(TestsUtil.DefaultSettingsPath, adapter);\n\n            client.GlobalRetryConfiguration = new RetryConfiguration(baseDelayMs: 1, maxRetries: 3);\n\n            ApiResponseException e =\n                await Assert.ThrowsAsync<ApiResponseException>(async () =>\n                    await client.AuthenticateCustomAsync(\"test_id\"));\n        }\n    }\n}"
  },
  {
    "path": "Nakama.Tests/RpcTest.cs",
    "content": "﻿/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama.Tests.Api\n{\n    using System;\n    using System.Threading.Tasks;\n    using Xunit;\n\n    // NOTE: Requires Lua modules from server repo.\n\n    public class RpcTest\n    {\n        private IClient _client;\n\n        // ReSharper disable RedundantArgumentDefaultValue\n\n        public RpcTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldRpcRoundtrip()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            const string funcid = \"clientrpc.rpc\";\n            const string payload = \"{\\\"hello\\\": \\\"world\\\"}\";\n            var rpc = await _client.RpcAsync(session, funcid, payload);\n\n            Assert.NotNull(rpc);\n            Assert.Equal(payload, rpc.Payload);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldRpcGet()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            const string funcid = \"clientrpc.rpc_get\";\n            var rpc = await _client.RpcAsync(session, funcid);\n\n            Assert.NotNull(rpc);\n            Assert.Equal(\"{\\\"message\\\":\\\"PONG\\\"}\", rpc.Payload);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldRpcGetRoundtrip()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            const string funcid = \"clientrpc.rpc\";\n            const string payload = \"{\\\"hello\\\": \\\"world\\\"}\";\n            var rpc = await _client.RpcAsync(session, funcid, payload);\n\n            Assert.NotNull(rpc);\n            Assert.Equal(payload, rpc.Payload);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldRpcWithoutSession()\n        {\n            // Http Key is used often for server to server function calls\n            const string httpkey = \"defaulthttpkey\";\n            const string funcid = \"clientrpc.rpc_get\";\n            var rpc = await _client.RpcAsync(httpkey, funcid);\n\n            Assert.NotNull(rpc);\n            Assert.Equal(\"{\\\"message\\\":\\\"PONG\\\"}\", rpc.Payload);\n        }\n        \n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldRpcGetRoundtripWithoutSession()\n        {\n            // Http Key is used often for server to server function calls\n            const string httpkey = \"defaulthttpkey\";\n            const string funcid = \"clientrpc.rpc\";\n            const string payload = \"{\\\"hello\\\": \\\"world\\\"}\";\n            var rpc = await _client.RpcAsync(httpkey, funcid, payload);\n\n            Assert.NotNull(rpc);\n            Assert.Equal(payload, rpc.Payload);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/SessionTest.cs",
    "content": "// Copyright 2018 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing Xunit;\n\nnamespace Nakama.Tests\n{\n    // NOTE Test name patterns are: MethodName_StateUnderTest_ExpectedBehavior\n    public class SessionTest\n    {\n        private const string AuthToken =\n            \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MTY5MTA5NzMsInVpZCI6ImY0MTU4ZjJiLTgwZjMtNDkyNi05NDZiLWE4Y2NmYzE2NTQ5MCIsInVzbiI6InZUR2RHSHl4dmwiLCJpYXQiOjE1MTY5MDczNzN9.01JtFdklpNfwHHCjItSGTbFBui3LyC3drqkrw6biy1I\";\n\n        private const string AuthTokenVariables =\n            \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MTY5MTA5NzMsInVpZCI6ImY0MTU4ZjJiLTgwZjMtNDkyNi05NDZiLWE4Y2NmYzE2NTQ5MCIsInVzbiI6InZUR2RHSHl4dmwiLCJ2cnMiOnsiazEiOiJ2MSIsImsyIjoidjIifX0.Hs9ltsNmtrTJXi2U21jjuXcd-3DMsyv4W6u1vyDBMTo\";\n\n        private const string RefreshToken =\n            \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI1NTVjNDQwMC0yZGIxLTRkYmEtOTgwMC1jZjBmYzljMTVjMTAiLCJ1c24iOiJ1YWVuWGxFRnlhIiwiZXhwIjoxNjE2MzQ3OTc2fQ.l6bKhmcEbGHKV8YQVDKF8ysmWgOqcz3tCDSRn0eIKPw\";\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void GetVariables_VariablesField_Empty()\n        {\n            var session = Session.Restore(AuthToken);\n            Assert.NotNull(session.AuthToken);\n            Assert.Equal(AuthToken, session.AuthToken);\n            Assert.NotNull(session.Vars);\n            Assert.Empty(session.Vars);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void GetVariables_VariablesField_Values()\n        {\n            var session = Session.Restore(AuthTokenVariables);\n            Assert.NotNull(session.AuthToken);\n            Assert.NotNull(session.Username);\n            Assert.Equal(\"vTGdGHyxvl\", session.Username);\n            Assert.NotNull(session.UserId);\n            Assert.Equal(\"f4158f2b-80f3-4926-946b-a8ccfc165490\", session.UserId);\n            Assert.NotNull(session.Vars);\n            Assert.Contains(session.Vars, pair => pair.Key.Equals(\"k1\") || pair.Key.Equals(\"k2\"));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void GetVariables_VariablesField_FromAuthenticate()\n        {\n            var client = TestsUtil.FromSettingsFile();\n            var id = Guid.NewGuid().ToString();\n            var vars = new Dictionary<string, string> {{\"k1\", \"v1\"}};\n            var session = await client.AuthenticateDeviceAsync(id, null, true, vars);\n            Assert.NotNull(session);\n            Assert.NotNull(session.Vars);\n            Assert.Equal(vars, session.Vars);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void GetRefreshToken_RefreshTokenField_FromAuthenticate()\n        {\n            var client = TestsUtil.FromSettingsFile();\n            var id = Guid.NewGuid().ToString();\n            var session = await client.AuthenticateDeviceAsync(id);\n            Assert.NotNull(session);\n            Assert.NotNull(session.RefreshToken);\n            Assert.NotEqual(0L, session.RefreshExpireTime);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void SessionLogout_RefreshTokenField_Disabled()\n        {\n            var client = TestsUtil.FromSettingsFile();\n            var id = Guid.NewGuid().ToString();\n            var session = await client.AuthenticateDeviceAsync(id);\n            Assert.NotNull(session);\n            await client.SessionLogoutAsync(session);\n            var ex = await Assert.ThrowsAsync<ApiResponseException>(() => client.GetAccountAsync(session));\n            Assert.Equal(401, ex.StatusCode);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void GetUsername_UsernameField_NotNull()\n        {\n            var session = Session.Restore(AuthToken);\n            Assert.NotNull(session.AuthToken);\n            Assert.Equal(AuthToken, session.AuthToken);\n            Assert.NotNull(session.Username);\n            Assert.Equal(\"vTGdGHyxvl\", session.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void GetUserId_UserIdField_NotNull()\n        {\n            var session = Session.Restore(AuthToken);\n            Assert.NotNull(session.AuthToken);\n            Assert.Equal(AuthToken, session.AuthToken);\n            Assert.NotNull(session.UserId);\n            Assert.Equal(\"f4158f2b-80f3-4926-946b-a8ccfc165490\", session.UserId);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void IsExpired_ExpiredField_True()\n        {\n            var session = Session.Restore(AuthToken);\n            Assert.NotNull(session.AuthToken);\n            Assert.Equal(AuthToken, session.AuthToken);\n            Assert.Equal(1516910973, session.ExpireTime);\n            Assert.NotInRange(session.CreateTime, 0, 0);\n            Assert.True(session.IsExpired);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void IsRefreshExpired_RefreshExpiredField_True()\n        {\n            var session = Session.Restore(AuthToken, RefreshToken);\n            Assert.NotNull(session);\n            Assert.Equal(RefreshToken, session.RefreshToken);\n            Assert.Equal(1616347976, session.RefreshExpireTime);\n            Assert.NotInRange(session.RefreshExpireTime, 0, 0);\n            Assert.True(session.IsRefreshExpired);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void CreateTime_IsTokenIssField()\n        {\n            var session = Session.Restore(AuthToken);\n            Assert.Equal(1516907373, session.CreateTime);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void Refresh_MetadataVar_DoesNotThrow()\n        {\n            var client = TestsUtil.FromSettingsFile();\n\n            const int numVars = 5;\n\n            var initialVars = new Dictionary<string, string>();\n\n            for (int i = 0; i < numVars; i++)\n            {\n                initialVars[$\"{Guid.NewGuid()}\"] = $\"{Guid.NewGuid()}\";\n            }\n\n            var session = await client.AuthenticateCustomAsync(\"${Guid.NewGuid()}\", null, true, initialVars);\n\n            var newVars = new Dictionary<string, string>(session.Vars);\n\n            foreach (KeyValuePair<string, string> var in newVars)\n            {\n                newVars[var.Key] = $\"{Guid.NewGuid()}\";\n            }\n\n            session = await client.SessionRefreshAsync(session, newVars);\n\n            Assert.Equal(session.Vars.Count, numVars);\n            Assert.True(newVars.Keys.All(initialVars.Keys.Contains));\n            Assert.True(newVars.Values.All((val) => !initialVars.Values.Contains(val)));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void Restore_AuthTokenEmptyString_Null()\n        {\n            var session = Session.Restore(\"\");\n            Assert.Null(session);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void Restore_RefreshTokenNull_Valid()\n        {\n            var session = Session.Restore(AuthToken, null);\n            Assert.NotNull(session);\n            Assert.Null(session.RefreshToken);\n            Assert.Equal(0L, session.RefreshExpireTime);\n            Assert.True(session.IsRefreshExpired);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketChannelTest.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama.Tests.Socket\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Threading.Tasks;\n    using Xunit;\n    using TinyJson;\n\n    public class WebSocketChannelTest : IAsyncLifetime\n    {\n        private IClient _client;\n        private ISocket _socket;\n\n        public WebSocketChannelTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateRoomChannel()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var channel = await _socket.JoinChatAsync(\"myroom\", ChannelType.Room);\n\n            Assert.NotNull(channel);\n            Assert.NotNull(channel.Id);\n            Assert.Equal(channel.Self.UserId, session.UserId);\n            Assert.Equal(channel.Self.Username, session.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldSendMessageRoomChannel()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var completer = new TaskCompletionSource<IApiChannelMessage>();\n            _socket.ReceivedChannelMessage += (chatMessage) => completer.SetResult(chatMessage);\n            await _socket.ConnectAsync(session);\n            var channel = await _socket.JoinChatAsync(\"myroom\", ChannelType.Room);\n\n            // Send chat message.\n            var content = new Dictionary<string, string> {{\"hello\", \"world\"}}.ToJson();\n            var sendAck = await _socket.WriteChatMessageAsync(channel, content);\n            var message = await completer.Task.ConfigureAwait(false);\n\n            Assert.NotNull(sendAck);\n            Assert.NotNull(message);\n            Assert.Equal(sendAck.ChannelId, message.ChannelId);\n            Assert.Equal(sendAck.MessageId, message.MessageId);\n            Assert.Equal(sendAck.Username, message.Username);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldSendMessageDirectChannel()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            await _client.AddFriendsAsync(session1, new[] {session2.UserId});\n            await _client.AddFriendsAsync(session2, new[] {session1.UserId});\n\n            var completer = new TaskCompletionSource<IApiChannelMessage>();\n            _socket.ReceivedChannelMessage += (chatMessage) => completer.SetResult(chatMessage);\n            await _socket.ConnectAsync(session1);\n\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n            var channel = await _socket.JoinChatAsync(session2.UserId, ChannelType.DirectMessage, false, false);\n\n            // Send chat message.\n            var content = new Dictionary<string, string> {{\"hello\", \"world\"}}.ToJson();\n            var sendAck = await _socket.WriteChatMessageAsync(channel, content);\n            var message = await completer.Task.ConfigureAwait(false);\n\n            Assert.NotNull(sendAck);\n            Assert.NotNull(message);\n            Assert.Equal(sendAck.ChannelId, message.ChannelId);\n            Assert.Equal(sendAck.MessageId, message.MessageId);\n            Assert.Equal(sendAck.Username, message.Username);\n        }\n\n        Task IAsyncLifetime.InitializeAsync()\n        {\n            return Task.CompletedTask;\n        }\n\n        Task IAsyncLifetime.DisposeAsync()\n        {\n            return _socket.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketMatchTest.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System.Net.Sockets;\n\nnamespace Nakama.Tests.Socket\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Linq;\n    using System.Text;\n    using System.Threading.Tasks;\n    using Xunit;\n    using TinyJson;\n\n    // \"Flakey. Needs improvement.\"\n    public class WebSocketMatchTest : IAsyncLifetime\n    {\n        private IClient _client;\n        private ISocket _socket;\n\n        // ReSharper disable RedundantArgumentDefaultValue\n        public WebSocketMatchTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateMatch()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var match = await _socket.CreateMatchAsync();\n\n            Assert.NotNull(match);\n            Assert.NotNull(match.Id);\n            Assert.NotEmpty(match.Id);\n            Assert.False(match.Authoritative);\n            Assert.True(match.Size > 0);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateMatchWithName()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var match = await _socket.CreateMatchAsync(\"TestMatch\");\n\n            Assert.NotNull(match);\n            Assert.NotNull(match.Id);\n            Assert.NotEmpty(match.Id);\n            Assert.False(match.Authoritative);\n            Assert.True(match.Size > 0);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldJoinMatchWithName()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var match = await _socket.CreateMatchAsync(\"TestMatch\");\n\n            // Currently MatchCreate is an upsert operation so there is no MatchJoin that accepts a name, calling MatchCreate with a match name\n            // will return a deterministic match Id and place the user on the appropriate stream\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session2);\n            var match2 = await _socket.CreateMatchAsync(\"TestMatch\");\n            \n            Assert.NotNull(match);\n            Assert.NotNull(match2);\n            Assert.Equal(match.Id, match2.Id);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateMatchAndSecondUserJoin()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session1);\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n\n            var match1 = await _socket.CreateMatchAsync();\n            var match2 = await socket2.JoinMatchAsync(match1.Id);\n\n            Assert.NotNull(match1);\n            Assert.NotNull(match2);\n            Assert.Equal(match1.Id, match2.Id);\n            Assert.Equal(match1.Label, match2.Label);\n\n            Assert.True(match1.Presences.Count() == 0 && match1.Self.UserId == session1.UserId);\n            Assert.True(match2.Presences.Count() == 1);\n\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateMatchAndLeave()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var match = await _socket.CreateMatchAsync();\n\n            Assert.NotNull(match);\n            Assert.NotNull(match.Id);\n            await _socket.LeaveMatchAsync(match.Id);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateMatchAndSendState()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            _socket = Nakama.Socket.From(_client);\n            await _socket.ConnectAsync(session1);\n\n            var socket2 = Nakama.Socket.From(_client);\n            var completer = new TaskCompletionSource<IMatchState>();\n            socket2.ReceivedMatchState += (state) => completer.SetResult(state);\n            await socket2.ConnectAsync(session2);\n\n            var match = await _socket.CreateMatchAsync();\n            await socket2.JoinMatchAsync(match.Id);\n\n            var newState = new Dictionary<string, string> {{\"hello\", \"world\"}}.ToJson();\n            await _socket.SendMatchStateAsync(match.Id, 0, newState);\n\n            var result = await completer.Task;\n            Assert.NotNull(result);\n            Assert.Equal(newState, Encoding.UTF8.GetString(result.State));\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task EachClientShouldReceiveTwoPresences()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n\n            HashSet<string> socket1PresenceIds = new HashSet<string>();\n            HashSet<string> socket2PresenceIds = new HashSet<string>();\n\n            _socket.ReceivedMatchPresence += (evt) =>\n            {\n                foreach (string joinerId in evt.Joins.Select(joiner => joiner.UserId))\n                {\n                    socket1PresenceIds.Add(joinerId);\n                }\n            };\n\n            socket2.ReceivedMatchPresence += (evt) =>\n            {\n                foreach (string joinerId in evt.Joins.Select(joiner => joiner.UserId))\n                {\n                    socket2PresenceIds.Add(joinerId);\n                }\n            };\n\n            await _socket.ConnectAsync(session);\n            await socket2.ConnectAsync(session2);\n\n            var match = await _socket.CreateMatchAsync();\n            var match2 = await socket2.JoinMatchAsync(match.Id);\n\n            foreach (string existingId in match2.Presences.Select(joiner => joiner.UserId))\n            {\n                socket2PresenceIds.Add(existingId);\n            }\n\n            await Task.Delay(1000);\n\n            Assert.Equal(2, socket1PresenceIds.Count);\n            Assert.Equal(2, socket2PresenceIds.Count);\n\n            await _socket.LeaveMatchAsync(match.Id);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldThrowSocketExceptionWhenSendingMatchDataAfterClosingSocket()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var match = await _socket.CreateMatchAsync();\n            await _socket.CloseAsync();\n\n            await Assert.ThrowsAsync<SocketException>(async () =>\n            {\n                await _socket.SendMatchStateAsync(match.Id, 1, new { hello = \"world\" }.ToJson(), null);\n            });\n        }\n\n        Task IAsyncLifetime.InitializeAsync()\n        {\n            return Task.CompletedTask;\n        }\n\n        Task IAsyncLifetime.DisposeAsync()\n        {\n            return _socket.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketMatchmakerTest.cs",
    "content": "// Copyright 2020 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Socket\n{\n    public class WebSocketMatchmakerTest : IAsyncLifetime\n    {\n        private readonly IClient _client;\n        private readonly ISocket _socket;\n\n        public WebSocketMatchmakerTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldJoinMatchmaker()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var matchmakerTicket = await _socket.AddMatchmakerAsync(\"*\");\n\n            Assert.NotNull(matchmakerTicket);\n            Assert.NotEmpty(matchmakerTicket.Ticket);\n        }\n\n        // \"Flakey. Needs improvement.\"\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldJoinAndLeaveMatchmaker()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            var matchmakerTicket = await _socket.AddMatchmakerAsync(\"*\");\n\n            Assert.NotNull(matchmakerTicket);\n            Assert.NotEmpty(matchmakerTicket.Ticket);\n            await _socket.RemoveMatchmakerAsync(matchmakerTicket);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldCompleteMatchmaker()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n\n            await _socket.ConnectAsync(session);\n            await socket2.ConnectAsync(session2);\n\n            var completer = new TaskCompletionSource<IMatchmakerMatched>();\n            var completer2 = new TaskCompletionSource<IMatchmakerMatched>();\n            _socket.ReceivedMatchmakerMatched += (state) => completer.SetResult(state);\n            socket2.ReceivedMatchmakerMatched += (state) => completer2.SetResult(state);\n\n            var matchmakerTicket = await _socket.AddMatchmakerAsync(\"*\", 2, 2);\n            await Task.Delay(2000);\n            var matchmakerTicket2 = await socket2.AddMatchmakerAsync(\"*\", 2, 2);\n\n            Assert.NotNull(matchmakerTicket);\n            Assert.NotEmpty(matchmakerTicket.Ticket);\n            Assert.NotNull(matchmakerTicket2);\n            Assert.NotEmpty(matchmakerTicket2.Ticket);\n\n            var result = await completer.Task;\n            var result2 = await completer2.Task;\n            Assert.NotNull(result);\n            Assert.NotNull(result2);\n            Assert.NotEmpty(result.Token);\n            Assert.NotEmpty(result2.Token);\n            Assert.Equal(result.Token, result2.Token);\n        }\n\n         [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldNotMatchPartiesWithACombinedAmountOfPlayersAboveMaxCount()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session4 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n            var socket3 = Nakama.Socket.From(_client);\n            var socket4 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n            await socket3.ConnectAsync(session3);\n            await socket4.ConnectAsync(session4);\n\n            var party1PresenceJoinedTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket1.ReceivedPartyPresence += presenceEvt => party1PresenceJoinedTcs.SetResult(presenceEvt);\n\n            var party2PresenceJoinedTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket3.ReceivedPartyPresence += presenceEvt => party2PresenceJoinedTcs.SetResult(presenceEvt);\n\n            var mmCompleter1 = new TaskCompletionSource<IMatchmakerMatched>();\n            var mmCompleter2 = new TaskCompletionSource<IMatchmakerMatched>();\n            socket1.ReceivedMatchmakerMatched += (state) => mmCompleter1.SetResult(state);\n            socket3.ReceivedMatchmakerMatched += (state) => mmCompleter2.SetResult(state);\n\n            var party1 = await socket1.CreatePartyAsync(true, false, 2);\n            var party2 = await socket3.CreatePartyAsync(true, false, 2);\n\n            await socket2.JoinPartyAsync(party1.Id);\n            await socket4.JoinPartyAsync(party2.Id);\n\n            await party1PresenceJoinedTcs.Task;\n            await party2PresenceJoinedTcs.Task;\n\n            var addPartyResult1 = await socket1.AddMatchmakerPartyAsync(party1.Id, \"*\", 3, 3);\n            var addPartyResult2 = await socket3.AddMatchmakerPartyAsync(party2.Id, \"*\", 3, 3);\n\n            Assert.NotEmpty(addPartyResult1.Ticket);\n            Assert.NotEmpty(addPartyResult2.Ticket);\n\n            await Task.Delay(1000);\n\n            Assert.False(mmCompleter1.Task.IsCompleted);\n            Assert.False(mmCompleter2.Task.IsCompleted);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n            await socket3.CloseAsync();\n            await socket4.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldMatchPartiesWithPlayers()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n            var socket3 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n            await socket3.ConnectAsync(session3);\n\n            var partyPresenceJoinedTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket1.ReceivedPartyPresence += presenceEvt => partyPresenceJoinedTcs.SetResult(presenceEvt);\n\n            var mmCompleter1 = new TaskCompletionSource<IMatchmakerMatched>();\n            var mmCompleter2 = new TaskCompletionSource<IMatchmakerMatched>();\n            socket1.ReceivedMatchmakerMatched += (state) => mmCompleter1.SetResult(state);\n            socket3.ReceivedMatchmakerMatched += (state) => mmCompleter2.SetResult(state);\n\n            var party1 = await socket1.CreatePartyAsync(true, false, 2);\n            await socket2.JoinPartyAsync(party1.Id);\n\n            await partyPresenceJoinedTcs.Task;\n\n            var addPartyResult = await socket1.AddMatchmakerPartyAsync(party1.Id, \"*\", 3, 3);\n            var addPlayerResult = await socket3.AddMatchmakerAsync( \"*\", 3, 3);\n\n            Assert.NotEmpty(addPartyResult.Ticket);\n            Assert.NotEmpty(addPlayerResult.Ticket);\n\n            var partyMatchResult = await mmCompleter1.Task;\n            var playerMatchResult = await mmCompleter2.Task;\n\n            Assert.NotEmpty(partyMatchResult.Users);\n            Assert.NotEmpty(playerMatchResult.Users);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n            await socket3.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldCompleteMatchmakerAsymmetricQuery()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n\n            await _socket.ConnectAsync(session);\n            await socket2.ConnectAsync(session2);\n\n            var completer = new TaskCompletionSource<IMatchmakerMatched>();\n            var completer2 = new TaskCompletionSource<IMatchmakerMatched>();\n            _socket.ReceivedMatchmakerMatched += (state) => completer.SetResult(state);\n            socket2.ReceivedMatchmakerMatched += (state) => completer2.SetResult(state);\n\n            var properties = new Dictionary<string, string>();\n            properties.Add(\"code\", \"test1\");\n            var properties2 = new Dictionary<string, string>();\n            properties2.Add(\"code\", \"test2\");\n\n            var matchmakerTicket = await _socket.AddMatchmakerAsync(\"properties.code:* properties.code:test1^5\", 2, 2, properties);\n            var matchmakerTicket2 = await socket2.AddMatchmakerAsync(\"*\", 2, 2, properties2);\n\n            Assert.NotNull(matchmakerTicket);\n            Assert.NotEmpty(matchmakerTicket.Ticket);\n            Assert.NotNull(matchmakerTicket2);\n            Assert.NotEmpty(matchmakerTicket2.Ticket);\n\n            await Task.Delay(1000);\n\n            var result = await completer.Task;\n            var result2 = await completer2.Task;\n            Assert.NotNull(result);\n            Assert.NotNull(result2);\n            Assert.NotEmpty(result.Token);\n            Assert.NotEmpty(result2.Token);\n            Assert.Equal(result.Token, result2.Token);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS_MATCHMAKER)]\n        public async Task ShouldCompleteMatchmakerSymmetricQueryMidSize()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n            var socket3 = Nakama.Socket.From(_client);\n\n            await _socket.ConnectAsync(session);\n            await socket2.ConnectAsync(session2);\n            await socket3.ConnectAsync(session3);\n\n            var completer = new TaskCompletionSource<IMatchmakerMatched>();\n            var completer2 = new TaskCompletionSource<IMatchmakerMatched>();\n            var completer3 = new TaskCompletionSource<IMatchmakerMatched>();\n            _socket.ReceivedMatchmakerMatched += (state) => completer.SetResult(state);\n            socket2.ReceivedMatchmakerMatched += (state) => completer2.SetResult(state);\n            socket3.ReceivedMatchmakerMatched += (state) => completer3.SetResult(state);\n\n            var properties = new Dictionary<string, string>();\n            properties.Add(\"foo\", \"bar\");\n            var properties2 = new Dictionary<string, string>();\n            properties2.Add(\"foo\", \"bar\");\n            var properties3 = new Dictionary<string, string>();\n            properties3.Add(\"foo\", \"bar\");\n\n            var query = \"+properties.foo:bar\";\n            var query2 = \"+properties.foo:bar\";\n            var query3 = \"+properties.foo:bar\";\n\n            var matchmakerTicket = await _socket.AddMatchmakerAsync(query, 3, 3, properties);\n            var matchmakerTicket2 = await socket2.AddMatchmakerAsync(query2, 3, 3, properties2);\n            var matchmakerTicket3 = await socket3.AddMatchmakerAsync(query3, 3, 3, properties3);\n\n            Assert.NotNull(matchmakerTicket);\n            Assert.NotEmpty(matchmakerTicket.Ticket);\n            Assert.NotNull(matchmakerTicket2);\n            Assert.NotEmpty(matchmakerTicket2.Ticket);\n            Assert.NotNull(matchmakerTicket3);\n            Assert.NotEmpty(matchmakerTicket3.Ticket);\n\n            await Task.Delay(3000);\n\n            var result = await completer.Task;\n            var result2 = await completer2.Task;\n            var result3 = await completer3.Task;\n            Assert.NotNull(result);\n            Assert.NotNull(result2);\n            Assert.NotNull(result3);\n            Assert.NotEmpty(result.Token);\n            Assert.NotEmpty(result2.Token);\n            Assert.NotEmpty(result3.Token);\n            Assert.Equal(result.Token, result2.Token);\n            Assert.Equal(result2.Token, result3.Token);\n            Assert.Equal(result.Token, result3.Token);\n        }\n\n        Task IAsyncLifetime.InitializeAsync()\n        {\n            return Task.CompletedTask;\n        }\n\n        Task IAsyncLifetime.DisposeAsync()\n        {\n            return _socket.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketNotificationTest.cs",
    "content": "/**\n * Copyright 2020 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Nakama.Tests.Socket\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Threading.Tasks;\n    using Xunit;\n    using TinyJson;\n    using System.Linq;\n    using System.Runtime.CompilerServices;\n\n    public class WebSocketNotificationTest : IAsyncLifetime\n    {\n        private IClient _client;\n        private ISocket _socket;\n\n        public WebSocketNotificationTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldReceiveNotification()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var completer = new TaskCompletionSource<IApiNotification>();\n            _socket.ReceivedNotification += (notification) => completer.SetResult(notification);\n            await _socket.ConnectAsync(session);\n\n            var payload = new Dictionary<string, string> {{\"user_id\", session.UserId}};\n            var _ = _client.RpcAsync(session, \"clientrpc.send_notification\", payload.ToJson());\n\n            var result = await completer.Task;\n            Assert.NotNull(result);\n            Assert.Equal(session.UserId, result.SenderId);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldObtainDifferentCursors()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var payload = new Dictionary<string, string> {{\"user_id\", session.UserId}};\n            for (int i = 0; i < 10; i++)\n            {\n                var _ = await _client.RpcAsync(session, \"clientrpc.send_notification\", payload.ToJson());\n            }\n            IApiNotificationList notifs = await _client.ListNotificationsAsync(session, limit: 9);\n            string firstCursor = notifs.CacheableCursor;\n            Assert.Equal(9, notifs.Notifications.Count());\n            Assert.NotEmpty(firstCursor);\n\n            notifs = await _client.ListNotificationsAsync(session, limit: 10, cacheableCursor: firstCursor); // should only be one left\n\n            Assert.Single(notifs.Notifications);\n            Assert.NotEmpty(notifs.CacheableCursor);\n            Assert.NotEqual(firstCursor, notifs.CacheableCursor);\n        }\n\n        Task IAsyncLifetime.InitializeAsync()\n        {\n            return Task.CompletedTask;\n        }\n\n        Task IAsyncLifetime.DisposeAsync()\n        {\n            return _socket.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketPartyTest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.WebSockets;\nusing System.Threading.Tasks;\nusing Xunit;\nusing Xunit.Abstractions;\nusing System.Threading;\nusing Nakama.TinyJson;\n\nnamespace Nakama.Tests.Socket\n{\n    public class WebSocketPartyTest\n    {\n        private readonly ITestOutputHelper _testOutputHelper;\n        private readonly IClient _client;\n\n        public WebSocketPartyTest(ITestOutputHelper testOutputHelper)\n        {\n            _testOutputHelper = testOutputHelper;\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateParty()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket = Nakama.Socket.From(_client);\n            await socket.ConnectAsync(session);\n\n            var result = await socket.CreatePartyAsync(true, false, 1);\n\n            Assert.NotNull(result);\n            Assert.NotNull(result.Self);\n            Assert.Equal(session.UserId, result.Self.UserId);\n            Assert.Equal(session.Username, result.Self.Username);\n            Assert.False(result.Hidden);\n            Assert.True(result.Open);\n            Assert.Equal(1, result.MaxSize);\n            Assert.Null(result.Label);\n\n            await socket.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreatePartyWithLabel()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket = Nakama.Socket.From(_client);\n            await socket.ConnectAsync(session);\n\n            var label = new Dictionary<string, string> { { \"team\", \"red\" } }.ToJson();\n            var result = await socket.CreatePartyAsync(false, false, 1, label);\n\n            Assert.NotNull(result);\n            Assert.NotNull(result.Self);\n            Assert.Equal(session.UserId, result.Self.UserId);\n            Assert.Equal(session.Username, result.Self.Username);\n            Assert.Equal(label, result.Label);\n\n            await socket.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldReceiveJoinEvent()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket = Nakama.Socket.From(_client);\n            await socket.ConnectAsync(session);\n\n            var createdParty = await socket.CreatePartyAsync(true, false, 2);\n\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n\n            var partyReceivedTcs = new TaskCompletionSource<IParty>();\n\n            socket2.JoinPartyAsync(createdParty.Id);\n\n            socket2.ReceivedParty += party =>\n            {\n                partyReceivedTcs.SetResult(party);\n            };\n\n            var joinedParty = await partyReceivedTcs.Task;\n\n            Assert.NotNull(joinedParty);\n            Assert.NotNull(joinedParty.Self);\n            Assert.Equal(session2.UserId, joinedParty.Self.UserId);\n            Assert.Equal(session2.Username, joinedParty.Self.Username);\n\n            await socket.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldAddAndRemovePartyFromMatchmaker()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var partyJoinRequestTcs = new TaskCompletionSource<IPartyJoinRequest>();\n            socket1.ReceivedPartyJoinRequest += request => partyJoinRequestTcs.SetResult(request);\n\n            var partyPresenceJoinedTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket1.ReceivedPartyPresence += presenceEvt => partyPresenceJoinedTcs.SetResult(presenceEvt);\n\n            var party = await socket1.CreatePartyAsync(false, false, 2);\n            Assert.NotNull(party);\n            Assert.NotEmpty(party.Id);\n            Assert.False(party.Open);\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            var joinRequest = await partyJoinRequestTcs.Task;\n\n            await socket1.AcceptPartyMemberAsync(joinRequest.PartyId, joinRequest.Presences.First());\n\n            await partyPresenceJoinedTcs.Task;\n\n            var result = await socket1.AddMatchmakerPartyAsync(party.Id, \"*\", 2, 2);\n\n            Assert.NotEmpty(result.Ticket);\n            await socket1.RemoveMatchmakerPartyAsync(party.Id, result.Ticket);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldPromoteMember()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var partyJoinRequestTcs = new TaskCompletionSource<IPartyJoinRequest>();\n            socket1.ReceivedPartyJoinRequest += request => partyJoinRequestTcs.SetResult(request);\n\n            var partyPromoteTcs = new TaskCompletionSource<IPartyLeader>();\n            socket1.ReceivedPartyLeader += newLeader => partyPromoteTcs.SetResult(newLeader);\n\n            var party = await socket1.CreatePartyAsync(false, false, 2);\n            Assert.NotNull(party);\n            Assert.NotEmpty(party.Id);\n            Assert.False(party.Open);\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            var joinRequest = await partyJoinRequestTcs.Task;\n            _testOutputHelper.WriteLine(joinRequest.ToString());\n\n            var partyPresenceJoinedTcs = new TaskCompletionSource<IPartyPresenceEvent>();\n            socket1.ReceivedPartyPresence += presenceEvt => partyPresenceJoinedTcs.SetResult(presenceEvt);\n\n            await socket1.AcceptPartyMemberAsync(joinRequest.PartyId, joinRequest.Presences.First());\n            var partyPresenceEvent = await partyPresenceJoinedTcs.Task;\n            _testOutputHelper.WriteLine(partyPresenceEvent.ToString());\n\n            await socket1.PromotePartyMemberAsync(party.Id, partyPresenceEvent.Joins.First());\n\n            var promotedLeader = await partyPromoteTcs.Task;\n            _testOutputHelper.WriteLine(promotedLeader.ToString());\n\n            Assert.NotNull(promotedLeader);\n            Assert.Equal(session2.UserId, promotedLeader.Presence.UserId);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldSendAndReceivePartyData()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            var partyDataTcs = new TaskCompletionSource<IPartyData>();\n\n            socket1.ReceivedPartyData += (data) => partyDataTcs.SetResult(data);\n\n            await socket2.SendPartyDataAsync(party.Id, 0, System.Text.Encoding.UTF8.GetBytes(\"hello world\"));\n\n            await partyDataTcs.Task;\n\n            Assert.Equal(\"hello world\", System.Text.Encoding.UTF8.GetString(partyDataTcs.Task.Result.Data));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldJoinClosedParty()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var party = await socket1.CreatePartyAsync(false, false, 2);\n\n            var requestedJoinTcs = new TaskCompletionSource<IPartyJoinRequest>();\n            socket1.ReceivedPartyJoinRequest += (request) => requestedJoinTcs.SetResult(request);\n            await socket2.JoinPartyAsync(party.Id);\n\n            await requestedJoinTcs.Task;\n\n            var acceptedTcs = new TaskCompletionSource<IParty>();\n\n            socket2.ReceivedParty += (party) => acceptedTcs.SetResult(party);\n\n            foreach (var presence in requestedJoinTcs.Task.Result.Presences)\n            {\n                await socket1.AcceptPartyMemberAsync(requestedJoinTcs.Task.Result.PartyId, presence);\n            }\n\n            await acceptedTcs.Task;\n\n            Assert.True(acceptedTcs.Task.Result.Id == party.Id);\n            Assert.True(acceptedTcs.Task.Result.Self.UserId == session2.UserId);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldNotJoinPastMaxSize()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n            var socket3 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n            await socket3.ConnectAsync(session3);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            await socket2.JoinPartyAsync(party.Id);\n            await Assert.ThrowsAsync<WebSocketException>(() => socket3.JoinPartyAsync(party.Id));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n            await socket3.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task LeaderShouldBeInInitialPresences()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            Assert.Single(party.Presences);\n            Assert.Equal(party.Leader.UserId, party.Presences.First().UserId);\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task PresencesInitializedWithConcurrentJoins()\n        {\n            const int numMembers = 5;\n\n            var leaderSession = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var leaderSocket = Nakama.Socket.From(_client);\n            await leaderSocket.ConnectAsync(leaderSession);\n\n            var memberSessions = new ISession[numMembers];\n            var memberSockets = new Nakama.ISocket[numMembers];\n\n            IParty party = await leaderSocket.CreatePartyAsync(true, false, numMembers + 1);\n\n            var memberPartyObjects = new IParty[numMembers];\n\n            int partyObjCounter = 0;\n\n            for (int i = 0; i < numMembers; i++)\n            {\n                memberSessions[i] = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n                memberSockets[i] = (Nakama.Socket.From(_client));\n                await memberSockets[i].ConnectAsync(memberSessions[i]);\n\n                memberSockets[i].ReceivedParty += party => {\n                    memberPartyObjects[partyObjCounter] = party;\n                    Interlocked.Increment(ref partyObjCounter);\n                };\n\n                memberSockets[i].JoinPartyAsync(party.Id);\n            }\n\n            while (partyObjCounter < numMembers)\n            {\n                await Task.Delay(25);\n            }\n\n            // includes duplicates\n            var combinedPresences = memberPartyObjects.SelectMany(party => party.Presences);\n\n            foreach (var presence in combinedPresences)\n            {\n                Assert.False(string.IsNullOrEmpty(presence.UserId));\n                Assert.False(string.IsNullOrEmpty(presence.Username));\n                Assert.False(string.IsNullOrEmpty(presence.SessionId));\n            }\n\n            await leaderSocket.CloseAsync();\n\n            foreach (var memberSocket in memberSockets)\n            {\n                await memberSocket.CloseAsync();\n            }\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldBootThenClose()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session3 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n            var socket3 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n            await socket3.ConnectAsync(session3);\n\n            var party = await socket1.CreatePartyAsync(true, false, 3);\n\n            var socket2PresenceTcs = new TaskCompletionSource<IUserPresence>();\n\n            socket1.ReceivedPartyPresence += presences => {\n                var session2Join = presences.Joins.FirstOrDefault(presence => presence.UserId == session2.UserId);\n                if (session2Join != null)\n                {\n                    socket2PresenceTcs.SetResult(session2Join);\n                }\n            };\n\n            await socket2.JoinPartyAsync(party.Id);\n            await socket3.JoinPartyAsync(party.Id);\n\n            await socket2PresenceTcs.Task;\n\n            var socket2CloseTcs = new TaskCompletionSource();\n            var socket3CloseTcs = new TaskCompletionSource();\n\n            socket2.ReceivedPartyClose += (close) => socket2CloseTcs.SetResult();\n\n            await socket1.RemovePartyMemberAsync(party.Id, socket2PresenceTcs.Task.Result);\n            await socket2CloseTcs.Task;\n\n            socket3.ReceivedPartyClose += (close) => socket3CloseTcs.SetResult();\n\n            await socket1.ClosePartyAsync(party.Id);\n            await socket3CloseTcs.Task;\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n            await socket3.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task LeaderAndMembersShouldReceiveTicket()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            var ticketTcs = new TaskCompletionSource<IPartyMatchmakerTicket>();\n\n            socket2.ReceivedPartyMatchmakerTicket += (ticket) => ticketTcs.SetResult(ticket);\n\n            var ticket = await socket1.AddMatchmakerPartyAsync(party.Id, \"*\", 2, 2);\n            await ticketTcs.Task;\n\n            Assert.Equal(ticketTcs.Task.Result.Ticket, ticket.Ticket);\n\n            await socket1.RemoveMatchmakerPartyAsync(party.Id, ticket.Ticket);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldUpdateParty()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            var updateTcs = new TaskCompletionSource<IPartyUpdate>();\n\n            socket2.ReceivedPartyUpdate += (update) => updateTcs.SetResult(update);\n\n            var label = new Dictionary<string, object> { { \"mode\", \"test\"}, { \"one\", 1 } }.ToJson();\n            await socket1.UpdatePartyAsync(party.Id, false, false, label);\n\n            await updateTcs.Task;\n\n            Assert.Equal(updateTcs.Task.Result.Label, label);\n            Assert.False(updateTcs.Task.Result.Open);\n            Assert.False(updateTcs.Task.Result.Hidden);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact (Timeout = TestsUtil.TIMEOUT_MILLISECONDS, Skip = \"requires server configs --session.single_socket=true && --session.single_party=true\")]\n        public async Task SinglePartyShouldRemoveFromOtherParties()\n        {\n            var session1 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var session2 = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            var party = await socket1.CreatePartyAsync(true, false, 2);\n\n            var socket2PresenceTcs = new TaskCompletionSource<IUserPresence>();\n            var socket2LeaveTcs = new TaskCompletionSource<IUserPresence>();\n\n            socket1.ReceivedPartyPresence += presences => {\n                var session2Join = presences.Joins.FirstOrDefault(presence => presence.UserId == session2.UserId);\n                if (session2Join != null)\n                {\n                    socket2PresenceTcs.SetResult(session2Join);\n                }\n                var session2Leave = presences.Leaves.FirstOrDefault(presence => presence.UserId == session2.UserId);\n                if (session2Leave != null)\n                {\n                    socket2LeaveTcs.SetResult(session2Leave);\n                }\n            };\n\n            await socket2.JoinPartyAsync(party.Id);\n\n            await socket2PresenceTcs.Task;\n\n            await socket2.CreatePartyAsync(true, false, 2);\n\n            await socket2LeaveTcs.Task;\n\n            Assert.True(socket2PresenceTcs.Task.IsCompleted);\n            Assert.True(socket2LeaveTcs.Task.IsCompleted);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketRpcTest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading.Tasks;\nusing Nakama.TinyJson;\nusing Xunit;\n\nnamespace Nakama.Tests.Socket\n{\n    public class WebSocketRpcTest : IAsyncLifetime\n    {\n        private readonly IClient _client;\n        private readonly ISocket _socket;\n\n        public WebSocketRpcTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldSendRpcRoundtrip()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n\n            const string funcId = \"clientrpc.rpc\";\n            var payload = new Dictionary<string, string> {{\"hello\", \"world\"}}.ToJson();\n            var response = await _socket.RpcAsync(funcId, payload);\n\n            Assert.NotNull(response);\n            Assert.Equal(funcId, response.Id);\n            Assert.Equal(payload, response.Payload);\n        }\n\n        public Task InitializeAsync() => Task.CompletedTask;\n\n        public Task DisposeAsync() => _socket.CloseAsync();\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketTest.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Threading.Tasks;\nusing Xunit;\nusing Xunit.Abstractions;\n\nnamespace Nakama.Tests.Socket\n{\n    public class WebSocketTest\n    {\n        private readonly ITestOutputHelper _testOutputHelper;\n        private readonly IClient _client;\n        private readonly ISocket _socket;\n\n        // ReSharper disable RedundantArgumentDefaultValue\n\n        public WebSocketTest(ITestOutputHelper testOutputHelper)\n        {\n            _testOutputHelper = testOutputHelper;\n            _client = TestsUtil.FromSettingsFile();\n            _socket = Nakama.Socket.From(_client, new WebSocketStdlibAdapter());\n            var logger = new StdoutLogger();\n            _socket.ReceivedError += e => logger.ErrorFormat(e.Message);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public void ShouldCreateSocket()\n        {\n            var client = TestsUtil.FromSettingsFile();\n            var socket = Nakama.Socket.From(client);\n            Assert.NotNull(socket);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateSocketAndConnect()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var completer = new TaskCompletionSource<bool>();\n            _socket.Connected += () => completer.SetResult(true);\n\n            await _socket.ConnectAsync(session);\n\n            Assert.True(await completer.Task);\n            await _socket.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateSocketAndDisconnectEventListener()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            var completer = new TaskCompletionSource<bool>();\n            _socket.Closed += (_) => completer.SetResult(true);\n\n            await _socket.ConnectAsync(session);\n            await _socket.CloseAsync();\n\n            Assert.True(await completer.Task);\n            Assert.False(_socket.IsConnecting);\n            Assert.False(_socket.IsConnected);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ShouldCreateSocketAndDisconnectSilent()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n\n            await _socket.ConnectAsync(session);\n            Assert.True(_socket.IsConnected);\n\n            await _socket.CloseAsync();\n            Assert.False(_socket.IsConnected);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task MultipleConnectAttemptsDoesNotThrowException()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session);\n            Assert.True(_socket.IsConnected);\n            await _socket.ConnectAsync(session);\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async Task ClosingBeforeConnecting()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.CloseAsync();\n            await _socket.ConnectAsync(session);\n            Assert.True(_socket.IsConnected);\n        }\n\n        [Fact(Skip = \"Test case requires 60 seconds minimum execution time.\")]\n        public async Task LongLivedSocketLifecycle()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session, false, 5);\n            await Task.Delay(TimeSpan.FromSeconds(60));\n            Assert.True(_socket.IsConnected);\n            _ = _socket.CloseAsync();\n        }\n\n        [Fact(Skip = \"Test requires you to disconnect the internet and wait for 60 seconds minimum\")]\n        public async Task SocketDetectsLossOfInternet()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session, false, 5);\n            var closeTriggered = false;\n\n            _socket.Closed += (_) =>\n            {\n                _testOutputHelper.WriteLine($\"Socket was closed\");\n                closeTriggered = true;\n            };\n\n            _testOutputHelper.WriteLine(\"---Disconnect Internet Now---\");\n            await Task.Delay(TimeSpan.FromSeconds(60));\n            Assert.False(_socket.IsConnected);\n            Assert.True(closeTriggered);\n        }\n\n        [Fact]\n        public async Task SocketCanReconnectAfterClose()\n        {\n            var session = await _client.AuthenticateCustomAsync($\"{Guid.NewGuid()}\");\n            await _socket.ConnectAsync(session, false, 5);\n            await _socket.CloseAsync();\n            await _socket.ConnectAsync(session, false, 5);\n            var match = await _socket.CreateMatchAsync($\"${Guid.NewGuid()}\");\n            Assert.True(match != null);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/Socket/WebSocketUserStatusTest.cs",
    "content": "/**\n * Copyright 2021 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Net.WebSockets;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Nakama.Tests.Socket\n{\n    public class WebSocketUserStatusTest\n    {\n        private static readonly TimeSpan Timeout = TimeSpan.FromSeconds(2);\n\n        private IClient _client;\n\n        public WebSocketUserStatusTest()\n        {\n            _client = TestsUtil.FromSettingsFile();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_NoUsers_AnotherUser()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var completer = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            var socket1 = Nakama.Socket.From(_client);\n            socket1.ReceivedStatusPresence += statuses => completer.SetResult(statuses);\n            await socket1.ConnectAsync(session1);\n            await socket1.FollowUsersAsync(new[] {session2.UserId});\n\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"new status change\");\n\n            var result = await completer.Task;\n            Assert.NotNull(result);\n            Assert.Contains(result.Joins, joined => joined.UserId.Equals(session2.UserId));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_NoUsers_AnotherUserByUsername()\n        {\n            var id = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id);\n            var session2 = await _client.AuthenticateCustomAsync(id + \"a\");\n\n            var completer = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            var socket1 = Nakama.Socket.From(_client);\n            socket1.ReceivedStatusPresence += statuses => completer.SetResult(statuses);\n            socket1.ReceivedError += e => completer.TrySetException(e);\n            await socket1.ConnectAsync(session1);\n            await socket1.FollowUsersAsync(new string[] { }, new[] {session2.Username});\n\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"new status change\");\n\n            var result = await completer.Task;\n            Assert.NotNull(result);\n            Assert.Contains(result.Joins, joined => joined.UserId.Equals(session2.UserId));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_NoUsers_FollowedSelf()\n        {\n            var id = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(id);\n\n            var socket1 = Nakama.Socket.From(_client);\n            await socket1.ConnectAsync(session);\n\n            var statuses = await socket1.FollowUsersAsync(new[] {session.UserId});\n\n            Assert.NotNull(statuses);\n            Assert.Empty(statuses.Presences);\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_NoUsers_UserJoinsAndLeaves()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var completer1 = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            var socket1 = Nakama.Socket.From(_client);\n            socket1.ReceivedStatusPresence += statuses => completer1.TrySetResult(statuses);\n            socket1.ReceivedError += e => completer1.TrySetException(e);\n            await socket1.ConnectAsync(session1);\n            await socket1.FollowUsersAsync(new[] {session2.UserId});\n\n            // Second user comes online and sets status.\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"new status change\");\n\n            var result1 = await completer1.Task;\n            Assert.NotNull(result1);\n            Assert.Empty(result1.Leaves);\n            Assert.Contains(result1.Joins, joined => joined.UserId.Equals(session2.UserId));\n\n            var completer2 = new TaskCompletionSource<IStatusPresenceEvent>();\n            socket1.ReceivedStatusPresence += statuses => completer2.SetResult(statuses);\n\n            // Second user drops offline.\n            await socket2.CloseAsync();\n            var result2 = await completer2.Task;\n            Assert.NotNull(result2);\n            Assert.Empty(result2.Joins);\n            Assert.Contains(result2.Leaves, left => left.UserId.Equals(session2.UserId));\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_AlreadyOnline_HasStatus()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var socket1 = Nakama.Socket.From(_client);\n            await socket1.ConnectAsync(session1);\n            const string status1 = \"test status\";\n            await socket1.UpdateStatusAsync(status1);\n\n            var id2 = Guid.NewGuid().ToString();\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n            var socket2 = Nakama.Socket.From(_client);\n            await socket2.ConnectAsync(session2);\n\n            var statuses = await socket2.FollowUsersAsync(new[] {session1.UserId});\n            Assert.NotNull(statuses);\n            Assert.Contains(statuses.Presences, presence => presence.Status.Equals(\"test status\"));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_TwoSessions_HasTwoStatuses()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            // Both sockets for single user set statuses.\n            const string status1 = \"user 2 socket 1 status.\";\n            await socket1.UpdateStatusAsync(status1);\n            const string status2 = \"user 2 socket 2 status.\";\n            await socket2.UpdateStatusAsync(status2);\n\n            var statuses = await socket1.FollowUsersAsync(new[] {session2.UserId});\n            Assert.NotNull(statuses);\n            Assert.Contains(statuses.Presences,\n                presence => presence.Status.Equals(status1) || presence.Status.Equals(status2));\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void FollowUsers_TwoUsers_ThirdUserFollowsBoth()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var socket1 = Nakama.Socket.From(_client);\n            //socket1.ReceivedError\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n\n            var id2 = Guid.NewGuid().ToString();\n            var socket2 = Nakama.Socket.From(_client);\n            //socket2.ReceivedError\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var id3 = Guid.NewGuid().ToString();\n            var socket3 = Nakama.Socket.From(_client);\n            //socket3.ReceivedError\n            var session3 = await _client.AuthenticateCustomAsync(id3);\n\n            // Two users come online. Each publishes a status.\n            await socket1.ConnectAsync(session1);\n            await socket1.UpdateStatusAsync(\"user 1 status.\");\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"user 2 status.\");\n\n            // Third user comes online and follows both users.\n            await socket3.ConnectAsync(session3);\n            var statuses = await socket3.FollowUsersAsync(new[] {session1.UserId, session2.UserId});\n            Assert.NotNull(statuses);\n            Assert.NotEmpty(statuses.Presences);\n            Assert.Contains(statuses.Presences,\n                presence => presence.UserId.Equals(session1.UserId) || presence.UserId.Equals(session2.UserId));\n\n            // Dispose\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n            await socket3.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void UpdateStatus_NoStatus_HasStatus()\n        {\n            var id = Guid.NewGuid().ToString();\n            var session = await _client.AuthenticateCustomAsync(id);\n\n            var completer = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            var socket1 = Nakama.Socket.From(_client);\n            socket1.ReceivedStatusPresence += statuses => completer.SetResult(statuses);\n            socket1.ReceivedError += e => completer.TrySetException(e);\n            await socket1.ConnectAsync(session);\n\n            await socket1.UpdateStatusAsync(\"super status change!\");\n            var result = await completer.Task;\n            Assert.NotNull(result);\n            Assert.Contains(result.Joins, joined => joined.UserId.Equals(session.UserId));\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact (Skip = \"Long-running test\")]\n        public async void TestFollowMassiveNumberOfUsers()\n        {\n            const int numFollowees = 500;\n\n            var id1 = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var socket1 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n\n            var followeeTasks = new List<Task>();\n            var followeeSessions = new List<ISession>();\n\n            for (int i = 0; i < numFollowees; i++)\n            {\n                ISocket socket = null;\n                var followeeId = Guid.NewGuid().ToString();\n\n                var followeeTask = await _client.AuthenticateCustomAsync(followeeId)\n                .ContinueWith(async session => {\n                    followeeSessions.Add(session.Result);\n                    socket = Nakama.Socket.From(_client);\n                    await socket.ConnectAsync(session.Result);\n                    await socket.UpdateStatusAsync(\"status for \" + i.ToString());\n                });\n\n                followeeTasks.Add(followeeTask);\n            }\n\n\n            Task.WaitAll(followeeTasks.ToArray());\n\n            IStatus statuses = null;\n\n            try\n            {\n                statuses = await socket1.FollowUsersAsync(followeeSessions.Select(session => session.UserId));\n            }\n            catch (ApiResponseException)\n            {\n                throw;\n            }\n\n            Assert.Equal(numFollowees, statuses.Presences.Count());\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void TestUserDoesNotReceiveUpdatedAfterUnfollow()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var waitForStatusPresence = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            var socket1 = Nakama.Socket.From(_client);\n\n            Action<IStatusPresenceEvent> receivedPresenceWhileFollowing = (statuses) => waitForStatusPresence.SetResult(statuses);\n            socket1.ReceivedStatusPresence += receivedPresenceWhileFollowing;\n\n            socket1.ReceivedError += e => {\n                waitForStatusPresence.TrySetException(e);\n            };\n\n            await socket1.ConnectAsync(session1);\n            await socket1.FollowUsersAsync(new[] {session2.UserId});\n\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket2.ConnectAsync(session2);\n\n            await socket2.UpdateStatusAsync(\"new status change\");\n            await waitForStatusPresence.Task;\n            socket1.ReceivedStatusPresence -= receivedPresenceWhileFollowing;\n\n            await socket1.UnfollowUsersAsync(new []{session2.UserId});\n            await socket2.UpdateStatusAsync(\"new status change that should not be received\");\n\n            var ensureNoStatusPresence = new TaskCompletionSource<IStatusPresenceEvent>();\n\n            socket1.ReceivedStatusPresence += status =>\n            {\n                if (status.Joins.Any(join => join.UserId == session2.UserId))\n                {\n                    throw new Exception(\"Received user leave presence after unfollowing.\");\n                }\n            };\n\n            await Task.Delay(Timeout);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void TestUserFollowSameUserTwice()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            await socket1.FollowUsersAsync(new string[]{session2.UserId});\n            await socket1.FollowUsersAsync(new string[]{session2.UserId});\n\n            int numStatusesReceived = 0;\n\n            socket1.ReceivedStatusPresence += status => {\n                numStatusesReceived++;\n            };\n\n            await socket2.UpdateStatusAsync(\"this should only be dispatched once\");\n\n            await Task.Delay(Timeout);\n\n            Assert.Equal(1, numStatusesReceived);\n\n            await socket1.CloseAsync();\n            await socket2.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void TestUnfollowSelf()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var socket1 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n\n            bool receivedOwnPresence = false;\n\n            socket1.ReceivedStatusPresence += status => {\n                receivedOwnPresence = true;\n            };\n\n            await socket1.UnfollowUsersAsync(new string[]{session1.UserId});\n            await socket1.UpdateStatusAsync(\"this should still be received by the user\");\n            await Task.Delay(Timeout);\n\n            Assert.True(receivedOwnPresence);\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\n        public async void TestFollowNonExistentUser()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var socket1 = Nakama.Socket.From(_client);\n\n            await socket1.ConnectAsync(session1);\n            await Assert.ThrowsAsync<WebSocketException>(\n                () => socket1.FollowUsersAsync(new string[]{\"does_not_exist\"}));\n\n            await socket1.CloseAsync();\n        }\n\n        [Fact (Skip = \"investigate this!\")]\n        public async void TestRepeatedOnlineOffline()\n        {\n            var id1 = Guid.NewGuid().ToString();\n            var id2 = Guid.NewGuid().ToString();\n\n            var session1 = await _client.AuthenticateCustomAsync(id1);\n            var session2 = await _client.AuthenticateCustomAsync(id2);\n\n            var socket1 = Nakama.Socket.From(_client);\n            var socket2 = Nakama.Socket.From(_client);\n\n            int numJoinsReceived = 0;\n            int numLeavesReceived = 0;\n\n            socket1.ReceivedStatusPresence += status =>\n            {\n                if (status.Joins.Any(join => join.UserId == session2.UserId))\n                {\n                    numJoinsReceived++;\n                }\n\n                if (status.Leaves.Any(leave => leave.UserId == session2.UserId))\n                {\n                    numLeavesReceived++;\n                }\n            };\n\n            await socket1.ConnectAsync(session1);\n            await socket2.ConnectAsync(session2);\n\n            await socket1.FollowUsersAsync(new string[]{session2.UserId});\n            await socket2.UpdateStatusAsync(\"I am going to spam socket 1 (first time)\");\n            await socket2.CloseAsync();\n\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"I am going to spam socket 1 (second time)\");\n            await socket2.CloseAsync();\n\n            await socket2.ConnectAsync(session2);\n            await socket2.UpdateStatusAsync(\"I am going to spam socket 1 (third time)\");\n            await socket2.CloseAsync();\n\n            await Task.Delay(Timeout);\n\n            Assert.Equal(3, numLeavesReceived);\n            Assert.Equal(3, numJoinsReceived);\n\n            await socket1.CloseAsync();\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/StdoutLogger.cs",
    "content": "// Copyright 2019 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Nakama.Tests\n{\n    public class StdoutLogger : ILogger\n    {\n        public void DebugFormat(string format, params object[] args)\n        {\n            System.Console.WriteLine(string.Concat(\"[DEBUG] \", format), args);\n        }\n\n        public void ErrorFormat(string format, params object[] args)\n        {\n            System.Console.Error.WriteLine(string.Concat(\"[ERROR] \", format), args);\n        }\n\n        public void InfoFormat(string format, params object[] args)\n        {\n            System.Console.WriteLine(string.Concat(\"[INFO] \", format), args);\n        }\n\n        public void WarnFormat(string format, params object[] args)\n        {\n            System.Console.WriteLine(string.Concat(\"[WARN] \", format), args);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/TestsUtil.cs",
    "content": "// Copyright 2021 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing Microsoft.Extensions.Configuration;\n\nnamespace Nakama.Tests\n{\n    internal static class TestsUtil\n    {\n        public const int TIMEOUT_MILLISECONDS = 5000;\n        public const int TIMEOUT_MILLISECONDS_MATCHMAKER = 15000;\n\n        public const string DefaultSettingsPath = \"settings.json\";\n\n        public static IClient FromSettingsFile()\n        {\n            return FromSettingsFile(DefaultSettingsPath);\n        }\n\n        public static IClient FromSettingsFile(string path)\n        {\n            return FromSettingsFile(path, HttpRequestAdapter.WithGzip());\n        }\n\n        public static IClient FromSettingsFile(string path, IHttpAdapter adapter)\n        {\n            var settings = new ConfigurationBuilder().AddJsonFile(path).Build();\n            var port = System.Convert.ToInt32(settings[\"PORT\"]);\n            var client = new Client(settings[\"SCHEME\"], settings[\"HOST\"], port, settings[\"SERVER_KEY\"], adapter);\n            if (System.Convert.ToBoolean(settings[\"STDOUT\"]))\n            {\n                client.Logger = new StdoutLogger();\n            }\n\n            return client;\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/TinyJsonParserTest.cs",
    "content": "/**\r\n * Copyright 2018 The Nakama Authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Runtime.Serialization;\r\nusing Nakama.TinyJson;\r\nusing Xunit;\r\n\r\nnamespace Nakama.Tests\r\n{\r\n    public class TinyJsonParserTest\r\n    {\r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_Parsed()\r\n        {\r\n            const string json = @\"{\"\"some_val\"\": \"\"val1\"\", \"\"nested\"\": [{\"\"another_val\"\": \"\"val2\"\"}]}\";\r\n            ITestObject result = json.FromJson<TestObject>();\r\n\r\n            Assert.Equal(\"val1\", result.SomeVal);\r\n            Assert.Equal(\"val2\", result.Nested.First().AnotherVal);\r\n        }\r\n\r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_NumberToString()\r\n        {\r\n            const string json = @\"{\"\"key\"\":12345}\";\r\n            var obj = json.FromJson<Dictionary<string, string>>();\r\n            \r\n            Assert.Equal(\"12345\", obj[\"key\"]);\r\n        }\r\n        \r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_SingleDigitNumberToString()\r\n        {\r\n            const string json = @\"{\"\"key\"\":1}\";\r\n            var obj = json.FromJson<Dictionary<string, string>>();\r\n            \r\n            Assert.Equal(\"1\", obj[\"key\"]);\r\n        }\r\n\r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_StringToString()\r\n        {\r\n            const string json = @\"{\"\"key\"\":\"\"12345\"\"}\";\r\n            var obj = json.FromJson<Dictionary<string, string>>();\r\n            \r\n            Assert.Equal(\"12345\", obj[\"key\"]);\r\n        }\r\n        \r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void ToJson_LongToUnquotedJson()\r\n        {\r\n            var obj = new Dictionary<string, long>();\r\n            obj[\"key\"] = 1234567891234;\r\n            var json = obj.ToJson();\r\n            \r\n            Assert.Equal(\"{\\\"key\\\":1234567891234}\", json);\r\n        }\r\n\r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_ParsedTwice()\r\n        {\r\n            const string json1 = @\"{\"\"some_val\"\": \"\"val1\"\", \"\"nested\"\": [{\"\"another_val\"\": \"\"val2\"\"}]}\";\r\n            ITestObject result1 = json1.FromJson<TestObject>();\r\n            const string json2 = @\"{\"\"some_val\"\": \"\"val1\"\", \"\"nested\"\": [{\"\"another_val\"\": \"\"val2\"\"}]}\";\r\n            ITestObject result2 = json2.FromJson<TestObject>();\r\n\r\n            Assert.Equal(result1.SomeVal, result2.SomeVal);\r\n        }\r\n        \r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_ParseSingleQuotesAsString()\r\n        {\r\n            const string json = @\"{\"\"key\"\":'foo'}\";\r\n            var obj = json.FromJson<Dictionary<string, string>>();\r\n            \r\n            Assert.Equal(\"foo\", obj[\"key\"]);\r\n        }\r\n        \r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_ParseSingleQuotesAsStringInArray()\r\n        {\r\n            const string json = @\"{\"\"key\"\":['foo', 'bar']}\";\r\n            var obj = json.FromJson<Dictionary<string, string[]>>();\r\n            \r\n            Assert.Equal(new [] { \"foo\", \"bar\" }, obj[\"key\"]);\r\n        }\r\n        \r\n        [Fact(Timeout = TestsUtil.TIMEOUT_MILLISECONDS)]\r\n        public void FromJson_JsonInput_ParseBool()\r\n        {\r\n            const string json = @\"{\"\"key\"\":true}\";\r\n            var obj = json.FromJson<Dictionary<string, bool>>();\r\n            \r\n            Assert.Equal(true, obj[\"key\"]);\r\n        }\r\n    }\r\n\r\n    public interface ITestObject\r\n    {\r\n        string SomeVal { get; }\r\n\r\n        IEnumerable<INestedTestObject> Nested { get; }\r\n    }\r\n\r\n    internal class TestObject : ITestObject\r\n    {\r\n        [DataMember(Name=\"some_val\")]\r\n        public string SomeVal { get; set; }\r\n\r\n        public IEnumerable<INestedTestObject> Nested => _nested ?? new List<NestedTestObject>(0);\r\n        [DataMember(Name=\"nested\")]\r\n        // ReSharper disable once InconsistentNaming\r\n        public List<NestedTestObject> _nested { get; set; }\r\n    }\r\n\r\n    public interface INestedTestObject\r\n    {\r\n        string AnotherVal { get; }\r\n    }\r\n\r\n    internal class NestedTestObject : INestedTestObject\r\n    {\r\n        [DataMember(Name=\"another_val\")]\r\n        public string AnotherVal { get; set; }\r\n    }\r\n}\r\n"
  },
  {
    "path": "Nakama.Tests/TransientExceptionHttpAdapter.cs",
    "content": "/**\n * Copyright 2021 The Nakama Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Nakama.Tests\n{\n    public enum TransientAdapterResponseType\n    {\n        ServerOk,\n        TransientError,\n        NonTransientError\n    }\n\n    /// <summary>\n    /// An adapter which throws transient/retryable exceptions whenever a request is made.\n    /// </summary>\n    public class TransientExceptionHttpAdapter : IHttpAdapter\n    {\n        public ILogger Logger { get; set; }\n\n        public TransientExceptionDelegate TransientExceptionDelegate => IsTransientException;\n\n        private int _sendAttempts = 0;\n        private readonly TransientAdapterResponseType[] _sendSchedule;\n        private readonly IHttpAdapter _httpRequestAdapter = HttpRequestAdapter.WithGzip();\n\n        public TransientExceptionHttpAdapter(TransientAdapterResponseType[] sendSchedule)\n        {\n            _sendSchedule = sendSchedule;\n        }\n\n        Task<string> IHttpAdapter.SendAsync(string method, Uri uri, IDictionary<string, string> headers, byte[] body, int timeoutSec, CancellationToken? userCancelToken)\n        {\n            if (_sendAttempts > _sendSchedule.Length - 1)\n            {\n                throw new IndexOutOfRangeException(\"The number of send attempts has exceeded the length of the send schedule.\");\n            }\n\n            TransientAdapterResponseType responseType = _sendSchedule[_sendAttempts];\n            _sendAttempts++;\n\n            switch (responseType)\n            {\n                case TransientAdapterResponseType.TransientError:\n                    throw new ApiResponseException(500, \"This exception represents a transient error.\", -1);\n                case TransientAdapterResponseType.NonTransientError:\n                    throw new ApiResponseException(401, \"This exception represents a non-transient error.\", -1);\n                default:\n                    return _httpRequestAdapter.SendAsync(method, uri, headers, body, timeoutSec);\n            }\n        }\n\n        private bool IsTransientException(Exception e)\n        {\n            return (e is ApiResponseException apiException && apiException.StatusCode >= 500);\n        }\n    }\n}\n"
  },
  {
    "path": "Nakama.Tests/settings.json",
    "content": "{\n  \"HOST\": \"127.0.0.1\",\n  \"PORT\": 7350,\n  \"SCHEME\": \"http\",\n  \"SERVER_KEY\": \"defaultkey\",\n  \"STDOUT\": false\n}\n"
  },
  {
    "path": "Nakama.sln",
    "content": "﻿\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\nVisualStudioVersion = 16.0.30114.105\r\nMinimumVisualStudioVersion = 10.0.40219.1\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Nakama\", \"Nakama\\Nakama.csproj\", \"{A6440B73-D30E-4EAD-BC96-A834CE1DCC57}\"\r\nEndProject\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Nakama.Tests\", \"Nakama.Tests\\Nakama.Tests.csproj\", \"{65EA41AD-C2EF-4F94-A466-927FAD7E8C1C}\"\r\nEndProject\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Satori.Tests\", \"Satori.Tests\\Satori.Tests.csproj\", \"{8801930E-55DC-43D8-841D-186E5F08B8C1}\"\r\nEndProject\r\nProject(\"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}\") = \"Satori\", \"Satori\\Satori.csproj\", \"{BD306F3C-4E6F-40C5-89BE-7071597BE626}\"\r\nEndProject\r\nGlobal\r\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\r\n\t\tDebug|Any CPU = Debug|Any CPU\r\n\t\tRelease|Any CPU = Release|Any CPU\r\n\tEndGlobalSection\r\n\tGlobalSection(SolutionProperties) = preSolution\r\n\t\tHideSolutionNode = FALSE\r\n\tEndGlobalSection\r\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\r\n\t\t{A6440B73-D30E-4EAD-BC96-A834CE1DCC57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{A6440B73-D30E-4EAD-BC96-A834CE1DCC57}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{A6440B73-D30E-4EAD-BC96-A834CE1DCC57}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{A6440B73-D30E-4EAD-BC96-A834CE1DCC57}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{65EA41AD-C2EF-4F94-A466-927FAD7E8C1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{65EA41AD-C2EF-4F94-A466-927FAD7E8C1C}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{65EA41AD-C2EF-4F94-A466-927FAD7E8C1C}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{65EA41AD-C2EF-4F94-A466-927FAD7E8C1C}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{8801930E-55DC-43D8-841D-186E5F08B8C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{8801930E-55DC-43D8-841D-186E5F08B8C1}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{8801930E-55DC-43D8-841D-186E5F08B8C1}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{8801930E-55DC-43D8-841D-186E5F08B8C1}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\t\t{BD306F3C-4E6F-40C5-89BE-7071597BE626}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r\n\t\t{BD306F3C-4E6F-40C5-89BE-7071597BE626}.Debug|Any CPU.Build.0 = Debug|Any CPU\r\n\t\t{BD306F3C-4E6F-40C5-89BE-7071597BE626}.Release|Any CPU.ActiveCfg = Release|Any CPU\r\n\t\t{BD306F3C-4E6F-40C5-89BE-7071597BE626}.Release|Any CPU.Build.0 = Release|Any CPU\r\n\tEndGlobalSection\r\nEndGlobal\r\n"
  },
  {
    "path": "README.md",
    "content": "Nakama .NET\n===========\n\n# Nakama\n\n> .NET client for Nakama and Satori servers written in C#.\n\n[Nakama](https://github.com/heroiclabs/nakama) is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much [more](https://heroiclabs.com).\n\n[Satori](https://heroiclabs.com/satori/) is a LiveOps server that combines Event Capture, Segmentation, A/B Tests, Feature Flags, Events Calendar, and more together to provide Live Services gameplay.\n\nThese clients implement the full API and socket options for their servers. All written in C# with minimal dependencies to support Unity, Xamarin, Godot, XNA, and other engines and frameworks.\n\nFull documentation is online - https://heroiclabs.com/docs\n\n## Getting Started\n\nYou'll need to setup the server and database before you can connect with the client. The simplest way is to use Docker but have a look at the [server documentation](https://github.com/heroiclabs/nakama#getting-started) for other options.\n\n1. Install and run the servers. Follow these [instructions](https://heroiclabs.com/docs/install-docker-quickstart).\n\n2. Download the client from the [releases page](https://github.com/heroiclabs/nakama-dotnet/releases) and import it into your project. You can also [build from source](#source-builds).\n\n3. Use the connection credentials to build a client object.\n\n    ```csharp\n    // using Nakama;\n    const string scheme = \"http\";\n    const string host = \"127.0.0.1\";\n    const int port = 7350;\n    const string serverKey = \"defaultkey\";\n    var client = new Client(scheme, host, port, serverKey);\n    ```\n\n## Usage\n\nThe client object has many methods to execute various features in the server or open realtime socket connections with the server.\n\n### Authenticate\n\nThere's a variety of ways to [authenticate](https://heroiclabs.com/docs/authentication) with the server. Authentication can create a user if they don't already exist with those credentials. It's also easy to authenticate with a social profile from Google Play Games, Facebook, Game Center, etc.\n\n```csharp\nvar email = \"super@heroes.com\";\nvar password = \"batsignal\";\nvar session = await client.AuthenticateEmailAsync(email, password);\nSystem.Console.WriteLine(session);\n```\n\n### Sessions\n\nWhen authenticated the server responds with an auth token (JWT) which contains useful properties and gets deserialized into a `Session` object.\n\n```csharp\nSystem.Console.WriteLine(session.AuthToken); // raw JWT token\nSystem.Console.WriteLine(session.RefreshToken); // raw JWT token.\nSystem.Console.WriteLine(session.UserId);\nSystem.Console.WriteLine(session.Username);\nSystem.Console.WriteLine(\"Session has expired: {0}\", session.IsExpired);\nSystem.Console.WriteLine(\"Session expires at: {0}\", session.ExpireTime);\n```\n\nIt is recommended to store the auth token from the session and check at startup if it has expired. If the token has expired you must reauthenticate. The expiry time of the token can be changed as a setting in the server.\n\n```csharp\nvar authToken = \"restored from somewhere\";\nvar refreshToken = \"restored from somewhere\";\nvar session = Session.Restore(authToken, refreshToken);\n\n// Check whether a session is close to expiry.\nif (session.HasExpired(DateTime.UtcNow.AddDays(1)))\n{\n    try\n    {\n        session = await client.SessionRefreshAsync(session);\n    }\n    catch (ApiResponseException e)\n    {\n        System.Console.WriteLine(\"Session can no longer be refreshed. Must reauthenticate!\");\n    }\n}\n```\n\n:warning: NOTE: The length of the lifetime of a session can be set on the server with the \"--session.token_expiry_sec\" command flag argument. The lifetime of the refresh token for a session can be set on the server with the \"--session.refresh_token_expiry_sec\" command flag.\n\n### Requests\n\nThe client includes lots of builtin APIs for various features of the game server. These can be accessed with the async methods. It can also call custom logic in RPC functions on the server. These can also be executed with a socket object.\n\nAll requests are sent with a session object which authorizes the client.\n\n```csharp\nvar account = await client.GetAccountAsync(session);\nSystem.Console.WriteLine(account.User.Id);\nSystem.Console.WriteLine(account.User.Username);\nSystem.Console.WriteLine(account.Wallet);\n```\n\nRequests can be supplied with a retry configurations in cases of transient network or server errors.\n\nA single configuration can be used to control all request retry behavior:\n\n```csharp\nvar retryConfiguration = new RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate { System.Console.Writeline(\"about to retry.\"); });\n\nclient.GlobalRetryConfiguration = retryConfiguration;\nvar account = await client.GetAccountAsync(session);\n```\n\nOr, the configuration can be supplied on a per-request basis:\n\n```csharp\n\nvar retryConfiguration = new RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate { System.Console.Writeline(\"about to retry.\"); });\n\nvar account = await client.GetAccountAsync(session, retryConfiguration);\n\n```\n\nPer-request retry configurations override the global retry\nconfiguration.\n\nRequests also can be supplied with a cancellation token if you need to cancel them mid-flight:\n\n```csharp\nvar canceller = new CancellationTokenSource();\nvar account = await client.GetAccountAsync(session, retryConfiguration: null, canceller);\n\nawait Task.Delay(25);\n\ncanceller.Cancel(); // will raise a TaskCanceledException\n```\n\n### Socket\n\nThe client can create one or more sockets with the server. Each socket can have it's own event listeners registered for responses received from the server.\n\n```csharp\nvar socket = Socket.From(client);\nsocket.Connected += () =>\n{\n    System.Console.WriteLine(\"Socket connected.\");\n};\nsocket.Closed += () =>\n{\n    System.Console.WriteLine(\"Socket closed.\");\n};\nsocket.ReceivedError += e => System.Console.WriteLine(e);\nawait socket.ConnectAsync(session);\n```\n\n# Satori\n\nSatori is a liveops server for games that powers actionable analytics, A/B testing and remote configuration. Use the Satori .NET Client to coomunicate with Satori from within your .NET game.\n\nFull documentation is online - https://heroiclabs.com/docs/satori/client-libraries/unity/index.html\n\n## Getting Started\n\nCreate a client object that accepts the API you were given as a Satori customer.\n\n```csharp\nusing Satori;\n\nconst string scheme = \"https\";\nconst string host = \"127.0.0.1\"; // add your host here\nconst int port = 443;\nconst string apiKey = \"apiKey\"; // add the api key that was given to you as a Satori customer.\n\nvar client = new Client(scheme, host, port, apiKey);\n```\n\nThen authenticate with the server to obtain your session.\n\n\n```csharp\n// Authenticate with the Satori server.\ntry\n{\n    session = await client.AuthenticateAsync(id);\n    Debug.Log(\"Authenticated successfully.\");\n}\ncatch(ApiResponseException ex)\n{\n    Debug.LogFormat(\"Error authenticating: {0}\", ex.Message);\n}\n```\n\nUsing the client you can get any experiments or feature flags, the user belongs to.\n\n```csharp\nvar experiments = await client.GetExperimentsAsync(session);\nvar flag = await client.GetFlagAsync(session, \"FlagName\");\n```\n\nYou can also send arbitrary events to the server:\n\n```csharp\n\nawait client.EventAsync(session, new Event(\"gameLaunched\", DateTime.UtcNow));\n\n```\nThis is only a subset of the Satori client API, so please see the documentation link listed earlier for the [full API](https://dotnet.docs.heroiclabs.com/html/namespace_satori.html).\n\n\n# Contribute\n\nThe development roadmap is managed as GitHub issues and pull requests are welcome. If you're interested to improve the code please open an issue to discuss the changes or drop in and discuss it in the [community forum](https://forum.heroiclabs.com).\n\n## Source Builds\n\nThe codebase can be built with the [Dotnet CLI](https://docs.microsoft.com/en-us/dotnet/core/tools). All dependencies are downloaded at build time with Nuget.\n\n```shell\ndotnet build Nakama/Nakama.csproj\n```\n\n```shell\ndotnet build Satori/Satori.csproj\n```\n\nFor release builds see [our instructions](./RELEASEINST.md):\n\n## Run Tests\n\nTo run tests you will need to run the server and database. Most tests are written as integration tests which execute against the server. A quick approach we use with our test workflow is to use the Docker compose file described in the [documentation](https://heroiclabs.com/docs/install-docker-quickstart).\n\n```shell\ndocker-compose -f ./docker-compose-postgres.yml up\ndotnet test Nakama.Tests/Nakama.Tests.csproj\n```\n\nTo run a specific test, pass the fully qualified name of the method to `dotnet test --filter`:\n\n```shell\ndotnet test --filter \"Nakama.Tests.Api.GroupTest.ShouldPromoteAndDemoteUsers\"\n```\n\nIf you'd like to attach a Visual Studio debugger to a test, set `VSTEST_HOST_DEBUG` to `true` in your shell environment and run `dotnet test`. Attach the debugger to the process identified by the console.\n\nIn order to pass tests for Satori, the Satori console must be populated with sample data available via a button in its GUI.\nThen you can test the SDK with `dotnet test Satori.Tests/Satori.Tests.csproj`.\n\n## Generate Codedocs\n\nThe code documentation is generated with Doxygen and deployed to GitHub pages. You will need to install and add Doxygen tool to your system path (on macOS you can use `brew install doxygen`).\n\n```\ntask -v codedocs\n```\n\n# Licenses\n\nThis project is licensed under the [Apache-2 License](https://github.com/heroiclabs/nakama-dotnet/blob/master/LICENSE).\n\n# Special Thanks\n\nThanks to Alex Parker (@zanders3) for the excellent [json](https://github.com/zanders3/json) library and David Haig (@ninjasource) for [Ninja.WebSockets](https://github.com/ninjasource/Ninja.WebSockets).\n"
  },
  {
    "path": "RELEASEINST.md",
    "content": "Release Instructions\n===\n\nThis document outlines the release of the Nakama and Satori .NET clients to Github and [Nuget](https://www.nuget.org/packages/NakamaClient/).\n\nOur current monorepo strategy is to maintain the Nakama and Satori clients in the same repo per language. Clients are published together under Github under the same tag and version, even if only one has changed. Clients are released independently to Nuget.\n\n1. Update and tidy up the CHANGELOG.\n\n2. Run the test suite for the codebase. See the README for instructions.\n\n3. Create a tag for the new release. This tag applies to both Nakama and Satori .NET:\n\n   ```shell\n   git add CHANGELOG\n   git commit -m \"Nakama .NET <version> release.\"\n   git tag -a <version> -m \"<version>\"\n   git push origin <version> master\n   ```\n\n4. Build Nakama\n\n   ```shell\n   dotnet build -c Release ./Nakama/Nakama.csproj\n   ```\n\n5. Build Satori\n\n   ```shell\n   dotnet build -c Release ./Satori/Satori.csproj\n   ```\n\n6. Create a release on GitHub: https://github.com/heroiclabs/nakama-dotnet/releases/new\n\n7. Copy the CHANGELOG section to the release notes. Upload the release DLLs to be part of the GitHub release. Publish it.\n\n8. Package and push the releases to Nuget. Don't put a `v` prefix before the version number.\n\n   ```shell\n   dotnet pack -p:AssemblyVersion=<package-version> -p:PackageVersion=<package-version> -c Release ./Nakama/Nakama.csproj\n   ```\n\n   ```shell\n   dotnet nuget push ./Nakama/bin/Release/NakamaClient.<package-version>.nupkg -k \"somekey\" -s https://api.nuget.org/v3/index.json\n   ```\n\n   ```shell\n   dotnet pack -p:AssemblyVersion=<package-version> -p:PackageVersion=<package-version> -c Release ./Satori/Satori.csproj\n   ```\n\n   ```shell\n   dotnet nuget push ./Satori/bin/Release/SatoriClient.<package-version>.nupkg -k \"somekey\" -s https://api.nuget.org/v3/index.json\n   ```\n\n9. Update CHANGELOG with section for new unreleased changes.\n\n   ```shell\n   git add CHANGELOG.md\n   git commit -m \"Set new development version.\"\n   git push origin master\n   ```\n"
  },
  {
    "path": "Satori/ApiClient.gen.cs",
    "content": "/* Code generated by codegen/main.go. DO NOT EDIT. */\nnamespace Satori\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Runtime.Serialization;\n    using System.Text;\n    using System.Threading;\n    using System.Threading.Tasks;\n    using TinyJson;\n\n    /// <summary>\n    /// An exception generated for <c>HttpResponse</c> objects don't return a success status.\n    /// </summary>\n    public sealed class ApiResponseException : Exception\n    {\n        public long StatusCode { get; }\n\n        public int GrpcStatusCode { get; }\n\n        public ApiResponseException(long statusCode, string content, int grpcCode) : base(content)\n        {\n            StatusCode = statusCode;\n            GrpcStatusCode = grpcCode;\n        }\n\n        public ApiResponseException(string message, Exception e) : base(message, e)\n        {\n            StatusCode = -1L;\n            GrpcStatusCode = -1;\n        }\n\n        public ApiResponseException(string content) : this(-1L, content, -1)\n        {\n        }\n\n        public override string ToString()\n        {\n            return $\"ApiResponseException(StatusCode={StatusCode}, Message='{Message}', GrpcStatusCode={GrpcStatusCode})\";\n        }\n    }\n\n    /// <summary>\n    /// The request to update the status of a message.\n    /// </summary>\n    public interface IApiUpdateMessageRequest\n    {\n\n        /// <summary>\n        /// The time the message was consumed by the identity.\n        /// </summary>\n        string ConsumeTime { get; }\n\n        /// <summary>\n        /// The time the message was read at the client.\n        /// </summary>\n        string ReadTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUpdateMessageRequest : IApiUpdateMessageRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"consume_time\"), Preserve]\n        public string ConsumeTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"read_time\"), Preserve]\n        public string ReadTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ConsumeTime: \", ConsumeTime, \", \");\n            output = string.Concat(output, \"ReadTime: \", ReadTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IFlagValueChangeReason\n    {\n\n        /// <summary>\n        /// The name of the configuration that overrides the flag value.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// The type of the configuration that declared the override.\n        /// </summary>\n        FlagValueChangeReasonType Type { get; }\n\n        /// <summary>\n        /// The variant name of the configuration that overrides the flag value.\n        /// </summary>\n        string VariantName { get; }\n    }\n\n    /// <inheritdoc />\n    internal class FlagValueChangeReason : IFlagValueChangeReason\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public FlagValueChangeReasonType Type => _type;\n        [DataMember(Name=\"type\"), Preserve]\n        public FlagValueChangeReasonType _type { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"variant_name\"), Preserve]\n        public string VariantName { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Type: \", Type, \", \");\n            output = string.Concat(output, \"VariantName: \", VariantName, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum FlagValueChangeReasonType\n    {\n        /// <summary>\n        /// \n        /// </summary>\n        UNKNOWN = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        FLAG_VARIANT = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        LIVE_EVENT = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        EXPERIMENT = 3,\n    }\n\n    /// <summary>\n    /// Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.\n    /// </summary>\n    public interface IApiAuthenticateLogoutRequest\n    {\n\n        /// <summary>\n        /// Refresh token to invalidate.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// Session token to log out.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAuthenticateLogoutRequest : IApiAuthenticateLogoutRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refresh_token\"), Preserve]\n        public string RefreshToken { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"RefreshToken: \", RefreshToken, \", \");\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Authenticate against the server with a refresh token.\n    /// </summary>\n    public interface IApiAuthenticateRefreshRequest\n    {\n\n        /// <summary>\n        /// Refresh token.\n        /// </summary>\n        string RefreshToken { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAuthenticateRefreshRequest : IApiAuthenticateRefreshRequest\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refresh_token\"), Preserve]\n        public string RefreshToken { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"RefreshToken: \", RefreshToken, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Authentication request\n    /// </summary>\n    public interface IApiAuthenticateRequest\n    {\n\n        /// <summary>\n        /// Optional custom properties to update with this call. If not set, properties are left as they are on the server.\n        /// </summary>\n        IDictionary<string, string> Custom { get; }\n\n        /// <summary>\n        /// Optional default properties to update with this call. If not set, properties are left as they are on the server.\n        /// </summary>\n        IDictionary<string, string> Default { get; }\n\n        /// <summary>\n        /// Identity ID. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// Optional no_session modifies the request to only create/update an identity without creating a new session. If set to 'true' the response won't include a token and a refresh token.\n        /// </summary>\n        bool NoSession { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiAuthenticateRequest : IApiAuthenticateRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Custom => _custom ?? new Dictionary<string, string>();\n        [DataMember(Name=\"custom\"), Preserve]\n        public Dictionary<string, string> _custom { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Default => _default ?? new Dictionary<string, string>();\n        [DataMember(Name=\"default\"), Preserve]\n        public Dictionary<string, string> _default { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"no_session\"), Preserve]\n        public bool NoSession { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n\n            var customString = \"\";\n            foreach (var kvp in Custom)\n            {\n                customString = string.Concat(customString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Custom: [\" + customString + \"]\");\n\n            var defaultString = \"\";\n            foreach (var kvp in Default)\n            {\n                defaultString = string.Concat(defaultString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Default: [\" + defaultString + \"]\");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"NoSession: \", NoSession, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single event. Usually, but not necessarily, part of a batch.\n    /// </summary>\n    public interface IApiEvent\n    {\n\n        /// <summary>\n        /// Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The identity id associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        string IdentityId { get; }\n\n        /// <summary>\n        /// Event metadata, if any.\n        /// </summary>\n        IDictionary<string, string> Metadata { get; }\n\n        /// <summary>\n        /// Event name.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// The session expires at associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        string SessionExpiresAt { get; }\n\n        /// <summary>\n        /// The session id associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        string SessionId { get; }\n\n        /// <summary>\n        /// The session issued at associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        string SessionIssuedAt { get; }\n\n        /// <summary>\n        /// The time when the event was triggered on the producer side.\n        /// </summary>\n        string Timestamp { get; }\n\n        /// <summary>\n        /// Optional value.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiEvent : IApiEvent\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"identity_id\"), Preserve]\n        public string IdentityId { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Metadata => _metadata ?? new Dictionary<string, string>();\n        [DataMember(Name=\"metadata\"), Preserve]\n        public Dictionary<string, string> _metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"session_expires_at\"), Preserve]\n        public string SessionExpiresAt { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"session_id\"), Preserve]\n        public string SessionId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"session_issued_at\"), Preserve]\n        public string SessionIssuedAt { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"timestamp\"), Preserve]\n        public string Timestamp { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"IdentityId: \", IdentityId, \", \");\n\n            var metadataString = \"\";\n            foreach (var kvp in Metadata)\n            {\n                metadataString = string.Concat(metadataString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Metadata: [\" + metadataString + \"]\");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"SessionExpiresAt: \", SessionExpiresAt, \", \");\n            output = string.Concat(output, \"SessionId: \", SessionId, \", \");\n            output = string.Concat(output, \"SessionIssuedAt: \", SessionIssuedAt, \", \");\n            output = string.Concat(output, \"Timestamp: \", Timestamp, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Publish an event to the server\n    /// </summary>\n    public interface IApiEventRequest\n    {\n\n        /// <summary>\n        /// Some number of events produced by a client.\n        /// </summary>\n        IEnumerable<IApiEvent> Events { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiEventRequest : IApiEventRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiEvent> Events => _events ?? new List<ApiEvent>(0);\n        [DataMember(Name=\"events\"), Preserve]\n        public List<ApiEvent> _events { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Events: [\", string.Join(\", \", Events), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// An experiment that this user is partaking.\n    /// </summary>\n    public interface IApiExperiment\n    {\n\n        /// <summary>\n        /// The labels associated with this experiment.\n        /// </summary>\n        List<string> Labels { get; }\n\n        /// <summary>\n        /// Experiment name\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Experiment Phase name\n        /// </summary>\n        string PhaseName { get; }\n\n        /// <summary>\n        /// Experiment Phase Variant name\n        /// </summary>\n        string PhaseVariantName { get; }\n\n        /// <summary>\n        /// Value associated with this Experiment.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiExperiment : IApiExperiment\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"labels\"), Preserve]\n        public List<string> Labels { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"phase_name\"), Preserve]\n        public string PhaseName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"phase_variant_name\"), Preserve]\n        public string PhaseVariantName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Labels: [\", string.Join(\", \", Labels), \"], \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"PhaseName: \", PhaseName, \", \");\n            output = string.Concat(output, \"PhaseVariantName: \", PhaseVariantName, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// All experiments that this identity is involved with.\n    /// </summary>\n    public interface IApiExperimentList\n    {\n\n        /// <summary>\n        /// All experiments for this identity.\n        /// </summary>\n        IEnumerable<IApiExperiment> Experiments { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiExperimentList : IApiExperimentList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiExperiment> Experiments => _experiments ?? new List<ApiExperiment>(0);\n        [DataMember(Name=\"experiments\"), Preserve]\n        public List<ApiExperiment> _experiments { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Experiments: [\", string.Join(\", \", Experiments), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Feature flag available to the identity.\n    /// </summary>\n    public interface IApiFlag\n    {\n\n        /// <summary>\n        /// The origin of change on the flag value returned.\n        /// </summary>\n        IFlagValueChangeReason ChangeReason { get; }\n\n        /// <summary>\n        /// Whether the value for this flag has conditionally changed from the default state.\n        /// </summary>\n        bool ConditionChanged { get; }\n\n        /// <summary>\n        /// The labels associated with this flag.\n        /// </summary>\n        List<string> Labels { get; }\n\n        /// <summary>\n        /// Flag name\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Value associated with this flag.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFlag : IApiFlag\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IFlagValueChangeReason ChangeReason => _changeReason;\n        [DataMember(Name=\"change_reason\"), Preserve]\n        public FlagValueChangeReason _changeReason { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"condition_changed\"), Preserve]\n        public bool ConditionChanged { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"labels\"), Preserve]\n        public List<string> Labels { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ChangeReason: \", ChangeReason, \", \");\n            output = string.Concat(output, \"ConditionChanged: \", ConditionChanged, \", \");\n            output = string.Concat(output, \"Labels: [\", string.Join(\", \", Labels), \"], \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// All flags available to the identity\n    /// </summary>\n    public interface IApiFlagList\n    {\n\n        /// <summary>\n        /// All flags\n        /// </summary>\n        IEnumerable<IApiFlag> Flags { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFlagList : IApiFlagList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFlag> Flags => _flags ?? new List<ApiFlag>(0);\n        [DataMember(Name=\"flags\"), Preserve]\n        public List<ApiFlag> _flags { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Flags: [\", string.Join(\", \", Flags), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Feature flag available to the identity.\n    /// </summary>\n    public interface IApiFlagOverride\n    {\n\n        /// <summary>\n        /// Flag name\n        /// </summary>\n        string FlagName { get; }\n\n        /// <summary>\n        /// The labels associated with this flag.\n        /// </summary>\n        List<string> Labels { get; }\n\n        /// <summary>\n        /// The list of configuration that affect the value of the flag.\n        /// </summary>\n        IEnumerable<IApiFlagOverrideValue> Overrides { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFlagOverride : IApiFlagOverride\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"flag_name\"), Preserve]\n        public string FlagName { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"labels\"), Preserve]\n        public List<string> Labels { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFlagOverrideValue> Overrides => _overrides ?? new List<ApiFlagOverrideValue>(0);\n        [DataMember(Name=\"overrides\"), Preserve]\n        public List<ApiFlagOverrideValue> _overrides { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"FlagName: \", FlagName, \", \");\n            output = string.Concat(output, \"Labels: [\", string.Join(\", \", Labels), \"], \");\n            output = string.Concat(output, \"Overrides: [\", string.Join(\", \", Overrides), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// All flags available to the identity and their value overrides\n    /// </summary>\n    public interface IApiFlagOverrideList\n    {\n\n        /// <summary>\n        /// All flags\n        /// </summary>\n        IEnumerable<IApiFlagOverride> Flags { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFlagOverrideList : IApiFlagOverrideList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiFlagOverride> Flags => _flags ?? new List<ApiFlagOverride>(0);\n        [DataMember(Name=\"flags\"), Preserve]\n        public List<ApiFlagOverride> _flags { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Flags: [\", string.Join(\", \", Flags), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum ApiFlagOverrideType\n    {\n        /// <summary>\n        /// \n        /// </summary>\n        FLAG = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        FLAG_VARIANT = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        LIVE_EVENT_FLAG = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        LIVE_EVENT_FLAG_VARIANT = 3,\n        /// <summary>\n        /// \n        /// </summary>\n        EXPERIMENT_PHASE_VARIANT_FLAG = 4,\n    }\n\n    /// <summary>\n    /// The details of a flag value override.\n    /// </summary>\n    public interface IApiFlagOverrideValue\n    {\n\n        /// <summary>\n        /// The create time of the configuration that overrides the flag.\n        /// </summary>\n        string CreateTimeSec { get; }\n\n        /// <summary>\n        /// The name of the configuration that overrides the flag value.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// The type of the configuration that declared the override.\n        /// </summary>\n        ApiFlagOverrideType Type { get; }\n\n        /// <summary>\n        /// The value of the configuration that overrides the flag.\n        /// </summary>\n        string Value { get; }\n\n        /// <summary>\n        /// The variant name of the configuration that overrides the flag value.\n        /// </summary>\n        string VariantName { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiFlagOverrideValue : IApiFlagOverrideValue\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time_sec\"), Preserve]\n        public string CreateTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiFlagOverrideType Type => _type;\n        [DataMember(Name=\"type\"), Preserve]\n        public ApiFlagOverrideType _type { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"variant_name\"), Preserve]\n        public string VariantName { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CreateTimeSec: \", CreateTimeSec, \", \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"Type: \", Type, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            output = string.Concat(output, \"VariantName: \", VariantName, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A response containing all the messages for an identity.\n    /// </summary>\n    public interface IApiGetMessageListResponse\n    {\n\n        /// <summary>\n        /// Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.\n        /// </summary>\n        string CacheableCursor { get; }\n\n        /// <summary>\n        /// The list of messages.\n        /// </summary>\n        IEnumerable<IApiMessage> Messages { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the next page, if any.\n        /// </summary>\n        string NextCursor { get; }\n\n        /// <summary>\n        /// The cursor to send when retrieving the previous page, if any.\n        /// </summary>\n        string PrevCursor { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiGetMessageListResponse : IApiGetMessageListResponse\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"cacheable_cursor\"), Preserve]\n        public string CacheableCursor { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiMessage> Messages => _messages ?? new List<ApiMessage>(0);\n        [DataMember(Name=\"messages\"), Preserve]\n        public List<ApiMessage> _messages { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"next_cursor\"), Preserve]\n        public string NextCursor { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"prev_cursor\"), Preserve]\n        public string PrevCursor { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"CacheableCursor: \", CacheableCursor, \", \");\n            output = string.Concat(output, \"Messages: [\", string.Join(\", \", Messages), \"], \");\n            output = string.Concat(output, \"NextCursor: \", NextCursor, \", \");\n            output = string.Concat(output, \"PrevCursor: \", PrevCursor, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Enrich/replace the current session with a new ID.\n    /// </summary>\n    public interface IApiIdentifyRequest\n    {\n\n        /// <summary>\n        /// Optional custom properties to update with this call. If not set, properties are left as they are on the server.\n        /// </summary>\n        IDictionary<string, string> Custom { get; }\n\n        /// <summary>\n        /// Optional default properties to update with this call. If not set, properties are left as they are on the server.\n        /// </summary>\n        IDictionary<string, string> Default { get; }\n\n        /// <summary>\n        /// Identity ID to enrich the current session and return a new session. Old session will no longer be usable.\n        /// </summary>\n        string Id { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiIdentifyRequest : IApiIdentifyRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Custom => _custom ?? new Dictionary<string, string>();\n        [DataMember(Name=\"custom\"), Preserve]\n        public Dictionary<string, string> _custom { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Default => _default ?? new Dictionary<string, string>();\n        [DataMember(Name=\"default\"), Preserve]\n        public Dictionary<string, string> _default { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n\n            var customString = \"\";\n            foreach (var kvp in Custom)\n            {\n                customString = string.Concat(customString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Custom: [\" + customString + \"]\");\n\n            var defaultString = \"\";\n            foreach (var kvp in Default)\n            {\n                defaultString = string.Concat(defaultString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Default: [\" + defaultString + \"]\");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A single live event.\n    /// </summary>\n    public interface IApiLiveEvent\n    {\n\n        /// <summary>\n        /// End time of current event run.\n        /// </summary>\n        string ActiveEndTimeSec { get; }\n\n        /// <summary>\n        /// Start time of current event run.\n        /// </summary>\n        string ActiveStartTimeSec { get; }\n\n        /// <summary>\n        /// Description.\n        /// </summary>\n        string Description { get; }\n\n        /// <summary>\n        /// Duration in seconds.\n        /// </summary>\n        string DurationSec { get; }\n\n        /// <summary>\n        /// End time, 0 if it repeats forever.\n        /// </summary>\n        string EndTimeSec { get; }\n\n        /// <summary>\n        /// The live event identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The labels associated with this live event.\n        /// </summary>\n        List<string> Labels { get; }\n\n        /// <summary>\n        /// Name.\n        /// </summary>\n        string Name { get; }\n\n        /// <summary>\n        /// Reset CRON schedule, if configured.\n        /// </summary>\n        string ResetCron { get; }\n\n        /// <summary>\n        /// Start time.\n        /// </summary>\n        string StartTimeSec { get; }\n\n        /// <summary>\n        /// The status of this live event run.\n        /// </summary>\n        ApiLiveEventStatus Status { get; }\n\n        /// <summary>\n        /// Event value.\n        /// </summary>\n        string Value { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLiveEvent : IApiLiveEvent\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"active_end_time_sec\"), Preserve]\n        public string ActiveEndTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"active_start_time_sec\"), Preserve]\n        public string ActiveStartTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"description\"), Preserve]\n        public string Description { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"duration_sec\"), Preserve]\n        public string DurationSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"end_time_sec\"), Preserve]\n        public string EndTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"labels\"), Preserve]\n        public List<string> Labels { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"name\"), Preserve]\n        public string Name { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"reset_cron\"), Preserve]\n        public string ResetCron { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"start_time_sec\"), Preserve]\n        public string StartTimeSec { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public ApiLiveEventStatus Status => _status;\n        [DataMember(Name=\"status\"), Preserve]\n        public ApiLiveEventStatus _status { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"value\"), Preserve]\n        public string Value { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ActiveEndTimeSec: \", ActiveEndTimeSec, \", \");\n            output = string.Concat(output, \"ActiveStartTimeSec: \", ActiveStartTimeSec, \", \");\n            output = string.Concat(output, \"Description: \", Description, \", \");\n            output = string.Concat(output, \"DurationSec: \", DurationSec, \", \");\n            output = string.Concat(output, \"EndTimeSec: \", EndTimeSec, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"Labels: [\", string.Join(\", \", Labels), \"], \");\n            output = string.Concat(output, \"Name: \", Name, \", \");\n            output = string.Concat(output, \"ResetCron: \", ResetCron, \", \");\n            output = string.Concat(output, \"StartTimeSec: \", StartTimeSec, \", \");\n            output = string.Concat(output, \"Status: \", Status, \", \");\n            output = string.Concat(output, \"Value: \", Value, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// List of Live events.\n    /// </summary>\n    public interface IApiLiveEventList\n    {\n\n        /// <summary>\n        /// Live events that require explicit join.\n        /// </summary>\n        IEnumerable<IApiLiveEvent> ExplicitJoinLiveEvents { get; }\n\n        /// <summary>\n        /// Live events.\n        /// </summary>\n        IEnumerable<IApiLiveEvent> LiveEvents { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiLiveEventList : IApiLiveEventList\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLiveEvent> ExplicitJoinLiveEvents => _explicitJoinLiveEvents ?? new List<ApiLiveEvent>(0);\n        [DataMember(Name=\"explicit_join_live_events\"), Preserve]\n        public List<ApiLiveEvent> _explicitJoinLiveEvents { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IApiLiveEvent> LiveEvents => _liveEvents ?? new List<ApiLiveEvent>(0);\n        [DataMember(Name=\"live_events\"), Preserve]\n        public List<ApiLiveEvent> _liveEvents { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ExplicitJoinLiveEvents: [\", string.Join(\", \", ExplicitJoinLiveEvents), \"], \");\n            output = string.Concat(output, \"LiveEvents: [\", string.Join(\", \", LiveEvents), \"], \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public enum ApiLiveEventStatus\n    {\n        /// <summary>\n        /// The status variants of a live event.\n        /// </summary>\n        UNKNOWN = 0,\n        /// <summary>\n        /// \n        /// </summary>\n        ACTIVE = 1,\n        /// <summary>\n        /// \n        /// </summary>\n        UPCOMING = 2,\n        /// <summary>\n        /// \n        /// </summary>\n        TERMINATED = 3,\n    }\n\n    /// <summary>\n    /// A scheduled message.\n    /// </summary>\n    public interface IApiMessage\n    {\n\n        /// <summary>\n        /// The time the message was consumed by the identity.\n        /// </summary>\n        string ConsumeTime { get; }\n\n        /// <summary>\n        /// The time the message was created.\n        /// </summary>\n        string CreateTime { get; }\n\n        /// <summary>\n        /// The message's unique identifier.\n        /// </summary>\n        string Id { get; }\n\n        /// <summary>\n        /// The message's image url.\n        /// </summary>\n        string ImageUrl { get; }\n\n        /// <summary>\n        /// A key-value pairs of metadata.\n        /// </summary>\n        IDictionary<string, string> Metadata { get; }\n\n        /// <summary>\n        /// The time the message was read by the client.\n        /// </summary>\n        string ReadTime { get; }\n\n        /// <summary>\n        /// The identifier of the schedule.\n        /// </summary>\n        string ScheduleId { get; }\n\n        /// <summary>\n        /// The send time for the message.\n        /// </summary>\n        string SendTime { get; }\n\n        /// <summary>\n        /// The message's text.\n        /// </summary>\n        string Text { get; }\n\n        /// <summary>\n        /// The message's title.\n        /// </summary>\n        string Title { get; }\n\n        /// <summary>\n        /// The time the message was updated.\n        /// </summary>\n        string UpdateTime { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiMessage : IApiMessage\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"consume_time\"), Preserve]\n        public string ConsumeTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"create_time\"), Preserve]\n        public string CreateTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"id\"), Preserve]\n        public string Id { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"image_url\"), Preserve]\n        public string ImageUrl { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Metadata => _metadata ?? new Dictionary<string, string>();\n        [DataMember(Name=\"metadata\"), Preserve]\n        public Dictionary<string, string> _metadata { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"read_time\"), Preserve]\n        public string ReadTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"schedule_id\"), Preserve]\n        public string ScheduleId { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"send_time\"), Preserve]\n        public string SendTime { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"text\"), Preserve]\n        public string Text { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"title\"), Preserve]\n        public string Title { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"update_time\"), Preserve]\n        public string UpdateTime { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"ConsumeTime: \", ConsumeTime, \", \");\n            output = string.Concat(output, \"CreateTime: \", CreateTime, \", \");\n            output = string.Concat(output, \"Id: \", Id, \", \");\n            output = string.Concat(output, \"ImageUrl: \", ImageUrl, \", \");\n\n            var metadataString = \"\";\n            foreach (var kvp in Metadata)\n            {\n                metadataString = string.Concat(metadataString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Metadata: [\" + metadataString + \"]\");\n            output = string.Concat(output, \"ReadTime: \", ReadTime, \", \");\n            output = string.Concat(output, \"ScheduleId: \", ScheduleId, \", \");\n            output = string.Concat(output, \"SendTime: \", SendTime, \", \");\n            output = string.Concat(output, \"Text: \", Text, \", \");\n            output = string.Concat(output, \"Title: \", Title, \", \");\n            output = string.Concat(output, \"UpdateTime: \", UpdateTime, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Properties associated with an identity.\n    /// </summary>\n    public interface IApiProperties\n    {\n\n        /// <summary>\n        /// Event computed properties.\n        /// </summary>\n        IDictionary<string, string> Computed { get; }\n\n        /// <summary>\n        /// Event custom properties.\n        /// </summary>\n        IDictionary<string, string> Custom { get; }\n\n        /// <summary>\n        /// Event default properties.\n        /// </summary>\n        IDictionary<string, string> Default { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiProperties : IApiProperties\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Computed => _computed ?? new Dictionary<string, string>();\n        [DataMember(Name=\"computed\"), Preserve]\n        public Dictionary<string, string> _computed { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Custom => _custom ?? new Dictionary<string, string>();\n        [DataMember(Name=\"custom\"), Preserve]\n        public Dictionary<string, string> _custom { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Default => _default ?? new Dictionary<string, string>();\n        [DataMember(Name=\"default\"), Preserve]\n        public Dictionary<string, string> _default { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n\n            var computedString = \"\";\n            foreach (var kvp in Computed)\n            {\n                computedString = string.Concat(computedString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Computed: [\" + computedString + \"]\");\n\n            var customString = \"\";\n            foreach (var kvp in Custom)\n            {\n                customString = string.Concat(customString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Custom: [\" + customString + \"]\");\n\n            var defaultString = \"\";\n            foreach (var kvp in Default)\n            {\n                defaultString = string.Concat(defaultString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Default: [\" + defaultString + \"]\");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// A session.\n    /// </summary>\n    public interface IApiSession\n    {\n\n        /// <summary>\n        /// Properties associated with this identity.\n        /// </summary>\n        IApiProperties Properties { get; }\n\n        /// <summary>\n        /// Refresh token.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// Token credential.\n        /// </summary>\n        string Token { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiSession : IApiSession\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IApiProperties Properties => _properties;\n        [DataMember(Name=\"properties\"), Preserve]\n        public ApiProperties _properties { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"refresh_token\"), Preserve]\n        public string RefreshToken { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"token\"), Preserve]\n        public string Token { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Properties: \", Properties, \", \");\n            output = string.Concat(output, \"RefreshToken: \", RefreshToken, \", \");\n            output = string.Concat(output, \"Token: \", Token, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// Update Properties associated with this identity.\n    /// </summary>\n    public interface IApiUpdatePropertiesRequest\n    {\n\n        /// <summary>\n        /// Event custom properties.\n        /// </summary>\n        IDictionary<string, string> Custom { get; }\n\n        /// <summary>\n        /// Event default properties.\n        /// </summary>\n        IDictionary<string, string> Default { get; }\n\n        /// <summary>\n        /// Informs the server to recompute the audience membership of the identity.\n        /// </summary>\n        bool Recompute { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ApiUpdatePropertiesRequest : IApiUpdatePropertiesRequest\n    {\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Custom => _custom ?? new Dictionary<string, string>();\n        [DataMember(Name=\"custom\"), Preserve]\n        public Dictionary<string, string> _custom { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IDictionary<string, string> Default => _default ?? new Dictionary<string, string>();\n        [DataMember(Name=\"default\"), Preserve]\n        public Dictionary<string, string> _default { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"recompute\"), Preserve]\n        public bool Recompute { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n\n            var customString = \"\";\n            foreach (var kvp in Custom)\n            {\n                customString = string.Concat(customString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Custom: [\" + customString + \"]\");\n\n            var defaultString = \"\";\n            foreach (var kvp in Default)\n            {\n                defaultString = string.Concat(defaultString, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"Default: [\" + defaultString + \"]\");\n            output = string.Concat(output, \"Recompute: \", Recompute, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IGooglerpcStatus\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        int Code { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        IEnumerable<IProtobufAny> Details { get; }\n\n        /// <summary>\n        /// \n        /// </summary>\n        string Message { get; }\n    }\n\n    /// <inheritdoc />\n    internal class GooglerpcStatus : IGooglerpcStatus\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"code\"), Preserve]\n        public int Code { get; set; }\n\n        /// <inheritdoc />\n        [IgnoreDataMember]\n        public IEnumerable<IProtobufAny> Details => _details ?? new List<ProtobufAny>(0);\n        [DataMember(Name=\"details\"), Preserve]\n        public List<ProtobufAny> _details { get; set; }\n\n        /// <inheritdoc />\n        [DataMember(Name=\"message\"), Preserve]\n        public string Message { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"Code: \", Code, \", \");\n            output = string.Concat(output, \"Details: [\", string.Join(\", \", Details), \"], \");\n            output = string.Concat(output, \"Message: \", Message, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// \n    /// </summary>\n    public interface IProtobufAny\n    {\n\n        /// <summary>\n        /// \n        /// </summary>\n        string @type { get; }\n    }\n\n    /// <inheritdoc />\n    internal class ProtobufAny : IProtobufAny\n    {\n\n        /// <inheritdoc />\n        [DataMember(Name=\"@type\"), Preserve]\n        public string @type { get; set; }\n\n        public override string ToString()\n        {\n            var output = \"\";\n            output = string.Concat(output, \"@type: \", @type, \", \");\n            return output;\n        }\n    }\n\n    /// <summary>\n    /// The low level client for the Satori API.\n    /// </summary>\n    internal class ApiClient\n    {\n        public readonly IHttpAdapter HttpAdapter;\n        public int Timeout { get; set; }\n\n        private readonly Uri _baseUri;\n\n        public ApiClient(Uri baseUri, IHttpAdapter httpAdapter, int timeout = 10)\n        {\n            _baseUri = baseUri;\n            HttpAdapter = httpAdapter;\n            Timeout = timeout;\n        }\n\n        /// <summary>\n        /// A healthcheck which load balancers can use to check the service.\n        /// </summary>\n        public async Task SatoriHealthcheckAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/healthcheck\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// A readycheck which load balancers can use to check the service.\n        /// </summary>\n        public async Task SatoriReadycheckAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/readycheck\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Authenticate against the server.\n        /// </summary>\n        public async Task<IApiSession> SatoriAuthenticateAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAuthenticateRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/authenticate\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.\n        /// </summary>\n        public async Task SatoriAuthenticateLogoutAsync(\n            string bearerToken,\n            ApiAuthenticateLogoutRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/authenticate/logout\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Refresh a user's session using a refresh token retrieved from a previous authentication request.\n        /// </summary>\n        public async Task<IApiSession> SatoriAuthenticateRefreshAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            ApiAuthenticateRefreshRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/authenticate/refresh\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Publish an event for this session.\n        /// </summary>\n        public async Task SatoriEventAsync(\n            string bearerToken,\n            ApiEventRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/event\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get or list all available experiments for this identity.\n        /// </summary>\n        public async Task<IApiExperimentList> SatoriGetExperimentsAsync(\n            string bearerToken,\n            IEnumerable<string> names,\n            IEnumerable<string> labels,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/experiment\";\n\n            var queryParams = \"\";\n            foreach (var elem in names ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"names=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in labels ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"labels=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiExperimentList>();\n        }\n\n        /// <summary>\n        /// List all available flags for this identity.\n        /// </summary>\n        public async Task<IApiFlagList> SatoriGetFlagsAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            string bearerToken,\n            IEnumerable<string> names,\n            IEnumerable<string> labels,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/flag\";\n\n            var queryParams = \"\";\n            foreach (var elem in names ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"names=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in labels ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"labels=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n            if (!string.IsNullOrEmpty(bearerToken))\n            {\n                var header = string.Concat(\"Bearer \", bearerToken);\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiFlagList>();\n        }\n\n        /// <summary>\n        /// List all available flags and their value overrides for this identity.\n        /// </summary>\n        public async Task<IApiFlagOverrideList> SatoriGetFlagOverridesAsync(\n            string basicAuthUsername,\n            string basicAuthPassword,\n            string bearerToken,\n            IEnumerable<string> names,\n            IEnumerable<string> labels,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/flag/override\";\n\n            var queryParams = \"\";\n            foreach (var elem in names ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"names=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in labels ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"labels=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n            if (!string.IsNullOrEmpty(bearerToken))\n            {\n                var header = string.Concat(\"Bearer \", bearerToken);\n                headers.Add(\"Authorization\", header);\n            }\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiFlagOverrideList>();\n        }\n\n        /// <summary>\n        /// Enrich/replace the current session with new identifier.\n        /// </summary>\n        public async Task<IApiSession> SatoriIdentifyAsync(\n            string bearerToken,\n            ApiIdentifyRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/identify\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiSession>();\n        }\n\n        /// <summary>\n        /// Delete the caller's identity and associated data.\n        /// </summary>\n        public async Task SatoriDeleteIdentityAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/identity\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List available live events.\n        /// </summary>\n        public async Task<IApiLiveEventList> SatoriGetLiveEventsAsync(\n            string bearerToken,\n            IEnumerable<string> names,\n            IEnumerable<string> labels,\n            int? pastRunCount,\n            int? futureRunCount,\n            string startTimeSec,\n            string endTimeSec,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/live-event\";\n\n            var queryParams = \"\";\n            foreach (var elem in names ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"names=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            foreach (var elem in labels ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"labels=\", Uri.EscapeDataString(elem), \"&\");\n            }\n            if (pastRunCount != null) {\n                queryParams = string.Concat(queryParams, \"past_run_count=\", pastRunCount, \"&\");\n            }\n            if (futureRunCount != null) {\n                queryParams = string.Concat(queryParams, \"future_run_count=\", futureRunCount, \"&\");\n            }\n            if (startTimeSec != null) {\n                queryParams = string.Concat(queryParams, \"start_time_sec=\", Uri.EscapeDataString(startTimeSec), \"&\");\n            }\n            if (endTimeSec != null) {\n                queryParams = string.Concat(queryParams, \"end_time_sec=\", Uri.EscapeDataString(endTimeSec), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiLiveEventList>();\n        }\n\n        /// <summary>\n        /// Join an 'explicit join' live event.\n        /// </summary>\n        public async Task SatoriJoinLiveEventAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/live-event/{id}/participation\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Get the list of messages for the identity.\n        /// </summary>\n        public async Task<IApiGetMessageListResponse> SatoriGetMessageListAsync(\n            string bearerToken,\n            int? limit,\n            bool? forward,\n            string cursor,\n            IEnumerable<string> messageIds,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/message\";\n\n            var queryParams = \"\";\n            if (limit != null) {\n                queryParams = string.Concat(queryParams, \"limit=\", limit, \"&\");\n            }\n            if (forward != null) {\n                queryParams = string.Concat(queryParams, \"forward=\", forward.ToString().ToLower(), \"&\");\n            }\n            if (cursor != null) {\n                queryParams = string.Concat(queryParams, \"cursor=\", Uri.EscapeDataString(cursor), \"&\");\n            }\n            foreach (var elem in messageIds ?? new string[0])\n            {\n                queryParams = string.Concat(queryParams, \"message_ids=\", Uri.EscapeDataString(elem), \"&\");\n            }\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiGetMessageListResponse>();\n        }\n\n        /// <summary>\n        /// Deletes a message for an identity.\n        /// </summary>\n        public async Task SatoriDeleteMessageAsync(\n            string bearerToken,\n            string id,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/message/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"DELETE\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Updates a message for an identity.\n        /// </summary>\n        public async Task SatoriUpdateMessageAsync(\n            string bearerToken,\n            string id,\n            ApiUpdateMessageRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (id == null)\n            {\n                throw new ArgumentException(\"'id' is required but was null.\");\n            }\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/message/{id}\";\n            urlpath = urlpath.Replace(\"{id}\", Uri.EscapeDataString(id));\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// List properties associated with this identity.\n        /// </summary>\n        public async Task<IApiProperties> SatoriListPropertiesAsync(\n            string bearerToken,\n            CancellationToken? cancellationToken)\n        {\n\n            var urlpath = \"/v1/properties\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"GET\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<ApiProperties>();\n        }\n\n        /// <summary>\n        /// Update identity properties.\n        /// </summary>\n        public async Task SatoriUpdatePropertiesAsync(\n            string bearerToken,\n            ApiUpdatePropertiesRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/properties\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"PUT\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n\n        /// <summary>\n        /// Publish server events for multiple distinct identities.\n        /// </summary>\n        public async Task SatoriServerEventAsync(\n            string bearerToken,\n            ApiEventRequest body,\n            CancellationToken? cancellationToken)\n        {\n            if (body == null)\n            {\n                throw new ArgumentException(\"'body' is required but was null.\");\n            }\n\n            var urlpath = \"/v1/server-event\";\n\n            var queryParams = \"\";\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"POST\";\n            var headers = new Dictionary<string, string>();\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n\n            byte[] content = null;\n            var jsonBody = body.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/Client.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Satori\n{\n    /// <inheritdoc cref=\"IClient\" />\n    public class Client : IClient\n    {\n        /// <summary>\n        /// The default expired timespan used to check session lifetime.\n        /// </summary>\n        public static TimeSpan DefaultExpiredTimeSpan = TimeSpan.FromMinutes(5);\n\n        /// <inheritdoc cref=\"IClient.ApiKey\"/>\n        public string ApiKey { get; }\n\n        /// <inheritdoc cref=\"IClient.AutoRefreshSession\" />\n        public bool AutoRefreshSession { get; }\n\n        /// <inheritdoc cref=\"IClient.GlobalRetryConfiguration\"/>\n        public RetryConfiguration GlobalRetryConfiguration { get; set; } = new RetryConfiguration(\n            baseDelayMs: 500,\n            jitter: RetryJitter.FullJitter,\n            listener: null,\n            maxRetries: 4);\n\n        /// <inheritdoc cref=\"IClient.Host\"/>\n        public string Host { get; }\n\n        /// <inheritdoc cref=\"IClient.Logger\"/>\n        public ILogger Logger\n        {\n            get => _logger;\n            set\n            {\n                _apiClient.HttpAdapter.Logger = value;\n                _logger = value;\n            }\n        }\n\n        /// <inheritdoc cref=\"IClient.Port\"/>\n        public int Port { get; }\n\n        /// <inheritdoc cref=\"IClient.Scheme\"/>\n        public string Scheme { get; }\n\n        /// <inheritdoc cref=\"IClient.ReceivedSessionUpdated\"/>\n        public event Action<ISession> ReceivedSessionUpdated;\n\n        /// <inheritdoc cref=\"IClient.Timeout\"/>\n        public int Timeout\n        {\n            get => _apiClient.Timeout;\n            set => _apiClient.Timeout = value;\n        }\n\n        /// <summary>\n        /// The default timeout of the server.\n        /// </summary>\n        public const int DefaultTimeout = 15;\n\n        private readonly ApiClient _apiClient;\n        private ILogger _logger;\n        private readonly RetryInvoker _retryInvoker;\n\n        public Client(string scheme, string host, int port, string apiKey) : this(scheme, host, port, apiKey,\n            HttpRequestAdapter.WithGzip())\n        {\n        }\n\n        public Client(string scheme, string host, int port, string apiKey, IHttpAdapter adapter,\n            bool autoRefreshSession = true)\n        {\n            Host = host;\n            Port = port;\n            Scheme = scheme;\n            ApiKey = apiKey;\n            AutoRefreshSession = autoRefreshSession;\n            _apiClient = new ApiClient(new UriBuilder(scheme, host, port).Uri, adapter, DefaultTimeout);\n            _retryInvoker = new RetryInvoker(adapter.TransientExceptionDelegate);\n            Logger = NullLogger.Instance; // must set logger last.\n        }\n\n        /// <inheritdoc cref=\"AuthenticateAsync\" />\n        public async Task<ISession> AuthenticateAsync(string id, Dictionary<string, string> defaultProperties = default,\n            Dictionary<string, string> customProperties = default, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            var resp = await _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriAuthenticateAsync(ApiKey,\n                    string.Empty,\n                    new ApiAuthenticateRequest { Id = id, _default = defaultProperties, _custom = customProperties },\n                    cancellationToken),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n            return new Session(resp.Token, resp.RefreshToken);\n        }\n\n        /// <inheritdoc cref=\"AuthenticateLogoutAsync\" />\n        public Task AuthenticateLogoutAsync(ISession session, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null) =>\n            _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriAuthenticateLogoutAsync(session.AuthToken,\n                    new ApiAuthenticateLogoutRequest { RefreshToken = session.RefreshToken, Token = session.AuthToken },\n                    cancellationToken),\n                new RetryHistory(session.AuthToken, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n\n        /// <inheritdoc cref=\"EventAsync\" />\n        public async Task EventAsync(ISession session, Event @event, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            var request = new ApiEventRequest\n            {\n                _events = new List<ApiEvent>\n                {\n                    @event.ToApiEvent()\n                }\n            };\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriEventAsync(session.AuthToken, request, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"EventsAsync\" />\n        public async Task EventsAsync(ISession session, IEnumerable<Event> events,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            var apiEventList = new List<ApiEvent>();\n            foreach (var evt in events)\n            {\n                apiEventList.Add(evt.ToApiEvent());\n            }\n\n            var request = new ApiEventRequest\n            {\n                _events = apiEventList\n            };\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriEventAsync(session.AuthToken, request, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"GetExperimentsAsync\" />\n        public Task<IApiExperimentList> GetAllExperimentsAsync(ISession session,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null) =>\n            GetExperimentsAsync(session, null, null, cancellationToken, retryConfiguration);\n\n        /// <inheritdoc cref=\"GetExperimentsAsync\" />\n        public async Task<IApiExperimentList> GetExperimentsAsync(ISession session, IEnumerable<string> names,\n            IEnumerable<string> labels, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriGetExperimentsAsync(session.AuthToken, names, labels, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"GetFlagAsync(Satori.ISession,string,System.Nullable{System.Threading.CancellationToken})\" />\n        public async Task<IApiFlag> GetFlagAsync(ISession session, string name,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            var resp = await GetFlagsAsync(session, new[] { name }, null, cancellationToken, retryConfiguration);\n            foreach (var flag in resp.Flags)\n            {\n                if (flag.Name.Equals(name))\n                {\n                    return flag;\n                }\n            }\n\n            throw new ArgumentException($\"flag '{name}' not found.\");\n        }\n\n        /// <inheritdoc cref=\"GetFlagAsync(Satori.ISession,string,string,System.Nullable{System.Threading.CancellationToken})\" />\n        public Task<IApiFlag> GetFlagAsync(ISession session, string name, string defaultValue,\n            CancellationToken? cancellationToken = default)\n        {\n            try\n            {\n                return GetFlagAsync(session, name, cancellationToken);\n            }\n            catch (ArgumentException)\n            {\n                return Task.FromResult<IApiFlag>(new ApiFlag\n                    { Name = name, Value = defaultValue, ConditionChanged = false });\n            }\n            catch (ApiResponseException e)\n            {\n                if (_apiClient.HttpAdapter.TransientExceptionDelegate.Invoke(e))\n                {\n                    return Task.FromResult<IApiFlag>(new ApiFlag\n                        { Name = name, Value = defaultValue, ConditionChanged = false });\n                }\n\n                throw;\n            }\n        }\n\n        /// <inheritdoc cref=\"GetFlagDefaultAsync(string,System.Nullable{System.Threading.CancellationToken},System.Nullable{RetryConfiguration})\" />\n        public async Task<IApiFlag> GetFlagDefaultAsync(string name,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            var resp = await GetFlagsDefaultAsync(new[] { name }, null, cancellationToken, retryConfiguration);\n            if (!resp.Flags.Any())\n            {\n                throw new ArgumentException($\"flag '{name}' not found.\");\n            }\n\n            return resp.Flags.First();\n        }\n\n        /// <inheritdoc cref=\"GetFlagDefaultAsync(string,string,System.Nullable{System.Threading.CancellationToken})\" />\n        public Task<IApiFlag> GetFlagDefaultAsync(string name, string defaultValue,\n            CancellationToken? cancellationToken = default)\n        {\n            try\n            {\n                return GetFlagDefaultAsync(name, cancellationToken);\n            }\n            catch (ArgumentException)\n            {\n                return Task.FromResult<IApiFlag>(new ApiFlag\n                    { Name = name, Value = defaultValue, ConditionChanged = false });\n            }\n            catch (ApiResponseException e)\n            {\n                if (_apiClient.HttpAdapter.TransientExceptionDelegate.Invoke(e))\n                {\n                    return Task.FromResult<IApiFlag>(new ApiFlag\n                        { Name = name, Value = defaultValue, ConditionChanged = false });\n                }\n\n                throw;\n            }\n        }\n\n        /// <inheritdoc cref=\"GetFlagsAsync\" />\n        public async Task<IApiFlagList> GetFlagsAsync(ISession session, IEnumerable<string> names,\n            IEnumerable<string> labels, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriGetFlagsAsync(string.Empty,\n                    string.Empty, session.AuthToken, names, labels,\n                    cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"GetFlagsDefaultAsync\" />\n        public Task<IApiFlagList> GetFlagsDefaultAsync(IEnumerable<string> names,\n            IEnumerable<string> labels, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            return _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriGetFlagsAsync(this.ApiKey, string.Empty, string.Empty, names, labels, cancellationToken),\n                new RetryHistory(string.Empty, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"IdentifyAsync\" />\n        public async Task<ISession> IdentifyAsync(ISession session, string id,\n            Dictionary<string, string> defaultProperties, Dictionary<string, string> customProperties,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            var req = new ApiIdentifyRequest { Id = id, _default = defaultProperties, _custom = customProperties };\n            var resp = await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriIdentifyAsync(session.AuthToken, req, cancellationToken),\n                new RetryHistory(id, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n            var session2 = new Session(resp.Token, resp.RefreshToken);\n\n            if (session is Session updatedSession)\n            {\n                // Update session object in place if we can.\n                updatedSession.Update(resp.Token, resp.RefreshToken);\n                return updatedSession;\n            }\n\n            return session2;\n        }\n\n        /// <inheritdoc cref=\"GetLiveEventsAsync\" />\n        public async Task<IApiLiveEventList> GetLiveEventsAsync(\n            ISession session,\n            IEnumerable<string> names = null,\n            IEnumerable<string> labels = null,\n            int? pastRunCount = null,\n            int? futureRunCount = null,\n            string startTimeSec = null,\n            string endTimeSec = null,\n            CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriGetLiveEventsAsync(session.AuthToken, names, labels,\n                    pastRunCount, futureRunCount, startTimeSec, endTimeSec, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"JoinLiveEventAsync\" />\n        public async Task JoinLiveEventAsync(ISession session, string id = null,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriJoinLiveEventAsync(session.AuthToken, id, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"ListPropertiesAsync\" />\n        public async Task<IApiProperties> ListPropertiesAsync(ISession session,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriListPropertiesAsync(session.AuthToken, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"SessionRefreshAsync\" />\n        public async Task<ISession> SessionRefreshAsync(ISession session,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            var resp = await _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriAuthenticateRefreshAsync(ApiKey,\n                    string.Empty,\n                    new ApiAuthenticateRefreshRequest { RefreshToken = session.RefreshToken }, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n\n            if (session is Session updatedSession)\n            {\n                // Update session object in place if we can.\n                updatedSession.Update(resp.Token, resp.RefreshToken);\n                ReceivedSessionUpdated?.Invoke(updatedSession);\n                return updatedSession;\n            }\n\n            var newSession = new Session(resp.Token, resp.RefreshToken);\n            ReceivedSessionUpdated?.Invoke(newSession);\n            return newSession;\n        }\n\n        /// <inheritdoc cref=\"UpdatePropertiesAsync\" />\n        public async Task UpdatePropertiesAsync(ISession session, Dictionary<string, string> defaultProperties,\n            Dictionary<string, string> customProperties, bool recompute = false,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken, retryConfiguration);\n            }\n\n            ApiUpdatePropertiesRequest payload = new ApiUpdatePropertiesRequest\n            {\n                _default = defaultProperties,\n                _custom = customProperties,\n                Recompute = recompute,\n            };\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriUpdatePropertiesAsync(session.AuthToken, payload, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"DeleteIdentityAsync\" />\n        public async Task DeleteIdentityAsync(ISession session, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriDeleteIdentityAsync(session.AuthToken, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"GetMessageListAsync\" />\n        public async Task<IApiGetMessageListResponse> GetMessageListAsync(ISession session, int limit = 1,\n            bool forward = true, string cursor = null, IEnumerable<string> messageIds = null, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriGetMessageListAsync(session.AuthToken,\n                    limit, forward, cursor, messageIds,\n                    cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"UpdateMessageAsync\" />\n        public async Task UpdateMessageAsync(ISession session, string id, string consumeTime, string readTime,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            await _retryInvoker.InvokeWithRetry(() => _apiClient.SatoriUpdateMessageAsync(session.AuthToken, id,\n                    new ApiUpdateMessageRequest() { ConsumeTime = consumeTime, ReadTime = readTime }, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"DeleteMessageAsync\" />\n        public async Task DeleteMessageAsync(ISession session, string id,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriDeleteMessageAsync(session.AuthToken, id, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n\n        /// <inheritdoc cref=\"GetFlagOverridesAsync\" />\n        public async Task<IApiFlagOverrideList> GetFlagOverridesAsync(ISession session, IEnumerable<string> names = null,\n            IEnumerable<string> labels = null, CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null)\n        {\n            if (AutoRefreshSession && !string.IsNullOrEmpty(session.RefreshToken) &&\n                session.HasExpired(DateTime.UtcNow.Add(DefaultExpiredTimeSpan)))\n            {\n                await SessionRefreshAsync(session, cancellationToken);\n            }\n\n            return await _retryInvoker.InvokeWithRetry(\n                () => _apiClient.SatoriGetFlagOverridesAsync(string.Empty, string.Empty, session.AuthToken, names, labels, cancellationToken),\n                new RetryHistory(session, retryConfiguration ?? GlobalRetryConfiguration, cancellationToken));\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/Console/ConsoleClient.gen.cs",
    "content": "/* Code generated by codegen/main.go. DO NOT EDIT. */\nnamespace Satori.Console\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Runtime.Serialization;\n    using System.Text;\n    using System.Threading;\n    using System.Threading.Tasks;\n    using TinyJson;\n\n    /// <summary>\n    /// An exception generated for <c>HttpResponse</c> objects don't return a success status.\n    /// </summary>\n    public sealed class ApiResponseException : Exception\n    {\n        public long StatusCode { get; }\n\n        public int GrpcStatusCode { get; }\n\n        public ApiResponseException(long statusCode, string content, int grpcCode) : base(content)\n        {\n            StatusCode = statusCode;\n            GrpcStatusCode = grpcCode;\n        }\n\n        public ApiResponseException(string message, Exception e) : base(message, e)\n        {\n            StatusCode = -1L;\n            GrpcStatusCode = -1;\n        }\n\n        public ApiResponseException(string content) : this(-1L, content, -1)\n        {\n        }\n\n        public override string ToString()\n        {\n            return $\"ApiResponseException(StatusCode={StatusCode}, Message='{Message}', GrpcStatusCode={GrpcStatusCode})\";\n        }\n    }\n\n    /// <summary>\n    /// The low level client for the Satori.Console API.\n    /// </summary>\n    internal class ApiClient\n    {\n        public readonly IHttpAdapter HttpAdapter;\n        public int Timeout { get; set; }\n\n        private readonly Uri _baseUri;\n\n        public ApiClient(Uri baseUri, IHttpAdapter httpAdapter, int timeout = 10)\n        {\n            _baseUri = baseUri;\n            HttpAdapter = httpAdapter;\n            Timeout = timeout;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/Event.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Xml;\n\nnamespace Satori\n{\n    /// <summary>\n    /// An event to be published to the server.\n    /// </summary>\n    public class Event\n    {\n        /// <summary>\n        /// The name of the event.\n        /// </summary>\n        public string Name { get; }\n\n        /// <summary>\n        /// The time when the event was triggered.\n        /// </summary>\n        public DateTime Timestamp { get; }\n\n        /// <summary>\n        /// Optional value.\n        /// </summary>\n        public string Value { get; }\n\n        /// <summary>\n        /// Event metadata, if any.\n        /// </summary>\n        public Dictionary<string, string> Metadata { get; }\n\n        /// <summary>\n        /// Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios.\n        /// If not supplied the server will assign a randomly generated unique event identifier.\n        /// </summary>\n        public string Id { get; }\n\n        /// <summary>\n        /// Optional identity id associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        public string IdentityId { get; }\n\n        /// <summary>\n        /// Optional session id associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        public string SessionId { get;  }\n\n        /// <summary>\n        /// Optional Unix epoch session issued at associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        public string SessionIssuedAt { get; }\n\n        /// <summary>\n        /// Optional Unix epoch session expires at associated with the event. Ignored if the event is published as part of a session.\n        /// </summary>\n        public string SessionExpiresAt { get; }\n\n        /// <summary>\n        /// The event constructor.\n        /// </summary>\n        /// <param name=\"name\">The <see cref=\"Event.Name\"/></param>\n        /// <param name=\"timestamp\">The <see cref=\"Event.Timestamp\"/></param>\n        /// <param name=\"value\">The <see cref=\"Event.Value\"/></param>\n        /// <param name=\"metadata\">The <see cref=\"Event.Metadata\"/></param>\n        /// <param name=\"id\">The <see cref=\"Event.Id\"/></param>\n        /// <param name=\"identityId\"> <see cref=\"Event.IdentityId\"/></param>\n        /// <param name=\"sessionId\"> <see cref=\"Event.SessionId\"/></param>\n        /// <param name=\"sessionIssuedAt\"> <see cref=\"Event.SessionIssuedAt\"/></param>\n        /// <param name=\"sessionExpiresAt\"> <see cref=\"Event.SessionExpiresAt\"/></param>\n        public Event(string name, DateTime timestamp, string value = null, Dictionary<string, string> metadata = null,\n            string id = null, string sessionId = null, string identityId = null,\n            string sessionIssuedAt = null, string sessionExpiresAt = null)\n        {\n            Name = name;\n            Timestamp = timestamp;\n            Value = value;\n            Metadata = metadata;\n            Id = id;\n            SessionId = sessionId;\n            IdentityId = identityId;\n            SessionIssuedAt = sessionIssuedAt;\n            SessionExpiresAt = sessionExpiresAt;\n        }\n\n        internal ApiEvent ToApiEvent()\n        {\n            return new ApiEvent()\n            {\n                Id = this.Id,\n                Name = this.Name,\n                // Protobuf requires a DateTime string formatted as per RFC 3339\n                Timestamp = XmlConvert.ToString(this.Timestamp, XmlDateTimeSerializationMode.Utc),\n                Value = this.Value,\n                _metadata = this.Metadata,\n                IdentityId = this.IdentityId,\n                SessionId = this.SessionId,\n                SessionIssuedAt = this.SessionIssuedAt,\n                SessionExpiresAt = this.SessionExpiresAt,\n            };\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/GZipHttpClientHandler.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.IO.Compression;\nusing System.Net;\nusing System.Net.Http;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Satori\n{\n    internal class GZipHttpClientHandler : DelegatingHandler\n    {\n        public GZipHttpClientHandler(HttpMessageHandler innerHandler)\n        {\n            InnerHandler = innerHandler;\n        }\n\n        protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken ct)\n        {\n            if ((request.Method == HttpMethod.Post || request.Method == HttpMethod.Put) && request.Content != null)\n            {\n                request.Content = new GZipContent(request.Content);\n            }\n\n            return base.SendAsync(request, ct);\n        }\n    }\n\n    internal class GZipContent : HttpContent\n    {\n        private readonly HttpContent _content;\n\n        public GZipContent(HttpContent content)\n        {\n            _content = content;\n            // Must copy all pre-existing headers.\n            foreach (var header in content.Headers)\n            {\n                Headers.TryAddWithoutValidation(header.Key, header.Value);\n            }\n            Headers.ContentEncoding.Add(\"gzip\");\n        }\n\n        protected override async Task SerializeToStreamAsync(System.IO.Stream stream, TransportContext context)\n        {\n            using (var gzip = new GZipStream(stream, CompressionMode.Compress, true))\n            {\n                await _content.CopyToAsync(gzip);\n            }\n        }\n\n        protected override bool TryComputeLength(out long length)\n        {\n            length = -1;\n            return false;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/HttpRequestAdapter.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Net;\nusing System.Net.Http;\nusing System.Net.Http.Headers;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Satori.TinyJson;\n\nnamespace Satori\n{\n    /// <summary>\n    /// HTTP Request adapter which uses the .NET HttpClient to send requests.\n    /// </summary>\n    /// <remarks>\n    /// Accept header is always set as 'application/json'.\n    /// </remarks>\n    public class HttpRequestAdapter : IHttpAdapter\n    {\n        /// <inheritdoc cref=\"IHttpAdapter.Logger\"/>\n        public ILogger Logger { get; set; }\n\n        public TransientExceptionDelegate TransientExceptionDelegate => IsTransientException;\n\n        private readonly HttpClient _httpClient;\n\n        public HttpRequestAdapter(HttpClient httpClient)\n        {\n            _httpClient = httpClient;\n            _httpClient.Timeout = TimeSpan.FromSeconds(80); // Provide a global request timeout as a failsafe.\n        }\n\n        /// <inheritdoc cref=\"IHttpAdapter\"/>\n        public async Task<string> SendAsync(string method, Uri uri, IDictionary<string, string> headers, byte[] body,\n            int timeout, CancellationToken? userCancelToken)\n        {\n            var request = new HttpRequestMessage\n            {\n                RequestUri = uri,\n                Method = new HttpMethod(method)\n            };\n            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(\"application/json\"));\n\n            foreach (var kv in headers)\n            {\n                request.Headers.TryAddWithoutValidation(kv.Key, kv.Value);\n            }\n\n            if (body != null)\n            {\n                request.Content = new ByteArrayContent(body);\n                Logger?.InfoFormat(\"Send: method='{0}', uri='{1}', body='{2}'\", method, uri,\n                    System.Text.Encoding.UTF8.GetString(body));\n            }\n            else\n            {\n                Logger?.InfoFormat(\"Send: method='{0}', uri='{1}'\", method, uri);\n            }\n\n            using var ctsTimeout = new CancellationTokenSource(TimeSpan.FromSeconds(timeout));\n            using var cts =\n                CancellationTokenSource.CreateLinkedTokenSource(ctsTimeout.Token,\n                    userCancelToken ?? CancellationToken.None);\n\n            try\n            {\n                using var response = await _httpClient.SendAsync(request, cts.Token).ConfigureAwait(false);\n                var contents = await response.Content.ReadAsStringAsync();\n\n                if ((int)response.StatusCode >= 500)\n                {\n                    Logger?.ErrorFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n                    // TODO think of best way to map HTTP code to GRPC code since we can't rely\n                    // on server to process it. Manually adding the mapping to SDK seems brittle.\n                    throw new ApiResponseException((int)response.StatusCode, contents, -1);\n                }\n\n                if (response.IsSuccessStatusCode)\n                {\n                    Logger?.InfoFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n                    return contents;\n                }\n\n                Logger?.ErrorFormat(\"Received: status={0}, contents='{1}'\", response.StatusCode, contents);\n\n                var decoded = contents.FromJson<Dictionary<string, object>>();\n                var message = decoded.TryGetValue(\"message\", out var value1) ? value1.ToString() : string.Empty;\n                var grpcCode = decoded.TryGetValue(\"code\", out var value2) ? (int)value2 : -1;\n\n                var exception = new ApiResponseException((int)response.StatusCode, message, grpcCode);\n                if (decoded.TryGetValue(\"error\", out var value))\n                {\n                    HttpAdapterUtil.CopyResponseError(this, value, exception);\n                }\n\n                throw exception;\n            }\n            catch (TaskCanceledException e) when (ctsTimeout.IsCancellationRequested)\n            {\n                Logger?.ErrorFormat(\"Request timed out: method='{0}', uri='{1}'\", method, uri);\n                throw new TimeoutException($\"The request timed out after {timeout} seconds.\", e);\n            }\n            catch (Exception exception) when (!(exception is ApiResponseException))\n            {\n                Logger?.ErrorFormat(\"Request failed: method='{0}', uri='{1}', exception='{2}'\", method, uri,\n                    exception);\n                throw;\n            }\n        }\n\n        /// <summary>\n        /// A new HTTP adapter with configuration for gzip support in the underlying HTTP client.\n        /// </summary>\n        /// <remarks>\n        /// NOTE Decompression does not work with Mono AOT on Android.\n        /// </remarks>\n        /// <param name=\"decompression\">If automatic decompression should be enabled with the HTTP adapter.</param>\n        /// <param name=\"compression\">If automatic compression should be enabled with the HTTP adapter.</param>\n        /// <returns>A new HTTP adapter.</returns>\n        public static IHttpAdapter WithGzip(bool decompression = false, bool compression = false)\n        {\n            var handler = new HttpClientHandler();\n            if (handler.SupportsAutomaticDecompression && decompression)\n            {\n                handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;\n            }\n\n            handler.AllowAutoRedirect = true;\n\n            var client =\n                new HttpClient(compression ? (HttpMessageHandler)new GZipHttpClientHandler(handler) : handler);\n            return new HttpRequestAdapter(client);\n        }\n\n        public static bool IsTransientException(Exception e)\n        {\n            if (e is ApiResponseException apiException)\n            {\n                switch (apiException.StatusCode)\n                {\n                    case 500\n                        : // Internal Server Error often (but not always) indicates a transient issue in Nakama, e.g., DB connectivity.\n                    case 502\n                        : // LB returns this to client if server sends corrupt/invalid data to LB, which may be a transient issue.\n                    case 503\n                        : // LB returns this to client if LB determines or is told that server is unable to handle forwarded from LB, which may be a transient issue.\n                    case 504\n                        : // LB returns this to client if LB cannot communicate with server, which may be a temporary issue.\n                        return true;\n                }\n            }\n\n            return false;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/IClient.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\n\nnamespace Satori\n{\n    /// <summary>\n    /// A client for the API in Satori server.\n    /// </summary>\n    public interface IClient\n    {\n        /// <summary>\n        /// The key used to authenticate with the server without a session.\n        /// </summary>\n        string ApiKey { get; }\n\n        /// <summary>\n        /// True if the session should be refreshed with an active refresh token.\n        /// </summary>\n        bool AutoRefreshSession { get; }\n\n        /// <summary>\n        /// The global retry configuration. See <see cref=\"RetryConfiguration\"/>.\n        /// </summary>\n        RetryConfiguration GlobalRetryConfiguration { get; set; }\n\n        /// <summary>\n        /// The host address of the server.\n        /// </summary>\n        string Host { get; }\n\n        /// <summary>\n        /// The logger to use with the client.\n        /// </summary>\n        ILogger Logger { get; set; }\n\n        /// <summary>\n        /// The port number of the server.\n        /// </summary>\n        int Port { get; }\n\n        /// <summary>\n        /// The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".\n        /// </summary>\n        string Scheme { get; }\n\n        /// <summary>\n        /// Set the timeout in seconds on requests sent to the server.\n        /// </summary>\n        int Timeout { get; set; }\n\n        /// <summary>\n        /// Received a new session after the current one has expired.\n        /// </summary>\n        /// <remarks>\n        /// This event will only be sent when <c>SessionRefreshAsync</c> is called which also happens automatically if\n        /// <c>AutoRefreshSession</c> is enabled.\n        /// </remarks>\n        /// <see cref=\"SessionRefreshAsync\"/>\n        /// <seealso cref=\"AutoRefreshSession\"/>\n        event Action<ISession> ReceivedSessionUpdated;\n\n        /// <summary>\n        /// Authenticate against the server.\n        /// </summary>\n        /// <param name=\"id\">An optional user id.</param>\n        /// <param name=\"defaultProperties\">Optional default properties to update with this call. If not set, properties are left as they are on the server.</param>\n        /// <param name=\"customProperties\">Optional custom properties to update with this call. If not set, properties are left as they are on the server.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to a user session.</returns>\n        public Task<ISession> AuthenticateAsync(string id, Dictionary<string, string> defaultProperties = default,\n            Dictionary<string, string> customProperties = default, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which represents the asynchronous operation.</returns>\n        public Task AuthenticateLogoutAsync(ISession session, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Send an event for this session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"event\">The event to send.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task EventAsync(ISession session, Event @event, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Send a batch of events for this session.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"events\">The batch of events which will be sent.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task EventsAsync(ISession session, IEnumerable<Event> events,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get all experiments data.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to all experiments that this identity is involved with.</returns>\n        public Task<IApiExperimentList> GetAllExperimentsAsync(ISession session,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get specific experiments data.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"names\">Experiment names; if empty string, all experiments are returned based on the remaining filters.</param>\n        /// <param name=\"labels\">Label names that must be defined for each Experiment; if empty string, all experiments are returned based on the remaining filters.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to all experiments that this identity is involved with.</returns>\n        public Task<IApiExperimentList> GetExperimentsAsync(ISession session, IEnumerable<string> names, IEnumerable<string> labels,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get a single flag for this identity.\n        /// </summary>\n        /// <remarks>\n        /// Unlike <c>GetFlags(ISession,string,CancellationToken)</c> this method will return the default value\n        /// specified and will not raise an exception if the network is unavailable.\n        /// </remarks>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"name\">The name of the flag.</param>\n        /// <param name=\"defaultValue\">The default value if the server is unreachable.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a single feature flag.</returns>\n        public Task<IApiFlag> GetFlagAsync(ISession session, string name, string defaultValue,\n            CancellationToken? cancellationToken = default);\n\n        /// <summary>\n        /// Get a single default flag for this identity.\n        /// </summary>\n        /// <param name=\"name\">The name of the flag.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to a single default feature flag.</returns>\n        public Task<IApiFlag> GetFlagDefaultAsync(string name,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get a single default flag for this identity.\n        /// </summary>\n        /// <remarks>\n        /// Unlike <c>GetFlagDefaultAsync(string,string,CancellationToken)</c> this method will return the default\n        /// value specified and will not raise an exception if the network is unreachable.\n        /// </remarks>\n        /// <param name=\"name\">The name of the flag.</param>\n        /// <param name=\"defaultValue\">The default value if the server is unreachable.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <returns>A task which resolves to a single default feature flag.</returns>\n        public Task<IApiFlag> GetFlagDefaultAsync(string name, string defaultValue,\n            CancellationToken? cancellationToken = default);\n\n        /// <summary>\n        /// List all available flags for this identity.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"names\">Flag names, if empty string all flags are returned.</param>\n        /// <param name=\"labels\">Label names that must be defined for each Flag; if empty string, all flags are returned based on the remaining filters.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to all flags available to this identity.</returns>\n        public Task<IApiFlagList> GetFlagsAsync(ISession session, IEnumerable<string> names,\n            IEnumerable<string> labels, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// List all available default flags.\n        /// </summary>\n        /// <param name=\"names\">Flag names, if empty string all flags are returned.</param>\n        /// <param name=\"labels\">Label names that must be defined for each Flag; if empty string, all flags are returned based on the remaining filters.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to all available default flags.</returns>\n        public Task<IApiFlagList> GetFlagsDefaultAsync(IEnumerable<string> names, IEnumerable<string> labels,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// List available live events.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"names\">Live event names, if null or empty, all live events are returned.</param>\n        /// <param name=\"labels\">Label names that must be defined for each Live Event; if empty string, all live events are returned based on the remaining filters.</param>\n        /// <param name=\"pastRunCount\">The maximum number of past event runs to return for each live event.</param>\n        /// <param name=\"futureRunCount\">The maximum number of future event runs to return for each live event.</param>\n        /// <param name=\"startTimeSec\">Start time of the time window filter to apply.</param>\n        /// <param name=\"endTimeSec\">End time of the time window filter to apply.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to a list of live events.</returns>\n        public Task<IApiLiveEventList> GetLiveEventsAsync(\n            ISession session,\n            IEnumerable<string> names = null,\n            IEnumerable<string> labels = null,\n            int? pastRunCount = null,\n            int? futureRunCount = null,\n            string startTimeSec = null,\n            string endTimeSec = null,\n            CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null\n        );\n        \n        /// <summary>\n        /// Join an 'explicit join' live event.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">Live event id to join.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        public Task JoinLiveEventAsync(ISession session, string id = null,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Identify a session with a new ID.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">Identity ID to enrich the current session and return a new session. The old session will\n        /// no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string\n        /// with only underscores and hyphens allowed. </param>\n        /// <param name=\"defaultProperties\">The default properties.</param>\n        /// <param name=\"customProperties\">The custom event properties.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to the new session for the user.</returns>\n        public Task<ISession> IdentifyAsync(ISession session, string id, Dictionary<string, string> defaultProperties,\n            Dictionary<string, string> customProperties, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// List properties associated with this identity.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to a list of live events.</returns>\n        public Task<IApiProperties> ListPropertiesAsync(ISession session,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Refresh a user's session using a refresh token retrieved from a previous authentication request.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task which resolves to a user session.</returns>\n        public Task<ISession> SessionRefreshAsync(ISession session, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Update properties associated with this identity.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"defaultProperties\">The default properties to update.</param>\n        /// <param name=\"customProperties\">The custom properties to update.</param>\n        /// <param name=\"recompute\">Whether or not to recompute the user's audience membership immediately after property update.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task UpdatePropertiesAsync(ISession session, Dictionary<string, string> defaultProperties,\n            Dictionary<string, string> customProperties, bool recompute, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Delete the caller's identity and associated data.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task DeleteIdentityAsync(ISession session, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get all the messages for an identity.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"limit\">Max number of messages to return. Between 1 and 100.</param>\n        /// <param name=\"forward\">True if listing should be older messages to newer, false if reverse.</param>\n        /// <param name=\"cursor\">A pagination cursor, if any.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object which resolves to a list of messages.</returns>\n        public Task<IApiGetMessageListResponse> GetMessageListAsync(ISession session, int limit = 1,\n            bool forward = true, string cursor = null, IEnumerable<string> messageIds = null, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Update the status of a message.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">The message's unique identifier.</param>\n        /// <param name=\"consumeTime\">The time the message was consumed by the identity.</param>\n        /// <param name=\"readTime\">The time the message was read at the client.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task UpdateMessageAsync(ISession session, string id, string consumeTime, string readTime,\n            CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Delete a scheduled message.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"id\">The identifier of the message.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object.</returns>\n        public Task DeleteMessageAsync(ISession session, string id, CancellationToken? cancellationToken = default,\n            RetryConfiguration retryConfiguration = null);\n\n        /// <summary>\n        /// Get all available flags and their value overrides for this identity.\n        /// </summary>\n        /// <param name=\"session\">The session of the user.</param>\n        /// <param name=\"names\">Live event names, if null or empty, all live events are returned.</param>\n        /// <param name=\"labels\">Live event labels, if null or empty, all live events are returned.</param>\n        /// <param name=\"cancellationToken\">The <see cref=\"CancellationToken\"/> that can be used to cancel the request while mid-flight.</param>\n        /// <param name=\"retryConfiguration\">The retry configuration. See <see cref=\"RetryConfiguration\"/></param>\n        /// <returns>A task object which resolves to a list all available flags and their value overrides for this identity.</returns>\n        public Task<IApiFlagOverrideList> GetFlagOverridesAsync(ISession session, IEnumerable<string> names = null,\n            IEnumerable<string> labels = null, CancellationToken? cancellationToken = default, RetryConfiguration retryConfiguration = null);\n    }\n}\n"
  },
  {
    "path": "Satori/IHttpAdapter.cs",
    "content": "﻿// Copyright 2022 The Satori Authors\r\n//\r\n// Licensed under the Apache License, Version 2.0 (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.Threading;\r\nusing System.Threading.Tasks;\r\n\r\nnamespace Satori\r\n{\r\n    /// <summary>\r\n    /// An adapter which implements the HTTP protocol.\r\n    /// </summary>\r\n    public interface IHttpAdapter\r\n    {\r\n        /// <summary>\r\n        /// A delegate used to determine whether or not an error from the server is due to a temporary bad state on the\r\n        /// server (i.e., is 'transient').\r\n        /// </summary>\r\n        TransientExceptionDelegate TransientExceptionDelegate { get; }\r\n\r\n        /// <summary>\r\n        /// The logger to use with the adapter.\r\n        /// </summary>\r\n        ILogger Logger { get; set; }\r\n\r\n        /// <summary>\r\n        /// Send a HTTP request.\r\n        /// </summary>\r\n        /// <param name=\"method\">HTTP method to use for this request.</param>\r\n        /// <param name=\"uri\">The fully qualified URI to use.</param>\r\n        /// <param name=\"headers\">Request headers to set.</param>\r\n        /// <param name=\"body\">Request content body to set.</param>\r\n        /// <param name=\"timeoutSec\">Request timeout.</param>\r\n        /// <param name=\"userCancelToken\">A user-generated token that can be used to cancel the request.</param>\r\n        /// <returns>A task which resolves to the contents of the response.</returns>\r\n        Task<string> SendAsync(string method, Uri uri, IDictionary<string, string> headers, byte[] body, int timeoutSec = 3, CancellationToken? userCancelToken = null);\r\n    }\r\n}\r\n"
  },
  {
    "path": "Satori/IHttpAdapterUtil.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System.Collections.Generic;\n\nnamespace Satori\n{\n    /// <summary>\n    /// Utility methods for the <see cref=\"IHttpAdapter\"> interface.\n    /// NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile\n    /// them properly to WebGL.\n    /// </summary>\n    public static class HttpAdapterUtil\n    {\n        /// <summary>\n        /// Performs an in-place copy of data from Nakama's error response into\n        /// the data dictionary of an <see cref=\"Satori.ApiResponseException\"/>.\n        /// </summary>\n        /// <param name=\"adapter\">The adapter receiving the error response.</param>\n        /// <param name=\"err\"> The decoded error field from the server response.</param>\n        /// <param name=\"e\"> The exception whose data dictionary is being written to.</param>\n        public static void CopyResponseError(IHttpAdapter adapter, object err, ApiResponseException e)\n        {\n            var errString = err as string;\n            var errDict = err as Dictionary<string, object>;\n\n            if (errString != null)\n            {\n                e.Data[\"error\"] = err;\n            }\n            else if (errDict != null)\n            {\n                foreach (KeyValuePair<string, object> keyVal in errDict)\n                {\n                    e.Data[keyVal.Key] = keyVal.Value;\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/ILogger.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Satori\n{\n    /// <summary>\n    /// A simple logger to write log messages to an output sink.\n    /// </summary>\n    public interface ILogger\n    {\n        /// <summary>\n        /// Logs a formatted string with the DEBUG level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void DebugFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the ERROR level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void ErrorFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the INFO level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void InfoFormat(string format, params object[] args);\n\n        /// <summary>\n        /// Logs a formatted string with the WARN level.\n        /// </summary>\n        /// <param name=\"format\">A string with zero or more format items.</param>\n        /// <param name=\"args\">An object array with zero or more objects to format.</param>\n        void WarnFormat(string format, params object[] args);\n    }\n}\n"
  },
  {
    "path": "Satori/ISession.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\n\nnamespace Satori\n{\n    /// <summary>\n    /// A session authenticated for a user with Satori server.\n    /// </summary>\n    public interface ISession\n    {\n        /// <summary>\n        /// The authorization token used to construct this session.\n        /// </summary>\n        string AuthToken { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when this session was created.\n        /// </summary>\n        long CreateTime { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when this session will expire.\n        /// </summary>\n        long ExpireTime { get; }\n\n        /// <summary>\n        /// If the session has expired.\n        /// </summary>\n        bool IsExpired { get; }\n\n        /// <summary>\n        /// If the refresh token has expired.\n        /// </summary>\n        bool IsRefreshExpired { get; }\n\n        /// <summary>\n        /// The UNIX timestamp when the refresh token will expire.\n        /// </summary>\n        long RefreshExpireTime { get; }\n\n        /// <summary>\n        /// Refresh token that can be used for session token renewal.\n        /// </summary>\n        string RefreshToken { get; }\n\n        /// <summary>\n        /// The ID of the user who owns this session.\n        /// </summary>\n        string IdentityId { get; }\n\n        /// <summary>\n        /// Check the session has expired against the offset time.\n        /// </summary>\n        /// <param name=\"offset\">The datetime to compare against this session.</param>\n        /// <returns>If the session has expired.</returns>\n        bool HasExpired(DateTime offset);\n\n        /// <summary>\n        /// Check if the refresh token has expired against the offset time.\n        /// </summary>\n        /// <param name=\"offset\">The datetime to compare against this refresh token.</param>\n        /// <returns>If refresh token has expired.</returns>\n        bool HasRefreshExpired(DateTime offset);\n    }\n}\n"
  },
  {
    "path": "Satori/NullLogger.cs",
    "content": "// Copyright 2025 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nnamespace Satori\n{\n    /// <summary>\n    /// A logger which writes to nowhere.\n    /// </summary>\n    internal class NullLogger : ILogger\n    {\n        public static readonly ILogger Instance = new NullLogger();\n\n        private NullLogger()\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.DebugFormat\"/>\n        public void DebugFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.ErrorFormat\"/>\n        public void ErrorFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.InfoFormat\"/>\n        public void InfoFormat(string format, params object[] args)\n        {\n        }\n\n        /// <inheritdoc cref=\"ILogger.WarnFormat\"/>\n        public void WarnFormat(string format, params object[] args)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/PreserveAttribute.cs",
    "content": "/*\n * Copyright 2022 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Satori\n{\n    /// <summary>\n    /// A custom attribute recognized by Unity3D. When added to a class member, it prevents\n    /// the Unity linker from stripping the code it is associated with. This is used in addition\n    /// to the link.xml file because the Unity Package Manager does not recognize link.xml files\n    /// inside Unity packages.\n    /// https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\n    /// </summary>\n    internal class PreserveAttribute : System.Attribute\n    {\n    }\n}\n"
  },
  {
    "path": "Satori/Retry.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Satori\n{\n    /// <summary>\n    /// Represents a single retry attempt.\n    /// </summary>\n    public class Retry\n    {\n        /// <summary>\n        /// The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm.\n        /// </summary>\n        public int ExponentialBackoff { get; }\n\n        /// <summary>\n        /// The delay (milliseconds) in the request retry attributable to the jitter algorithm.\n        /// </summary>\n        public int JitterBackoff { get; }\n\n        internal Retry(int expoBackoff, int jitterBackoff)\n        {\n            ExponentialBackoff = expoBackoff;\n            JitterBackoff = jitterBackoff;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/RetryConfiguration.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Satori\n{\n    /// <summary>\n    /// A configuration for controlling retriable requests.\n    /// </summary>\n    /// <remarks>\n    /// Retry configurations can be assigned to the <see cref=\"IClient\"/> on a request-by-request basis via\n    /// the see <cref=\"RequestConfiguration\"/> parameter.\n    ///\n    /// Retry configurations can also be assigned on a global basis using <see cref=\"IClient.GlobalRetryConfiguration\"/>.\n    /// Configurations passed via the see <cref=\"RequestConfiguraiton\"/> parameter take precedence over the global configuration.\n    /// </remarks>\n    public class RetryConfiguration\n    {\n        /// <summary>\n        /// The base delay (milliseconds) used to calculate the time before making another request attempt.\n        /// This base will be raised to N, where N is the number of retry attempts.\n        /// </summary>\n        public int BaseDelayMs { get; }\n\n        /// <summary>\n        /// The jitter algorithm used to apply randomness to the retry delay. Defaults to <see cref=\"RetryJitter.FullJitter\"/>\n        /// </summary>\n        public Jitter Jitter { get; }\n\n        /// <summary>\n        /// The maximum number of attempts to make before cancelling the request task.\n        /// </summary>\n        public int MaxAttempts { get; }\n\n        /// <summary>\n        /// A callback that is invoked before a new retry attempt is made.\n        /// </summary>\n        public RetryListener RetryListener { get; }\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries) :\n            this(baseDelayMs, maxRetries, null, RetryJitter.FullJitter) {}\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        /// <param name=\"listener\">A callback that is invoked before a new retry attempt is made.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener) :\n            this(baseDelayMs, maxRetries, listener, RetryJitter.FullJitter) {}\n\n        /// <summary>\n        /// Create a new retry configuration.\n        /// </summary>\n        /// <param name=\"baseDelayMs\">The base delay (milliseconds) used to calculate the time before making another request attempt.</param>\n        /// <param name=\"maxRetries\">The maximum number of attempts to make before cancelling the request task.</param>\n        /// <param name=\"listener\">A callback that is invoked before a new retry attempt is made.</param>\n        /// <param name=\"jitter\">The jitter algorithm used to apply randomness to the retry delay.</param>\n        public RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)\n        {\n            BaseDelayMs = baseDelayMs;\n            RetryListener = listener;\n            MaxAttempts = maxRetries;\n            Jitter = jitter;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/RetryHistory.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\n\nnamespace Satori\n{\n    internal class RetryHistory\n    {\n        public RetryConfiguration Configuration { get; }\n        public List<Retry> Retries { get; }\n        public CancellationToken? UserCancelToken { get; }\n        public Random Random { get; }\n\n        public RetryHistory(ISession session, RetryConfiguration configuration, CancellationToken? userCancelToken) : this(session.AuthToken, configuration, userCancelToken)\n        {\n        }\n\n        public RetryHistory(string jitterHashKey, RetryConfiguration configuration, CancellationToken? userCancelToken)\n        {\n            Configuration = configuration;\n            Retries = new List<Retry>();\n            UserCancelToken = userCancelToken;\n            Random = new Random(jitterHashKey.GetHashCode());\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/RetryInvoker.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Threading.Tasks;\n\nnamespace Satori\n{\n    /// <summary>\n    /// Invokes requests with retry and exponential backoff.\n    /// </summary>\n    internal class RetryInvoker\n    {\n        private readonly TransientExceptionDelegate _del;\n\n        public RetryInvoker(TransientExceptionDelegate del)\n        {\n            if (del == null)\n            {\n                throw new ArgumentException(\"Cannot initialize retry invoker with a null transient exception delegate.\");\n            }\n\n            _del = del;\n        }\n\n        public async Task<T> InvokeWithRetry<T>(Func<Task<T>> request, RetryHistory history)\n        {\n            try\n            {\n                return await request();\n            }\n            catch (Exception e)\n            {\n                if (history.Configuration != null && _del(e))\n                {\n                    await Backoff(history, e);\n                    return await InvokeWithRetry<T>(request, history);\n                }\n                else\n                {\n                    throw;\n                }\n            }\n        }\n\n        public async Task InvokeWithRetry(Func<Task> request, RetryHistory history)\n        {\n            try\n            {\n                await request();\n            }\n            catch (Exception e)\n            {\n                if (history.Configuration != null && _del(e))\n                {\n                    await Backoff(history, e);\n                    await InvokeWithRetry(request, history);\n                }\n                else\n                {\n                    throw;\n                }\n            }\n        }\n\n        private Retry CreateNewRetry(RetryHistory history)\n        {\n            int expoBackoff = System.Convert.ToInt32(Math.Pow(2, history.Retries.Count)) * history.Configuration.BaseDelayMs;\n            int jitteredBackoff = history.Configuration.Jitter(history.Retries, expoBackoff, history.Random);\n            return new Retry(expoBackoff, jitteredBackoff);\n        }\n\n        private Task Backoff(RetryHistory history, Exception e)\n        {\n            if (history.Retries.Count >= history.Configuration.MaxAttempts)\n            {\n                throw new TaskCanceledException(\"Exceeded max retry attempts.\", e);\n            }\n\n            Retry newRetry = CreateNewRetry(history);\n            history.Retries.Add(newRetry);\n            history.Configuration.RetryListener?.Invoke(history.Retries.Count, newRetry);\n\n            if (history.UserCancelToken.HasValue)\n            {\n                return Task.Delay(newRetry.JitterBackoff, history.UserCancelToken.Value);\n            }\n            else\n            {\n                return Task.Delay(newRetry.JitterBackoff);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/RetryJitter.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nusing System;\nusing System.Collections.Generic;\n\nnamespace Satori\n{\n    /// <summary>\n    /// The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\n    /// </summary>\n    /// <param name=\"retryHistory\">Information about previous retry attempts.</param>\n    /// <param name=\"retryDelay\">A delay (milliseconds) between the last failed attempt in the retry history\n    /// and the next upcoming attempt.</param>\n    /// <param name=\"random\">A <see cref=\"Random\"/> object that has been seeded by <see cref=\"IClient.RetryJitterSeed\"/>.\n    /// <returns>A new delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</returns>\n    public delegate int Jitter(IList<Retry> retryHistory, int retryDelay, Random random);\n\n    /// <summary>\n    /// A collection of <see cref=\"Jitter\"/> algorithms.\n    /// </summary>\n    public static class RetryJitter\n    {\n        /// <summary>\n        /// FullJitter is a Jitter algorithm that selects a random point between now and the next retry time.\n        /// </summary>\n        public static int FullJitter(IList<Retry> retries, int retryDelay, Random random)\n        {\n            return System.Convert.ToInt32(retryDelay * random.NextDouble());\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/RetryListener.cs",
    "content": "/*\n * Copyright 2024 Heroic Labs\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nnamespace Satori\n{\n    /// <summary>\n    /// Listens to retry events for a particular request.\n    /// </summary>\n    /// <param name=\"numRetry\">The number of retries made so far, including this retry.</param>\n    /// <param name=\"retry\">An holding inromation about the retry attempt.</param>\n    public delegate void RetryListener(int numRetry, Retry retry);\n}\n"
  },
  {
    "path": "Satori/Satori.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n    <PropertyGroup>\n        <TargetFrameworks>net46;netstandard2.1</TargetFrameworks>\n        <LangVersion>8</LangVersion>\n\n        <GenerateAssemblyInfo>true</GenerateAssemblyInfo>\n        <AssemblyVersion>3.0.0.0</AssemblyVersion>\n        <FileVersion>3.0.0.0</FileVersion>\n        <InformationalVersion Condition=\"'$(GitTag)' == ''\">3.0.0-dev</InformationalVersion>\n        <PackageReadmeFile>README.md</PackageReadmeFile>\n    </PropertyGroup>\n\n    <ItemGroup>\n        <PackageReference Include=\"System.Net.Http\" Version=\"4.3.4\"/>\n    </ItemGroup>\n\n    <ItemGroup>\n        <None Include=\"../README.md\" Pack=\"true\" PackagePath=\"README.md\"/>\n    </ItemGroup>\n\n    <Target Name=\"GetGitTag\" BeforeTargets=\"BeforeBuild\">\n        <Exec Command=\"git describe --tags\" ConsoleToMsBuild=\"true\" ContinueOnError=\"true\">\n            <Output TaskParameter=\"ConsoleOutput\" PropertyName=\"GitTag\"/>\n        </Exec>\n        <Message Text=\"Git describe output: '$(GitTag)'\" Importance=\"High\"/>\n        <PropertyGroup>\n            <InformationalVersion Condition=\"'$(GitTag)' != ''\">$([System.String]::new('$(GitTag)').Substring(1))</InformationalVersion>\n        </PropertyGroup>\n    </Target>\n\n    <PropertyGroup Label=\"NuGet package definition\" Condition=\" '$(Configuration)' == 'Release' \">\n        <Authors>Satori Authors &amp; contributors</Authors>\n        <Company>Heroic Labs</Company>\n        <Description>\n            Satori is a LiveOps server for games.\n\n            Run activities on the Event Calendar and optimize player experiences with Audiences, Feature Flags, and Experiments.\n        </Description>\n        <PackageId>SatoriClient</PackageId>\n        <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>\n        <PackageTags>gameserver;client-library;satori;liveops</PackageTags>\n        <RepositoryUrl>https://github.com/heroiclabs/nakama-dotnet</RepositoryUrl>\n    </PropertyGroup>\n</Project>\n"
  },
  {
    "path": "Satori/Session.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing Satori.TinyJson;\n\nnamespace Satori\n{\n    /// <inheritdoc cref=\"ISession\"/>\n    public class Session : ISession\n    {\n        public static readonly DateTime Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);\n\n        /// <inheritdoc cref=\"ISession.AuthToken\"/>\n        public string AuthToken { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.CreateTime\"/>\n        public long CreateTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.ExpireTime\"/>\n        public long ExpireTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.IsExpired\"/>\n        public bool IsExpired => HasExpired(DateTime.UtcNow);\n\n        /// <inheritdoc cref=\"IsRefreshExpired\"/>\n        public bool IsRefreshExpired => HasRefreshExpired(DateTime.UtcNow);\n\n        /// <inheritdoc cref=\"ISession.RefreshExpireTime\"/>\n        public long RefreshExpireTime { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.RefreshToken\"/>\n        public string RefreshToken { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.IdentityId\"/>\n        public string IdentityId { get; private set; }\n\n        /// <inheritdoc cref=\"ISession.HasExpired\"/>\n        public bool HasExpired(DateTime offset)\n        {\n            var expireDateTime = Epoch + TimeSpan.FromSeconds(ExpireTime);\n            return offset > expireDateTime;\n        }\n\n        /// <inheritdoc cref=\"ISession.HasRefreshExpired\"/>\n        public bool HasRefreshExpired(DateTime offset)\n        {\n            var expireDateTime = Epoch + TimeSpan.FromSeconds(RefreshExpireTime);\n            return offset > expireDateTime;\n        }\n\n        public override string ToString()\n        {\n            return\n                $\"Session(AuthToken='{AuthToken}', ExpireTime={ExpireTime}, RefreshToken={RefreshToken}, RefreshExpireTime={RefreshExpireTime}, UserId='{IdentityId}')\";\n        }\n\n        internal Session(string authToken, string refreshToken)\n        {\n            RefreshExpireTime = 0L;\n            Update(authToken, refreshToken);\n        }\n\n        /// <summary>\n        /// Update the current session token with a new authorization token and refresh token.\n        /// </summary>\n        /// <param name=\"authToken\">The authorization token to update into the session.</param>\n        /// <param name=\"refreshToken\">The refresh token to update into the session.</param>\n        public void Update(string authToken, string refreshToken)\n        {\n            AuthToken = authToken;\n            RefreshToken = refreshToken;\n\n            var json = JwtUnpack(authToken);\n            var decoded = json.FromJson<Dictionary<string, object>>();\n            ExpireTime = Convert.ToInt64(decoded[\"exp\"]);\n            IdentityId = decoded[\"iid\"].ToString();\n\n            if (decoded.TryGetValue(\"iat\", out var value))\n            {\n                CreateTime = Convert.ToInt64(value);\n            }\n\n            // Check in case clients have not updated to use refresh tokens yet.\n            if (!string.IsNullOrEmpty(refreshToken))\n            {\n                var json2 = JwtUnpack(refreshToken);\n                var decoded2 = json2.FromJson<Dictionary<string, object>>();\n                RefreshExpireTime = Convert.ToInt64(decoded2[\"exp\"]);\n            }\n        }\n\n        /// <summary>\n        /// Restore a session from the auth token.\n        /// </summary>\n        /// <remarks>\n        /// A <c>null</c> or empty authentication token will return null.\n        /// </remarks>\n        /// <param name=\"authToken\">The authorization token to restore as a session.</param>\n        /// <param name=\"refreshToken\">The refresh token for the session.</param>\n        /// <returns>A session.</returns>\n        public static ISession Restore(string authToken, string refreshToken = null)\n        {\n            return string.IsNullOrEmpty(authToken) ? null : new Session(authToken, refreshToken);\n        }\n\n        private static string JwtUnpack(string jwt)\n        {\n            // Hack decode JSON payload from JWT.\n            var payload = jwt.Split('.')[1];\n            var padLength = Math.Ceiling(payload.Length / 4.0) * 4;\n            payload = payload.PadRight(Convert.ToInt32(padLength), '=').Replace('-', '+').Replace('_', '/');\n            return System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(payload));\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/TinyJson/JsonParser.cs",
    "content": "// The MIT License (MIT)\n//\n// Copyright (c) 2018 Alex Parker\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files(the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions :\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nusing System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\nusing System.Runtime.Serialization;\nusing System.Text;\nusing System.Text.RegularExpressions;\n\nnamespace Satori.TinyJson\n{\n    // Really simple JSON parser in ~300 lines\n    // - Attempts to parse JSON files with minimal GC allocation\n    // - Nice and simple \"[1,2,3]\".FromJson<List<int>>() API\n    // - Classes and structs can be parsed too!\n    //      class Foo { public int Value; }\n    //      \"{\\\"Value\\\":10}\".FromJson<Foo>()\n    // - Can parse JSON without type information into Dictionary<string,object> and List<object> e.g.\n    //      \"[1,2,3]\".FromJson<object>().GetType() == typeof(List<object>)\n    //      \"{\\\"Value\\\":10}\".FromJson<object>().GetType() == typeof(Dictionary<string,object>)\n    // - No JIT Emit support to support AOT compilation on iOS\n    // - Attempts are made to NOT throw an exception if the JSON is corrupted or invalid: returns null instead.\n    // - Only public fields and property setters on classes/structs will be written to\n    //\n    // Limitations:\n    // - No JIT Emit support to parse structures quickly\n    // - Limited to parsing <2GB JSON files (due to int.MaxValue)\n    // - Parsing of abstract classes or interfaces is NOT supported and will throw an exception.\n    public static class JsonParser\n    {\n        [ThreadStatic] private static Stack<List<string>> _splitArrayPool;\n        [ThreadStatic] private static StringBuilder _stringBuilder;\n        [ThreadStatic] private static Dictionary<Type, Dictionary<string, FieldInfo>> _fieldInfoCache;\n        [ThreadStatic] private static Dictionary<Type, Dictionary<string, PropertyInfo>> _propertyInfoCache;\n\n        public static T FromJson<T>(this string json)\n        {\n            // Initialize, if needed, the ThreadStatic variables\n            if (_propertyInfoCache == null)\n            {\n                _propertyInfoCache = new Dictionary<Type, Dictionary<string, PropertyInfo>>();\n            }\n\n            if (_fieldInfoCache == null)\n            {\n                _fieldInfoCache = new Dictionary<Type, Dictionary<string, FieldInfo>>();\n            }\n\n            if (_stringBuilder == null)\n            {\n                _stringBuilder = new StringBuilder();\n            }\n\n            if (_splitArrayPool == null)\n            {\n                _splitArrayPool = new Stack<List<string>>();\n            }\n\n            // Remove all whitespace not within strings to make parsing simpler\n            _stringBuilder.Length = 0;\n            for (var i = 0; i < json.Length; i++)\n            {\n                var c = json[i];\n                if (c == '\"')\n                {\n                    i = AppendUntilStringEnd(true, i, json);\n                    continue;\n                }\n\n                if (char.IsWhiteSpace(c))\n                    continue;\n\n                _stringBuilder.Append(c);\n            }\n\n            //Parse the thing!\n            return (T) ParseValue(typeof(T), _stringBuilder.ToString());\n        }\n\n        private static int AppendUntilStringEnd(bool appendEscapeCharacter, int startIdx, string json)\n        {\n            _stringBuilder.Append(json[startIdx]);\n            for (var i = startIdx + 1; i < json.Length; i++)\n            {\n                if (json[i] == '\\\\')\n                {\n                    if (appendEscapeCharacter)\n                        _stringBuilder.Append(json[i]);\n                    _stringBuilder.Append(json[i + 1]);\n                    i++; //Skip next character as it is escaped\n                }\n                else if (json[i] == '\"')\n                {\n                    _stringBuilder.Append(json[i]);\n                    return i;\n                }\n                else\n                {\n                    _stringBuilder.Append(json[i]);\n                }\n            }\n\n            return json.Length - 1;\n        }\n\n        //Splits { <value>:<value>, <value>:<value> } and [ <value>, <value> ] into a list of <value> strings\n        private static List<string> Split(string json)\n        {\n            var splitArray = _splitArrayPool.Count > 0 ? _splitArrayPool.Pop() : new List<string>();\n            splitArray.Clear();\n            if (json.Length == 2)\n                return splitArray;\n            var parseDepth = 0;\n            _stringBuilder.Length = 0;\n            for (var i = 1; i < json.Length - 1; i++)\n            {\n                if (json[i] == '[' || json[i] == '{')\n                {\n                    parseDepth++;\n                }\n                else if (json[i] == ']' || json[i] == '}')\n                {\n                    parseDepth--;\n                }\n                else if (json[i] == '\"')\n                {\n                    i = AppendUntilStringEnd(true, i, json);\n                    continue;\n                }\n                else if (json[i] == ',' || json[i] == ':')\n                {\n                    if (parseDepth == 0)\n                    {\n                        splitArray.Add(_stringBuilder.ToString());\n                        _stringBuilder.Length = 0;\n                        continue;\n                    }\n                }\n\n                _stringBuilder.Append(json[i]);\n            }\n\n            splitArray.Add(_stringBuilder.ToString());\n\n            return splitArray;\n        }\n\n        private static object ParseValue(Type type, string json)\n        {\n            if (type == typeof(string))\n            {\n                // Return the raw value if it is unquoted (e.g. a number)\n                var validQuotes = new[] {'\"', '\\''};\n                if (json.Length > 0 && !validQuotes.Contains(json[0]) && !validQuotes.Contains(json[json.Length-1]))\n                {\n                    return json;\n                }\n\n                if (json.Length <= 2)\n                    return string.Empty;\n\n                var parseStringBuilder = new StringBuilder(json.Length);\n\n                for (var i = 1; i < json.Length - 1; ++i)\n                {\n                    if (json[i] == '\\\\' && i + 1 < json.Length - 1)\n                    {\n                        var j = \"\\\"\\\\nrtbf/\".IndexOf(json[i + 1]);\n                        if (j >= 0)\n                        {\n                            parseStringBuilder.Append(\"\\\"\\\\\\n\\r\\t\\b\\f/\"[j]);\n                            ++i;\n                            continue;\n                        }\n\n                        if (json[i + 1] == 'u' && i + 5 < json.Length - 1)\n                        {\n                            uint c;\n                            if (uint.TryParse(json.Substring(i + 2, 4),\n                                    System.Globalization.NumberStyles.AllowHexSpecifier, null, out c))\n                            {\n                                parseStringBuilder.Append((char) c);\n                                i += 5;\n                                continue;\n                            }\n                        }\n                    }\n\n                    parseStringBuilder.Append(json[i]);\n                }\n\n                return parseStringBuilder.ToString();\n            }\n\n            if (type.IsPrimitive)\n            {\n                var result = Convert.ChangeType(json, type, System.Globalization.CultureInfo.InvariantCulture);\n                return result;\n            }\n\n            if (type == typeof(decimal))\n            {\n                decimal result;\n                decimal.TryParse(json, System.Globalization.NumberStyles.Float,\n                    System.Globalization.CultureInfo.InvariantCulture, out result);\n                return result;\n            }\n\n            if (json == \"null\")\n            {\n                return null;\n            }\n\n            if (type.IsEnum)\n            {\n                if (json[0] == '\"')\n                    json = json.Substring(1, json.Length - 2);\n                try\n                {\n                    return Enum.Parse(type, json, false);\n                }\n                catch\n                {\n                    return 0;\n                }\n            }\n\n            if (type.IsArray)\n            {\n                var arrayType = type.GetElementType();\n                if (json[0] != '[' || json[json.Length - 1] != ']')\n                    return null;\n\n                var elems = Split(json);\n                var newArray = Array.CreateInstance(arrayType, elems.Count);\n                for (var i = 0; i < elems.Count; i++)\n                    newArray.SetValue(ParseValue(arrayType, elems[i]), i);\n                _splitArrayPool.Push(elems);\n                return newArray;\n            }\n\n            if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))\n            {\n                var listType = type.GetGenericArguments()[0];\n                if (json[0] != '[' || json[json.Length - 1] != ']')\n                    return null;\n\n                var elems = Split(json);\n                var list = (IList) type.GetConstructor(new Type[] {typeof(int)}).Invoke(new object[] {elems.Count});\n                foreach (var t in elems)\n                    list.Add(ParseValue(listType, t));\n\n                _splitArrayPool.Push(elems);\n                return list;\n            }\n\n            if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Dictionary<,>))\n            {\n                Type keyType, valueType;\n                {\n                    var args = type.GetGenericArguments();\n                    keyType = args[0];\n                    valueType = args[1];\n                }\n\n                // Refuse to parse dictionary keys that aren't of type string\n                if (keyType != typeof(string))\n                    return null;\n                // Must be a valid dictionary element\n                if (json[0] != '{' || json[json.Length - 1] != '}')\n                    return null;\n                // The list is split into key/value pairs only, this means the split must be divisible by 2 to be valid JSON\n                var elems = Split(json);\n                if (elems.Count % 2 != 0)\n                    return null;\n\n                var dictionary = (IDictionary) type.GetConstructor(new Type[] {typeof(int)})\n                    .Invoke(new object[] {elems.Count / 2});\n                for (var i = 0; i < elems.Count; i += 2)\n                {\n                    if (elems[i].Length <= 2)\n                        continue;\n                    var keyValue = elems[i].Substring(1, elems[i].Length - 2);\n                    var val = ParseValue(valueType, elems[i + 1]);\n                    dictionary.Add(keyValue, val);\n                }\n\n                return dictionary;\n            }\n\n            if (type == typeof(object))\n            {\n                return ParseAnonymousValue(json);\n            }\n\n            if (json[0] == '{' && json[json.Length - 1] == '}')\n            {\n                return ParseObject(type, json);\n            }\n\n            return null;\n        }\n\n        private static object ParseAnonymousValue(string json)\n        {\n            if (json.Length == 0)\n                return null;\n            if (json[0] == '{' && json[json.Length - 1] == '}')\n            {\n                var elems = Split(json);\n                if (elems.Count % 2 != 0)\n                    return null;\n                var dict = new Dictionary<string, object>(elems.Count / 2);\n                for (var i = 0; i < elems.Count; i += 2)\n                    dict.Add(elems[i].Substring(1, elems[i].Length - 2), ParseAnonymousValue(elems[i + 1]));\n                return dict;\n            }\n\n            if (json[0] == '[' && json[json.Length - 1] == ']')\n            {\n                var items = Split(json);\n                var finalList = new List<object>(items.Count);\n                foreach (var t in items)\n                    finalList.Add(ParseAnonymousValue(t));\n\n                return finalList;\n            }\n\n            if (json[0] == '\"' && json[json.Length - 1] == '\"')\n            {\n                var str = json.Substring(1, json.Length - 2);\n                return str.Replace(\"\\\\\", string.Empty);\n            }\n\n            if (char.IsDigit(json[0]) || json[0] == '-')\n            {\n                if (json.Contains(\".\"))\n                {\n                    double result;\n                    double.TryParse(json, System.Globalization.NumberStyles.Float,\n                        System.Globalization.CultureInfo.InvariantCulture, out result);\n                    return result;\n                }\n                else\n                {\n                    int result;\n                    int.TryParse(json, out result);\n                    return result;\n                }\n            }\n\n            if (json == \"true\")\n                return true;\n            if (json == \"false\")\n                return false;\n            // handles json == \"null\" as well as invalid JSON\n            return null;\n        }\n\n        private static Dictionary<string, T> CreateMemberNameDictionary<T>(IEnumerable<T> members) where T : MemberInfo\n        {\n            // NOTE The StringComparer is disabled intentionally because of how our generated code.\n//            var nameToMember = new Dictionary<string, T>(StringComparer.OrdinalIgnoreCase);\n            var nameToMember = new Dictionary<string, T>();\n            foreach (var member in members)\n            {\n                if (member.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                    continue;\n\n                var name = member.Name;\n                if (member.IsDefined(typeof(DataMemberAttribute), true))\n                {\n                    var dataMemberAttribute =\n                        (DataMemberAttribute) Attribute.GetCustomAttribute(member, typeof(DataMemberAttribute), true);\n                    if (!string.IsNullOrEmpty(dataMemberAttribute.Name))\n                        name = dataMemberAttribute.Name;\n                }\n\n                nameToMember.Add(name, member);\n            }\n\n            return nameToMember;\n        }\n\n        private static object ParseObject(Type type, string json)\n        {\n            var instance = FormatterServices.GetUninitializedObject(type);\n\n            // The list is split into key/value pairs only, this means the split must be divisible by 2 to be valid JSON\n            var elems = Split(json);\n            if (elems.Count % 2 != 0)\n                return instance;\n\n            Dictionary<string, FieldInfo> nameToField;\n            Dictionary<string, PropertyInfo> nameToProperty;\n            if (!_fieldInfoCache.TryGetValue(type, out nameToField))\n            {\n                nameToField = CreateMemberNameDictionary(\n                    type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy));\n                _fieldInfoCache.Add(type, nameToField);\n            }\n\n            if (!_propertyInfoCache.TryGetValue(type, out nameToProperty))\n            {\n                nameToProperty = CreateMemberNameDictionary(\n                    type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy));\n                _propertyInfoCache.Add(type, nameToProperty);\n            }\n\n            for (var i = 0; i < elems.Count; i += 2)\n            {\n                if (elems[i].Length <= 2)\n                    continue;\n                var key = elems[i].Substring(1, elems[i].Length - 2);\n                var value = elems[i + 1];\n\n                FieldInfo fieldInfo;\n                PropertyInfo propertyInfo;\n                if (nameToField.TryGetValue(key, out fieldInfo))\n                    fieldInfo.SetValue(instance, ParseValue(fieldInfo.FieldType, value));\n                else if (nameToProperty.TryGetValue(key, out propertyInfo))\n                    propertyInfo.SetValue(instance, ParseValue(propertyInfo.PropertyType, value), null);\n            }\n\n            return instance;\n        }\n    }\n}"
  },
  {
    "path": "Satori/TinyJson/JsonWriter.cs",
    "content": "// The MIT License (MIT)\n//\n// Copyright (c) 2018 Alex Parker\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files(the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions :\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nusing System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Reflection;\nusing System.Runtime.Serialization;\nusing System.Text;\n\nnamespace Satori.TinyJson\n{\n    // Really simple JSON writer\n    // - Outputs JSON structures from an object\n    // - Really simple API (new List<int> { 1, 2, 3 }).ToJson() == \"[1,2,3]\"\n    // - Will only output public fields and property getters on objects\n    public static class JsonWriter\n    {\n        public static string ToJson(this object item)\n        {\n            var stringBuilder = new StringBuilder();\n            AppendValue(stringBuilder, item);\n            return stringBuilder.ToString();\n        }\n\n        private static void AppendValue(StringBuilder stringBuilder, object item)\n        {\n            if (item == null)\n            {\n                stringBuilder.Append(\"null\");\n                return;\n            }\n\n            var type = item.GetType();\n            if (type == typeof(string) || type == typeof(char))\n            {\n                stringBuilder.Append('\"');\n                var str = (string) item;\n                foreach (var t in str)\n                    if (t < ' ' || t == '\"' || t == '\\\\')\n                    {\n                        stringBuilder.Append('\\\\');\n                        var j = \"\\\"\\\\\\n\\r\\t\\b\\f\".IndexOf(t);\n                        if (j >= 0)\n                            stringBuilder.Append(\"\\\"\\\\nrtbf\"[j]);\n                        else\n                            stringBuilder.AppendFormat(\"u{0:X4}\", (uint) t);\n                    }\n                    else\n                        stringBuilder.Append(t);\n\n                stringBuilder.Append('\"');\n            }\n            else if (type == typeof(byte) || type == typeof(sbyte))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(short) || type == typeof(ushort))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(int) || type == typeof(uint))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(long) || type == typeof(ulong))\n            {\n                stringBuilder.Append(item);\n            }\n            else if (type == typeof(float))\n            {\n                stringBuilder.Append(((float) item).ToString(System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof(double))\n            {\n                stringBuilder.Append(((double) item).ToString(System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof (decimal)) {\n                stringBuilder.Append (((decimal) item).ToString (System.Globalization.CultureInfo.InvariantCulture));\n            }\n            else if (type == typeof(bool))\n            {\n                stringBuilder.Append((bool) item ? \"true\" : \"false\");\n            }\n            else if (type.IsEnum)\n            {\n                stringBuilder.Append('\"');\n                stringBuilder.Append(item);\n                stringBuilder.Append('\"');\n            }\n            else if (item is IList)\n            {\n                stringBuilder.Append('[');\n                var isFirst = true;\n                var list = (IList) item;\n                foreach (var t in list)\n                {\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    AppendValue(stringBuilder, t);\n                }\n                stringBuilder.Append(']');\n            }\n            else if (item is IDictionary dict)\n            {\n                var keyType = type.GetGenericArguments()[0];\n\n                //Refuse to output dictionary keys that aren't of type string\n                if (keyType != typeof(string))\n                {\n                    stringBuilder.Append(\"{}\");\n                    return;\n                }\n\n                stringBuilder.Append('{');\n                var isFirst = true;\n                foreach (var key in dict.Keys)\n                {\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append((string) key);\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, dict[key]);\n                }\n                stringBuilder.Append('}');\n            }\n            else\n            {\n                stringBuilder.Append('{');\n\n                var isFirst = true;\n                var fieldInfos =\n                    type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);\n                foreach (var t in fieldInfos)\n                {\n                    if (t.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                        continue;\n\n                    var value = t.GetValue(item);\n                    if (value == null) continue;\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append(GetMemberName(t));\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, value);\n                }\n\n                var propertyInfo =\n                    type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);\n                foreach (var t in propertyInfo)\n                {\n                    if (!t.CanRead || t.IsDefined(typeof(IgnoreDataMemberAttribute), true))\n                        continue;\n\n                    var value = t.GetValue(item, null);\n                    if (value == null) continue;\n                    if (isFirst)\n                        isFirst = false;\n                    else\n                        stringBuilder.Append(',');\n                    stringBuilder.Append('\\\"');\n                    stringBuilder.Append(GetMemberName(t));\n                    stringBuilder.Append(\"\\\":\");\n                    AppendValue(stringBuilder, value);\n                }\n\n                stringBuilder.Append('}');\n            }\n        }\n\n        private static string GetMemberName(MemberInfo member)\n        {\n            if (!member.IsDefined(typeof(DataMemberAttribute), true)) return member.Name;\n            var dataMemberAttribute =\n                (DataMemberAttribute) Attribute.GetCustomAttribute(member, typeof(DataMemberAttribute), true);\n            return !string.IsNullOrEmpty(dataMemberAttribute.Name) ? dataMemberAttribute.Name : member.Name;\n        }\n    }\n}\n"
  },
  {
    "path": "Satori/TinyJson/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018 Alex Parker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "Satori/TransientExceptionDelegate.cs",
    "content": "// Copyright 2022 The Satori Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\n\nnamespace Satori\n{\n    /// <summary>\n    /// A delegate used to determine whether or not a network exception is\n    /// due to a temporary bad state on the server. For example, timeouts can be transient in cases where\n    /// the server is experiencing temporarily high load.\n    /// </summary>\n    public delegate bool TransientExceptionDelegate(Exception e);\n}\n"
  },
  {
    "path": "Satori.Tests/ClientIdentifyTest.cs",
    "content": "// Copyright 2022 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Collections.Generic;\nusing System.Threading;\nusing System.Threading.Tasks;\nusing Xunit;\nusing Xunit.Abstractions;\n\nnamespace Satori.Tests\n{\n    public class ClientIdentifyTest\n    {\n        private readonly Client _client;\n        private readonly ITestOutputHelper _outputHelper;\n\n        public ClientIdentifyTest(ITestOutputHelper helper)\n        {\n            _client = new Client(\"http\", \"127.0.0.1\", 7450, \"55050223-cffb-4d92-b9fe-8a6219e0f87b\");\n            _outputHelper = helper;\n        }\n\n        [Fact]\n        public async Task IdentifyEvents()\n        {\n            var session1 = await _client.AuthenticateAsync(\"11111111-0000-0000-0000-000000000000\");\n\n            var props1 = new Dictionary<string, string> { { \"email\", \"a@b.com\" }, { \"pushTokenIos\", \"foo\" } };\n            var customProps1 = new Dictionary<string, string> { { \"earlyAccess\", \"true\" } };\n            await _client.UpdatePropertiesAsync(session1, props1, customProps1);\n\n            var events = new[]\n                { new Event(\"awardReceived\", DateTime.UtcNow), new Event(\"inventoryUpdated\", DateTime.UtcNow) };\n            await _client.EventsAsync(session1, events);\n\n            Thread.Sleep(2000);\n\n            var session2 = await _client.AuthenticateAsync(\"22222222-0000-0000-0000-000000000000\");\n\n            var props2 = new Dictionary<string, string> { { \"email\", \"a@b.com\" }, { \"pushTokenAndroid\", \"bar\" } };\n            var customProps2 = new Dictionary<string, string> { { \"earlyAccess\", \"false\" } };\n            await _client.UpdatePropertiesAsync(session2, props2, customProps2);\n\n            Thread.Sleep(2000);\n\n            var session = await _client.IdentifyAsync(session1, \"22222222-0000-0000-0000-000000000000\",\n                new Dictionary<string, string>(), new Dictionary<string, string>());\n\n            Assert.NotNull(session);\n            Assert.Equal(\"22222222-0000-0000-0000-000000000000\", session.IdentityId);\n\n            var props = await _client.ListPropertiesAsync(session);\n            Assert.NotEmpty(props.Default);\n            Assert.NotEmpty(props.Custom);\n\n            foreach (var prop in props.Default)\n            {\n                switch (prop.Key)\n                {\n                    case \"email\":\n                        Assert.Equal(\"a@b.com\", prop.Value);\n                        break;\n                    case \"pushTokenAndroid\":\n                        Assert.Equal(\"bar\", prop.Value);\n                        break;\n                    case \"pushTokenIos\":\n                        Assert.Equal(\"foo\", prop.Value);\n                        break;\n                }\n            }\n\n            foreach (var prop in props.Custom)\n            {\n                switch (prop.Key)\n                {\n                    case \"earlyAccess\":\n                        Assert.Equal(\"false\", prop.Value);\n                        break;\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Satori.Tests/ClientTest.cs",
    "content": "// Copyright 2022 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nusing System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing Xunit;\n\nnamespace Satori.Tests\n{\n    public class ClientTest\n    {\n        private const string ApiKey = \"55050223-cffb-4d92-b9fe-8a6219e0f87b\";\n        public const int TimeoutMilliseconds = 5000;\n\n        private readonly Client _testClient =\n            new Client(\"http\", \"localhost\", 7450, ApiKey, HttpRequestAdapter.WithGzip());\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestAuthenticateAndLogout()\n        {\n            var session = await _testClient.AuthenticateAsync($\"{Guid.NewGuid()}\");\n            await _testClient.AuthenticateLogoutAsync(session);\n            await Assert.ThrowsAsync<ApiResponseException>(() =>\n                _testClient.GetExperimentsAsync(session, Array.Empty<string>(), Array.Empty<string>()));\n        }\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestGetExperiments()\n        {\n            var session = await _testClient.AuthenticateAsync($\"{Guid.NewGuid()}\");\n            var experiments = await _testClient.GetAllExperimentsAsync(session);\n\n            Assert.True(experiments.Experiments.Count() == 1);\n        }\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestGetFlags()\n        {\n            var session = await _testClient.AuthenticateAsync($\"{Guid.NewGuid()}\");\n            var flags = await _testClient.GetFlagsAsync(session, new string[] { }, Array.Empty<string>());\n            var excludeHiroFlags = flags.Flags.Where(flag => !flag.Name.StartsWith(\"Hiro\"));\n            Assert.True(excludeHiroFlags.Count() == 4);\n            var namedFlags = await _testClient.GetFlagsAsync(session, new[] { \"Min-Build-Number\" }, Array.Empty<string>());\n            Assert.True(namedFlags.Flags.Count() == 1);\n        }\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestGetFlagsDefault()\n        {\n            var flags = await _testClient.GetFlagsDefaultAsync(new string[] { }, Array.Empty<string>());\n\n            var excludeHiroFlags = flags.Flags.Where(flag => !flag.Name.StartsWith(\"Hiro\"));\n            Assert.True(excludeHiroFlags.Count() == 4);\n        }\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestSendEvents()\n        {\n            var session = await _testClient.AuthenticateAsync($\"{Guid.NewGuid()}\");\n            await _testClient.EventAsync(session, new Event(\"gameFinished\", DateTime.UtcNow));\n            await _testClient.EventsAsync(session,\n                new[] { new Event(\"adStarted\", DateTime.UtcNow), new Event(\"appLaunched\", DateTime.UtcNow) });\n        }\n\n        [Fact(Timeout = TimeoutMilliseconds)]\n        public async Task TestGetLiveEvent()\n        {\n            var session = await _testClient.AuthenticateAsync($\"{Guid.NewGuid()}\");\n            var liveEvents = await _testClient.GetLiveEventsAsync(session);\n            // should not receive any event because not in the targeted audiences\n            Assert.True(!liveEvents.LiveEvents.Any());\n        }\n    }\n}\n"
  },
  {
    "path": "Satori.Tests/README.md",
    "content": ""
  },
  {
    "path": "Satori.Tests/Satori.Tests.csproj",
    "content": "<Project Sdk=\"Microsoft.NET.Sdk\">\n    <PropertyGroup>\n      <TargetFramework>net8.0</TargetFramework>\n      <Nullable>enable</Nullable>\n\n      <IsPackable>false</IsPackable>\n\n      <LangVersion>8</LangVersion>\n    </PropertyGroup>\n\n    <ItemGroup>\n      <PackageReference Include=\"Microsoft.Extensions.Configuration.Json\" Version=\"10.0.0\" />\n      <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"18.0.1\" />\n      <PackageReference Include=\"xunit\" Version=\"2.9.3\" />\n      <PackageReference Include=\"xunit.runner.visualstudio\" Version=\"3.1.5\">\n        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        <PrivateAssets>all</PrivateAssets>\n      </PackageReference>\n      <PackageReference Include=\"coverlet.collector\" Version=\"6.0.4\">\n        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>\n        <PrivateAssets>all</PrivateAssets>\n      </PackageReference>\n    </ItemGroup>\n\n    <ItemGroup>\n      <ProjectReference Include=\"..\\Satori\\Satori.csproj\" />\n    </ItemGroup>\n  </Project>\n"
  },
  {
    "path": "Taskfile.dist.yml",
    "content": "version: '3'\n\ndotenv: [ '.env' ]\n\nvars:\n    NAKAMA_REPO_URL: 'https://github.com/heroiclabs/nakama.git'\n    SATORI_REPO_URL: 'https://github.com/heroiclabs/satori.git'\n    SEMVER: '{{.SEMVER | default \"v3.19.0-pre\"}}'\n\ntasks:\n    build-debug:\n        cmds:\n            -   task: build-debug-nakama\n            -   task: build-debug-satori\n        desc: 'Build all artifacts in debug mode.'\n\n    build-debug-nakama:\n        cmds:\n            - dotnet build ./Nakama/Nakama.csproj\n        desc: 'Build the Nakama client in debug mode.'\n        generates:\n            - 'Nakama/bin/Release/net46'\n            - 'Nakama/bin/Release/netstandard2.0'\n            - 'Nakama/bin/Release/netstandard2.1'\n        sources:\n            - 'Nakama/**/*.cs'\n\n    build-debug-satori:\n        cmds:\n            - dotnet build ./Satori/Satori.csproj\n        desc: 'Build the Satori client in debug mode.'\n        generates:\n            - 'Satori/bin/Release/net46'\n            - 'Satori/bin/Release/netstandard2.0'\n            - 'Satori/bin/Release/netstandard2.1'\n        sources:\n            - 'Satori/**/*.cs'\n\n    build-release:\n        cmds:\n            -   task: build-release-nakama\n            -   task: build-release-satori\n        desc: 'Build all artifacts in release mode.'\n\n    build-release-nakama:\n        cmds:\n            - dotnet build -c Release ./Nakama/Nakama.csproj\n        desc: 'Build the Nakama client in release mode.'\n        generates:\n            - 'Nakama/bin/Release/net46'\n            - 'Nakama/bin/Release/netstandard2.0'\n            - 'Nakama/bin/Release/netstandard2.1'\n        sources:\n            - 'Nakama/**/*.cs'\n\n    build-release-satori:\n        cmds:\n            - dotnet build -c Release ./Satori/Satori.csproj\n        desc: 'Build the Satori client in release mode.'\n        generates:\n            - 'Satori/bin/Release/net46'\n            - 'Satori/bin/Release/netstandard2.0'\n            - 'Satori/bin/Release/netstandard2.1'\n        sources:\n            - 'Satori/**/*.cs'\n\n    codedocs:\n        aliases: [ doxygen ]\n        cmds:\n            - doxygen\n        desc: 'Generate code documentation for both clients.'\n        dir: 'docs'\n\n    generate:\n        aliases: [ codegen ]\n        cmds:\n            -   task: generate-nakama\n            -   task: generate-nakamaconsole\n            -   task: generate-satori\n            -   task: generate-satoriconsole\n        desc: 'Generate all low-level code for the SDK.'\n\n    generate-nakama:\n        cmds:\n            - go install tool\n            - git clone --depth 1 \"{{.NAKAMA_REPO_URL}}\" \"{{.TMP_DIR}}\"\n            - git clone \"https://fuchsia.googlesource.com/third_party/googleapis\" \"{{.TMP_DIR}}/googleapis\"\n            -   defer: rm -rf \"{{.TMP_DIR}}\"\n            - |\n                protoc \\\n                    -I {{.TMP_DIR}}/apigrpc \\\n                    -I {{.TMP_DIR}}/vendor/github.com/heroiclabs/nakama-common \\\n                    -I {{.TMP_DIR}}/googleapis \\\n                    -I {{.TMP_DIR}}/vendor/github.com/grpc-ecosystem/grpc-gateway/v2 \\\n                    --openapiv2_out={{.TMP_DIR}} --openapiv2_opt=logtostderr=true {{.TMP_DIR}}/apigrpc/apigrpc.proto\n            - go run main.go '{{.TMP_DIR}}/apigrpc/apigrpc.swagger.json' 'Nakama' > ../Nakama/ApiClient.gen.cs\n        desc: 'Generate low-level ApiClient for Nakama client.'\n        dir: 'codegen'\n        generates:\n            - '../Nakama/ApiClient.gen.cs'\n        sources:\n            - 'main.go'\n        vars:\n            TMP_DIR:\n                sh: mktemp -d\n\n    generate-nakamaconsole:\n        cmds:\n            - go install tool\n            - git clone --depth 1 \"{{.NAKAMA_REPO_URL}}\" \"{{.TMP_DIR}}\"\n            - git clone \"https://fuchsia.googlesource.com/third_party/googleapis\" \"{{.TMP_DIR}}/googleapis\"\n            -   defer: rm -rf \"{{.TMP_DIR}}\"\n            - |\n                protoc \\\n                    -I {{.TMP_DIR}} \\\n                    -I {{.TMP_DIR}}/vendor \\\n                    -I {{.TMP_DIR}}/vendor/github.com/heroiclabs/nakama-common \\\n                    -I {{.TMP_DIR}}/googleapis \\\n                    -I {{.TMP_DIR}}/build/grpc-gateway-v2.3.0/third_party/googleapis \\\n                    -I {{.TMP_DIR}}/vendor/github.com/grpc-ecosystem/grpc-gateway/v2 \\\n                    --openapiv2_out={{.TMP_DIR}} --openapiv2_opt=json_names_for_fields=false,logtostderr=true {{.TMP_DIR}}/console/console.proto\n            - go run main.go '{{.TMP_DIR}}/console/console.swagger.json' 'Nakama.Console' > ../Nakama/Console/ConsoleClient.gen.cs\n        desc: 'Generate low-level ConsoleClient for Nakama client.'\n        dir: 'codegen'\n        generates:\n            - '../Nakama/Console/ConsoleClient.gen.cs'\n        sources:\n            - 'main.go'\n        vars:\n            TMP_DIR:\n                sh: mktemp -d\n\n    generate-satori:\n        cmds:\n            - go install tool\n            - git clone --depth 1 \"{{.SATORI_REPO_URL}}\" \"{{.TMP_DIR}}\"\n            -   defer: rm -rf \"{{.TMP_DIR}}\"\n            - |\n                protoc -I {{.TMP_DIR}} -I {{.TMP_DIR}}/vendor \\\n                    -I {{.TMP_DIR}}/build/grpc-gateway-v2.3.0/third_party/googleapis \\\n                    -I {{.TMP_DIR}}/vendor/github.com/grpc-ecosystem/grpc-gateway/v2 \\\n                    --openapiv2_out={{.TMP_DIR}} --openapiv2_opt=logtostderr=true {{.TMP_DIR}}/api/satori.proto\n            - go run main.go '{{.TMP_DIR}}/api/satori.swagger.json' 'Satori' > ../Satori/ApiClient.gen.cs\n        desc: 'Generate low-level ApiClient for Satori client.'\n        dir: 'codegen'\n        generates:\n            - '../Satori/ApiClient.gen.cs'\n        sources:\n            - 'main.go'\n        vars:\n            TMP_DIR:\n                sh: mktemp -d\n\n    generate-satoriconsole:\n        cmds:\n            - go install tool\n            - git clone --depth 1 \"{{.SATORI_REPO_URL}}\" \"{{.TMP_DIR}}\"\n            -   defer: rm -rf \"{{.TMP_DIR}}\"\n            - |\n                protoc -I {{.TMP_DIR}} -I {{.TMP_DIR}}/vendor \\\n                    -I {{.TMP_DIR}}/build/grpc-gateway-v2.3.0/third_party/googleapis \\\n                    -I {{.TMP_DIR}}/vendor/github.com/grpc-ecosystem/grpc-gateway/v2 \\\n                    --openapiv2_out={{.TMP_DIR}} --openapiv2_opt=logtostderr=true {{.TMP_DIR}}/console/console.proto\n            - go run main.go '{{.TMP_DIR}}/console/console.swagger.json' 'Satori.Console' > ../Satori/Console/ConsoleClient.gen.cs\n        desc: 'Generate low-level ConsoleClient for Satori client.'\n        dir: 'codegen'\n        generates:\n            - '../Satori/Console/ConsoleClient.gen.cs'\n        sources:\n            - 'main.go'\n        vars:\n            TMP_DIR:\n                sh: mktemp -d\n\n    publish-release:\n        cmds:\n            -   task: publish-release-nakama\n            -   task: publish-release-satori\n        desc: 'Build and publish all artifacts in release mode.'\n\n    publish-release-nakama:\n        cmds:\n            -   task: build-release-nakama\n            - dotnet pack -p:AssemblyVersion={{.SEMVER}} -p:PackageVersion={{.SEMVER}} -c Release ./Nakama/Nakama.csproj\n            - |\n                dotnet nuget push ./Nakama/bin/Release/NakamaClient.{{.SEMVER}}.nupkg \\\n                    --api-key {{.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json\n        desc: 'Build and publish the Nakama client in release mode.'\n        vars:\n            SEMVER: '{{.SEMVER | default \"3.19.0\"}}'\n\n    publish-release-satori:\n        cmds:\n            -   task: build-release-satori\n            - dotnet pack -p:AssemblyVersion={{.SEMVER}} -p:PackageVersion={{.SEMVER}} -c Release ./Satori/Satori.csproj\n            - |\n                dotnet nuget push ./Satori/bin/Release/SatoriClient.{{.SEMVER}}.nupkg \\\n                    --api-key {{.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json\n        desc: 'Build and publish the Satori client in release mode.'\n        vars:\n            SEMVER: '{{.SEMVER | default \"3.19.0\"}}'\n"
  },
  {
    "path": "codegen/README.md",
    "content": "codegen\n=======\n\n> A util tool to generate a client from the Swagger spec of Nakama's server API.\n\n### Nakama API\n\nTo generate a client for Nakama, run the following:\n\n```shell\ntask -v generate-nakama\n```\n\n### Nakama Console API\n\nTo generate a client for the Nakama Console, run the following:\n\n```shell\ntask -v generate-nakamaconsole\n```\n\n### Satori API\n\nTo generate a client for Satori, run the following:\n\n```shell\ntask -v generate-satori\n```\n\n### Satori Console API\n\nTo generate a client for the Satori Console, run the following:\n\n```shell\ntask -v generate-satoriconsole\n```\n\n### Rationale\n\nWe want to maintain a simple lean low level client within our C# client which has minimal dependencies so we built our own. This gives us complete control over the dependencies required and structure of the code generated.\n\nThe generated code is designed to be supported within Unity engine, Xamarin, Godot engine, and other projects. It requires .NET4.5 framework, TinyJson, and uses `System.Threading.Tasks`.\n\n### Limitations\n\nThe code generator has __only__ been checked against the Swagger specification generated for Nakama and Satori servers. YMMV.\n"
  },
  {
    "path": "codegen/go.mod",
    "content": "module github.com/heroiclabs/nakama-dotnet/codegen\n\ngo 1.25.0\n\ntool (\n\tgithub.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway\n\tgithub.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2\n\tgoogle.golang.org/grpc/cmd/protoc-gen-go-grpc\n\tgoogle.golang.org/protobuf/cmd/protoc-gen-go\n)\n\nrequire (\n\tgithub.com/grpc-ecosystem/grpc-gateway/v2 v2.18.2-0.20231220213037-30552a56c2c4 // indirect\n\tgithub.com/kr/text v0.2.0 // indirect\n\tgithub.com/rogpeppe/go-internal v1.14.1 // indirect\n\tgolang.org/x/text v0.32.0 // indirect\n\tgoogle.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect\n\tgoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect\n\tgoogle.golang.org/grpc v1.79.3 // indirect\n\tgoogle.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 // indirect\n\tgoogle.golang.org/protobuf v1.36.10 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "codegen/go.sum",
    "content": "github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=\ngithub.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=\ngithub.com/grpc-ecosystem/grpc-gateway/v2 v2.18.2-0.20231220213037-30552a56c2c4 h1:+sCBciEMFK+JMbP0qqeR4Imj6Y5Y837LZWJrzUx3u1o=\ngithub.com/grpc-ecosystem/grpc-gateway/v2 v2.18.2-0.20231220213037-30552a56c2c4/go.mod h1:20wXVYqHIgnIKxBBFjWLOWJy2LI8hrhZneJE8MECq5M=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=\ngithub.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=\ngolang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=\ngolang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=\ngolang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=\ngolang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=\ngolang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=\ngolang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=\ngoogle.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=\ngoogle.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=\ngoogle.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=\ngoogle.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=\ngoogle.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=\ngoogle.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA=\ngoogle.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=\ngoogle.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "codegen/main.go",
    "content": "// Copyright 2020 The Nakama Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage main\n\nimport (\n\t\"bufio\"\n\t\"encoding/json\"\n\t\"flag\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"text/template\"\n\t\"unicode\"\n)\n\nconst codeTemplate string = `/* Code generated by codegen/main.go. DO NOT EDIT. */\n\n{{- if ne .Namespace \"\" }}\nnamespace {{.Namespace}}\n{{- end }}\n{\n    using System;\n    using System.Collections.Generic;\n    using System.Runtime.Serialization;\n    using System.Text;\n    using System.Threading;\n    using System.Threading.Tasks;\n    using TinyJson;\n\n    /// <summary>\n    /// An exception generated for <c>HttpResponse</c> objects don't return a success status.\n    /// </summary>\n    public sealed class ApiResponseException : Exception\n    {\n        public long StatusCode { get; }\n\n        public int GrpcStatusCode { get; }\n\n        public ApiResponseException(long statusCode, string content, int grpcCode) : base(content)\n        {\n            StatusCode = statusCode;\n            GrpcStatusCode = grpcCode;\n        }\n\n        public ApiResponseException(string message, Exception e) : base(message, e)\n        {\n            StatusCode = -1L;\n            GrpcStatusCode = -1;\n        }\n\n        public ApiResponseException(string content) : this(-1L, content, -1)\n        {\n        }\n\n        public override string ToString()\n        {\n            return $\"ApiResponseException(StatusCode={StatusCode}, Message='{Message}', GrpcStatusCode={GrpcStatusCode})\";\n        }\n    }\n\n    {{- range $defname, $definition := .Definitions }}\n    {{- $classname := $defname | title }}\n\n    {{- if isRefToEnum $defname }}\n\n    /// <summary>\n    /// {{ $definition.Title | commentify }}\n    /// </summary>\n    public enum {{ $classname }}\n    {\n        {{- range $idx, $enum := $definition.Enum }}\n        /// <summary>\n        /// {{ (index (splitEnumDescription $definition.Description $idx) $idx) }}\n        /// </summary>\n        {{ $enum }} = {{ $idx }},\n        {{- end }}\n    }\n    {{- else }}\n\n    /// <summary>\n    /// {{ (descriptionOrTitle $definition.Description $definition.Title) | stripNewlines }}\n    /// </summary>\n    public interface I{{ $classname }}\n    {\n        {{- range $propname, $property := $definition.Properties }}\n        {{- $fieldname := $propname | snakeToPascal }}\n\n        /// <summary>\n        /// {{ (descriptionOrTitle $property.Description $property.Title) | stripNewlines }}\n        /// </summary>\n        {{- if eq $property.Type \"integer\"}}\n        int {{ $fieldname }} { get; }\n        {{- else if eq $property.Type \"number\" }}\n        double {{ $fieldname }} { get; }\n        {{- else if eq $property.Type \"boolean\" }}\n        bool {{ $fieldname }} { get; }\n        {{- else if eq $property.Type \"string\"}}\n        string {{ $fieldname }} { get; }\n        {{- else if eq $property.Type \"array\"}}\n            {{- if eq $property.Items.Type \"string\"}}\n        List<string> {{ $fieldname }} { get; }\n            {{- else if eq $property.Items.Type \"integer\"}}\n        List<int> {{ $fieldname }} { get; }\n            {{- else if eq $property.Items.Type \"number\"}}\n        List<double> {{ $fieldname }} { get; }\n            {{- else if eq $property.Items.Type \"boolean\"}}\n        List<bool> {{ $fieldname }} { get; }\n            {{- else}}\n        IEnumerable<I{{ $property.Items.Ref | cleanRef }}> {{ $fieldname }} { get; }\n            {{- end }}\n        {{- else if eq $property.Type \"object\"}}\n            {{- if eq $property.AdditionalProperties.Type \"string\" }}\n                {{- if eq $property.AdditionalProperties.Format \"int64\" }}\n        IDictionary<string, int> {{$fieldname}} { get; }\n                {{- else }}\n        IDictionary<string, string> {{$fieldname}} { get; }\n                {{- end }}\n            {{- else if eq $property.AdditionalProperties.Type \"integer\"}}\n        IDictionary<string, int> {{$fieldname}} { get; }\n            {{- else if eq $property.AdditionalProperties.Type \"number\"}}\n        IDictionary<string, double> {{$fieldname}} { get; }\n            {{- else if eq $property.AdditionalProperties.Type \"boolean\"}}\n        IDictionary<string, bool> {{$fieldname}} { get; }\n            {{- else }}\n        IDictionary<string, I{{$property.AdditionalProperties.Ref | cleanRef}}> {{$fieldname}} { get; }\n            {{- end}}\n        {{- else if isRefToEnum (cleanRef $property.Ref) }}\n        {{ $property.Ref | cleanRef }} {{ $fieldname }} { get; }\n        {{- else }}\n        I{{ $property.Ref | cleanRef }} {{ $fieldname }} { get; }\n        {{- end }}\n        {{- end }}\n    }\n\n    /// <inheritdoc />\n    internal class {{ $classname }} : I{{ $classname }}\n    {\n        {{- range $propname, $property := $definition.Properties }}\n        {{- $fieldname := $propname | snakeToPascal }}\n        {{- $attrDataName := $propname | camelToSnake }}\n\n        /// <inheritdoc />\n        {{- if eq $property.Type \"integer\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public int {{ $fieldname }} { get; set; }\n        {{- else if eq $property.Type \"number\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public double {{ $fieldname }} { get; set; }\n        {{- else if eq $property.Type \"boolean\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public bool {{ $fieldname }} { get; set; }\n        {{- else if eq $property.Type \"string\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public string {{ $fieldname }} { get; set; }\n        {{- else if eq $property.Type \"array\" }}\n            {{- if eq $property.Items.Type \"string\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public List<string> {{ $fieldname }} { get; set; }\n            {{- else if eq $property.Items.Type \"integer\" }}\n        [DataMember(Name=\"{{ $propname }}\"), Preserve]\n        public List<int> {{ $fieldname }} { get; set; }\n            {{- else if eq $property.Items.Type \"number\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public List<double> {{ $fieldname }} { get; set; }\n            {{- else if eq $property.Items.Type \"boolean\" }}\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public List<bool> {{ $fieldname }} { get; set; }\n            {{- else}}\n        [IgnoreDataMember]\n        public IEnumerable<I{{ $property.Items.Ref | cleanRef }}> {{ $fieldname }} => _{{ $propname | snakeToCamel }} ?? new List<{{ $property.Items.Ref | cleanRef }}>(0);\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public List<{{ $property.Items.Ref | cleanRef }}> _{{ $propname | snakeToCamel }} { get; set; }\n            {{- end }}\n        {{- else if eq $property.Type \"object\"}}\n            {{- if eq $property.AdditionalProperties.Type \"string\"}}\n                {{- if eq $property.AdditionalProperties.Format \"int64\" }}\n        [IgnoreDataMember]\n        public IDictionary<string, int> {{ $fieldname }} => ApiClient.DeserializeIntProperties(_{{ $propname | snakeToCamel }}) ?? new Dictionary<string, int>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public Dictionary<string, string> _{{ $propname | snakeToCamel }} { get; set; }\n                {{- else }}\n        [IgnoreDataMember]\n        public IDictionary<string, string> {{ $fieldname }} => _{{ $propname | snakeToCamel }} ?? new Dictionary<string, string>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public Dictionary<string, string> _{{ $propname | snakeToCamel }} { get; set; }\n                 {{- end }}\n            {{- else if eq $property.AdditionalProperties.Type \"integer\"}}\n        [IgnoreDataMember]\n        public IDictionary<string, int> {{ $fieldname }} => _{{ $propname | snakeToCamel }} ?? new Dictionary<string, int>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n           {{- else if eq $property.AdditionalProperties.Type \"number\"}}\n        [IgnoreDataMember]\n        public IDictionary<string, double> {{ $fieldname }} => _{{ $propname | snakeToCamel }} ?? new Dictionary<string, double>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public Dictionary<string, int> _{{ $propname | snakeToCamel }} { get; set; }\n            {{- else if eq $property.AdditionalProperties.Type \"boolean\"}}\n        [IgnoreDataMember]\n        public IDictionary<string, bool> {{ $fieldname }} => _{{ $propname | snakeToCamel }} ?? new Dictionary<string, bool>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public Dictionary<string, bool> _{{ $propname | snakeToCamel }} { get; set; }\n            {{- else}}\n        [IgnoreDataMember]\n        public IDictionary<string, I{{$property.AdditionalProperties.Ref | cleanRef}}> {{ $fieldname }}  => _{{ $propname | snakeToCamel }} ?? new Dictionary<string, I{{$property.AdditionalProperties.Ref | cleanRef}}>();\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public Dictionary<string, I{{$property.AdditionalProperties.Ref | cleanRef}}> _{{ $propname | snakeToCamel }} { get; set; }\n            {{- end}}\n        {{- else if isRefToEnum (cleanRef $property.Ref) }}\n        [IgnoreDataMember]\n        public {{ $property.Ref | cleanRef }} {{ $fieldname }} => _{{ $propname | snakeToCamel }};\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public {{ $property.Ref | cleanRef }} _{{ $propname | snakeToCamel }} { get; set; }\n        {{- else }}\n        [IgnoreDataMember]\n        public I{{ $property.Ref | cleanRef }} {{ $fieldname }} => _{{ $propname | snakeToCamel }};\n        [DataMember(Name=\"{{ $attrDataName }}\"), Preserve]\n        public {{ $property.Ref | cleanRef }} _{{ $propname | snakeToCamel }} { get; set; }\n        {{- end }}\n        {{- end }}\n\n        public override string ToString()\n        {\n            var output = \"\";\n            {{- range $fieldname, $property := $definition.Properties }}\n            {{- if eq $property.Type \"array\" }}\n            output = string.Concat(output, \"{{ $fieldname | snakeToPascal }}: [\", string.Join(\", \", {{ $fieldname | snakeToPascal }}), \"], \");\n            {{- else if eq $property.Type \"object\" }}\n\n            var {{ $fieldname }}String = \"\";\n            foreach (var kvp in {{ $fieldname | snakeToPascal }})\n            {\n                {{ $fieldname }}String = string.Concat({{ $fieldname }}String, \"{\" + kvp.Key + \"=\" + kvp.Value + \"}\");\n            }\n            output = string.Concat(output, \"{{ $fieldname | snakeToPascal }}: [\" + {{ $fieldname }}String + \"]\");\n            {{- else }}\n            output = string.Concat(output, \"{{ $fieldname | snakeToPascal }}: \", {{ $fieldname | snakeToPascal }}, \", \");\n            {{- end }}\n            {{- end }}\n            return output;\n        }\n    }\n    {{- end }}\n\n\n    {{- end }}\n\n    /// <summary>\n    /// The low level client for the {{ .Namespace }} API.\n    /// </summary>\n    internal class ApiClient\n    {\n        public readonly IHttpAdapter HttpAdapter;\n        public int Timeout { get; set; }\n\n        private readonly Uri _baseUri;\n\n        public ApiClient(Uri baseUri, IHttpAdapter httpAdapter, int timeout = 10)\n        {\n            _baseUri = baseUri;\n            HttpAdapter = httpAdapter;\n            Timeout = timeout;\n        }\n\n        {{- range $url, $path := .Paths }}\n        {{- range $method, $operation := $path}}\n\n        /// <summary>\n        /// {{ $operation.Summary | stripNewlines }}\n        /// </summary>\n        {{- if $operation.Responses.Ok.Schema.Ref }}\n        public async Task<I{{ $operation.Responses.Ok.Schema.Ref | cleanRef }}> {{ $operation.OperationId | stripOperationPrefix | snakeToPascal }}Async(\n        {{- else }}\n        public async Task {{ $operation.OperationId | stripOperationPrefix | snakeToPascal }}Async(\n        {{- end}}\n\n        {{- $isPreviousParam := false}}\n\n        {{- if $operation.Security }}\n            {{- range $idx, $security := $operation.Security}}\n                {{- range $key, $value := $security}}\n                    {{- if or (eq $key \"BasicAuth\") (eq $key \"HttpKeyAuth\") }}\n            string basicAuthUsername,\n            string basicAuthPassword\n                        {{- $isPreviousParam = true}}\n                    {{- else if (eq $key \"BearerJwt\") }}\n           {{- if eq $isPreviousParam true}},{{- end}}\n                        {{- $isPreviousParam = true}}\n            string bearerToken\n                    {{- end }}\n                {{- end }}\n            {{- end }}\n        {{- else }}\n           {{- if eq $isPreviousParam true}},{{- end}}\n           {{- $isPreviousParam = true}}\n            string bearerToken\n        {{- end }}\n        {{- range $parameter := $operation.Parameters }}\n        {{- if eq $isPreviousParam true}},{{- end}}\n        {{- if eq $parameter.In \"path\" }}\n            {{ $parameter.Type }}{{- if not $parameter.Required }}?{{- end }} {{ $parameter.Name | snakeToCamel}}\n        {{- else if eq $parameter.In \"body\" }}\n            {{- if eq $parameter.Schema.Type \"string\" }}\n            string{{- if not $parameter.Required }}?{{- end }} {{ $parameter.Name | snakeToCamel}}\n            {{- else }}\n            {{ $parameter.Schema.Ref | cleanRef }}{{- if not $parameter.Required }}?{{- end }} {{ $parameter.Name | snakeToCamel}}\n            {{- end }}\n        {{- else if eq $parameter.Type \"array\"}}\n            IEnumerable<{{ $parameter.Items.Type }}> {{ $parameter.Name | snakeToCamel }}\n        {{- else if eq $parameter.Type \"object\"}}\n            {{- if eq $parameter.AdditionalProperties.Type \"string\"}}\n        IDictionary<string, string> {{ $parameter.Name }}\n            {{- else if eq $parameter.Items.Type \"integer\"}}\n        IDictionary<string, int> {{ $parameter.Name }}\n            {{- else if eq $parameter.Items.Type \"boolean\"}}\n        IDictionary<string, int> {{ $parameter.Name }}\n            {{- else}}\n        IDictionary<string, {{ $parameter.Items.Type }}> {{ $parameter.Name }}\n            {{- end}}\n        {{- else if eq $parameter.Type \"integer\" }}\n            int? {{ $parameter.Name }}\n        {{- else if eq $parameter.Type \"boolean\" }}\n            bool? {{ $parameter.Name }}\n        {{- else if eq $parameter.Type \"string\" }}\n            string {{ $parameter.Name | snakeToCamel}}\n        {{- else }}\n            {{ $parameter.Type }} {{ $parameter.Name | snakeToCamel}}\n        {{- end }}\n        {{- $isPreviousParam = true}}\n    {{- end }},\n            CancellationToken? cancellationToken)\n        {\n            {{- range $parameter := $operation.Parameters }}\n            {{- if $parameter.Required }}\n            if ({{ $parameter.Name | snakeToCamel}} == null)\n            {\n                throw new ArgumentException(\"'{{ $parameter.Name | snakeToCamel }}' is required but was null.\");\n            }\n            {{- end }}\n        {{- end }}\n\n            var urlpath = \"{{- $url }}\";\n\n            {{- range $parameter := $operation.Parameters }}\n            {{- $camelToSnake := $parameter.Name | camelToSnake }}\n            {{- if eq $parameter.In \"path\" }}\n            urlpath = urlpath.Replace(\"{{- print \"{\" $parameter.Name \"}\"}}\", Uri.EscapeDataString({{- $parameter.Name | snakeToCamel }}));\n            {{- end }}\n        {{- end }}\n\n            var queryParams = \"\";\n            {{- range $parameter := $operation.Parameters }}\n            {{- $camelToSnake := $parameter.Name | camelToSnake }}\n            {{- if eq $parameter.In \"query\"}}\n                {{- if eq $parameter.Type \"integer\" }}\n            if ({{ $parameter.Name }} != null) {\n                queryParams = string.Concat(queryParams, \"{{- $camelToSnake }}=\", {{ $parameter.Name }}, \"&\");\n            }\n                {{- else if eq $parameter.Type \"string\" }}\n            if ({{ $parameter.Name | snakeToCamel }} != null) {\n                queryParams = string.Concat(queryParams, \"{{- $camelToSnake }}=\", Uri.EscapeDataString({{ $parameter.Name | snakeToCamel }}), \"&\");\n            }\n                {{- else if eq $parameter.Type \"boolean\" }}\n            if ({{ $parameter.Name }} != null) {\n                queryParams = string.Concat(queryParams, \"{{- $camelToSnake }}=\", {{ $parameter.Name }}.ToString().ToLower(), \"&\");\n            }\n                {{- else if eq $parameter.Type \"array\" }}\n            foreach (var elem in {{ $parameter.Name | snakeToCamel }} ?? new {{ $parameter.Items.Type }}[0])\n            {\n                {{- if eq $parameter.Items.Type \"string\" }}\n                queryParams = string.Concat(queryParams, \"{{- $camelToSnake }}=\", Uri.EscapeDataString(elem), \"&\");\n                    {{- else }}\n                queryParams = string.Concat(queryParams, \"{{- $camelToSnake }}=\", elem, \"&\");\n                    {{- end }}\n            }\n                {{- else }}\n            {{ $parameter }} // ERROR\n                {{- end }}\n            {{- end }}\n        {{- end }}\n\n            string path = _baseUri.AbsolutePath.TrimEnd('/') + urlpath;\n\n            var uri = new UriBuilder(_baseUri)\n            {\n                Path = path,\n                Query = queryParams\n            }.Uri;\n\n            var httpMethod = \"{{- $method | uppercase }}\";\n            var headers = new Dictionary<string, string>();\n\n            {{- if $operation.Security }}\n                {{- range $idx, $security := $operation.Security }}\n                    {{- range $key, $value := $security }}\n                        {{- if or (eq $key \"BasicAuth\") (eq $key \"HttpKeyAuth\")}}\n            if (!string.IsNullOrEmpty(basicAuthUsername))\n            {\n                var credentials = Encoding.UTF8.GetBytes(basicAuthUsername + \":\" + basicAuthPassword);\n                var header = string.Concat(\"Basic \", Convert.ToBase64String(credentials));\n                headers.Add(\"Authorization\", header);\n            }\n                        {{- else if (eq $key \"BearerJwt\") }}\n            if (!string.IsNullOrEmpty(bearerToken))\n            {\n                var header = string.Concat(\"Bearer \", bearerToken);\n                headers.Add(\"Authorization\", header);\n            }\n                       {{- end }}\n                   {{- end }}\n                {{- end }}\n            {{- else }}\n            var header = string.Concat(\"Bearer \", bearerToken);\n            headers.Add(\"Authorization\", header);\n            {{- end }}\n\n            byte[] content = null;\n            {{- range $parameter := $operation.Parameters }}\n            {{- if eq $parameter.In \"body\" }}\n            var jsonBody = {{ $parameter.Name }}.ToJson();\n            content = Encoding.UTF8.GetBytes(jsonBody);\n            {{- end }}\n            {{- end }}\n\n            {{- if $operation.Responses.Ok.Schema.Ref }}\n            var contents = await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            return contents.FromJson<{{ $operation.Responses.Ok.Schema.Ref | cleanRef }}>();\n            {{- else }}\n            await HttpAdapter.SendAsync(httpMethod, uri, headers, content, Timeout, cancellationToken);\n            {{- end }}\n        }\n        {{- end }}\n    {{- end }}\n    }\n}\n`\n\nfunc convertRefToClassName(input string) (className string) {\n\tcleanRef := strings.TrimPrefix(input, \"#/definitions/\")\n\tclassName = strings.Title(cleanRef)\n\treturn\n}\n\n// camelToSnake converts a camel or Pascal case string into snake case.\nfunc camelToSnake(input string) (output string) {\n\tfor k, v := range input {\n\t\tif unicode.IsUpper(v) {\n\t\t\tformatString := \"%c\"\n\n\t\t\tif k != 0 {\n\t\t\t\tformatString = \"_\" + formatString\n\t\t\t}\n\n\t\t\toutput += fmt.Sprintf(formatString, unicode.ToLower(v))\n\t\t} else {\n\t\t\toutput += string(v)\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc snakeToCamel(input string) (snakeToCamel string) {\n\tisToUpper := false\n\tfor k, v := range input {\n\t\tif k == 0 {\n\t\t\tsnakeToCamel = strings.ToLower(string(input[0]))\n\t\t} else {\n\t\t\tif isToUpper {\n\t\t\t\tsnakeToCamel += strings.ToUpper(string(v))\n\t\t\t\tisToUpper = false\n\t\t\t} else {\n\t\t\t\tif v == '_' {\n\t\t\t\t\tisToUpper = true\n\t\t\t\t} else {\n\t\t\t\t\tsnakeToCamel += string(v)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\treturn\n}\n\nfunc snakeToPascal(input string) (output string) {\n\tisToUpper := false\n\tfor k, v := range input {\n\t\tif k == 0 {\n\t\t\toutput = strings.ToUpper(string(input[0]))\n\t\t} else {\n\t\t\tif isToUpper {\n\t\t\t\toutput += strings.ToUpper(string(v))\n\t\t\t\tisToUpper = false\n\t\t\t} else {\n\t\t\t\tif v == '_' {\n\t\t\t\t\tisToUpper = true\n\t\t\t\t} else {\n\t\t\t\t\toutput += string(v)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc isPropertyEnum(string) (output string) {\n\treturn\n}\n\n// pascalToCamel converts a Pascal case string to a camel case string.\nfunc pascalToCamel(input string) (camelCase string) {\n\tif input == \"\" {\n\t\treturn \"\"\n\t}\n\n\tcamelCase = strings.ToLower(string(input[0]))\n\tcamelCase += string(input[1:])\n\treturn camelCase\n}\n\nfunc splitEnumDescription(description string, idx int) []string {\n\tif description == \"\" {\n\t\treturn make([]string, idx+1)\n\t}\n\ttokens := strings.Split(description, \"\\n\")\n\tif len(tokens)-1 < idx {\n\t\treturn make([]string, idx+1)\n\t}\n\treturn tokens\n}\n\nfunc stripNewlines(input string) string {\n\treturn strings.Replace(input, \"\\n\", \" \", -1)\n}\n\nfunc stripOperationPrefix(input string) string {\n\treturn strings.Replace(input, \"Nakama_\", \"\", 1)\n}\n\nfunc descriptionOrTitle(description string, title string) string {\n\tif description != \"\" {\n\t\treturn description\n\t}\n\n\treturn title\n}\n\nfunc commentify(input string) string {\n\treturn strings.Replace(input, \"\\n\", \"\\n    /// \", -1)\n}\n\n// camelToPascal converts a string from camel case to Pascal case.\nfunc camelToPascal(camelCase string) (pascalCase string) {\n\n\tif len(camelCase) <= 0 {\n\t\treturn \"\"\n\t}\n\n\tpascalCase = strings.ToUpper(string(camelCase[0])) + camelCase[1:]\n\treturn\n}\n\nfunc main() {\n\t// Argument flags\n\tvar output = flag.String(\"output\", \"\", \"The output for generated code.\")\n\tflag.Parse()\n\n\tinputs := flag.Args()\n\tif len(inputs) < 1 {\n\t\tfmt.Printf(\"No input file found: %s\\n\\n\", inputs)\n\t\tfmt.Println(\"openapi-gen [flags] inputs...\")\n\t\tflag.PrintDefaults()\n\t\treturn\n\t}\n\n\tinputFile := inputs[0]\n\tcontent, err := os.ReadFile(inputFile)\n\tif err != nil {\n\t\tfmt.Printf(\"Unable to read file: %s\\n\", err)\n\t\treturn\n\t}\n\n\tvar namespace (string) = \"\"\n\n\tif len(inputs) > 1 {\n\t\tif len(inputs[1]) <= 0 {\n\t\t\tfmt.Println(\"Empty Namespace provided.\")\n\t\t\treturn\n\t\t}\n\n\t\tnamespace = inputs[1]\n\t}\n\n\tvar schema *Schema\n\tif err := json.Unmarshal(content, &schema); err != nil {\n\t\tfmt.Printf(\"Unable to decode input file %s : %s\\n\", inputFile, err)\n\t\treturn\n\t}\n\tschema.Namespace = namespace\n\n\tgenerateBodyDefinitionFromSchema(schema)\n\n\tfmap := template.FuncMap{\n\t\t\"snakeToCamel\": snakeToCamel,\n\t\t\"camelToSnake\": camelToSnake,\n\t\t\"cleanRef\":     convertRefToClassName,\n\t\t\"isRefToEnum\": func(ref string) bool {\n\t\t\t// swagger schema definition keys have inconsistent casing\n\t\t\tvar camelOk bool\n\t\t\tvar pascalOk bool\n\t\t\tvar enums []string\n\n\t\t\tasCamel := pascalToCamel(ref)\n\t\t\tif _, camelOk = schema.Definitions[asCamel]; camelOk {\n\t\t\t\tenums = schema.Definitions[asCamel].Enum\n\t\t\t}\n\n\t\t\tasPascal := camelToPascal(ref)\n\t\t\tif _, pascalOk = schema.Definitions[asPascal]; pascalOk {\n\t\t\t\tenums = schema.Definitions[asPascal].Enum\n\t\t\t}\n\n\t\t\tif !pascalOk && !camelOk {\n\t\t\t\tfmt.Printf(\"no definition found: %v\", ref)\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn len(enums) > 0\n\t\t},\n\t\t\"pascalToCamel\":        pascalToCamel,\n\t\t\"snakeToPascal\":        snakeToPascal,\n\t\t\"stripNewlines\":        stripNewlines,\n\t\t\"title\":                strings.Title,\n\t\t\"uppercase\":            strings.ToUpper,\n\t\t\"camelToPascal\":        camelToPascal,\n\t\t\"splitEnumDescription\": splitEnumDescription,\n\t\t\"stripOperationPrefix\": stripOperationPrefix,\n\t\t\"descriptionOrTitle\":   descriptionOrTitle,\n\t\t\"commentify\":           commentify,\n\t}\n\n\ttmpl, err := template.New(inputFile).Funcs(fmap).Parse(codeTemplate)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif len(*output) < 1 {\n\t\tif err := tmpl.Execute(os.Stdout, schema); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\treturn\n\t}\n\n\tf, err := os.Create(*output)\n\tif err != nil {\n\t\tfmt.Printf(\"Unable to create file: %s\\n\", err)\n\t\treturn\n\t}\n\tdefer f.Close()\n\n\twriter := bufio.NewWriter(f)\n\ttmpl.Execute(writer, schema)\n\twriter.Flush()\n}\n\ntype Schema struct {\n\tNamespace string\n\tPaths     map[string]map[string]struct {\n\t\tSummary     string\n\t\tOperationId string\n\t\tResponses   struct {\n\t\t\tOk struct {\n\t\t\t\tSchema struct {\n\t\t\t\t\tRef string `json:\"$ref\"`\n\t\t\t\t}\n\t\t\t} `json:\"200\"`\n\t\t}\n\t\tParameters []struct {\n\t\t\tName     string\n\t\t\tIn       string\n\t\t\tRequired bool\n\t\t\tType     string // used with primitives\n\t\t\tItems    struct { // used with type \"array\"\n\t\t\t\tType string\n\t\t\t}\n\t\t\tFormat string       // used with type \"boolean\"\n\t\t\tSchema ObjectSchema `json:\"schema\"`\n\t\t}\n\t\tSecurity []map[string][]struct {\n\t\t}\n\t}\n\tDefinitions map[string]ObjectDefinition\n}\n\ntype ObjectSchema struct {\n\tType       string\n\tRef        string `json:\"$ref\"`\n\tProperties map[string]struct {\n\t\tType        string\n\t\tDescription string\n\t}\n\tDescription string\n}\n\ntype ObjectDefinition struct {\n\tProperties map[string]ObjectProperty\n\n\tEnum        []string\n\tDescription string\n\t// used only by enums\n\tTitle string\n}\n\ntype ObjectProperty struct {\n\tType                 string\n\tRef                  string `json:\"$ref\"` // used with object\n\tItems                Items\n\tAdditionalProperties AdditionalProperties\n\tFormat               string // used with type \"boolean\"\n\tDescription          string\n\tTitle                string // used by enums\n}\n\ntype Items struct {\n\tType string\n\tRef  string `json:\"$ref\"`\n}\n\ntype AdditionalProperties struct {\n\tType   string // used with type \"map\"\n\tFormat string // used with type \"map\"\n\tRef    string `json:\"$ref\"` // used with object\n}\n\nfunc generateBodyDefinitionFromSchema(s *Schema) {\n\t// Needed because of this change: https://github.com/grpc-ecosystem/grpc-gateway/issues/1670\n\tfor _, path := range s.Paths {\n\t\t// Iterate through each HTTP method (e.g., \"get\", \"post\", \"put\") for the current path\n\t\tfor verb, operation := range path {\n\t\t\t// Check if the HTTP method is one that can contain a body\n\t\t\tif verb == \"post\" || verb == \"put\" {\n\t\t\t\t// Iterate through the parameters of the operation\n\t\t\t\tfor idx, param := range operation.Parameters {\n\t\t\t\t\t// Check if the parameter is a body parameter with an inline schema\n\t\t\t\t\tif param.In == \"body\" && param.Name == \"body\" && param.Schema.Ref == \"\" {\n\t\t\t\t\t\t// Construct a unique name for the new definition\n\t\t\t\t\t\tobjectName := \"Api\" + strings.TrimPrefix(operation.OperationId, fmt.Sprintf(\"%s_\", s.Namespace)) + \"Request\"\n\n\t\t\t\t\t\t// Update the parameter's schema reference to the new definition\n\t\t\t\t\t\tparam.Schema.Ref = \"#/definitions/\" + objectName\n\n\t\t\t\t\t\t// Update the parameter in the original operation object\n\t\t\t\t\t\toperation.Parameters[idx] = param\n\n\t\t\t\t\t\t// Create the new definition\n\t\t\t\t\t\tproperties := make(map[string]ObjectProperty)\n\n\t\t\t\t\t\tfor key, p := range param.Schema.Properties {\n\t\t\t\t\t\t\tproperties[key] = ObjectProperty{\n\t\t\t\t\t\t\t\tType:  p.Type,\n\t\t\t\t\t\t\t\tItems: Items{},\n\t\t\t\t\t\t\t\tAdditionalProperties: AdditionalProperties{\n\t\t\t\t\t\t\t\t\tType: \"string\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tDescription: p.Description,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Add the new definition to the schema's definitions map\n\t\t\t\t\t\ts.Definitions[objectName] = ObjectDefinition{\n\t\t\t\t\t\t\tProperties:  properties,\n\t\t\t\t\t\t\tDescription: param.Schema.Description,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "docs/.nojekyll",
    "content": ""
  },
  {
    "path": "docs/CNAME",
    "content": "dotnet.docs.heroiclabs.com"
  },
  {
    "path": "docs/Doxyfile",
    "content": "# Doxyfile 1.9.2\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) for a project.\n#\n# All text after a double hash (##) is considered a comment and is placed in\n# front of the TAG it is preceding.\n#\n# All text after a single hash (#) is considered a comment and will be ignored.\n# The format is:\n# TAG = value [value, ...]\n# For lists, items can also be appended using:\n# TAG += value [value, ...]\n# Values that contain spaces should be placed between quotes (\\\" \\\").\n\n#---------------------------------------------------------------------------\n# Project related configuration options\n#---------------------------------------------------------------------------\n\n# This tag specifies the encoding used for all characters in the configuration\n# file that follow. The default is UTF-8 which is also the encoding used for all\n# text before the first occurrence of this tag. Doxygen uses libiconv (or the\n# iconv built into libc) for the transcoding. See\n# https://www.gnu.org/software/libiconv/ for the list of possible encodings.\n# The default value is: UTF-8.\n\nDOXYFILE_ENCODING      = UTF-8\n\n# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by\n# double-quotes, unless you are using Doxywizard) that should identify the\n# project for which the documentation is generated. This name is used in the\n# title of most generated pages and in a few other places.\n# The default value is: My Project.\n\nPROJECT_NAME           = \"Nakama .NET Client\"\n\n# The PROJECT_NUMBER tag can be used to enter a project or revision number. This\n# could be handy for archiving the generated documentation or if some version\n# control system is used.\n\nPROJECT_NUMBER         = 3.17.0\n\n# Using the PROJECT_BRIEF tag one can provide an optional one line description\n# for a project that appears at the top of each page and should give viewer a\n# quick idea about the purpose of the project. Keep the description short.\n\nPROJECT_BRIEF          = \"The official Nakama and Satori .NET client.\"\n\n# With the PROJECT_LOGO tag one can specify a logo or an icon that is included\n# in the documentation. The maximum height of the logo should not exceed 55\n# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy\n# the logo to the output directory.\n\nPROJECT_LOGO           = ./nakama_logo.svg\n\n# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path\n# into which the generated documentation will be written. If a relative path is\n# entered, it will be relative to the location where doxygen was started. If\n# left blank the current directory will be used.\n\nOUTPUT_DIRECTORY       = .\n\n# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-\n# directories (in 2 levels) under the output directory of each output format and\n# will distribute the generated files over these directories. Enabling this\n# option can be useful when feeding doxygen a huge amount of source files, where\n# putting all generated files in the same directory would otherwise causes\n# performance problems for the file system.\n# The default value is: NO.\n\nCREATE_SUBDIRS         = NO\n\n# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII\n# characters to appear in the names of generated files. If set to NO, non-ASCII\n# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode\n# U+3044.\n# The default value is: NO.\n\nALLOW_UNICODE_NAMES    = NO\n\n# The OUTPUT_LANGUAGE tag is used to specify the language in which all\n# documentation generated by doxygen is written. Doxygen will use this\n# information to generate all constant output in the proper language.\n# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,\n# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),\n# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,\n# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),\n# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,\n# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,\n# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,\n# Ukrainian and Vietnamese.\n# The default value is: English.\n\nOUTPUT_LANGUAGE        = English\n\n# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member\n# descriptions after the members that are listed in the file and class\n# documentation (similar to Javadoc). Set to NO to disable this.\n# The default value is: YES.\n\nBRIEF_MEMBER_DESC      = YES\n\n# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief\n# description of a member or function before the detailed description\n#\n# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the\n# brief descriptions will be completely suppressed.\n# The default value is: YES.\n\nREPEAT_BRIEF           = YES\n\n# This tag implements a quasi-intelligent brief description abbreviator that is\n# used to form the text in various listings. Each string in this list, if found\n# as the leading text of the brief description, will be stripped from the text\n# and the result, after processing the whole list, is used as the annotated\n# text. Otherwise, the brief description is used as-is. If left blank, the\n# following values are used ($name is automatically replaced with the name of\n# the entity):The $name class, The $name widget, The $name file, is, provides,\n# specifies, contains, represents, a, an and the.\n\nABBREVIATE_BRIEF       = \"The $name class\" \\\n                         \"The $name widget\" \\\n                         \"The $name file\" \\\n                         is \\\n                         provides \\\n                         specifies \\\n                         contains \\\n                         represents \\\n                         a \\\n                         an \\\n                         the\n\n# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then\n# doxygen will generate a detailed section even if there is only a brief\n# description.\n# The default value is: NO.\n\nALWAYS_DETAILED_SEC    = NO\n\n# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all\n# inherited members of a class in the documentation of that class as if those\n# members were ordinary class members. Constructors, destructors and assignment\n# operators of the base classes will not be shown.\n# The default value is: NO.\n\nINLINE_INHERITED_MEMB  = NO\n\n# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path\n# before files name in the file list and in the header files. If set to NO the\n# shortest path that makes the file name unique will be used\n# The default value is: YES.\n\nFULL_PATH_NAMES        = NO\n\n# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.\n# Stripping is only done if one of the specified strings matches the left-hand\n# part of the path. The tag can be used to show relative paths in the file list.\n# If left blank the directory from which doxygen is run is used as the path to\n# strip.\n#\n# Note that you can specify absolute paths here, but also relative paths, which\n# will be relative from the directory where doxygen is started.\n# This tag requires that the tag FULL_PATH_NAMES is set to YES.\n\nSTRIP_FROM_PATH        =\n\n# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the\n# path mentioned in the documentation of a class, which tells the reader which\n# header file to include in order to use a class. If left blank only the name of\n# the header file containing the class definition is used. Otherwise one should\n# specify the list of include paths that are normally passed to the compiler\n# using the -I flag.\n\nSTRIP_FROM_INC_PATH    =\n\n# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but\n# less readable) file names. This can be useful is your file systems doesn't\n# support long names like on DOS, Mac, or CD-ROM.\n# The default value is: NO.\n\nSHORT_NAMES            = NO\n\n# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the\n# first line (until the first dot) of a Javadoc-style comment as the brief\n# description. If set to NO, the Javadoc-style will behave just like regular Qt-\n# style comments (thus requiring an explicit @brief command for a brief\n# description.)\n# The default value is: NO.\n\nJAVADOC_AUTOBRIEF      = NO\n\n# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line\n# such as\n# /***************\n# as being the beginning of a Javadoc-style comment \"banner\". If set to NO, the\n# Javadoc-style will behave just like regular comments and it will not be\n# interpreted by doxygen.\n# The default value is: NO.\n\nJAVADOC_BANNER         = NO\n\n# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first\n# line (until the first dot) of a Qt-style comment as the brief description. If\n# set to NO, the Qt-style will behave just like regular Qt-style comments (thus\n# requiring an explicit \\brief command for a brief description.)\n# The default value is: NO.\n\nQT_AUTOBRIEF           = NO\n\n# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a\n# multi-line C++ special comment block (i.e. a block of //! or /// comments) as\n# a brief description. This used to be the default behavior. The new default is\n# to treat a multi-line C++ comment block as a detailed description. Set this\n# tag to YES if you prefer the old behavior instead.\n#\n# Note that setting this tag to YES also means that rational rose comments are\n# not recognized any more.\n# The default value is: NO.\n\nMULTILINE_CPP_IS_BRIEF = NO\n\n# By default Python docstrings are displayed as preformatted text and doxygen's\n# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the\n# doxygen's special commands can be used and the contents of the docstring\n# documentation blocks is shown as doxygen documentation.\n# The default value is: YES.\n\nPYTHON_DOCSTRING       = YES\n\n# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the\n# documentation from any documented member that it re-implements.\n# The default value is: YES.\n\nINHERIT_DOCS           = YES\n\n# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new\n# page for each member. If set to NO, the documentation of a member will be part\n# of the file/class/namespace that contains it.\n# The default value is: NO.\n\nSEPARATE_MEMBER_PAGES  = NO\n\n# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen\n# uses this value to replace tabs by spaces in code fragments.\n# Minimum value: 1, maximum value: 16, default value: 4.\n\nTAB_SIZE               = 4\n\n# This tag can be used to specify a number of aliases that act as commands in\n# the documentation. An alias has the form:\n# name=value\n# For example adding\n# \"sideeffect=@par Side Effects:^^\"\n# will allow you to put the command \\sideeffect (or @sideeffect) in the\n# documentation, which will result in a user-defined paragraph with heading\n# \"Side Effects:\". Note that you cannot put \\n's in the value part of an alias\n# to insert newlines (in the resulting output). You can put ^^ in the value part\n# of an alias to insert a newline as if a physical newline was in the original\n# file. When you need a literal { or } or , in the value part of an alias you\n# have to escape them by means of a backslash (\\), this can lead to conflicts\n# with the commands \\{ and \\} for these it is advised to use the version @{ and\n# @} or use a double escape (\\\\{ and \\\\})\n\nALIASES                =\n\n# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources\n# only. Doxygen will then generate output that is more tailored for C. For\n# instance, some of the names that are used will be different. The list of all\n# members will be omitted, etc.\n# The default value is: NO.\n\nOPTIMIZE_OUTPUT_FOR_C  = NO\n\n# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or\n# Python sources only. Doxygen will then generate output that is more tailored\n# for that language. For instance, namespaces will be presented as packages,\n# qualified scopes will look different, etc.\n# The default value is: NO.\n\nOPTIMIZE_OUTPUT_JAVA   = NO\n\n# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran\n# sources. Doxygen will then generate output that is tailored for Fortran.\n# The default value is: NO.\n\nOPTIMIZE_FOR_FORTRAN   = NO\n\n# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL\n# sources. Doxygen will then generate output that is tailored for VHDL.\n# The default value is: NO.\n\nOPTIMIZE_OUTPUT_VHDL   = NO\n\n# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice\n# sources only. Doxygen will then generate output that is more tailored for that\n# language. For instance, namespaces will be presented as modules, types will be\n# separated into more groups, etc.\n# The default value is: NO.\n\nOPTIMIZE_OUTPUT_SLICE  = NO\n\n# Doxygen selects the parser to use depending on the extension of the files it\n# parses. With this tag you can assign which parser to use for a given\n# extension. Doxygen has a built-in mapping, but you can override or extend it\n# using this tag. The format is ext=language, where ext is a file extension, and\n# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,\n# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,\n# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:\n# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser\n# tries to guess whether the code is fixed or free formatted code, this is the\n# default for Fortran type files). For instance to make doxygen treat .inc files\n# as Fortran files (default is PHP), and .f files as C (default is Fortran),\n# use: inc=Fortran f=C.\n#\n# Note: For files without extension you can use no_extension as a placeholder.\n#\n# Note that for custom extensions you also need to set FILE_PATTERNS otherwise\n# the files are not read by doxygen. When specifying no_extension you should add\n# * to the FILE_PATTERNS.\n#\n# Note see also the list of default file extension mappings.\n\nEXTENSION_MAPPING      =\n\n# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments\n# according to the Markdown format, which allows for more readable\n# documentation. See https://daringfireball.net/projects/markdown/ for details.\n# The output of markdown processing is further processed by doxygen, so you can\n# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in\n# case of backward compatibilities issues.\n# The default value is: YES.\n\nMARKDOWN_SUPPORT       = YES\n\n# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up\n# to that level are automatically included in the table of contents, even if\n# they do not have an id attribute.\n# Note: This feature currently applies only to Markdown headings.\n# Minimum value: 0, maximum value: 99, default value: 5.\n# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.\n\nTOC_INCLUDE_HEADINGS   = 0\n\n# When enabled doxygen tries to link words that correspond to documented\n# classes, or namespaces to their corresponding documentation. Such a link can\n# be prevented in individual cases by putting a % sign in front of the word or\n# globally by setting AUTOLINK_SUPPORT to NO.\n# The default value is: YES.\n\nAUTOLINK_SUPPORT       = YES\n\n# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want\n# to include (a tag file for) the STL sources as input, then you should set this\n# tag to YES in order to let doxygen match functions declarations and\n# definitions whose arguments contain STL classes (e.g. func(std::string);\n# versus func(std::string) {}). This also make the inheritance and collaboration\n# diagrams that involve STL classes more complete and accurate.\n# The default value is: NO.\n\nBUILTIN_STL_SUPPORT    = NO\n\n# If you use Microsoft's C++/CLI language, you should set this option to YES to\n# enable parsing support.\n# The default value is: NO.\n\nCPP_CLI_SUPPORT        = NO\n\n# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:\n# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen\n# will parse them like normal C++ but will assume all classes use public instead\n# of private inheritance when no explicit protection keyword is present.\n# The default value is: NO.\n\nSIP_SUPPORT            = NO\n\n# For Microsoft's IDL there are propget and propput attributes to indicate\n# getter and setter methods for a property. Setting this option to YES will make\n# doxygen to replace the get and set methods by a property in the documentation.\n# This will only work if the methods are indeed getting or setting a simple\n# type. If this is not the case, or you want to show the methods anyway, you\n# should set this option to NO.\n# The default value is: YES.\n\nIDL_PROPERTY_SUPPORT   = YES\n\n# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC\n# tag is set to YES then doxygen will reuse the documentation of the first\n# member in the group (if any) for the other members of the group. By default\n# all members of a group must be documented explicitly.\n# The default value is: NO.\n\nDISTRIBUTE_GROUP_DOC   = NO\n\n# If one adds a struct or class to a group and this option is enabled, then also\n# any nested class or struct is added to the same group. By default this option\n# is disabled and one has to add nested compounds explicitly via \\ingroup.\n# The default value is: NO.\n\nGROUP_NESTED_COMPOUNDS = NO\n\n# Set the SUBGROUPING tag to YES to allow class member groups of the same type\n# (for instance a group of public functions) to be put as a subgroup of that\n# type (e.g. under the Public Functions section). Set it to NO to prevent\n# subgrouping. Alternatively, this can be done per class using the\n# \\nosubgrouping command.\n# The default value is: YES.\n\nSUBGROUPING            = YES\n\n# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions\n# are shown inside the group in which they are included (e.g. using \\ingroup)\n# instead of on a separate page (for HTML and Man pages) or section (for LaTeX\n# and RTF).\n#\n# Note that this feature does not work in combination with\n# SEPARATE_MEMBER_PAGES.\n# The default value is: NO.\n\nINLINE_GROUPED_CLASSES = NO\n\n# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions\n# with only public data fields or simple typedef fields will be shown inline in\n# the documentation of the scope in which they are defined (i.e. file,\n# namespace, or group documentation), provided this scope is documented. If set\n# to NO, structs, classes, and unions are shown on a separate page (for HTML and\n# Man pages) or section (for LaTeX and RTF).\n# The default value is: NO.\n\nINLINE_SIMPLE_STRUCTS  = NO\n\n# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or\n# enum is documented as struct, union, or enum with the name of the typedef. So\n# typedef struct TypeS {} TypeT, will appear in the documentation as a struct\n# with name TypeT. When disabled the typedef will appear as a member of a file,\n# namespace, or class. And the struct will be named TypeS. This can typically be\n# useful for C code in case the coding convention dictates that all compound\n# types are typedef'ed and only the typedef is referenced, never the tag name.\n# The default value is: NO.\n\nTYPEDEF_HIDES_STRUCT   = NO\n\n# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This\n# cache is used to resolve symbols given their name and scope. Since this can be\n# an expensive process and often the same symbol appears multiple times in the\n# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small\n# doxygen will become slower. If the cache is too large, memory is wasted. The\n# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range\n# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536\n# symbols. At the end of a run doxygen will report the cache usage and suggest\n# the optimal cache size from a speed point of view.\n# Minimum value: 0, maximum value: 9, default value: 0.\n\nLOOKUP_CACHE_SIZE      = 0\n\n# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use\n# during processing. When set to 0 doxygen will based this on the number of\n# cores available in the system. You can set it explicitly to a value larger\n# than 0 to get more control over the balance between CPU load and processing\n# speed. At this moment only the input processing can be done using multiple\n# threads. Since this is still an experimental feature the default is set to 1,\n# which effectively disables parallel processing. Please report any issues you\n# encounter. Generating dot graphs in parallel is controlled by the\n# DOT_NUM_THREADS setting.\n# Minimum value: 0, maximum value: 32, default value: 1.\n\nNUM_PROC_THREADS       = 1\n\n#---------------------------------------------------------------------------\n# Build related configuration options\n#---------------------------------------------------------------------------\n\n# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in\n# documentation are documented, even if no documentation was available. Private\n# class members and static file members will be hidden unless the\n# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.\n# Note: This will also disable the warnings about undocumented members that are\n# normally produced when WARNINGS is set to YES.\n# The default value is: NO.\n\nEXTRACT_ALL            = YES\n\n# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will\n# be included in the documentation.\n# The default value is: NO.\n\nEXTRACT_PRIVATE        = NO\n\n# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual\n# methods of a class will be included in the documentation.\n# The default value is: NO.\n\nEXTRACT_PRIV_VIRTUAL   = NO\n\n# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal\n# scope will be included in the documentation.\n# The default value is: NO.\n\nEXTRACT_PACKAGE        = NO\n\n# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be\n# included in the documentation.\n# The default value is: NO.\n\nEXTRACT_STATIC         = NO\n\n# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined\n# locally in source files will be included in the documentation. If set to NO,\n# only classes defined in header files are included. Does not have any effect\n# for Java sources.\n# The default value is: YES.\n\nEXTRACT_LOCAL_CLASSES  = YES\n\n# This flag is only useful for Objective-C code. If set to YES, local methods,\n# which are defined in the implementation section but not in the interface are\n# included in the documentation. If set to NO, only methods in the interface are\n# included.\n# The default value is: NO.\n\nEXTRACT_LOCAL_METHODS  = NO\n\n# If this flag is set to YES, the members of anonymous namespaces will be\n# extracted and appear in the documentation as a namespace called\n# 'anonymous_namespace{file}', where file will be replaced with the base name of\n# the file that contains the anonymous namespace. By default anonymous namespace\n# are hidden.\n# The default value is: NO.\n\nEXTRACT_ANON_NSPACES   = NO\n\n# If this flag is set to YES, the name of an unnamed parameter in a declaration\n# will be determined by the corresponding definition. By default unnamed\n# parameters remain unnamed in the output.\n# The default value is: YES.\n\nRESOLVE_UNNAMED_PARAMS = YES\n\n# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all\n# undocumented members inside documented classes or files. If set to NO these\n# members will be included in the various overviews, but no documentation\n# section is generated. This option has no effect if EXTRACT_ALL is enabled.\n# The default value is: NO.\n\nHIDE_UNDOC_MEMBERS     = NO\n\n# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all\n# undocumented classes that are normally visible in the class hierarchy. If set\n# to NO, these classes will be included in the various overviews. This option\n# has no effect if EXTRACT_ALL is enabled.\n# The default value is: NO.\n\nHIDE_UNDOC_CLASSES     = NO\n\n# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend\n# declarations. If set to NO, these declarations will be included in the\n# documentation.\n# The default value is: NO.\n\nHIDE_FRIEND_COMPOUNDS  = NO\n\n# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any\n# documentation blocks found inside the body of a function. If set to NO, these\n# blocks will be appended to the function's detailed documentation block.\n# The default value is: NO.\n\nHIDE_IN_BODY_DOCS      = NO\n\n# The INTERNAL_DOCS tag determines if documentation that is typed after a\n# \\internal command is included. If the tag is set to NO then the documentation\n# will be excluded. Set it to YES to include the internal documentation.\n# The default value is: NO.\n\nINTERNAL_DOCS          = NO\n\n# With the correct setting of option CASE_SENSE_NAMES doxygen will better be\n# able to match the capabilities of the underlying filesystem. In case the\n# filesystem is case sensitive (i.e. it supports files in the same directory\n# whose names only differ in casing), the option must be set to YES to properly\n# deal with such files in case they appear in the input. For filesystems that\n# are not case sensitive the option should be be set to NO to properly deal with\n# output files written for symbols that only differ in casing, such as for two\n# classes, one named CLASS and the other named Class, and to also support\n# references to files without having to specify the exact matching casing. On\n# Windows (including Cygwin) and MacOS, users should typically set this option\n# to NO, whereas on Linux or other Unix flavors it should typically be set to\n# YES.\n# The default value is: system dependent.\n\nCASE_SENSE_NAMES       = NO\n\n# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with\n# their full class and namespace scopes in the documentation. If set to YES, the\n# scope will be hidden.\n# The default value is: NO.\n\nHIDE_SCOPE_NAMES       = NO\n\n# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will\n# append additional text to a page's title, such as Class Reference. If set to\n# YES the compound reference will be hidden.\n# The default value is: NO.\n\nHIDE_COMPOUND_REFERENCE= NO\n\n# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class\n# will show which file needs to be included to use the class.\n# The default value is: YES.\n\nSHOW_HEADERFILE        = YES\n\n# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of\n# the files that are included by a file in the documentation of that file.\n# The default value is: YES.\n\nSHOW_INCLUDE_FILES     = YES\n\n# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each\n# grouped member an include statement to the documentation, telling the reader\n# which file to include in order to use the member.\n# The default value is: NO.\n\nSHOW_GROUPED_MEMB_INC  = NO\n\n# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include\n# files with double quotes in the documentation rather than with sharp brackets.\n# The default value is: NO.\n\nFORCE_LOCAL_INCLUDES   = NO\n\n# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the\n# documentation for inline members.\n# The default value is: YES.\n\nINLINE_INFO            = YES\n\n# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the\n# (detailed) documentation of file and class members alphabetically by member\n# name. If set to NO, the members will appear in declaration order.\n# The default value is: YES.\n\nSORT_MEMBER_DOCS       = YES\n\n# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief\n# descriptions of file, namespace and class members alphabetically by member\n# name. If set to NO, the members will appear in declaration order. Note that\n# this will also influence the order of the classes in the class list.\n# The default value is: NO.\n\nSORT_BRIEF_DOCS        = NO\n\n# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the\n# (brief and detailed) documentation of class members so that constructors and\n# destructors are listed first. If set to NO the constructors will appear in the\n# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.\n# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief\n# member documentation.\n# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting\n# detailed member documentation.\n# The default value is: NO.\n\nSORT_MEMBERS_CTORS_1ST = NO\n\n# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy\n# of group names into alphabetical order. If set to NO the group names will\n# appear in their defined order.\n# The default value is: NO.\n\nSORT_GROUP_NAMES       = NO\n\n# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by\n# fully-qualified names, including namespaces. If set to NO, the class list will\n# be sorted only by class name, not including the namespace part.\n# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.\n# Note: This option applies only to the class list, not to the alphabetical\n# list.\n# The default value is: NO.\n\nSORT_BY_SCOPE_NAME     = NO\n\n# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper\n# type resolution of all parameters of a function it will reject a match between\n# the prototype and the implementation of a member function even if there is\n# only one candidate or it is obvious which candidate to choose by doing a\n# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still\n# accept a match between prototype and implementation in such cases.\n# The default value is: NO.\n\nSTRICT_PROTO_MATCHING  = NO\n\n# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo\n# list. This list is created by putting \\todo commands in the documentation.\n# The default value is: YES.\n\nGENERATE_TODOLIST      = YES\n\n# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test\n# list. This list is created by putting \\test commands in the documentation.\n# The default value is: YES.\n\nGENERATE_TESTLIST      = YES\n\n# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug\n# list. This list is created by putting \\bug commands in the documentation.\n# The default value is: YES.\n\nGENERATE_BUGLIST       = YES\n\n# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)\n# the deprecated list. This list is created by putting \\deprecated commands in\n# the documentation.\n# The default value is: YES.\n\nGENERATE_DEPRECATEDLIST= YES\n\n# The ENABLED_SECTIONS tag can be used to enable conditional documentation\n# sections, marked by \\if <section_label> ... \\endif and \\cond <section_label>\n# ... \\endcond blocks.\n\nENABLED_SECTIONS       =\n\n# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the\n# initial value of a variable or macro / define can have for it to appear in the\n# documentation. If the initializer consists of more lines than specified here\n# it will be hidden. Use a value of 0 to hide initializers completely. The\n# appearance of the value of individual variables and macros / defines can be\n# controlled using \\showinitializer or \\hideinitializer command in the\n# documentation regardless of this setting.\n# Minimum value: 0, maximum value: 10000, default value: 30.\n\nMAX_INITIALIZER_LINES  = 30\n\n# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at\n# the bottom of the documentation of classes and structs. If set to YES, the\n# list will mention the files that were used to generate the documentation.\n# The default value is: YES.\n\nSHOW_USED_FILES        = YES\n\n# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This\n# will remove the Files entry from the Quick Index and from the Folder Tree View\n# (if specified).\n# The default value is: YES.\n\nSHOW_FILES             = YES\n\n# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces\n# page. This will remove the Namespaces entry from the Quick Index and from the\n# Folder Tree View (if specified).\n# The default value is: YES.\n\nSHOW_NAMESPACES        = YES\n\n# The FILE_VERSION_FILTER tag can be used to specify a program or script that\n# doxygen should invoke to get the current version for each file (typically from\n# the version control system). Doxygen will invoke the program by executing (via\n# popen()) the command command input-file, where command is the value of the\n# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided\n# by doxygen. Whatever the program writes to standard output is used as the file\n# version. For an example see the documentation.\n\nFILE_VERSION_FILTER    =\n\n# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n# by doxygen. The layout file controls the global structure of the generated\n# output files in an output format independent way. To create the layout file\n# that represents doxygen's defaults, run doxygen with the -l option. You can\n# optionally specify a file name after the option, if omitted DoxygenLayout.xml\n# will be used as the name of the layout file. See also section \"Changing the\n# layout of pages\" for information.\n#\n# Note that if you run doxygen from a directory containing a file called\n# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE\n# tag is left empty.\n\nLAYOUT_FILE            =\n\n# The CITE_BIB_FILES tag can be used to specify one or more bib files containing\n# the reference definitions. This must be a list of .bib files. The .bib\n# extension is automatically appended if omitted. This requires the bibtex tool\n# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.\n# For LaTeX the style of the bibliography can be controlled using\n# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the\n# search path. See also \\cite for info how to create references.\n\nCITE_BIB_FILES         =\n\n#---------------------------------------------------------------------------\n# Configuration options related to warning and progress messages\n#---------------------------------------------------------------------------\n\n# The QUIET tag can be used to turn on/off the messages that are generated to\n# standard output by doxygen. If QUIET is set to YES this implies that the\n# messages are off.\n# The default value is: NO.\n\nQUIET                  = NO\n\n# The WARNINGS tag can be used to turn on/off the warning messages that are\n# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES\n# this implies that the warnings are on.\n#\n# Tip: Turn warnings on while writing the documentation.\n# The default value is: YES.\n\nWARNINGS               = YES\n\n# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate\n# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag\n# will automatically be disabled.\n# The default value is: YES.\n\nWARN_IF_UNDOCUMENTED   = YES\n\n# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for\n# potential errors in the documentation, such as documenting some parameters in\n# a documented function twice, or documenting parameters that don't exist or\n# using markup commands wrongly.\n# The default value is: YES.\n\nWARN_IF_DOC_ERROR      = YES\n\n# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete\n# function parameter documentation. If set to NO, doxygen will accept that some\n# parameters have no documentation without warning.\n# The default value is: YES.\n\nWARN_IF_INCOMPLETE_DOC = YES\n\n# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that\n# are documented, but have no documentation for their parameters or return\n# value. If set to NO, doxygen will only warn about wrong parameter\n# documentation, but not about the absence of documentation. If EXTRACT_ALL is\n# set to YES then this flag will automatically be disabled. See also\n# WARN_IF_INCOMPLETE_DOC\n# The default value is: NO.\n\nWARN_NO_PARAMDOC       = NO\n\n# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when\n# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS\n# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but\n# at the end of the doxygen process doxygen will return with a non-zero status.\n# Possible values are: NO, YES and FAIL_ON_WARNINGS.\n# The default value is: NO.\n\nWARN_AS_ERROR          = NO\n\n# The WARN_FORMAT tag determines the format of the warning messages that doxygen\n# can produce. The string should contain the $file, $line, and $text tags, which\n# will be replaced by the file and line number from which the warning originated\n# and the warning text. Optionally the format may contain $version, which will\n# be replaced by the version of the file (if it could be obtained via\n# FILE_VERSION_FILTER)\n# The default value is: $file:$line: $text.\n\nWARN_FORMAT            = \"$file:$line: $text\"\n\n# The WARN_LOGFILE tag can be used to specify a file to which warning and error\n# messages should be written. If left blank the output is written to standard\n# error (stderr).\n\nWARN_LOGFILE           =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the input files\n#---------------------------------------------------------------------------\n\n# The INPUT tag is used to specify the files and/or directories that contain\n# documented source files. You may enter file names like myfile.cpp or\n# directories like /usr/src/myproject. Separate the files or directories with\n# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING\n# Note: If this tag is empty the current directory is searched.\n\nINPUT                  = ../Nakama/ ../Satori ../README.md ../CHANGELOG.md\n\n# This tag can be used to specify the character encoding of the source files\n# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses\n# libiconv (or the iconv built into libc) for the transcoding. See the libiconv\n# documentation (see:\n# https://www.gnu.org/software/libiconv/) for the list of possible encodings.\n# The default value is: UTF-8.\n\nINPUT_ENCODING         = UTF-8\n\n# If the value of the INPUT tag contains directories, you can use the\n# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and\n# *.h) to filter out the source-files in the directories.\n#\n# Note that for custom extensions or not directly supported extensions you also\n# need to set EXTENSION_MAPPING for the extension otherwise the files are not\n# read by doxygen.\n#\n# Note the list of default checked file patterns might differ from the list of\n# default file extension mappings.\n#\n# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,\n# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,\n# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml,\n# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C\n# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,\n# *.vhdl, *.ucf, *.qsf and *.ice.\n\nFILE_PATTERNS          = *.c \\\n                         *.cc \\\n                         *.cxx \\\n                         *.cpp \\\n                         *.c++ \\\n                         *.java \\\n                         *.ii \\\n                         *.ixx \\\n                         *.ipp \\\n                         *.i++ \\\n                         *.inl \\\n                         *.idl \\\n                         *.ddl \\\n                         *.odl \\\n                         *.h \\\n                         *.hh \\\n                         *.hxx \\\n                         *.hpp \\\n                         *.h++ \\\n                         *.l \\\n                         *.cs \\\n                         *.d \\\n                         *.php \\\n                         *.php4 \\\n                         *.php5 \\\n                         *.phtml \\\n                         *.inc \\\n                         *.m \\\n                         *.markdown \\\n                         *.md \\\n                         *.mm \\\n                         *.dox \\\n                         *.py \\\n                         *.pyw \\\n                         *.f90 \\\n                         *.f95 \\\n                         *.f03 \\\n                         *.f08 \\\n                         *.f18 \\\n                         *.f \\\n                         *.for \\\n                         *.vhd \\\n                         *.vhdl \\\n                         *.ucf \\\n                         *.qsf \\\n                         *.ice\n\n# The RECURSIVE tag can be used to specify whether or not subdirectories should\n# be searched for input files as well.\n# The default value is: NO.\n\nRECURSIVE              = YES\n\n# The EXCLUDE tag can be used to specify files and/or directories that should be\n# excluded from the INPUT source files. This way you can easily exclude a\n# subdirectory from a directory tree whose root is specified with the INPUT tag.\n#\n# Note that relative paths are relative to the directory from which doxygen is\n# run.\n\nEXCLUDE                =\n\n# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n# directories that are symbolic links (a Unix file system feature) are excluded\n# from the input.\n# The default value is: NO.\n\nEXCLUDE_SYMLINKS       = NO\n\n# If the value of the INPUT tag contains directories, you can use the\n# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude\n# certain files from those directories.\n#\n# Note that the wildcards are matched against the file with absolute path, so to\n# exclude all test directories for example use the pattern */test/*\n\nEXCLUDE_PATTERNS       =\n\n# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n# (namespaces, classes, functions, etc.) that should be excluded from the\n# output. The symbol name can be a fully qualified name, a word, or if the\n# wildcard * is used, a substring. Examples: ANamespace, AClass,\n# AClass::ANamespace, ANamespace::*Test\n#\n# Note that the wildcards are matched against the file with absolute path, so to\n# exclude all test directories use the pattern */test/*\n\nEXCLUDE_SYMBOLS        =\n\n# The EXAMPLE_PATH tag can be used to specify one or more files or directories\n# that contain example code fragments that are included (see the \\include\n# command).\n\nEXAMPLE_PATH           =\n\n# If the value of the EXAMPLE_PATH tag contains directories, you can use the\n# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and\n# *.h) to filter out the source-files in the directories. If left blank all\n# files are included.\n\nEXAMPLE_PATTERNS       = *\n\n# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be\n# searched for input files to be used with the \\include or \\dontinclude commands\n# irrespective of the value of the RECURSIVE tag.\n# The default value is: NO.\n\nEXAMPLE_RECURSIVE      = NO\n\n# The IMAGE_PATH tag can be used to specify one or more files or directories\n# that contain images that are to be included in the documentation (see the\n# \\image command).\n\nIMAGE_PATH             =\n\n# The INPUT_FILTER tag can be used to specify a program that doxygen should\n# invoke to filter for each input file. Doxygen will invoke the filter program\n# by executing (via popen()) the command:\n#\n# <filter> <input-file>\n#\n# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the\n# name of an input file. Doxygen will then use the output that the filter\n# program writes to standard output. If FILTER_PATTERNS is specified, this tag\n# will be ignored.\n#\n# Note that the filter must not add or remove lines; it is applied before the\n# code is scanned, but not when the output code is generated. If lines are added\n# or removed, the anchors will not be placed correctly.\n#\n# Note that for custom extensions or not directly supported extensions you also\n# need to set EXTENSION_MAPPING for the extension otherwise the files are not\n# properly processed by doxygen.\n\nINPUT_FILTER           =\n\n# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern\n# basis. Doxygen will compare the file name with each pattern and apply the\n# filter if there is a match. The filters are a list of the form: pattern=filter\n# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how\n# filters are used. If the FILTER_PATTERNS tag is empty or if none of the\n# patterns match the file name, INPUT_FILTER is applied.\n#\n# Note that for custom extensions or not directly supported extensions you also\n# need to set EXTENSION_MAPPING for the extension otherwise the files are not\n# properly processed by doxygen.\n\nFILTER_PATTERNS        =\n\n# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using\n# INPUT_FILTER) will also be used to filter the input files that are used for\n# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).\n# The default value is: NO.\n\nFILTER_SOURCE_FILES    = NO\n\n# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file\n# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and\n# it is also possible to disable source filtering for a specific pattern using\n# *.ext= (so without naming a filter).\n# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.\n\nFILTER_SOURCE_PATTERNS =\n\n# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that\n# is part of the input, its contents will be placed on the main page\n# (index.html). This can be useful if you have a project on for instance GitHub\n# and want to reuse the introduction page also for the doxygen output.\n\nUSE_MDFILE_AS_MAINPAGE = README.md\n\n#---------------------------------------------------------------------------\n# Configuration options related to source browsing\n#---------------------------------------------------------------------------\n\n# If the SOURCE_BROWSER tag is set to YES then a list of source files will be\n# generated. Documented entities will be cross-referenced with these sources.\n#\n# Note: To get rid of all source code in the generated output, make sure that\n# also VERBATIM_HEADERS is set to NO.\n# The default value is: NO.\n\nSOURCE_BROWSER         = NO\n\n# Setting the INLINE_SOURCES tag to YES will include the body of functions,\n# classes and enums directly into the documentation.\n# The default value is: NO.\n\nINLINE_SOURCES         = NO\n\n# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any\n# special comment blocks from generated source code fragments. Normal C, C++ and\n# Fortran comments will always remain visible.\n# The default value is: YES.\n\nSTRIP_CODE_COMMENTS    = YES\n\n# If the REFERENCED_BY_RELATION tag is set to YES then for each documented\n# entity all documented functions referencing it will be listed.\n# The default value is: NO.\n\nREFERENCED_BY_RELATION = NO\n\n# If the REFERENCES_RELATION tag is set to YES then for each documented function\n# all documented entities called/used by that function will be listed.\n# The default value is: NO.\n\nREFERENCES_RELATION    = NO\n\n# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set\n# to YES then the hyperlinks from functions in REFERENCES_RELATION and\n# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will\n# link to the documentation.\n# The default value is: YES.\n\nREFERENCES_LINK_SOURCE = YES\n\n# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the\n# source code will show a tooltip with additional information such as prototype,\n# brief description and links to the definition and documentation. Since this\n# will make the HTML file larger and loading of large files a bit slower, you\n# can opt to disable this feature.\n# The default value is: YES.\n# This tag requires that the tag SOURCE_BROWSER is set to YES.\n\nSOURCE_TOOLTIPS        = YES\n\n# If the USE_HTAGS tag is set to YES then the references to source code will\n# point to the HTML generated by the htags(1) tool instead of doxygen built-in\n# source browser. The htags tool is part of GNU's global source tagging system\n# (see https://www.gnu.org/software/global/global.html). You will need version\n# 4.8.6 or higher.\n#\n# To use it do the following:\n# - Install the latest version of global\n# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file\n# - Make sure the INPUT points to the root of the source tree\n# - Run doxygen as normal\n#\n# Doxygen will invoke htags (and that will in turn invoke gtags), so these\n# tools must be available from the command line (i.e. in the search path).\n#\n# The result: instead of the source browser generated by doxygen, the links to\n# source code will now point to the output of htags.\n# The default value is: NO.\n# This tag requires that the tag SOURCE_BROWSER is set to YES.\n\nUSE_HTAGS              = NO\n\n# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a\n# verbatim copy of the header file for each class for which an include is\n# specified. Set to NO to disable this.\n# See also: Section \\class.\n# The default value is: YES.\n\nVERBATIM_HEADERS       = YES\n\n#---------------------------------------------------------------------------\n# Configuration options related to the alphabetical class index\n#---------------------------------------------------------------------------\n\n# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all\n# compounds will be generated. Enable this if the project contains a lot of\n# classes, structs, unions or interfaces.\n# The default value is: YES.\n\nALPHABETICAL_INDEX     = YES\n\n# In case all classes in a project start with a common prefix, all classes will\n# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag\n# can be used to specify a prefix (or a list of prefixes) that should be ignored\n# while generating the index headers.\n# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.\n\nIGNORE_PREFIX          =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the HTML output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output\n# The default value is: YES.\n\nGENERATE_HTML          = YES\n\n# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a\n# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n# it.\n# The default directory is: html.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_OUTPUT            = html\n\n# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each\n# generated HTML page (for example: .htm, .php, .asp).\n# The default value is: .html.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_FILE_EXTENSION    = .html\n\n# The HTML_HEADER tag can be used to specify a user-defined HTML header file for\n# each generated HTML page. If the tag is left blank doxygen will generate a\n# standard header.\n#\n# To get valid HTML the header file that includes any scripts and style sheets\n# that doxygen needs, which is dependent on the configuration options used (e.g.\n# the setting GENERATE_TREEVIEW). It is highly recommended to start with a\n# default header using\n# doxygen -w html new_header.html new_footer.html new_stylesheet.css\n# YourConfigFile\n# and then modify the file new_header.html. See also section \"Doxygen usage\"\n# for information on how to generate the default header that doxygen normally\n# uses.\n# Note: The header is subject to change so you typically have to regenerate the\n# default header when upgrading to a newer version of doxygen. For a description\n# of the possible markers and block names see the documentation.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_HEADER            =\n\n# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each\n# generated HTML page. If the tag is left blank doxygen will generate a standard\n# footer. See HTML_HEADER for more information on how to generate a default\n# footer and what special commands can be used inside the footer. See also\n# section \"Doxygen usage\" for information on how to generate the default footer\n# that doxygen normally uses.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_FOOTER            =\n\n# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style\n# sheet that is used by each HTML page. It can be used to fine-tune the look of\n# the HTML output. If left blank doxygen will generate a default style sheet.\n# See also section \"Doxygen usage\" for information on how to generate the style\n# sheet that doxygen normally uses.\n# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as\n# it is more robust and this tag (HTML_STYLESHEET) will in the future become\n# obsolete.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_STYLESHEET        =\n\n# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined\n# cascading style sheets that are included after the standard style sheets\n# created by doxygen. Using this option one can overrule certain style aspects.\n# This is preferred over using HTML_STYLESHEET since it does not replace the\n# standard style sheet and is therefore more robust against future updates.\n# Doxygen will copy the style sheet files to the output directory.\n# Note: The order of the extra style sheet files is of importance (e.g. the last\n# style sheet in the list overrules the setting of the previous ones in the\n# list). For an example see the documentation.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_EXTRA_STYLESHEET  =\n\n# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or\n# other source files which should be copied to the HTML output directory. Note\n# that these files will be copied to the base HTML output directory. Use the\n# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these\n# files. In the HTML_STYLESHEET file, use the file name only. Also note that the\n# files will be copied as-is; there are no commands or markers available.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_EXTRA_FILES       =\n\n# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen\n# will adjust the colors in the style sheet and background images according to\n# this color. Hue is specified as an angle on a color-wheel, see\n# https://en.wikipedia.org/wiki/Hue for more information. For instance the value\n# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300\n# purple, and 360 is red again.\n# Minimum value: 0, maximum value: 359, default value: 220.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_COLORSTYLE_HUE    = 220\n\n# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors\n# in the HTML output. For a value of 0 the output will use gray-scales only. A\n# value of 255 will produce the most vivid colors.\n# Minimum value: 0, maximum value: 255, default value: 100.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_COLORSTYLE_SAT    = 100\n\n# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the\n# luminance component of the colors in the HTML output. Values below 100\n# gradually make the output lighter, whereas values above 100 make the output\n# darker. The value divided by 100 is the actual gamma applied, so 80 represents\n# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not\n# change the gamma.\n# Minimum value: 40, maximum value: 240, default value: 80.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_COLORSTYLE_GAMMA  = 80\n\n# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n# page will contain the date and time when the page was generated. Setting this\n# to YES can help to show when doxygen was last run and thus if the\n# documentation is up to date.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_TIMESTAMP         = NO\n\n# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML\n# documentation will contain a main index with vertical navigation menus that\n# are dynamically created via JavaScript. If disabled, the navigation index will\n# consists of multiple levels of tabs that are statically embedded in every HTML\n# page. Disable this option to support browsers that do not have JavaScript,\n# like the Qt help browser.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_DYNAMIC_MENUS     = YES\n\n# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n# documentation will contain sections that can be hidden and shown after the\n# page has loaded.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_DYNAMIC_SECTIONS  = NO\n\n# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries\n# shown in the various tree structured indices initially; the user can expand\n# and collapse entries dynamically later on. Doxygen will expand the tree to\n# such a level that at most the specified number of entries are visible (unless\n# a fully collapsed tree already exceeds this amount). So setting the number of\n# entries 1 will produce a full collapsed tree by default. 0 is a special value\n# representing an infinite number of entries and will result in a full expanded\n# tree by default.\n# Minimum value: 0, maximum value: 9999, default value: 100.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_INDEX_NUM_ENTRIES = 100\n\n# If the GENERATE_DOCSET tag is set to YES, additional index files will be\n# generated that can be used as input for Apple's Xcode 3 integrated development\n# environment (see:\n# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To\n# create a documentation set, doxygen will generate a Makefile in the HTML\n# output directory. Running make will produce the docset in that directory and\n# running make install will install the docset in\n# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at\n# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy\n# genXcode/_index.html for more information.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nGENERATE_DOCSET        = NO\n\n# This tag determines the name of the docset feed. A documentation feed provides\n# an umbrella under which multiple documentation sets from a single provider\n# (such as a company or product suite) can be grouped.\n# The default value is: Doxygen generated docs.\n# This tag requires that the tag GENERATE_DOCSET is set to YES.\n\nDOCSET_FEEDNAME        = \"Doxygen generated docs\"\n\n# This tag specifies a string that should uniquely identify the documentation\n# set bundle. This should be a reverse domain-name style string, e.g.\n# com.mycompany.MyDocSet. Doxygen will append .docset to the name.\n# The default value is: org.doxygen.Project.\n# This tag requires that the tag GENERATE_DOCSET is set to YES.\n\nDOCSET_BUNDLE_ID       = org.doxygen.Project\n\n# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify\n# the documentation publisher. This should be a reverse domain-name style\n# string, e.g. com.mycompany.MyDocSet.documentation.\n# The default value is: org.doxygen.Publisher.\n# This tag requires that the tag GENERATE_DOCSET is set to YES.\n\nDOCSET_PUBLISHER_ID    = org.doxygen.Publisher\n\n# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.\n# The default value is: Publisher.\n# This tag requires that the tag GENERATE_DOCSET is set to YES.\n\nDOCSET_PUBLISHER_NAME  = Publisher\n\n# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three\n# additional HTML index files: index.hhp, index.hhc, and index.hhk. The\n# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop\n# on Windows. In the beginning of 2021 Microsoft took the original page, with\n# a.o. the download links, offline the HTML help workshop was already many years\n# in maintenance mode). You can download the HTML help workshop from the web\n# archives at Installation executable (see:\n# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo\n# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe).\n#\n# The HTML Help Workshop contains a compiler that can convert all HTML output\n# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML\n# files are now used as the Windows 98 help format, and will replace the old\n# Windows help format (.hlp) on all Windows platforms in the future. Compressed\n# HTML files also contain an index, a table of contents, and you can search for\n# words in the documentation. The HTML workshop also contains a viewer for\n# compressed HTML files.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nGENERATE_HTMLHELP      = NO\n\n# The CHM_FILE tag can be used to specify the file name of the resulting .chm\n# file. You can add a path in front of the file if the result should not be\n# written to the html output directory.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nCHM_FILE               =\n\n# The HHC_LOCATION tag can be used to specify the location (absolute path\n# including file name) of the HTML help compiler (hhc.exe). If non-empty,\n# doxygen will try to run the HTML help compiler on the generated index.hhp.\n# The file has to be specified with full path.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nHHC_LOCATION           =\n\n# The GENERATE_CHI flag controls if a separate .chi index file is generated\n# (YES) or that it should be included in the main .chm file (NO).\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nGENERATE_CHI           = NO\n\n# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)\n# and project file content.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nCHM_INDEX_ENCODING     =\n\n# The BINARY_TOC flag controls whether a binary table of contents is generated\n# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it\n# enables the Previous and Next buttons.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nBINARY_TOC             = NO\n\n# The TOC_EXPAND flag can be set to YES to add extra items for group members to\n# the table of contents of the HTML help documentation and to the tree view.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTMLHELP is set to YES.\n\nTOC_EXPAND             = NO\n\n# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that\n# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help\n# (.qch) of the generated HTML documentation.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nGENERATE_QHP           = NO\n\n# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify\n# the file name of the resulting .qch file. The path specified is relative to\n# the HTML output folder.\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQCH_FILE               =\n\n# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help\n# Project output. For more information please see Qt Help Project / Namespace\n# (see:\n# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).\n# The default value is: org.doxygen.Project.\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHP_NAMESPACE          = org.doxygen.Project\n\n# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt\n# Help Project output. For more information please see Qt Help Project / Virtual\n# Folders (see:\n# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders).\n# The default value is: doc.\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHP_VIRTUAL_FOLDER     = doc\n\n# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom\n# filter to add. For more information please see Qt Help Project / Custom\n# Filters (see:\n# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHP_CUST_FILTER_NAME   =\n\n# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the\n# custom filter to add. For more information please see Qt Help Project / Custom\n# Filters (see:\n# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters).\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHP_CUST_FILTER_ATTRS  =\n\n# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n# project's filter section matches. Qt Help Project / Filter Attributes (see:\n# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHP_SECT_FILTER_ATTRS  =\n\n# The QHG_LOCATION tag can be used to specify the location (absolute path\n# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to\n# run qhelpgenerator on the generated .qhp file.\n# This tag requires that the tag GENERATE_QHP is set to YES.\n\nQHG_LOCATION           =\n\n# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be\n# generated, together with the HTML files, they form an Eclipse help plugin. To\n# install this plugin and make it available under the help contents menu in\n# Eclipse, the contents of the directory containing the HTML and XML files needs\n# to be copied into the plugins directory of eclipse. The name of the directory\n# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.\n# After copying Eclipse needs to be restarted before the help appears.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nGENERATE_ECLIPSEHELP   = NO\n\n# A unique identifier for the Eclipse help plugin. When installing the plugin\n# the directory name containing the HTML and XML files should also have this\n# name. Each documentation set should have its own identifier.\n# The default value is: org.doxygen.Project.\n# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.\n\nECLIPSE_DOC_ID         = org.doxygen.Project\n\n# If you want full control over the layout of the generated HTML pages it might\n# be necessary to disable the index and replace it with your own. The\n# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top\n# of each HTML page. A value of NO enables the index and the value YES disables\n# it. Since the tabs in the index contain the same information as the navigation\n# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nDISABLE_INDEX          = NO\n\n# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index\n# structure should be generated to display hierarchical information. If the tag\n# value is set to YES, a side panel will be generated containing a tree-like\n# index structure (just like the one that is generated for HTML Help). For this\n# to work a browser that supports JavaScript, DHTML, CSS and frames is required\n# (i.e. any modern browser). Windows users are probably better off using the\n# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can\n# further fine tune the look of the index (see \"Fine-tuning the output\"). As an\n# example, the default style sheet generated by doxygen has an example that\n# shows how to put an image at the root of the tree instead of the PROJECT_NAME.\n# Since the tree basically has the same information as the tab index, you could\n# consider setting DISABLE_INDEX to YES when enabling this option.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nGENERATE_TREEVIEW      = YES\n\n# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the\n# FULL_SIDEBAR option determines if the side bar is limited to only the treeview\n# area (value NO) or if it should extend to the full height of the window (value\n# YES). Setting this to YES gives a layout similar to\n# https://docs.readthedocs.io with more room for contents, but less room for the\n# project logo, title, and description. If either GENERATOR_TREEVIEW or\n# DISABLE_INDEX is set to NO, this option has no effect.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nFULL_SIDEBAR           = NO\n\n# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that\n# doxygen will group on one line in the generated HTML documentation.\n#\n# Note that a value of 0 will completely suppress the enum values from appearing\n# in the overview section.\n# Minimum value: 0, maximum value: 20, default value: 4.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nENUM_VALUES_PER_LINE   = 4\n\n# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used\n# to set the initial width (in pixels) of the frame in which the tree is shown.\n# Minimum value: 0, maximum value: 1500, default value: 250.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nTREEVIEW_WIDTH         = 250\n\n# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to\n# external symbols imported via tag files in a separate window.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nEXT_LINKS_IN_WINDOW    = NO\n\n# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg\n# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see\n# https://inkscape.org) to generate formulas as SVG images instead of PNGs for\n# the HTML output. These images will generally look nicer at scaled resolutions.\n# Possible values are: png (the default) and svg (looks nicer but requires the\n# pdf2svg or inkscape tool).\n# The default value is: png.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nHTML_FORMULA_FORMAT    = png\n\n# Use this tag to change the font size of LaTeX formulas included as images in\n# the HTML documentation. When you change the font size after a successful\n# doxygen run you need to manually remove any form_*.png images from the HTML\n# output directory to force them to be regenerated.\n# Minimum value: 8, maximum value: 50, default value: 10.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nFORMULA_FONTSIZE       = 10\n\n# Use the FORMULA_TRANSPARENT tag to determine whether or not the images\n# generated for formulas are transparent PNGs. Transparent PNGs are not\n# supported properly for IE 6.0, but are supported on all modern browsers.\n#\n# Note that when changing this option you need to delete any form_*.png files in\n# the HTML output directory before the changes have effect.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nFORMULA_TRANSPARENT    = YES\n\n# The FORMULA_MACROFILE can contain LaTeX \\newcommand and \\renewcommand commands\n# to create new LaTeX commands to be used in formulas as building blocks. See\n# the section \"Including formulas\" for details.\n\nFORMULA_MACROFILE      =\n\n# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see\n# https://www.mathjax.org) which uses client side JavaScript for the rendering\n# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX\n# installed or if you want to formulas look prettier in the HTML output. When\n# enabled you may also need to install MathJax separately and configure the path\n# to it using the MATHJAX_RELPATH option.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nUSE_MATHJAX            = NO\n\n# With MATHJAX_VERSION it is possible to specify the MathJax version to be used.\n# Note that the different versions of MathJax have different requirements with\n# regards to the different settings, so it is possible that also other MathJax\n# settings have to be changed when switching between the different MathJax\n# versions.\n# Possible values are: MathJax_2 and MathJax_3.\n# The default value is: MathJax_2.\n# This tag requires that the tag USE_MATHJAX is set to YES.\n\nMATHJAX_VERSION        = MathJax_2\n\n# When MathJax is enabled you can set the default output format to be used for\n# the MathJax output. For more details about the output format see MathJax\n# version 2 (see:\n# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3\n# (see:\n# http://docs.mathjax.org/en/latest/web/components/output.html).\n# Possible values are: HTML-CSS (which is slower, but has the best\n# compatibility. This is the name for Mathjax version 2, for MathJax version 3\n# this will be translated into chtml), NativeMML (i.e. MathML. Only supported\n# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This\n# is the name for Mathjax version 3, for MathJax version 2 this will be\n# translated into HTML-CSS) and SVG.\n# The default value is: HTML-CSS.\n# This tag requires that the tag USE_MATHJAX is set to YES.\n\nMATHJAX_FORMAT         = HTML-CSS\n\n# When MathJax is enabled you need to specify the location relative to the HTML\n# output directory using the MATHJAX_RELPATH option. The destination directory\n# should contain the MathJax.js script. For instance, if the mathjax directory\n# is located at the same level as the HTML output directory, then\n# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax\n# Content Delivery Network so you can quickly see the result without installing\n# MathJax. However, it is strongly recommended to install a local copy of\n# MathJax from https://www.mathjax.org before deployment. The default value is:\n# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2\n# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3\n# This tag requires that the tag USE_MATHJAX is set to YES.\n\nMATHJAX_RELPATH        =\n\n# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax\n# extension names that should be enabled during MathJax rendering. For example\n# for MathJax version 2 (see https://docs.mathjax.org/en/v2.7-latest/tex.html\n# #tex-and-latex-extensions):\n# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols\n# For example for MathJax version 3 (see\n# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):\n# MATHJAX_EXTENSIONS = ams\n# This tag requires that the tag USE_MATHJAX is set to YES.\n\nMATHJAX_EXTENSIONS     =\n\n# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces\n# of code that will be used on startup of the MathJax code. See the MathJax site\n# (see:\n# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an\n# example see the documentation.\n# This tag requires that the tag USE_MATHJAX is set to YES.\n\nMATHJAX_CODEFILE       =\n\n# When the SEARCHENGINE tag is enabled doxygen will generate a search box for\n# the HTML output. The underlying search engine uses javascript and DHTML and\n# should work on any modern browser. Note that when using HTML help\n# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)\n# there is already a search function so this one should typically be disabled.\n# For large projects the javascript based search engine can be slow, then\n# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to\n# search using the keyboard; to jump to the search box use <access key> + S\n# (what the <access key> is depends on the OS and browser, but it is typically\n# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down\n# key> to jump into the search results window, the results can be navigated\n# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel\n# the search. The filter options can be selected when the cursor is inside the\n# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>\n# to select a filter and <Enter> or <escape> to activate or cancel the filter\n# option.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_HTML is set to YES.\n\nSEARCHENGINE           = YES\n\n# When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n# implemented using a web server instead of a web client using JavaScript. There\n# are two flavors of web server based searching depending on the EXTERNAL_SEARCH\n# setting. When disabled, doxygen will generate a PHP script for searching and\n# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing\n# and searching needs to be provided by external tools. See the section\n# \"External Indexing and Searching\" for details.\n# The default value is: NO.\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nSERVER_BASED_SEARCH    = NO\n\n# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP\n# script for searching. Instead the search results are written to an XML file\n# which needs to be processed by an external indexer. Doxygen will invoke an\n# external search engine pointed to by the SEARCHENGINE_URL option to obtain the\n# search results.\n#\n# Doxygen ships with an example indexer (doxyindexer) and search engine\n# (doxysearch.cgi) which are based on the open source search engine library\n# Xapian (see:\n# https://xapian.org/).\n#\n# See the section \"External Indexing and Searching\" for details.\n# The default value is: NO.\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nEXTERNAL_SEARCH        = NO\n\n# The SEARCHENGINE_URL should point to a search engine hosted by a web server\n# which will return the search results when EXTERNAL_SEARCH is enabled.\n#\n# Doxygen ships with an example indexer (doxyindexer) and search engine\n# (doxysearch.cgi) which are based on the open source search engine library\n# Xapian (see:\n# https://xapian.org/). See the section \"External Indexing and Searching\" for\n# details.\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nSEARCHENGINE_URL       =\n\n# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed\n# search data is written to a file for indexing by an external tool. With the\n# SEARCHDATA_FILE tag the name of this file can be specified.\n# The default file is: searchdata.xml.\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nSEARCHDATA_FILE        = searchdata.xml\n\n# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the\n# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is\n# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple\n# projects and redirect the results back to the right project.\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nEXTERNAL_SEARCH_ID     =\n\n# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen\n# projects other than the one defined by this configuration file, but that are\n# all added to the same external search index. Each project needs to have a\n# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of\n# to a relative location where the documentation can be found. The format is:\n# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...\n# This tag requires that the tag SEARCHENGINE is set to YES.\n\nEXTRA_SEARCH_MAPPINGS  =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the LaTeX output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.\n# The default value is: YES.\n\nGENERATE_LATEX         = NO\n\n# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a\n# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n# it.\n# The default directory is: latex.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_OUTPUT           = latex\n\n# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be\n# invoked.\n#\n# Note that when not enabling USE_PDFLATEX the default is latex when enabling\n# USE_PDFLATEX the default is pdflatex and when in the later case latex is\n# chosen this is overwritten by pdflatex. For specific output languages the\n# default can have been set differently, this depends on the implementation of\n# the output language.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_CMD_NAME         =\n\n# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate\n# index for LaTeX.\n# Note: This tag is used in the Makefile / make.bat.\n# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file\n# (.tex).\n# The default file is: makeindex.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nMAKEINDEX_CMD_NAME     = makeindex\n\n# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to\n# generate index for LaTeX. In case there is no backslash (\\) as first character\n# it will be automatically added in the LaTeX code.\n# Note: This tag is used in the generated output file (.tex).\n# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.\n# The default value is: makeindex.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_MAKEINDEX_CMD    = makeindex\n\n# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX\n# documents. This may be useful for small projects and may help to save some\n# trees in general.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nCOMPACT_LATEX          = NO\n\n# The PAPER_TYPE tag can be used to set the paper type that is used by the\n# printer.\n# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x\n# 14 inches) and executive (7.25 x 10.5 inches).\n# The default value is: a4.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nPAPER_TYPE             = a4\n\n# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names\n# that should be included in the LaTeX output. The package can be specified just\n# by its name or with the correct syntax as to be used with the LaTeX\n# \\usepackage command. To get the times font for instance you can specify :\n# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}\n# To use the option intlimits with the amsmath package you can specify:\n# EXTRA_PACKAGES=[intlimits]{amsmath}\n# If left blank no extra packages will be included.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nEXTRA_PACKAGES         =\n\n# The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for\n# the generated LaTeX document. The header should contain everything until the\n# first chapter. If it is left blank doxygen will generate a standard header. It\n# is highly recommended to start with a default header using\n# doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty\n# and then modify the file new_header.tex. See also section \"Doxygen usage\" for\n# information on how to generate the default header that doxygen normally uses.\n#\n# Note: Only use a user-defined header if you know what you are doing!\n# Note: The header is subject to change so you typically have to regenerate the\n# default header when upgrading to a newer version of doxygen. The following\n# commands have a special meaning inside the header (and footer): For a\n# description of the possible markers and block names see the documentation.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_HEADER           =\n\n# The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for\n# the generated LaTeX document. The footer should contain everything after the\n# last chapter. If it is left blank doxygen will generate a standard footer. See\n# LATEX_HEADER for more information on how to generate a default footer and what\n# special commands can be used inside the footer. See also section \"Doxygen\n# usage\" for information on how to generate the default footer that doxygen\n# normally uses. Note: Only use a user-defined footer if you know what you are\n# doing!\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_FOOTER           =\n\n# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined\n# LaTeX style sheets that are included after the standard style sheets created\n# by doxygen. Using this option one can overrule certain style aspects. Doxygen\n# will copy the style sheet files to the output directory.\n# Note: The order of the extra style sheet files is of importance (e.g. the last\n# style sheet in the list overrules the setting of the previous ones in the\n# list).\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_EXTRA_STYLESHEET =\n\n# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or\n# other source files which should be copied to the LATEX_OUTPUT output\n# directory. Note that the files will be copied as-is; there are no commands or\n# markers available.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_EXTRA_FILES      =\n\n# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is\n# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will\n# contain links (just like the HTML output) instead of page references. This\n# makes the output suitable for online browsing using a PDF viewer.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nPDF_HYPERLINKS         = YES\n\n# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as\n# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX\n# files. Set this option to YES, to get a higher quality PDF documentation.\n#\n# See also section LATEX_CMD_NAME for selecting the engine.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nUSE_PDFLATEX           = YES\n\n# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode\n# command to the generated LaTeX files. This will instruct LaTeX to keep running\n# if errors occur, instead of asking the user for help.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_BATCHMODE        = NO\n\n# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the\n# index chapters (such as File Index, Compound Index, etc.) in the output.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_HIDE_INDICES     = NO\n\n# The LATEX_BIB_STYLE tag can be used to specify the style to use for the\n# bibliography, e.g. plainnat, or ieeetr. See\n# https://en.wikipedia.org/wiki/BibTeX and \\cite for more info.\n# The default value is: plain.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_BIB_STYLE        = plain\n\n# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated\n# page will contain the date and time when the page was generated. Setting this\n# to NO can help when comparing the output of multiple runs.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_TIMESTAMP        = NO\n\n# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)\n# path from which the emoji images will be read. If a relative path is entered,\n# it will be relative to the LATEX_OUTPUT directory. If left blank the\n# LATEX_OUTPUT directory will be used.\n# This tag requires that the tag GENERATE_LATEX is set to YES.\n\nLATEX_EMOJI_DIRECTORY  =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the RTF output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The\n# RTF output is optimized for Word 97 and may not look too pretty with other RTF\n# readers/editors.\n# The default value is: NO.\n\nGENERATE_RTF           = NO\n\n# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a\n# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n# it.\n# The default directory is: rtf.\n# This tag requires that the tag GENERATE_RTF is set to YES.\n\nRTF_OUTPUT             = rtf\n\n# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF\n# documents. This may be useful for small projects and may help to save some\n# trees in general.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_RTF is set to YES.\n\nCOMPACT_RTF            = NO\n\n# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will\n# contain hyperlink fields. The RTF file will contain links (just like the HTML\n# output) instead of page references. This makes the output suitable for online\n# browsing using Word or some other Word compatible readers that support those\n# fields.\n#\n# Note: WordPad (write) and others do not support links.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_RTF is set to YES.\n\nRTF_HYPERLINKS         = NO\n\n# Load stylesheet definitions from file. Syntax is similar to doxygen's\n# configuration file, i.e. a series of assignments. You only have to provide\n# replacements, missing definitions are set to their default value.\n#\n# See also section \"Doxygen usage\" for information on how to generate the\n# default style sheet that doxygen normally uses.\n# This tag requires that the tag GENERATE_RTF is set to YES.\n\nRTF_STYLESHEET_FILE    =\n\n# Set optional variables used in the generation of an RTF document. Syntax is\n# similar to doxygen's configuration file. A template extensions file can be\n# generated using doxygen -e rtf extensionFile.\n# This tag requires that the tag GENERATE_RTF is set to YES.\n\nRTF_EXTENSIONS_FILE    =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the man page output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for\n# classes and files.\n# The default value is: NO.\n\nGENERATE_MAN           = NO\n\n# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a\n# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n# it. A directory man3 will be created inside the directory specified by\n# MAN_OUTPUT.\n# The default directory is: man.\n# This tag requires that the tag GENERATE_MAN is set to YES.\n\nMAN_OUTPUT             = man\n\n# The MAN_EXTENSION tag determines the extension that is added to the generated\n# man pages. In case the manual section does not start with a number, the number\n# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is\n# optional.\n# The default value is: .3.\n# This tag requires that the tag GENERATE_MAN is set to YES.\n\nMAN_EXTENSION          = .3\n\n# The MAN_SUBDIR tag determines the name of the directory created within\n# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by\n# MAN_EXTENSION with the initial . removed.\n# This tag requires that the tag GENERATE_MAN is set to YES.\n\nMAN_SUBDIR             =\n\n# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it\n# will generate one additional man file for each entity documented in the real\n# man page(s). These additional files only source the real man page, but without\n# them the man command would be unable to find the correct page.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_MAN is set to YES.\n\nMAN_LINKS              = NO\n\n#---------------------------------------------------------------------------\n# Configuration options related to the XML output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that\n# captures the structure of the code including all documentation.\n# The default value is: NO.\n\nGENERATE_XML           = NO\n\n# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a\n# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of\n# it.\n# The default directory is: xml.\n# This tag requires that the tag GENERATE_XML is set to YES.\n\nXML_OUTPUT             = xml\n\n# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program\n# listings (including syntax highlighting and cross-referencing information) to\n# the XML output. Note that enabling this will significantly increase the size\n# of the XML output.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_XML is set to YES.\n\nXML_PROGRAMLISTING     = YES\n\n# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include\n# namespace members in file scope as well, matching the HTML output.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_XML is set to YES.\n\nXML_NS_MEMB_FILE_SCOPE = NO\n\n#---------------------------------------------------------------------------\n# Configuration options related to the DOCBOOK output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files\n# that can be used to generate PDF.\n# The default value is: NO.\n\nGENERATE_DOCBOOK       = NO\n\n# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.\n# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in\n# front of it.\n# The default directory is: docbook.\n# This tag requires that the tag GENERATE_DOCBOOK is set to YES.\n\nDOCBOOK_OUTPUT         = docbook\n\n#---------------------------------------------------------------------------\n# Configuration options for the AutoGen Definitions output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an\n# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures\n# the structure of the code including all documentation. Note that this feature\n# is still experimental and incomplete at the moment.\n# The default value is: NO.\n\nGENERATE_AUTOGEN_DEF   = NO\n\n#---------------------------------------------------------------------------\n# Configuration options related to the Perl module output\n#---------------------------------------------------------------------------\n\n# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module\n# file that captures the structure of the code including all documentation.\n#\n# Note that this feature is still experimental and incomplete at the moment.\n# The default value is: NO.\n\nGENERATE_PERLMOD       = NO\n\n# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary\n# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI\n# output from the Perl module output.\n# The default value is: NO.\n# This tag requires that the tag GENERATE_PERLMOD is set to YES.\n\nPERLMOD_LATEX          = NO\n\n# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely\n# formatted so it can be parsed by a human reader. This is useful if you want to\n# understand what is going on. On the other hand, if this tag is set to NO, the\n# size of the Perl module output will be much smaller and Perl will parse it\n# just the same.\n# The default value is: YES.\n# This tag requires that the tag GENERATE_PERLMOD is set to YES.\n\nPERLMOD_PRETTY         = YES\n\n# The names of the make variables in the generated doxyrules.make file are\n# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful\n# so different doxyrules.make files included by the same Makefile don't\n# overwrite each other's variables.\n# This tag requires that the tag GENERATE_PERLMOD is set to YES.\n\nPERLMOD_MAKEVAR_PREFIX =\n\n#---------------------------------------------------------------------------\n# Configuration options related to the preprocessor\n#---------------------------------------------------------------------------\n\n# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all\n# C-preprocessor directives found in the sources and include files.\n# The default value is: YES.\n\nENABLE_PREPROCESSING   = YES\n\n# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names\n# in the source code. If set to NO, only conditional compilation will be\n# performed. Macro expansion can be done in a controlled way by setting\n# EXPAND_ONLY_PREDEF to YES.\n# The default value is: NO.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nMACRO_EXPANSION        = NO\n\n# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then\n# the macro expansion is limited to the macros specified with the PREDEFINED and\n# EXPAND_AS_DEFINED tags.\n# The default value is: NO.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nEXPAND_ONLY_PREDEF     = NO\n\n# If the SEARCH_INCLUDES tag is set to YES, the include files in the\n# INCLUDE_PATH will be searched if a #include is found.\n# The default value is: YES.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nSEARCH_INCLUDES        = YES\n\n# The INCLUDE_PATH tag can be used to specify one or more directories that\n# contain include files that are not input files but should be processed by the\n# preprocessor.\n# This tag requires that the tag SEARCH_INCLUDES is set to YES.\n\nINCLUDE_PATH           =\n\n# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard\n# patterns (like *.h and *.hpp) to filter out the header-files in the\n# directories. If left blank, the patterns specified with FILE_PATTERNS will be\n# used.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nINCLUDE_FILE_PATTERNS  =\n\n# The PREDEFINED tag can be used to specify one or more macro names that are\n# defined before the preprocessor is started (similar to the -D option of e.g.\n# gcc). The argument of the tag is a list of macros of the form: name or\n# name=definition (no spaces). If the definition and the \"=\" are omitted, \"=1\"\n# is assumed. To prevent a macro definition from being undefined via #undef or\n# recursively expanded use the := operator instead of the = operator.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nPREDEFINED             =\n\n# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this\n# tag can be used to specify a list of macro names that should be expanded. The\n# macro definition that is found in the sources will be used. Use the PREDEFINED\n# tag if you want to use a different macro definition that overrules the\n# definition found in the source code.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nEXPAND_AS_DEFINED      =\n\n# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will\n# remove all references to function-like macros that are alone on a line, have\n# an all uppercase name, and do not end with a semicolon. Such function macros\n# are typically used for boiler-plate code, and will confuse the parser if not\n# removed.\n# The default value is: YES.\n# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.\n\nSKIP_FUNCTION_MACROS   = YES\n\n#---------------------------------------------------------------------------\n# Configuration options related to external references\n#---------------------------------------------------------------------------\n\n# The TAGFILES tag can be used to specify one or more tag files. For each tag\n# file the location of the external documentation should be added. The format of\n# a tag file without this location is as follows:\n# TAGFILES = file1 file2 ...\n# Adding location for the tag files is done as follows:\n# TAGFILES = file1=loc1 \"file2 = loc2\" ...\n# where loc1 and loc2 can be relative or absolute paths or URLs. See the\n# section \"Linking to external documentation\" for more information about the use\n# of tag files.\n# Note: Each tag file must have a unique name (where the name does NOT include\n# the path). If a tag file is not located in the directory in which doxygen is\n# run, you must also specify the path to the tagfile here.\n\nTAGFILES               =\n\n# When a file name is specified after GENERATE_TAGFILE, doxygen will create a\n# tag file that is based on the input files it reads. See section \"Linking to\n# external documentation\" for more information about the usage of tag files.\n\nGENERATE_TAGFILE       =\n\n# If the ALLEXTERNALS tag is set to YES, all external class will be listed in\n# the class index. If set to NO, only the inherited external classes will be\n# listed.\n# The default value is: NO.\n\nALLEXTERNALS           = NO\n\n# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed\n# in the modules index. If set to NO, only the current project's groups will be\n# listed.\n# The default value is: YES.\n\nEXTERNAL_GROUPS        = YES\n\n# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in\n# the related pages index. If set to NO, only the current project's pages will\n# be listed.\n# The default value is: YES.\n\nEXTERNAL_PAGES         = YES\n\n#---------------------------------------------------------------------------\n# Configuration options related to the dot tool\n#---------------------------------------------------------------------------\n\n# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram\n# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to\n# NO turns the diagrams off. Note that this option also works with HAVE_DOT\n# disabled, but it is recommended to install and use dot, since it yields more\n# powerful graphs.\n# The default value is: YES.\n\nCLASS_DIAGRAMS         = YES\n\n# You can include diagrams made with dia in doxygen documentation. Doxygen will\n# then run dia to produce the diagram and insert it in the documentation. The\n# DIA_PATH tag allows you to specify the directory where the dia binary resides.\n# If left empty dia is assumed to be found in the default search path.\n\nDIA_PATH               =\n\n# If set to YES the inheritance and collaboration graphs will hide inheritance\n# and usage relations if the target is undocumented or is not a class.\n# The default value is: YES.\n\nHIDE_UNDOC_RELATIONS   = YES\n\n# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n# available from the path. This tool is part of Graphviz (see:\n# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent\n# Bell Labs. The other options in this section have no effect if this option is\n# set to NO\n# The default value is: NO.\n\nHAVE_DOT               = NO\n\n# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed\n# to run in parallel. When set to 0 doxygen will base this on the number of\n# processors available in the system. You can set it explicitly to a value\n# larger than 0 to get control over the balance between CPU load and processing\n# speed.\n# Minimum value: 0, maximum value: 32, default value: 0.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_NUM_THREADS        = 0\n\n# When you want a differently looking font in the dot files that doxygen\n# generates you can specify the font name using DOT_FONTNAME. You need to make\n# sure dot is able to find the font, which can be done by putting it in a\n# standard location or by setting the DOTFONTPATH environment variable or by\n# setting DOT_FONTPATH to the directory containing the font.\n# The default value is: Helvetica.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_FONTNAME           = Helvetica\n\n# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of\n# dot graphs.\n# Minimum value: 4, maximum value: 24, default value: 10.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_FONTSIZE           = 10\n\n# By default doxygen will tell dot to use the default font as specified with\n# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set\n# the path where dot can find it using this tag.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_FONTPATH           =\n\n# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for\n# each documented class showing the direct and indirect inheritance relations.\n# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nCLASS_GRAPH            = YES\n\n# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a\n# graph for each documented class showing the direct and indirect implementation\n# dependencies (inheritance, containment, and class references variables) of the\n# class with other documented classes.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nCOLLABORATION_GRAPH    = YES\n\n# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for\n# groups, showing the direct groups dependencies.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nGROUP_GRAPHS           = YES\n\n# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and\n# collaboration diagrams in a style similar to the OMG's Unified Modeling\n# Language.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nUML_LOOK               = NO\n\n# If the UML_LOOK tag is enabled, the fields and methods are shown inside the\n# class node. If there are many fields or methods and many nodes the graph may\n# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the\n# number of items for each type to make the size more manageable. Set this to 0\n# for no limit. Note that the threshold may be exceeded by 50% before the limit\n# is enforced. So when you set the threshold to 10, up to 15 fields may appear,\n# but if the number exceeds 15, the total amount of fields shown is limited to\n# 10.\n# Minimum value: 0, maximum value: 100, default value: 10.\n# This tag requires that the tag UML_LOOK is set to YES.\n\nUML_LIMIT_NUM_FIELDS   = 10\n\n# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and\n# methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS\n# tag is set to YES, doxygen will add type and arguments for attributes and\n# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen\n# will not generate fields with class member information in the UML graphs. The\n# class diagrams will look similar to the default class diagrams but using UML\n# notation for the relationships.\n# Possible values are: NO, YES and NONE.\n# The default value is: NO.\n# This tag requires that the tag UML_LOOK is set to YES.\n\nDOT_UML_DETAILS        = NO\n\n# The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters\n# to display on a single line. If the actual line length exceeds this threshold\n# significantly it will wrapped across multiple lines. Some heuristics are apply\n# to avoid ugly line breaks.\n# Minimum value: 0, maximum value: 1000, default value: 17.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_WRAP_THRESHOLD     = 17\n\n# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and\n# collaboration graphs will show the relations between templates and their\n# instances.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nTEMPLATE_RELATIONS     = NO\n\n# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to\n# YES then doxygen will generate a graph for each documented file showing the\n# direct and indirect include dependencies of the file with other documented\n# files.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nINCLUDE_GRAPH          = YES\n\n# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are\n# set to YES then doxygen will generate a graph for each documented file showing\n# the direct and indirect include dependencies of the file with other documented\n# files.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nINCLUDED_BY_GRAPH      = YES\n\n# If the CALL_GRAPH tag is set to YES then doxygen will generate a call\n# dependency graph for every global function or class method.\n#\n# Note that enabling this option will significantly increase the time of a run.\n# So in most cases it will be better to enable call graphs for selected\n# functions only using the \\callgraph command. Disabling a call graph can be\n# accomplished by means of the command \\hidecallgraph.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nCALL_GRAPH             = NO\n\n# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller\n# dependency graph for every global function or class method.\n#\n# Note that enabling this option will significantly increase the time of a run.\n# So in most cases it will be better to enable caller graphs for selected\n# functions only using the \\callergraph command. Disabling a caller graph can be\n# accomplished by means of the command \\hidecallergraph.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nCALLER_GRAPH           = NO\n\n# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical\n# hierarchy of all classes instead of a textual one.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nGRAPHICAL_HIERARCHY    = YES\n\n# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the\n# dependencies a directory has on other directories in a graphical way. The\n# dependency relations are determined by the #include relations between the\n# files in the directories.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDIRECTORY_GRAPH        = YES\n\n# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images\n# generated by dot. For an explanation of the image formats see the section\n# output formats in the documentation of the dot tool (Graphviz (see:\n# http://www.graphviz.org/)).\n# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order\n# to make the SVG files visible in IE 9+ (other browsers do not have this\n# requirement).\n# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,\n# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and\n# png:gdiplus:gdiplus.\n# The default value is: png.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_IMAGE_FORMAT       = png\n\n# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to\n# enable generation of interactive SVG images that allow zooming and panning.\n#\n# Note that this requires a modern browser other than Internet Explorer. Tested\n# and working are Firefox, Chrome, Safari, and Opera.\n# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make\n# the SVG files visible. Older versions of IE do not have SVG support.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nINTERACTIVE_SVG        = NO\n\n# The DOT_PATH tag can be used to specify the path where the dot tool can be\n# found. If left blank, it is assumed the dot tool can be found in the path.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_PATH               =\n\n# The DOTFILE_DIRS tag can be used to specify one or more directories that\n# contain dot files that are included in the documentation (see the \\dotfile\n# command).\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOTFILE_DIRS           =\n\n# The MSCFILE_DIRS tag can be used to specify one or more directories that\n# contain msc files that are included in the documentation (see the \\mscfile\n# command).\n\nMSCFILE_DIRS           =\n\n# The DIAFILE_DIRS tag can be used to specify one or more directories that\n# contain dia files that are included in the documentation (see the \\diafile\n# command).\n\nDIAFILE_DIRS           =\n\n# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the\n# path where java can find the plantuml.jar file. If left blank, it is assumed\n# PlantUML is not used or called during a preprocessing step. Doxygen will\n# generate a warning when it encounters a \\startuml command in this case and\n# will not generate output for the diagram.\n\nPLANTUML_JAR_PATH      =\n\n# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a\n# configuration file for plantuml.\n\nPLANTUML_CFG_FILE      =\n\n# When using plantuml, the specified paths are searched for files specified by\n# the !include statement in a plantuml block.\n\nPLANTUML_INCLUDE_PATH  =\n\n# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes\n# that will be shown in the graph. If the number of nodes in a graph becomes\n# larger than this value, doxygen will truncate the graph, which is visualized\n# by representing a node as a red box. Note that doxygen if the number of direct\n# children of the root node in a graph is already larger than\n# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that\n# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.\n# Minimum value: 0, maximum value: 10000, default value: 50.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_GRAPH_MAX_NODES    = 50\n\n# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs\n# generated by dot. A depth value of 3 means that only nodes reachable from the\n# root by following a path via at most 3 edges will be shown. Nodes that lay\n# further from the root node will be omitted. Note that setting this option to 1\n# or 2 may greatly reduce the computation time needed for large code bases. Also\n# note that the size of a graph can be further restricted by\n# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.\n# Minimum value: 0, maximum value: 1000, default value: 0.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nMAX_DOT_GRAPH_DEPTH    = 0\n\n# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent\n# background. This is disabled by default, because dot on Windows does not seem\n# to support this out of the box.\n#\n# Warning: Depending on the platform used, enabling this option may lead to\n# badly anti-aliased labels on the edges of a graph (i.e. they become hard to\n# read).\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_TRANSPARENT        = NO\n\n# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output\n# files in one run (i.e. multiple -o and -T options on the command line). This\n# makes dot run faster, but since only newer versions of dot (>1.8.10) support\n# this, this feature is disabled by default.\n# The default value is: NO.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nDOT_MULTI_TARGETS      = NO\n\n# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page\n# explaining the meaning of the various boxes and arrows in the dot generated\n# graphs.\n# The default value is: YES.\n# This tag requires that the tag HAVE_DOT is set to YES.\n\nGENERATE_LEGEND        = YES\n\n# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate\n# files that are used to generate the various graphs.\n#\n# Note: This setting is not only used for dot files but also for msc temporary\n# files.\n# The default value is: YES.\n\nDOT_CLEANUP            = YES\n"
  },
  {
    "path": "docs/html/_api_client_8gen_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: ApiClient.gen.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_api_client_8gen_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#enum-members\">Enumerations</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">ApiClient.gen.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.   <a href=\"class_nakama_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">Nakama.IGroupUserListGroupUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single user-role pair.   <a href=\"interface_nakama_1_1_i_group_user_list_group_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GroupUserListGroupUser</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">Nakama.IUserGroupListUserGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single group-role pair.   <a href=\"interface_nakama_1_1_i_user_group_list_user_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.UserGroupListUserGroup</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.   <a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WriteLeaderboardRecordRequestLeaderboardRecordWrite</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.   <a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WriteTournamentRecordRequestTournamentRecordWrite</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user with additional account details. Always the current user.   <a href=\"interface_nakama_1_1_i_api_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccount</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">Nakama.IApiAccountApple</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Apple Sign In token to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_apple.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountApple</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">Nakama.IApiAccountCustom</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a custom ID to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_custom.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountCustom</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">Nakama.IApiAccountDevice</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a device to the server. Used with authenticate/link/unlink and user.   <a href=\"interface_nakama_1_1_i_api_account_device.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountDevice</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send an email with password to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_email.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountEmail</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">Nakama.IApiAccountFacebook</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook token to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_facebook.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountFacebook</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">Nakama.IApiAccountFacebookInstantGame</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountFacebookInstantGame</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_game_center.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountGameCenter</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">Nakama.IApiAccountGoogle</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Google token to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_google.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountGoogle</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">Nakama.IApiAccountSteam</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Steam token to the server. Used with authenticate/link/unlink.   <a href=\"interface_nakama_1_1_i_api_account_steam.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountSteam</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A message sent on a channel.   <a href=\"interface_nakama_1_1_i_api_channel_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiChannelMessage</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of channel messages, usually a result of a list operation.   <a href=\"interface_nakama_1_1_i_api_channel_message_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiChannelMessageList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a group with the current user as owner.   <a href=\"interface_nakama_1_1_i_api_create_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiCreateGroupRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to delete.   <a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiDeleteStorageObjectId</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">Nakama.IApiDeleteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch delete storage objects.   <a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiDeleteStorageObjectsRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents an event to be passed through the server to registered event handlers.   <a href=\"interface_nakama_1_1_i_api_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiEvent</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a user.   <a href=\"interface_nakama_1_1_i_api_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiFriend</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">Nakama.IApiFriendList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more friends of the user.   <a href=\"interface_nakama_1_1_i_api_friend_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiFriendList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A group in the server.   <a href=\"interface_nakama_1_1_i_api_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroup</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">Nakama.IApiGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">One or more groups returned from a listing operation.   <a href=\"interface_nakama_1_1_i_api_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroupList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">Nakama.IApiGroupUserList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users belonging to a group, along with their role.   <a href=\"interface_nakama_1_1_i_api_group_user_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroupUserList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a complete leaderboard record with all scores and associated metadata.   <a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLeaderboardRecord</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.   <a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLeaderboardRecordList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">Nakama.IApiLinkSteamRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link Steam to the current user's account.   <a href=\"interface_nakama_1_1_i_api_link_steam_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLinkSteamRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">Nakama.IApiListSubscriptionsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List user subscriptions.   <a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiListSubscriptionsRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a realtime match.   <a href=\"interface_nakama_1_1_i_api_match.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatch</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">Nakama.IApiMatchList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of realtime matches.   <a href=\"interface_nakama_1_1_i_api_match_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatchList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A notification in the server.   <a href=\"interface_nakama_1_1_i_api_notification.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiNotification</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">Nakama.IApiNotificationList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more notifications.   <a href=\"interface_nakama_1_1_i_api_notification_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiNotificationList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to get.   <a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiReadStorageObjectId</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">Nakama.IApiReadStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch get storage objects.   <a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiReadStorageObjectsRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an Lua function on the server.   <a href=\"interface_nakama_1_1_i_api_rpc.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiRpc</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user's session used to authenticate messages.   <a href=\"interface_nakama_1_1_i_api_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSession</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">Nakama.IApiSessionLogoutRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.   <a href=\"interface_nakama_1_1_i_api_session_logout_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSessionLogoutRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">Nakama.IApiSessionRefreshRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server with a refresh token.   <a href=\"interface_nakama_1_1_i_api_session_refresh_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSessionRefreshRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object within the storage engine.   <a href=\"interface_nakama_1_1_i_api_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObject</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A storage acknowledgement.   <a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectAck</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">Nakama.IApiStorageObjectAcks</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of acknowledgements for the storage object write.   <a href=\"interface_nakama_1_1_i_api_storage_object_acks.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectAcks</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">Nakama.IApiStorageObjectList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects.   <a href=\"interface_nakama_1_1_i_api_storage_object_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">Nakama.IApiStorageObjects</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage objects.   <a href=\"interface_nakama_1_1_i_api_storage_objects.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjects</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.   <a href=\"interface_nakama_1_1_i_api_subscription_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSubscriptionList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A tournament on the server.   <a href=\"interface_nakama_1_1_i_api_tournament.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournament</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">Nakama.IApiTournamentList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of tournaments.   <a href=\"interface_nakama_1_1_i_api_tournament_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournamentList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of tournament records which may be part of a tournament records page or a batch of individual records.   <a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournamentRecordList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a user's account details.   <a href=\"interface_nakama_1_1_i_api_update_account_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUpdateAccountRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update fields in a given group.   <a href=\"interface_nakama_1_1_i_api_update_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUpdateGroupRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user in the server.   <a href=\"interface_nakama_1_1_i_api_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUser</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">Nakama.IApiUserGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of groups belonging to a user, along with the user's role in each group.   <a href=\"interface_nakama_1_1_i_api_user_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUserGroupList</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">Nakama.IApiUsers</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more users.   <a href=\"interface_nakama_1_1_i_api_users.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUsers</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">Nakama.IApiValidatePurchaseAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple IAP Purchases validation request   <a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseAppleRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">Nakama.IApiValidatePurchaseGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google IAP Purchase validation request   <a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseGoogleRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Huawei IAP Purchase validation request   <a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseHuaweiRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">Nakama.IApiValidatePurchaseResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate IAP response.   <a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseResponse</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">Nakama.IApiValidateSubscriptionAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple Subscription validation request   <a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionAppleRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">Nakama.IApiValidateSubscriptionGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google Subscription validation request   <a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionGoogleRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">Nakama.IApiValidateSubscriptionResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate Subscription response.   <a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionResponse</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.   <a href=\"interface_nakama_1_1_i_api_validated_purchase.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatedPurchase</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatedSubscription</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The object to store.   <a href=\"interface_nakama_1_1_i_api_write_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiWriteStorageObject</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">Nakama.IApiWriteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write objects to the storage engine.   <a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiWriteStorageObjectsRequest</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">Nakama.IProtobufAny</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ProtobufAny</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RpcStatus</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> API.  <br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a8e9c42a36e780e31a03f2ba94a3bb6e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">Nakama.ApiOperator</a> </td></tr>\n<tr class=\"separator:a8e9c42a36e780e31a03f2ba94a3bb6e7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">Nakama.ApiStoreEnvironment</a> </td></tr>\n<tr class=\"memdesc:a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Environment where a purchase/subscription took place,   <a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">More...</a><br /></td></tr>\n<tr class=\"separator:a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">Nakama.ApiStoreProvider</a> </td></tr>\n<tr class=\"memdesc:a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validation Provider,   <a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">More...</a><br /></td></tr>\n<tr class=\"separator:a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_api_client_8gen_8cs.html\">ApiClient.gen.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_api_client_8gen_8cs.js",
    "content": "var _api_client_8gen_8cs =\n[\n    [ \"Nakama.ApiResponseException\", \"class_nakama_1_1_api_response_exception.html\", \"class_nakama_1_1_api_response_exception\" ],\n    [ \"Nakama.IGroupUserListGroupUser\", \"interface_nakama_1_1_i_group_user_list_group_user.html\", \"interface_nakama_1_1_i_group_user_list_group_user\" ],\n    [ \"Nakama.IUserGroupListUserGroup\", \"interface_nakama_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_i_user_group_list_user_group\" ],\n    [ \"Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write\" ],\n    [ \"Nakama.IWriteTournamentRecordRequestTournamentRecordWrite\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write\" ],\n    [ \"Nakama.IApiAccount\", \"interface_nakama_1_1_i_api_account.html\", \"interface_nakama_1_1_i_api_account\" ],\n    [ \"Nakama.IApiAccountApple\", \"interface_nakama_1_1_i_api_account_apple.html\", \"interface_nakama_1_1_i_api_account_apple\" ],\n    [ \"Nakama.IApiAccountCustom\", \"interface_nakama_1_1_i_api_account_custom.html\", \"interface_nakama_1_1_i_api_account_custom\" ],\n    [ \"Nakama.IApiAccountDevice\", \"interface_nakama_1_1_i_api_account_device.html\", \"interface_nakama_1_1_i_api_account_device\" ],\n    [ \"Nakama.IApiAccountEmail\", \"interface_nakama_1_1_i_api_account_email.html\", \"interface_nakama_1_1_i_api_account_email\" ],\n    [ \"Nakama.IApiAccountFacebook\", \"interface_nakama_1_1_i_api_account_facebook.html\", \"interface_nakama_1_1_i_api_account_facebook\" ],\n    [ \"Nakama.IApiAccountFacebookInstantGame\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html\", \"interface_nakama_1_1_i_api_account_facebook_instant_game\" ],\n    [ \"Nakama.IApiAccountGameCenter\", \"interface_nakama_1_1_i_api_account_game_center.html\", \"interface_nakama_1_1_i_api_account_game_center\" ],\n    [ \"Nakama.IApiAccountGoogle\", \"interface_nakama_1_1_i_api_account_google.html\", \"interface_nakama_1_1_i_api_account_google\" ],\n    [ \"Nakama.IApiAccountSteam\", \"interface_nakama_1_1_i_api_account_steam.html\", \"interface_nakama_1_1_i_api_account_steam\" ],\n    [ \"Nakama.IApiChannelMessage\", \"interface_nakama_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_i_api_channel_message\" ],\n    [ \"Nakama.IApiChannelMessageList\", \"interface_nakama_1_1_i_api_channel_message_list.html\", \"interface_nakama_1_1_i_api_channel_message_list\" ],\n    [ \"Nakama.IApiCreateGroupRequest\", \"interface_nakama_1_1_i_api_create_group_request.html\", \"interface_nakama_1_1_i_api_create_group_request\" ],\n    [ \"Nakama.IApiDeleteStorageObjectId\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html\", \"interface_nakama_1_1_i_api_delete_storage_object_id\" ],\n    [ \"Nakama.IApiDeleteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html\", \"interface_nakama_1_1_i_api_delete_storage_objects_request\" ],\n    [ \"Nakama.IApiEvent\", \"interface_nakama_1_1_i_api_event.html\", \"interface_nakama_1_1_i_api_event\" ],\n    [ \"Nakama.IApiFriend\", \"interface_nakama_1_1_i_api_friend.html\", \"interface_nakama_1_1_i_api_friend\" ],\n    [ \"Nakama.IApiFriendList\", \"interface_nakama_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_i_api_friend_list\" ],\n    [ \"Nakama.IApiGroup\", \"interface_nakama_1_1_i_api_group.html\", \"interface_nakama_1_1_i_api_group\" ],\n    [ \"Nakama.IApiGroupList\", \"interface_nakama_1_1_i_api_group_list.html\", \"interface_nakama_1_1_i_api_group_list\" ],\n    [ \"Nakama.IApiGroupUserList\", \"interface_nakama_1_1_i_api_group_user_list.html\", \"interface_nakama_1_1_i_api_group_user_list\" ],\n    [ \"Nakama.IApiLeaderboardRecord\", \"interface_nakama_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_i_api_leaderboard_record\" ],\n    [ \"Nakama.IApiLeaderboardRecordList\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html\", \"interface_nakama_1_1_i_api_leaderboard_record_list\" ],\n    [ \"Nakama.IApiLinkSteamRequest\", \"interface_nakama_1_1_i_api_link_steam_request.html\", \"interface_nakama_1_1_i_api_link_steam_request\" ],\n    [ \"Nakama.IApiListSubscriptionsRequest\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html\", \"interface_nakama_1_1_i_api_list_subscriptions_request\" ],\n    [ \"Nakama.IApiMatch\", \"interface_nakama_1_1_i_api_match.html\", \"interface_nakama_1_1_i_api_match\" ],\n    [ \"Nakama.IApiMatchList\", \"interface_nakama_1_1_i_api_match_list.html\", \"interface_nakama_1_1_i_api_match_list\" ],\n    [ \"Nakama.IApiNotification\", \"interface_nakama_1_1_i_api_notification.html\", \"interface_nakama_1_1_i_api_notification\" ],\n    [ \"Nakama.IApiNotificationList\", \"interface_nakama_1_1_i_api_notification_list.html\", \"interface_nakama_1_1_i_api_notification_list\" ],\n    [ \"Nakama.IApiReadStorageObjectId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html\", \"interface_nakama_1_1_i_api_read_storage_object_id\" ],\n    [ \"Nakama.IApiReadStorageObjectsRequest\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html\", \"interface_nakama_1_1_i_api_read_storage_objects_request\" ],\n    [ \"Nakama.IApiRpc\", \"interface_nakama_1_1_i_api_rpc.html\", \"interface_nakama_1_1_i_api_rpc\" ],\n    [ \"Nakama.IApiSession\", \"interface_nakama_1_1_i_api_session.html\", \"interface_nakama_1_1_i_api_session\" ],\n    [ \"Nakama.IApiSessionLogoutRequest\", \"interface_nakama_1_1_i_api_session_logout_request.html\", \"interface_nakama_1_1_i_api_session_logout_request\" ],\n    [ \"Nakama.IApiSessionRefreshRequest\", \"interface_nakama_1_1_i_api_session_refresh_request.html\", \"interface_nakama_1_1_i_api_session_refresh_request\" ],\n    [ \"Nakama.IApiStorageObject\", \"interface_nakama_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_i_api_storage_object\" ],\n    [ \"Nakama.IApiStorageObjectAck\", \"interface_nakama_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_i_api_storage_object_ack\" ],\n    [ \"Nakama.IApiStorageObjectAcks\", \"interface_nakama_1_1_i_api_storage_object_acks.html\", \"interface_nakama_1_1_i_api_storage_object_acks\" ],\n    [ \"Nakama.IApiStorageObjectList\", \"interface_nakama_1_1_i_api_storage_object_list.html\", \"interface_nakama_1_1_i_api_storage_object_list\" ],\n    [ \"Nakama.IApiStorageObjects\", \"interface_nakama_1_1_i_api_storage_objects.html\", \"interface_nakama_1_1_i_api_storage_objects\" ],\n    [ \"Nakama.IApiSubscriptionList\", \"interface_nakama_1_1_i_api_subscription_list.html\", \"interface_nakama_1_1_i_api_subscription_list\" ],\n    [ \"Nakama.IApiTournament\", \"interface_nakama_1_1_i_api_tournament.html\", \"interface_nakama_1_1_i_api_tournament\" ],\n    [ \"Nakama.IApiTournamentList\", \"interface_nakama_1_1_i_api_tournament_list.html\", \"interface_nakama_1_1_i_api_tournament_list\" ],\n    [ \"Nakama.IApiTournamentRecordList\", \"interface_nakama_1_1_i_api_tournament_record_list.html\", \"interface_nakama_1_1_i_api_tournament_record_list\" ],\n    [ \"Nakama.IApiUpdateAccountRequest\", \"interface_nakama_1_1_i_api_update_account_request.html\", \"interface_nakama_1_1_i_api_update_account_request\" ],\n    [ \"Nakama.IApiUpdateGroupRequest\", \"interface_nakama_1_1_i_api_update_group_request.html\", \"interface_nakama_1_1_i_api_update_group_request\" ],\n    [ \"Nakama.IApiUser\", \"interface_nakama_1_1_i_api_user.html\", \"interface_nakama_1_1_i_api_user\" ],\n    [ \"Nakama.IApiUserGroupList\", \"interface_nakama_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_i_api_user_group_list\" ],\n    [ \"Nakama.IApiUsers\", \"interface_nakama_1_1_i_api_users.html\", \"interface_nakama_1_1_i_api_users\" ],\n    [ \"Nakama.IApiValidatePurchaseAppleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request\" ],\n    [ \"Nakama.IApiValidatePurchaseGoogleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_google_request\" ],\n    [ \"Nakama.IApiValidatePurchaseHuaweiRequest\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request\" ],\n    [ \"Nakama.IApiValidatePurchaseResponse\", \"interface_nakama_1_1_i_api_validate_purchase_response.html\", \"interface_nakama_1_1_i_api_validate_purchase_response\" ],\n    [ \"Nakama.IApiValidateSubscriptionAppleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request\" ],\n    [ \"Nakama.IApiValidateSubscriptionGoogleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_google_request\" ],\n    [ \"Nakama.IApiValidateSubscriptionResponse\", \"interface_nakama_1_1_i_api_validate_subscription_response.html\", \"interface_nakama_1_1_i_api_validate_subscription_response\" ],\n    [ \"Nakama.IApiValidatedPurchase\", \"interface_nakama_1_1_i_api_validated_purchase.html\", \"interface_nakama_1_1_i_api_validated_purchase\" ],\n    [ \"Nakama.IApiValidatedSubscription\", \"interface_nakama_1_1_i_api_validated_subscription.html\", \"interface_nakama_1_1_i_api_validated_subscription\" ],\n    [ \"Nakama.IApiWriteStorageObject\", \"interface_nakama_1_1_i_api_write_storage_object.html\", \"interface_nakama_1_1_i_api_write_storage_object\" ],\n    [ \"Nakama.IApiWriteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html\", \"interface_nakama_1_1_i_api_write_storage_objects_request\" ],\n    [ \"Nakama.IProtobufAny\", \"interface_nakama_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_i_protobuf_any\" ],\n    [ \"Nakama.IRpcStatus\", \"interface_nakama_1_1_i_rpc_status.html\", \"interface_nakama_1_1_i_rpc_status\" ],\n    [ \"ApiOperator\", \"_api_client_8gen_8cs.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\", null ],\n    [ \"ApiStoreEnvironment\", \"_api_client_8gen_8cs.html#a216a2d7c4acbc3a4f29a98514c483cd6\", null ],\n    [ \"ApiStoreProvider\", \"_api_client_8gen_8cs.html#a80ae1f687aff9e2cdddb9e69a557cc49\", null ]\n];"
  },
  {
    "path": "docs/html/_binary_reader_writer_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: BinaryReaderWriter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_binary_reader_writer_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">BinaryReaderWriter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EBinaryReaderWriter\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EBinaryReaderWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.BinaryReaderWriter</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_binary_reader_writer_8cs.html\">BinaryReaderWriter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_buffer_pool_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: BufferPool.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_buffer_pool_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">BufferPool.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EBufferPool\" id=\"r_Nakama_2ENinja_2EWebSockets_2EBufferPool\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EBufferPool_2EPublicBufferMemoryStream\" id=\"r_Nakama_2ENinja_2EWebSockets_2EBufferPool_2EPublicBufferMemoryStream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe)  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_buffer_pool_8cs.html\">BufferPool.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_buffer_pool_8cs.js",
    "content": "var _buffer_pool_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool\" ],\n    [ \"Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream\" ]\n];"
  },
  {
    "path": "docs/html/_c_h_a_n_g_e_l_o_g_8md.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: CHANGELOG.md File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_c_h_a_n_g_e_l_o_g_8md.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">CHANGELOG.md File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"_c_h_a_n_g_e_l_o_g_8md.html\">CHANGELOG.md</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_channel_join_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ChannelJoinMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_channel_join_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ChannelJoinMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EChannelJoinMessage\" id=\"r_Nakama_2EChannelJoinMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelJoinMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a channel join message to the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-enum-members\" class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:addd7f097ac4c449d75e44da62657f307\" id=\"r_addd7f097ac4c449d75e44da62657f307\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">Nakama.ChannelType</a> : uint { <a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\">Nakama.Room</a> = 1\n, <a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\">Nakama.DirectMessage</a> = 2\n, <a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\">Nakama.Group</a> = 3\n }</td></tr>\n<tr class=\"memdesc:addd7f097ac4c449d75e44da62657f307\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The available channel types on the server.  <a href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">More...</a><br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_channel_join_message_8cs.html\">ChannelJoinMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_channel_join_message_8cs.js",
    "content": "var _channel_join_message_8cs =\n[\n    [ \"Nakama.ChannelType\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\", [\n      [ \"Nakama.ChannelType.Room\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\", null ],\n      [ \"Nakama.ChannelType.DirectMessage\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\", null ],\n      [ \"Nakama.ChannelType.Group\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\", null ]\n    ] ]\n];"
  },
  {
    "path": "docs/html/_channel_leave_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ChannelLeaveMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_channel_leave_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ChannelLeaveMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EChannelLeaveMessage\" id=\"r_Nakama_2EChannelLeaveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelLeaveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A leave message to a chat channel. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_channel_leave_message_8cs.html\">ChannelLeaveMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_channel_remove_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ChannelRemoveMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_channel_remove_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ChannelRemoveMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EChannelRemoveMessage\" id=\"r_Nakama_2EChannelRemoveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelRemoveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a message from a chat channel. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_channel_remove_message_8cs.html\">ChannelRemoveMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_channel_send_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ChannelSendMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_channel_send_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ChannelSendMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EChannelSendMessage\" id=\"r_Nakama_2EChannelSendMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelSendMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a channel on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_channel_send_message_8cs.html\">ChannelSendMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_channel_update_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ChannelUpdateMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_channel_update_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ChannelUpdateMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EChannelUpdateMessage\" id=\"r_Nakama_2EChannelUpdateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelUpdateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message which has been sent to a channel. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_channel_update_message_8cs.html\">ChannelUpdateMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Client.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_client_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Client.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_client_8cs.html\">Client.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_client_8cs.js",
    "content": "var _client_8cs =\n[\n    [ \"Nakama.Client\", \"class_nakama_1_1_client.html\", \"class_nakama_1_1_client\" ]\n];"
  },
  {
    "path": "docs/html/_console_client_8gen_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ConsoleClient.gen.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_console_client_8gen_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ConsoleClient.gen.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiResponseException\" id=\"r_Nakama_2EConsole_2EApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConfigWarning\" id=\"r_Nakama_2EConsole_2EIConfigWarning\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">Nakama.Console.IConfigWarning</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A warning for a configuration field.  <a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConfigWarning\" id=\"r_Nakama_2EConsole_2EConfigWarning\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConfigWarning</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIStatusListStatus\" id=\"r_Nakama_2EConsole_2EIStatusListStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node.  <a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EStatusListStatus\" id=\"r_Nakama_2EConsole_2EStatusListStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.StatusListStatus</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIUserGroupListUserGroup\" id=\"r_Nakama_2EConsole_2EIUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">Nakama.Console.IUserGroupListUserGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single group-role pair.  <a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EUserGroupListUserGroup\" id=\"r_Nakama_2EConsole_2EUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.UserGroupListUserGroup</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiAccountDevice\" id=\"r_Nakama_2EConsole_2EIApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">Nakama.Console.IApiAccountDevice</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a device to the server. Used with authenticate/link/unlink and user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiAccountDevice\" id=\"r_Nakama_2EConsole_2EApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiAccountDevice</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiChannelMessage\" id=\"r_Nakama_2EConsole_2EIApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A message sent on a channel.  <a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiChannelMessage\" id=\"r_Nakama_2EConsole_2EApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiChannelMessage</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiFriend\" id=\"r_Nakama_2EConsole_2EIApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">Nakama.Console.IApiFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiFriend\" id=\"r_Nakama_2EConsole_2EApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiFriend</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiFriendList\" id=\"r_Nakama_2EConsole_2EIApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">Nakama.Console.IApiFriendList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more friends of the user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiFriendList\" id=\"r_Nakama_2EConsole_2EApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiFriendList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiGroup\" id=\"r_Nakama_2EConsole_2EIApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A group in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiGroup\" id=\"r_Nakama_2EConsole_2EApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiGroup</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiLeaderboardRecord\" id=\"r_Nakama_2EConsole_2EIApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a complete leaderboard record with all scores and associated metadata.  <a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiLeaderboardRecord\" id=\"r_Nakama_2EConsole_2EApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiLeaderboardRecord</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiNotification\" id=\"r_Nakama_2EConsole_2EIApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A notification in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiNotification\" id=\"r_Nakama_2EConsole_2EApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiNotification</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiStorageObject\" id=\"r_Nakama_2EConsole_2EIApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object within the storage engine.  <a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiStorageObject\" id=\"r_Nakama_2EConsole_2EApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiStorageObject</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiStorageObjectAck\" id=\"r_Nakama_2EConsole_2EIApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A storage acknowledgement.  <a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiStorageObjectAck\" id=\"r_Nakama_2EConsole_2EApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiStorageObjectAck</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiUser\" id=\"r_Nakama_2EConsole_2EIApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiUser\" id=\"r_Nakama_2EConsole_2EApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiUser</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIApiUserGroupList\" id=\"r_Nakama_2EConsole_2EIApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">Nakama.Console.IApiUserGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of groups belonging to a user, along with the user's role in each group.  <a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiUserGroupList\" id=\"r_Nakama_2EConsole_2EApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiUserGroupList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleAccountExport\" id=\"r_Nakama_2EConsole_2EIConsoleAccountExport\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An export of all information stored for a user account.  <a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleAccountExport\" id=\"r_Nakama_2EConsole_2EConsoleAccountExport\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleAccountExport</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleAuthenticateRequest\" id=\"r_Nakama_2EConsole_2EIConsoleAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">Nakama.Console.IConsoleAuthenticateRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a console user with username and password.  <a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleAuthenticateRequest\" id=\"r_Nakama_2EConsole_2EConsoleAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleAuthenticateRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleConfig\" id=\"r_Nakama_2EConsole_2EIConsoleConfig\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">Nakama.Console.IConsoleConfig</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current server configuration and any associated warnings.  <a href=\"interface_nakama_1_1_console_1_1_i_console_config.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleConfig\" id=\"r_Nakama_2EConsole_2EConsoleConfig\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleConfig</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleConsoleSession\" id=\"r_Nakama_2EConsole_2EIConsoleConsoleSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">Nakama.Console.IConsoleConsoleSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A console user session.  <a href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleConsoleSession\" id=\"r_Nakama_2EConsole_2EConsoleConsoleSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleConsoleSession</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleStatusList\" id=\"r_Nakama_2EConsole_2EIConsoleStatusList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">Nakama.Console.IConsoleStatusList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of nodes and their stats.  <a href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleStatusList\" id=\"r_Nakama_2EConsole_2EConsoleStatusList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleStatusList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleStorageList\" id=\"r_Nakama_2EConsole_2EIConsoleStorageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">Nakama.Console.IConsoleStorageList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects.  <a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleStorageList\" id=\"r_Nakama_2EConsole_2EConsoleStorageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleStorageList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleUnlinkDeviceRequest\" id=\"r_Nakama_2EConsole_2EIConsoleUnlinkDeviceRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a particular device ID from a user's account.  <a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleUnlinkDeviceRequest\" id=\"r_Nakama_2EConsole_2EConsoleUnlinkDeviceRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleUnlinkDeviceRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleUserList\" id=\"r_Nakama_2EConsole_2EIConsoleUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">Nakama.Console.IConsoleUserList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users.  <a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleUserList\" id=\"r_Nakama_2EConsole_2EConsoleUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleUserList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleWalletLedger\" id=\"r_Nakama_2EConsole_2EIConsoleWalletLedger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An individual update to a user's wallet.  <a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleWalletLedger\" id=\"r_Nakama_2EConsole_2EConsoleWalletLedger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleWalletLedger</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleWalletLedgerList\" id=\"r_Nakama_2EConsole_2EIConsoleWalletLedgerList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">Nakama.Console.IConsoleWalletLedgerList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of wallet ledger items for a particular user.  <a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleWalletLedgerList\" id=\"r_Nakama_2EConsole_2EConsoleWalletLedgerList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleWalletLedgerList</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIConsoleWriteStorageObjectRequest\" id=\"r_Nakama_2EConsole_2EIConsoleWriteStorageObjectRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a new storage object or update an existing one.  <a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EConsoleWriteStorageObjectRequest\" id=\"r_Nakama_2EConsole_2EConsoleWriteStorageObjectRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ConsoleWriteStorageObjectRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EINakamaapiAccount\" id=\"r_Nakama_2EConsole_2EINakamaapiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user with additional account details. Always the current user.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2ENakamaapiAccount\" id=\"r_Nakama_2EConsole_2ENakamaapiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.NakamaapiAccount</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EINakamaconsoleAccount\" id=\"r_Nakama_2EConsole_2EINakamaconsoleAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">Nakama.Console.INakamaconsoleAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Account information.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2ENakamaconsoleAccount\" id=\"r_Nakama_2EConsole_2ENakamaconsoleAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.NakamaconsoleAccount</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EINakamaconsoleUpdateAccountRequest\" id=\"r_Nakama_2EConsole_2EINakamaconsoleUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update user account information.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2ENakamaconsoleUpdateAccountRequest\" id=\"r_Nakama_2EConsole_2ENakamaconsoleUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.NakamaconsoleUpdateAccountRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIProtobufAny\" id=\"r_Nakama_2EConsole_2EIProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">Nakama.Console.IProtobufAny</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }  <a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EProtobufAny\" id=\"r_Nakama_2EConsole_2EProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ProtobufAny</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EIRuntimeError\" id=\"r_Nakama_2EConsole_2EIRuntimeError\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2ERuntimeError\" id=\"r_Nakama_2EConsole_2ERuntimeError\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.RuntimeError</b></td></tr>\n<tr class=\"memitem:Nakama_2EConsole_2EApiClient\" id=\"r_Nakama_2EConsole_2EApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Console.ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> API. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2EConsole\" id=\"r_Nakama_2EConsole\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_5d1450713377add98c1180fe0eb2f9ae.html\">Console</a></li><li class=\"navelem\"><a href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_console_client_8gen_8cs.js",
    "content": "var _console_client_8gen_8cs =\n[\n    [ \"Nakama.Console.ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html\", \"class_nakama_1_1_console_1_1_api_response_exception\" ],\n    [ \"Nakama.Console.IConfigWarning\", \"interface_nakama_1_1_console_1_1_i_config_warning.html\", \"interface_nakama_1_1_console_1_1_i_config_warning\" ],\n    [ \"Nakama.Console.IStatusListStatus\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html\", \"interface_nakama_1_1_console_1_1_i_status_list_status\" ],\n    [ \"Nakama.Console.IUserGroupListUserGroup\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group\" ],\n    [ \"Nakama.Console.IApiAccountDevice\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html\", \"interface_nakama_1_1_console_1_1_i_api_account_device\" ],\n    [ \"Nakama.Console.IApiChannelMessage\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_console_1_1_i_api_channel_message\" ],\n    [ \"Nakama.Console.IApiFriend\", \"interface_nakama_1_1_console_1_1_i_api_friend.html\", \"interface_nakama_1_1_console_1_1_i_api_friend\" ],\n    [ \"Nakama.Console.IApiFriendList\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_console_1_1_i_api_friend_list\" ],\n    [ \"Nakama.Console.IApiGroup\", \"interface_nakama_1_1_console_1_1_i_api_group.html\", \"interface_nakama_1_1_console_1_1_i_api_group\" ],\n    [ \"Nakama.Console.IApiLeaderboardRecord\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record\" ],\n    [ \"Nakama.Console.IApiNotification\", \"interface_nakama_1_1_console_1_1_i_api_notification.html\", \"interface_nakama_1_1_console_1_1_i_api_notification\" ],\n    [ \"Nakama.Console.IApiStorageObject\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object\" ],\n    [ \"Nakama.Console.IApiStorageObjectAck\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack\" ],\n    [ \"Nakama.Console.IApiUser\", \"interface_nakama_1_1_console_1_1_i_api_user.html\", \"interface_nakama_1_1_console_1_1_i_api_user\" ],\n    [ \"Nakama.Console.IApiUserGroupList\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list\" ],\n    [ \"Nakama.Console.IConsoleAccountExport\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html\", \"interface_nakama_1_1_console_1_1_i_console_account_export\" ],\n    [ \"Nakama.Console.IConsoleAuthenticateRequest\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request\" ],\n    [ \"Nakama.Console.IConsoleConfig\", \"interface_nakama_1_1_console_1_1_i_console_config.html\", \"interface_nakama_1_1_console_1_1_i_console_config\" ],\n    [ \"Nakama.Console.IConsoleConsoleSession\", \"interface_nakama_1_1_console_1_1_i_console_console_session.html\", \"interface_nakama_1_1_console_1_1_i_console_console_session\" ],\n    [ \"Nakama.Console.IConsoleStatusList\", \"interface_nakama_1_1_console_1_1_i_console_status_list.html\", \"interface_nakama_1_1_console_1_1_i_console_status_list\" ],\n    [ \"Nakama.Console.IConsoleStorageList\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html\", \"interface_nakama_1_1_console_1_1_i_console_storage_list\" ],\n    [ \"Nakama.Console.IConsoleUnlinkDeviceRequest\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request\" ],\n    [ \"Nakama.Console.IConsoleUserList\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html\", \"interface_nakama_1_1_console_1_1_i_console_user_list\" ],\n    [ \"Nakama.Console.IConsoleWalletLedger\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger\" ],\n    [ \"Nakama.Console.IConsoleWalletLedgerList\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list\" ],\n    [ \"Nakama.Console.IConsoleWriteStorageObjectRequest\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request\" ],\n    [ \"Nakama.Console.INakamaapiAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account\" ],\n    [ \"Nakama.Console.INakamaconsoleAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account\" ],\n    [ \"Nakama.Console.INakamaconsoleUpdateAccountRequest\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request\" ],\n    [ \"Nakama.Console.IProtobufAny\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_console_1_1_i_protobuf_any\" ],\n    [ \"Nakama.Console.IRuntimeError\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html\", \"interface_nakama_1_1_console_1_1_i_runtime_error\" ]\n];"
  },
  {
    "path": "docs/html/_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug/net46/.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></li><li class=\"navelem\"><a class=\"el\" href=\"_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2net46_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2net46_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></li><li class=\"navelem\"><a href=\"_debug_2net46_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2net46_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2net46_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_2024f50217af71df819eb31c540cc957.html\">net46</a></li><li class=\"navelem\"><a href=\"_debug_2net46_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></li><li class=\"navelem\"><a class=\"el\" href=\"_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_entity_too_large_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: EntityTooLargeException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_entity_too_large_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">EntityTooLargeException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EEntityTooLargeException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EEntityTooLargeException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_entity_too_large_exception_8cs.html\">EntityTooLargeException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_entity_too_large_exception_8cs.js",
    "content": "var _entity_too_large_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception\" ]\n];"
  },
  {
    "path": "docs/html/_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Event.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Event.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EEvent\" id=\"r_Satori_2EEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event to be published to the server.  <a href=\"class_satori_1_1_event.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_event_8cs.html\">Event.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_event_8cs.js",
    "content": "var _event_8cs =\n[\n    [ \"Satori.Event\", \"class_satori_1_1_event.html\", \"class_satori_1_1_event\" ]\n];"
  },
  {
    "path": "docs/html/_g_zip_http_client_handler_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: GZipHttpClientHandler.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_g_zip_http_client_handler_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">GZipHttpClientHandler.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GZipHttpClientHandler</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GZipContent</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_g_zip_http_client_handler_8cs.html\">GZipHttpClientHandler.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_http_helper_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: HttpHelper.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_http_helper_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">HttpHelper.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EHttpHelper\" id=\"r_Nakama_2ENinja_2EWebSockets_2EHttpHelper\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_http_helper_8cs.html\">HttpHelper.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_http_helper_8cs.js",
    "content": "var _http_helper_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.HttpHelper\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\", null ]\n];"
  },
  {
    "path": "docs/html/_http_request_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: HttpRequestAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_http_request_adapter_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">HttpRequestAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">HTTP Request adapter which uses the .NET HttpClient to send requests.   <a href=\"class_nakama_1_1_http_request_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_http_request_adapter_8cs.html\">HttpRequestAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_http_request_adapter_8cs.js",
    "content": "var _http_request_adapter_8cs =\n[\n    [ \"Nakama.HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html\", \"class_nakama_1_1_http_request_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_i_buffer_pool_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IBufferPool.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_buffer_pool_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IBufferPool.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EIBufferPool\" id=\"r_Nakama_2ENinja_2EWebSockets_2EIBufferPool\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">Nakama.Ninja.WebSockets.IBufferPool</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_i_buffer_pool_8cs.html\">IBufferPool.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_buffer_pool_8cs.js",
    "content": "var _i_buffer_pool_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.IBufferPool\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool\" ]\n];"
  },
  {
    "path": "docs/html/_i_channel_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IChannel.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_channel_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IChannel.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIChannel\" id=\"r_Nakama_2EIChannel\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A chat channel on the server.  <a href=\"interface_nakama_1_1_i_channel.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EChannel\" id=\"r_Nakama_2EChannel\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Channel</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_channel_8cs.html\">IChannel.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_channel_8cs.js",
    "content": "var _i_channel_8cs =\n[\n    [ \"Nakama.IChannel\", \"interface_nakama_1_1_i_channel.html\", \"interface_nakama_1_1_i_channel\" ]\n];"
  },
  {
    "path": "docs/html/_i_channel_message_ack_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IChannelMessageAck.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_channel_message_ack_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IChannelMessageAck.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIChannelMessageAck\" id=\"r_Nakama_2EIChannelMessageAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An acknowledgement from the server when a chat message is delivered to a channel.  <a href=\"interface_nakama_1_1_i_channel_message_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EChannelMessageAck\" id=\"r_Nakama_2EChannelMessageAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelMessageAck</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_channel_message_ack_8cs.html\">IChannelMessageAck.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_channel_message_ack_8cs.js",
    "content": "var _i_channel_message_ack_8cs =\n[\n    [ \"Nakama.IChannelMessageAck\", \"interface_nakama_1_1_i_channel_message_ack.html\", \"interface_nakama_1_1_i_channel_message_ack\" ]\n];"
  },
  {
    "path": "docs/html/_i_channel_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IChannelPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_channel_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IChannelPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIChannelPresenceEvent\" id=\"r_Nakama_2EIChannelPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of join and leave presences on a chat channel.  <a href=\"interface_nakama_1_1_i_channel_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EChannelPresenceEvent\" id=\"r_Nakama_2EChannelPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ChannelPresenceEvent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_channel_presence_event_8cs.html\">IChannelPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_channel_presence_event_8cs.js",
    "content": "var _i_channel_presence_event_8cs =\n[\n    [ \"Nakama.IChannelPresenceEvent\", \"interface_nakama_1_1_i_channel_presence_event.html\", \"interface_nakama_1_1_i_channel_presence_event\" ]\n];"
  },
  {
    "path": "docs/html/_i_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: IClient.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_i_client_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">IClient.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.   <a href=\"interface_nakama_1_1_i_client.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_i_client_8cs.html\">IClient.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_client_8cs.js",
    "content": "var _i_client_8cs =\n[\n    [ \"Nakama.IClient\", \"interface_nakama_1_1_i_client.html\", \"interface_nakama_1_1_i_client\" ]\n];"
  },
  {
    "path": "docs/html/_i_http_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: IHttpAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_i_http_adapter_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements the HTTP protocol.   <a href=\"interface_nakama_1_1_i_http_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_i_http_adapter_8cs.html\">IHttpAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_http_adapter_8cs.js",
    "content": "var _i_http_adapter_8cs =\n[\n    [ \"Nakama.IHttpAdapter\", \"interface_nakama_1_1_i_http_adapter.html\", \"interface_nakama_1_1_i_http_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_i_http_adapter_util_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: IHttpAdapterUtil.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_i_http_adapter_util_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapterUtil.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.IHttpAdapterUtil</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Utility methods for the <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">interface. NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile them properly to WebGL. </a> <br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_i_http_adapter_util_8cs.html\">IHttpAdapterUtil.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_logger_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: ILogger.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_i_logger_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">ILogger.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A simple logger to write log messages to an output sink.   <a href=\"interface_nakama_1_1_i_logger.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_i_logger_8cs.html\">ILogger.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_logger_8cs.js",
    "content": "var _i_logger_8cs =\n[\n    [ \"Nakama.ILogger\", \"interface_nakama_1_1_i_logger.html\", \"interface_nakama_1_1_i_logger\" ]\n];"
  },
  {
    "path": "docs/html/_i_match_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IMatch.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_match_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IMatch.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIMatch\" id=\"r_Nakama_2EIMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A multiplayer match.  <a href=\"interface_nakama_1_1_i_match.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EMatch\" id=\"r_Nakama_2EMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Match</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_match_8cs.html\">IMatch.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_match_8cs.js",
    "content": "var _i_match_8cs =\n[\n    [ \"Nakama.IMatch\", \"interface_nakama_1_1_i_match.html\", \"interface_nakama_1_1_i_match\" ]\n];"
  },
  {
    "path": "docs/html/_i_match_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IMatchPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_match_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IMatchPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIMatchPresenceEvent\" id=\"r_Nakama_2EIMatchPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">Nakama.IMatchPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of join and leave presences for a match.  <a href=\"interface_nakama_1_1_i_match_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EMatchPresenceEvent\" id=\"r_Nakama_2EMatchPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchPresenceEvent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_match_presence_event_8cs.html\">IMatchPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_match_presence_event_8cs.js",
    "content": "var _i_match_presence_event_8cs =\n[\n    [ \"Nakama.IMatchPresenceEvent\", \"interface_nakama_1_1_i_match_presence_event.html\", \"interface_nakama_1_1_i_match_presence_event\" ]\n];"
  },
  {
    "path": "docs/html/_i_match_state_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IMatchState.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_match_state_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IMatchState.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIMatchState\" id=\"r_Nakama_2EIMatchState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Some game state update in a match.  <a href=\"interface_nakama_1_1_i_match_state.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EMatchState\" id=\"r_Nakama_2EMatchState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchState</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_match_state_8cs.html\">IMatchState.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_match_state_8cs.js",
    "content": "var _i_match_state_8cs =\n[\n    [ \"Nakama.IMatchState\", \"interface_nakama_1_1_i_match_state.html\", \"interface_nakama_1_1_i_match_state\" ]\n];"
  },
  {
    "path": "docs/html/_i_matchmaker_matched_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IMatchmakerMatched.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_matchmaker_matched_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IMatchmakerMatched.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIMatchmakerMatched\" id=\"r_Nakama_2EIMatchmakerMatched\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The result of a successful matchmaker operation sent to the server.  <a href=\"interface_nakama_1_1_i_matchmaker_matched.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EIMatchmakerUser\" id=\"r_Nakama_2EIMatchmakerUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">Nakama.IMatchmakerUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user with the parameters they sent to the server when asking for opponents.  <a href=\"interface_nakama_1_1_i_matchmaker_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EMatchmakerMatched\" id=\"r_Nakama_2EMatchmakerMatched\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchmakerMatched</b></td></tr>\n<tr class=\"memitem:Nakama_2EMatchmakerUser\" id=\"r_Nakama_2EMatchmakerUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchmakerUser</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_matchmaker_matched_8cs.html\">IMatchmakerMatched.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_matchmaker_matched_8cs.js",
    "content": "var _i_matchmaker_matched_8cs =\n[\n    [ \"Nakama.IMatchmakerMatched\", \"interface_nakama_1_1_i_matchmaker_matched.html\", \"interface_nakama_1_1_i_matchmaker_matched\" ],\n    [ \"Nakama.IMatchmakerUser\", \"interface_nakama_1_1_i_matchmaker_user.html\", \"interface_nakama_1_1_i_matchmaker_user\" ]\n];"
  },
  {
    "path": "docs/html/_i_matchmaker_ticket_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IMatchmakerTicket.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_matchmaker_ticket_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IMatchmakerTicket.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIMatchmakerTicket\" id=\"r_Nakama_2EIMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">Nakama.IMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The matchmaker ticket received from the server.  <a href=\"interface_nakama_1_1_i_matchmaker_ticket.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EMatchmakerTicket\" id=\"r_Nakama_2EMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchmakerTicket</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_matchmaker_ticket_8cs.html\">IMatchmakerTicket.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_matchmaker_ticket_8cs.js",
    "content": "var _i_matchmaker_ticket_8cs =\n[\n    [ \"Nakama.IMatchmakerTicket\", \"interface_nakama_1_1_i_matchmaker_ticket.html\", \"interface_nakama_1_1_i_matchmaker_ticket\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IParty.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IParty.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIParty\" id=\"r_Nakama_2EIParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_party.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_8cs.html\">IParty.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_8cs.js",
    "content": "var _i_party_8cs =\n[\n    [ \"Nakama.IParty\", \"interface_nakama_1_1_i_party.html\", \"interface_nakama_1_1_i_party\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_close_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyClose.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_close_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyClose.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyClose\" id=\"r_Nakama_2EIPartyClose\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">Nakama.IPartyClose</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members and closing it.  <a href=\"interface_nakama_1_1_i_party_close.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_close_8cs.html\">IPartyClose.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_close_8cs.js",
    "content": "var _i_party_close_8cs =\n[\n    [ \"Nakama.IPartyClose\", \"interface_nakama_1_1_i_party_close.html\", \"interface_nakama_1_1_i_party_close\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_data_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyData.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_data_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyData.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyData\" id=\"r_Nakama_2EIPartyData\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming party data delivered from the server.  <a href=\"interface_nakama_1_1_i_party_data.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_data_8cs.html\">IPartyData.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_data_8cs.js",
    "content": "var _i_party_data_8cs =\n[\n    [ \"Nakama.IPartyData\", \"interface_nakama_1_1_i_party_data.html\", \"interface_nakama_1_1_i_party_data\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_join_request_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyJoinRequest.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_join_request_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyJoinRequest.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyJoinRequest\" id=\"r_Nakama_2EIPartyJoinRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">Nakama.IPartyJoinRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming notification for one or more new presences attempting to join the party.  <a href=\"interface_nakama_1_1_i_party_join_request.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_join_request_8cs.html\">IPartyJoinRequest.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_join_request_8cs.js",
    "content": "var _i_party_join_request_8cs =\n[\n    [ \"Nakama.IPartyJoinRequest\", \"interface_nakama_1_1_i_party_join_request.html\", \"interface_nakama_1_1_i_party_join_request\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_leader_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyLeader.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_leader_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyLeader.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyLeader\" id=\"r_Nakama_2EIPartyLeader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">Nakama.IPartyLeader</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Announcement of a new party leader.  <a href=\"interface_nakama_1_1_i_party_leader.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_leader_8cs.html\">IPartyLeader.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_leader_8cs.js",
    "content": "var _i_party_leader_8cs =\n[\n    [ \"Nakama.IPartyLeader\", \"interface_nakama_1_1_i_party_leader.html\", \"interface_nakama_1_1_i_party_leader\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_matchmaker_ticket_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyMatchmakerTicket.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_matchmaker_ticket_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyMatchmakerTicket.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyMatchmakerTicket\" id=\"r_Nakama_2EIPartyMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">Nakama.IPartyMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A response from starting a new party matchmaking process.  <a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_matchmaker_ticket_8cs.html\">IPartyMatchmakerTicket.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_matchmaker_ticket_8cs.js",
    "content": "var _i_party_matchmaker_ticket_8cs =\n[\n    [ \"Nakama.IPartyMatchmakerTicket\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html\", \"interface_nakama_1_1_i_party_matchmaker_ticket\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyPresenceEvent\" id=\"r_Nakama_2EIPartyPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">Nakama.IPartyPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presence update for a particular party.  <a href=\"interface_nakama_1_1_i_party_presence_event.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_presence_event_8cs.html\">IPartyPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_presence_event_8cs.js",
    "content": "var _i_party_presence_event_8cs =\n[\n    [ \"Nakama.IPartyPresenceEvent\", \"interface_nakama_1_1_i_party_presence_event.html\", \"interface_nakama_1_1_i_party_presence_event\" ]\n];"
  },
  {
    "path": "docs/html/_i_party_update_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPartyUpdate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_party_update_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPartyUpdate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIPartyUpdate\" id=\"r_Nakama_2EIPartyUpdate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_party_update.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_party_update_8cs.html\">IPartyUpdate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_party_update_8cs.js",
    "content": "var _i_party_update_8cs =\n[\n    [ \"Nakama.IPartyUpdate\", \"interface_nakama_1_1_i_party_update.html\", \"interface_nakama_1_1_i_party_update\" ]\n];"
  },
  {
    "path": "docs/html/_i_ping_pong_manager_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IPingPongManager.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_ping_pong_manager_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IPingPongManager.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EIPingPongManager\" id=\"r_Nakama_2ENinja_2EWebSockets_2EIPingPongManager\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">Nakama.Ninja.WebSockets.IPingPongManager</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ping Pong Manager used to facilitate ping pong WebSocket messages.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_i_ping_pong_manager_8cs.html\">IPingPongManager.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_ping_pong_manager_8cs.js",
    "content": "var _i_ping_pong_manager_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.IPingPongManager\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\" ]\n];"
  },
  {
    "path": "docs/html/_i_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: ISession.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_i_session_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">ISession.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.   <a href=\"interface_nakama_1_1_i_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_i_session_8cs.html\">ISession.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_session_8cs.js",
    "content": "var _i_session_8cs =\n[\n    [ \"Nakama.ISession\", \"interface_nakama_1_1_i_session.html\", \"interface_nakama_1_1_i_session\" ]\n];"
  },
  {
    "path": "docs/html/_i_socket_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ISocket.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_socket_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ISocket.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EISocket\" id=\"r_Nakama_2EISocket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_socket.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_socket_8cs.html\">ISocket.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_socket_8cs.js",
    "content": "var _i_socket_8cs =\n[\n    [ \"Nakama.ISocket\", \"interface_nakama_1_1_i_socket.html\", \"interface_nakama_1_1_i_socket\" ]\n];"
  },
  {
    "path": "docs/html/_i_socket_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ISocketAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_socket_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ISocketAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EISocketAdapter\" id=\"r_Nakama_2EISocketAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_socket_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_socket_adapter_8cs.html\">ISocketAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_socket_adapter_8cs.js",
    "content": "var _i_socket_adapter_8cs =\n[\n    [ \"Nakama.ISocketAdapter\", \"interface_nakama_1_1_i_socket_adapter.html\", \"interface_nakama_1_1_i_socket_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_i_status_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IStatus.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_status_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IStatus.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIStatus\" id=\"r_Nakama_2EIStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">Nakama.IStatus</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Receive status updates for users.  <a href=\"interface_nakama_1_1_i_status.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EStatus\" id=\"r_Nakama_2EStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Status</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_status_8cs.html\">IStatus.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_status_8cs.js",
    "content": "var _i_status_8cs =\n[\n    [ \"Nakama.IStatus\", \"interface_nakama_1_1_i_status.html\", \"interface_nakama_1_1_i_status\" ]\n];"
  },
  {
    "path": "docs/html/_i_status_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IStatusPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_status_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IStatusPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIStatusPresenceEvent\" id=\"r_Nakama_2EIStatusPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">Nakama.IStatusPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A status update event about other users who've come online or gone offline.  <a href=\"interface_nakama_1_1_i_status_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EStatusPresenceEvent\" id=\"r_Nakama_2EStatusPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StatusPresenceEvent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_status_presence_event_8cs.html\">IStatusPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_status_presence_event_8cs.js",
    "content": "var _i_status_presence_event_8cs =\n[\n    [ \"Nakama.IStatusPresenceEvent\", \"interface_nakama_1_1_i_status_presence_event.html\", \"interface_nakama_1_1_i_status_presence_event\" ]\n];"
  },
  {
    "path": "docs/html/_i_stream_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IStreamPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_stream_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IStreamPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIStreamPresenceEvent\" id=\"r_Nakama_2EIStreamPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">Nakama.IStreamPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of joins and leaves on the low level stream.  <a href=\"interface_nakama_1_1_i_stream_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EIStreamState\" id=\"r_Nakama_2EIStreamState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">Nakama.IStreamState</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A state change received from a stream.  <a href=\"interface_nakama_1_1_i_stream_state.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EIStream\" id=\"r_Nakama_2EIStream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A realtime socket stream on the server.  <a href=\"interface_nakama_1_1_i_stream.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EStreamPresenceEvent\" id=\"r_Nakama_2EStreamPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StreamPresenceEvent</b></td></tr>\n<tr class=\"memitem:Nakama_2EStreamState\" id=\"r_Nakama_2EStreamState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StreamState</b></td></tr>\n<tr class=\"memitem:Nakama_2EStream\" id=\"r_Nakama_2EStream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Stream</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_stream_presence_event_8cs.html\">IStreamPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_stream_presence_event_8cs.js",
    "content": "var _i_stream_presence_event_8cs =\n[\n    [ \"Nakama.IStreamPresenceEvent\", \"interface_nakama_1_1_i_stream_presence_event.html\", \"interface_nakama_1_1_i_stream_presence_event\" ],\n    [ \"Nakama.IStreamState\", \"interface_nakama_1_1_i_stream_state.html\", \"interface_nakama_1_1_i_stream_state\" ],\n    [ \"Nakama.IStream\", \"interface_nakama_1_1_i_stream.html\", \"interface_nakama_1_1_i_stream\" ]\n];"
  },
  {
    "path": "docs/html/_i_user_presence_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IUserPresence.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_user_presence_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IUserPresence.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIUserPresence\" id=\"r_Nakama_2EIUserPresence\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object which represents a connected user in the server.  <a href=\"interface_nakama_1_1_i_user_presence.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EUserPresence\" id=\"r_Nakama_2EUserPresence\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.UserPresence</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_i_user_presence_8cs.html\">IUserPresence.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_user_presence_8cs.js",
    "content": "var _i_user_presence_8cs =\n[\n    [ \"Nakama.IUserPresence\", \"interface_nakama_1_1_i_user_presence.html\", \"interface_nakama_1_1_i_user_presence\" ]\n];"
  },
  {
    "path": "docs/html/_i_web_socket_client_factory_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IWebSocketClientFactory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_web_socket_client_factory_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IWebSocketClientFactory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EIWebSocketClientFactory\" id=\"r_Nakama_2ENinja_2EWebSockets_2EIWebSocketClientFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket client factory used to open web socket client connections.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_i_web_socket_client_factory_8cs.html\">IWebSocketClientFactory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_web_socket_client_factory_8cs.js",
    "content": "var _i_web_socket_client_factory_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.IWebSocketClientFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory\" ]\n];"
  },
  {
    "path": "docs/html/_i_web_socket_server_factory_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IWebSocketServerFactory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_i_web_socket_server_factory_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IWebSocketServerFactory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EIWebSocketServerFactory\" id=\"r_Nakama_2ENinja_2EWebSockets_2EIWebSocketServerFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket server factory used to open web socket server connections.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_i_web_socket_server_factory_8cs.html\">IWebSocketServerFactory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_i_web_socket_server_factory_8cs.js",
    "content": "var _i_web_socket_server_factory_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.IWebSocketServerFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory\" ]\n];"
  },
  {
    "path": "docs/html/_invalid_http_response_code_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: InvalidHttpResponseCodeException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_invalid_http_response_code_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">InvalidHttpResponseCodeException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EInvalidHttpResponseCodeException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EInvalidHttpResponseCodeException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_invalid_http_response_code_exception_8cs.html\">InvalidHttpResponseCodeException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_invalid_http_response_code_exception_8cs.js",
    "content": "var _invalid_http_response_code_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception\" ]\n];"
  },
  {
    "path": "docs/html/_json_parser_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: JsonParser.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_json_parser_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">JsonParser.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.TinyJson.JsonParser</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:namespace_nakama_1_1_tiny_json\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\">Nakama.TinyJson</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></li><li class=\"navelem\"><a class=\"el\" href=\"_json_parser_8cs.html\">JsonParser.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_json_writer_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: JsonWriter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_json_writer_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">JsonWriter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.TinyJson.JsonWriter</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:namespace_nakama_1_1_tiny_json\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\">Nakama.TinyJson</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></li><li class=\"navelem\"><a class=\"el\" href=\"_json_writer_8cs.html\">JsonWriter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_match_create_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchCreateMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_match_create_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchCreateMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchCreateMessage\" id=\"r_Nakama_2EMatchCreateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchCreateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A create message for a match on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_match_create_message_8cs.html\">MatchCreateMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_match_join_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchJoinMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_match_join_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchJoinMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchJoinMessage\" id=\"r_Nakama_2EMatchJoinMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchJoinMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A join message for a match on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_match_join_message_8cs.html\">MatchJoinMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_match_leave_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchLeaveMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_match_leave_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchLeaveMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchLeaveMessage\" id=\"r_Nakama_2EMatchLeaveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchLeaveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A leave message for a match on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_match_leave_message_8cs.html\">MatchLeaveMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_match_send_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchSendMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_match_send_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchSendMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchSendMessage\" id=\"r_Nakama_2EMatchSendMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchSendMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send new state to a match on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_match_send_message_8cs.html\">MatchSendMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_matchmaker_add_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchmakerAddMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_matchmaker_add_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchmakerAddMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchmakerAddMessage\" id=\"r_Nakama_2EMatchmakerAddMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchmakerAddMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add the user to the matchmaker pool with properties. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_matchmaker_add_message_8cs.html\">MatchmakerAddMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_matchmaker_remove_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: MatchmakerRemoveMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_matchmaker_remove_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">MatchmakerRemoveMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EMatchmakerRemoveMessage\" id=\"r_Nakama_2EMatchmakerRemoveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.MatchmakerRemoveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the user from the matchmaker pool by ticket. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_matchmaker_remove_message_8cs.html\">MatchmakerRemoveMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_api_client_8gen_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ApiClient.gen.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_api_client_8gen_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ApiClient.gen.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EApiResponseException\" id=\"r_Nakama_2EApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_nakama_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EIApiUpdateGroupRequest\" id=\"r_Nakama_2EIApiUpdateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update fields in a given group.  <a href=\"interface_nakama_1_1_i_api_update_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiUpdateGroupRequest\" id=\"r_Nakama_2EApiUpdateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUpdateGroupRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIFriendsOfFriendsListFriendOfFriend\" id=\"r_Nakama_2EIFriendsOfFriendsListFriendOfFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a friend.  <a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EFriendsOfFriendsListFriendOfFriend\" id=\"r_Nakama_2EFriendsOfFriendsListFriendOfFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.FriendsOfFriendsListFriendOfFriend</b></td></tr>\n<tr class=\"memitem:Nakama_2EIGroupUserListGroupUser\" id=\"r_Nakama_2EIGroupUserListGroupUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">Nakama.IGroupUserListGroupUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single user-role pair.  <a href=\"interface_nakama_1_1_i_group_user_list_group_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EGroupUserListGroupUser\" id=\"r_Nakama_2EGroupUserListGroupUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GroupUserListGroupUser</b></td></tr>\n<tr class=\"memitem:Nakama_2EIUserGroupListUserGroup\" id=\"r_Nakama_2EIUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">Nakama.IUserGroupListUserGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single group-role pair.  <a href=\"interface_nakama_1_1_i_user_group_list_user_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EUserGroupListUserGroup\" id=\"r_Nakama_2EUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.UserGroupListUserGroup</b></td></tr>\n<tr class=\"memitem:Nakama_2EIWriteLeaderboardRecordRequestLeaderboardRecordWrite\" id=\"r_Nakama_2EIWriteLeaderboardRecordRequestLeaderboardRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.  <a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EWriteLeaderboardRecordRequestLeaderboardRecordWrite\" id=\"r_Nakama_2EWriteLeaderboardRecordRequestLeaderboardRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WriteLeaderboardRecordRequestLeaderboardRecordWrite</b></td></tr>\n<tr class=\"memitem:Nakama_2EIWriteTournamentRecordRequestTournamentRecordWrite\" id=\"r_Nakama_2EIWriteTournamentRecordRequestTournamentRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.  <a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EWriteTournamentRecordRequestTournamentRecordWrite\" id=\"r_Nakama_2EWriteTournamentRecordRequestTournamentRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WriteTournamentRecordRequestTournamentRecordWrite</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccount\" id=\"r_Nakama_2EIApiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user with additional account details. Always the current user.  <a href=\"interface_nakama_1_1_i_api_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccount\" id=\"r_Nakama_2EApiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccount</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountApple\" id=\"r_Nakama_2EIApiAccountApple\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">Nakama.IApiAccountApple</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Apple Sign In token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_apple.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountApple\" id=\"r_Nakama_2EApiAccountApple\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountApple</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountCustom\" id=\"r_Nakama_2EIApiAccountCustom\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">Nakama.IApiAccountCustom</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a custom ID to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_custom.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountCustom\" id=\"r_Nakama_2EApiAccountCustom\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountCustom</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountDevice\" id=\"r_Nakama_2EIApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">Nakama.IApiAccountDevice</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a device to the server. Used with authenticate/link/unlink and user.  <a href=\"interface_nakama_1_1_i_api_account_device.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountDevice\" id=\"r_Nakama_2EApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountDevice</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountEmail\" id=\"r_Nakama_2EIApiAccountEmail\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send an email with password to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_email.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountEmail\" id=\"r_Nakama_2EApiAccountEmail\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountEmail</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountFacebook\" id=\"r_Nakama_2EIApiAccountFacebook\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">Nakama.IApiAccountFacebook</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_facebook.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountFacebook\" id=\"r_Nakama_2EApiAccountFacebook\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountFacebook</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountFacebookInstantGame\" id=\"r_Nakama_2EIApiAccountFacebookInstantGame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">Nakama.IApiAccountFacebookInstantGame</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountFacebookInstantGame\" id=\"r_Nakama_2EApiAccountFacebookInstantGame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountFacebookInstantGame</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountGameCenter\" id=\"r_Nakama_2EIApiAccountGameCenter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a>.  <a href=\"interface_nakama_1_1_i_api_account_game_center.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountGameCenter\" id=\"r_Nakama_2EApiAccountGameCenter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountGameCenter</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountGoogle\" id=\"r_Nakama_2EIApiAccountGoogle\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">Nakama.IApiAccountGoogle</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Google token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_google.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountGoogle\" id=\"r_Nakama_2EApiAccountGoogle\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountGoogle</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiAccountSteam\" id=\"r_Nakama_2EIApiAccountSteam\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">Nakama.IApiAccountSteam</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Steam token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_steam.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiAccountSteam\" id=\"r_Nakama_2EApiAccountSteam\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiAccountSteam</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiChannelMessage\" id=\"r_Nakama_2EIApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A message sent on a channel.  <a href=\"interface_nakama_1_1_i_api_channel_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiChannelMessage\" id=\"r_Nakama_2EApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiChannelMessage</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiChannelMessageList\" id=\"r_Nakama_2EIApiChannelMessageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of channel messages, usually a result of a list operation.  <a href=\"interface_nakama_1_1_i_api_channel_message_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiChannelMessageList\" id=\"r_Nakama_2EApiChannelMessageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiChannelMessageList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiCreateGroupRequest\" id=\"r_Nakama_2EIApiCreateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a group with the current user as owner.  <a href=\"interface_nakama_1_1_i_api_create_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiCreateGroupRequest\" id=\"r_Nakama_2EApiCreateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiCreateGroupRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiDeleteStorageObjectId\" id=\"r_Nakama_2EIApiDeleteStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to delete.  <a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiDeleteStorageObjectId\" id=\"r_Nakama_2EApiDeleteStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiDeleteStorageObjectId</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiDeleteStorageObjectsRequest\" id=\"r_Nakama_2EIApiDeleteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">Nakama.IApiDeleteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch delete storage objects.  <a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiDeleteStorageObjectsRequest\" id=\"r_Nakama_2EApiDeleteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiDeleteStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiEvent\" id=\"r_Nakama_2EIApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents an event to be passed through the server to registered event handlers.  <a href=\"interface_nakama_1_1_i_api_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiEvent\" id=\"r_Nakama_2EApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiEvent</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiFriend\" id=\"r_Nakama_2EIApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a user.  <a href=\"interface_nakama_1_1_i_api_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiFriend\" id=\"r_Nakama_2EApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiFriend</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiFriendList\" id=\"r_Nakama_2EIApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">Nakama.IApiFriendList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more friends of the user.  <a href=\"interface_nakama_1_1_i_api_friend_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiFriendList\" id=\"r_Nakama_2EApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiFriendList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiFriendsOfFriendsList\" id=\"r_Nakama_2EIApiFriendsOfFriendsList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">Nakama.IApiFriendsOfFriendsList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A List of friends of friends.  <a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiFriendsOfFriendsList\" id=\"r_Nakama_2EApiFriendsOfFriendsList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiFriendsOfFriendsList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiGroup\" id=\"r_Nakama_2EIApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A group in the server.  <a href=\"interface_nakama_1_1_i_api_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiGroup\" id=\"r_Nakama_2EApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroup</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiGroupList\" id=\"r_Nakama_2EIApiGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">Nakama.IApiGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">One or more groups returned from a listing operation.  <a href=\"interface_nakama_1_1_i_api_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiGroupList\" id=\"r_Nakama_2EApiGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroupList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiGroupUserList\" id=\"r_Nakama_2EIApiGroupUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">Nakama.IApiGroupUserList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users belonging to a group, along with their role.  <a href=\"interface_nakama_1_1_i_api_group_user_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiGroupUserList\" id=\"r_Nakama_2EApiGroupUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiGroupUserList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiLeaderboardRecord\" id=\"r_Nakama_2EIApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a complete leaderboard record with all scores and associated metadata.  <a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiLeaderboardRecord\" id=\"r_Nakama_2EApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLeaderboardRecord</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiLeaderboardRecordList\" id=\"r_Nakama_2EIApiLeaderboardRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  <a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiLeaderboardRecordList\" id=\"r_Nakama_2EApiLeaderboardRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLeaderboardRecordList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiLinkSteamRequest\" id=\"r_Nakama_2EIApiLinkSteamRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">Nakama.IApiLinkSteamRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link Steam to the current user's account.  <a href=\"interface_nakama_1_1_i_api_link_steam_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiLinkSteamRequest\" id=\"r_Nakama_2EApiLinkSteamRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiLinkSteamRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiListSubscriptionsRequest\" id=\"r_Nakama_2EIApiListSubscriptionsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">Nakama.IApiListSubscriptionsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List user subscriptions.  <a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiListSubscriptionsRequest\" id=\"r_Nakama_2EApiListSubscriptionsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiListSubscriptionsRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiMatch\" id=\"r_Nakama_2EIApiMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a realtime match.  <a href=\"interface_nakama_1_1_i_api_match.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiMatch\" id=\"r_Nakama_2EApiMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatch</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiMatchList\" id=\"r_Nakama_2EIApiMatchList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">Nakama.IApiMatchList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of realtime matches.  <a href=\"interface_nakama_1_1_i_api_match_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiMatchList\" id=\"r_Nakama_2EApiMatchList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatchList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiMatchmakerCompletionStats\" id=\"r_Nakama_2EIApiMatchmakerCompletionStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">Nakama.IApiMatchmakerCompletionStats</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Matchmaker ticket completion stats.  <a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiMatchmakerCompletionStats\" id=\"r_Nakama_2EApiMatchmakerCompletionStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatchmakerCompletionStats</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiMatchmakerStats\" id=\"r_Nakama_2EIApiMatchmakerStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">Nakama.IApiMatchmakerStats</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Matchmaker stats.  <a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiMatchmakerStats\" id=\"r_Nakama_2EApiMatchmakerStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiMatchmakerStats</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiNotification\" id=\"r_Nakama_2EIApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A notification in the server.  <a href=\"interface_nakama_1_1_i_api_notification.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiNotification\" id=\"r_Nakama_2EApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiNotification</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiNotificationList\" id=\"r_Nakama_2EIApiNotificationList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">Nakama.IApiNotificationList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more notifications.  <a href=\"interface_nakama_1_1_i_api_notification_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiNotificationList\" id=\"r_Nakama_2EApiNotificationList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiNotificationList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiParty\" id=\"r_Nakama_2EIApiParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_api_party.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiParty\" id=\"r_Nakama_2EApiParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiParty</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiPartyList\" id=\"r_Nakama_2EIApiPartyList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">Nakama.IApiPartyList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of realtime matches.  <a href=\"interface_nakama_1_1_i_api_party_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiPartyList\" id=\"r_Nakama_2EApiPartyList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiPartyList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiReadStorageObjectId\" id=\"r_Nakama_2EIApiReadStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to get.  <a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiReadStorageObjectId\" id=\"r_Nakama_2EApiReadStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiReadStorageObjectId</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiReadStorageObjectsRequest\" id=\"r_Nakama_2EIApiReadStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">Nakama.IApiReadStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch get storage objects.  <a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiReadStorageObjectsRequest\" id=\"r_Nakama_2EApiReadStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiReadStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiRpc\" id=\"r_Nakama_2EIApiRpc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an Lua function on the server.  <a href=\"interface_nakama_1_1_i_api_rpc.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiRpc\" id=\"r_Nakama_2EApiRpc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiRpc</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiSession\" id=\"r_Nakama_2EIApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user's session used to authenticate messages.  <a href=\"interface_nakama_1_1_i_api_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiSession\" id=\"r_Nakama_2EApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSession</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiSessionLogoutRequest\" id=\"r_Nakama_2EIApiSessionLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">Nakama.IApiSessionLogoutRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  <a href=\"interface_nakama_1_1_i_api_session_logout_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiSessionLogoutRequest\" id=\"r_Nakama_2EApiSessionLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSessionLogoutRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiSessionRefreshRequest\" id=\"r_Nakama_2EIApiSessionRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">Nakama.IApiSessionRefreshRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server with a refresh token.  <a href=\"interface_nakama_1_1_i_api_session_refresh_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiSessionRefreshRequest\" id=\"r_Nakama_2EApiSessionRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSessionRefreshRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiStorageObject\" id=\"r_Nakama_2EIApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object within the storage engine.  <a href=\"interface_nakama_1_1_i_api_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiStorageObject\" id=\"r_Nakama_2EApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObject</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiStorageObjectAck\" id=\"r_Nakama_2EIApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A storage acknowledgement.  <a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiStorageObjectAck\" id=\"r_Nakama_2EApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectAck</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiStorageObjectAcks\" id=\"r_Nakama_2EIApiStorageObjectAcks\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">Nakama.IApiStorageObjectAcks</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of acknowledgements for the storage object write.  <a href=\"interface_nakama_1_1_i_api_storage_object_acks.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiStorageObjectAcks\" id=\"r_Nakama_2EApiStorageObjectAcks\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectAcks</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiStorageObjectList\" id=\"r_Nakama_2EIApiStorageObjectList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">Nakama.IApiStorageObjectList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects.  <a href=\"interface_nakama_1_1_i_api_storage_object_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiStorageObjectList\" id=\"r_Nakama_2EApiStorageObjectList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjectList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiStorageObjects\" id=\"r_Nakama_2EIApiStorageObjects\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">Nakama.IApiStorageObjects</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage objects.  <a href=\"interface_nakama_1_1_i_api_storage_objects.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiStorageObjects\" id=\"r_Nakama_2EApiStorageObjects\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiStorageObjects</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiSubscriptionList\" id=\"r_Nakama_2EIApiSubscriptionList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_api_subscription_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiSubscriptionList\" id=\"r_Nakama_2EApiSubscriptionList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiSubscriptionList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiTournament\" id=\"r_Nakama_2EIApiTournament\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A tournament on the server.  <a href=\"interface_nakama_1_1_i_api_tournament.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiTournament\" id=\"r_Nakama_2EApiTournament\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournament</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiTournamentList\" id=\"r_Nakama_2EIApiTournamentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">Nakama.IApiTournamentList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of tournaments.  <a href=\"interface_nakama_1_1_i_api_tournament_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiTournamentList\" id=\"r_Nakama_2EApiTournamentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournamentList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiTournamentRecordList\" id=\"r_Nakama_2EIApiTournamentRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of tournament records which may be part of a tournament records page or a batch of individual records.  <a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiTournamentRecordList\" id=\"r_Nakama_2EApiTournamentRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiTournamentRecordList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiUpdateAccountRequest\" id=\"r_Nakama_2EIApiUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a user's account details.  <a href=\"interface_nakama_1_1_i_api_update_account_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiUpdateAccountRequest\" id=\"r_Nakama_2EApiUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUpdateAccountRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiUser\" id=\"r_Nakama_2EIApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user in the server.  <a href=\"interface_nakama_1_1_i_api_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiUser\" id=\"r_Nakama_2EApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUser</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiUserGroupList\" id=\"r_Nakama_2EIApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">Nakama.IApiUserGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of groups belonging to a user, along with the user's role in each group.  <a href=\"interface_nakama_1_1_i_api_user_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiUserGroupList\" id=\"r_Nakama_2EApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUserGroupList</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiUsers\" id=\"r_Nakama_2EIApiUsers\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">Nakama.IApiUsers</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more users.  <a href=\"interface_nakama_1_1_i_api_users.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiUsers\" id=\"r_Nakama_2EApiUsers\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiUsers</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatePurchaseAppleRequest\" id=\"r_Nakama_2EIApiValidatePurchaseAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">Nakama.IApiValidatePurchaseAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple IAP Purchases validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatePurchaseAppleRequest\" id=\"r_Nakama_2EApiValidatePurchaseAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseAppleRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatePurchaseFacebookInstantRequest\" id=\"r_Nakama_2EIApiValidatePurchaseFacebookInstantRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Facebook Instant IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatePurchaseFacebookInstantRequest\" id=\"r_Nakama_2EApiValidatePurchaseFacebookInstantRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseFacebookInstantRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatePurchaseGoogleRequest\" id=\"r_Nakama_2EIApiValidatePurchaseGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">Nakama.IApiValidatePurchaseGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatePurchaseGoogleRequest\" id=\"r_Nakama_2EApiValidatePurchaseGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseGoogleRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatePurchaseHuaweiRequest\" id=\"r_Nakama_2EIApiValidatePurchaseHuaweiRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Huawei IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatePurchaseHuaweiRequest\" id=\"r_Nakama_2EApiValidatePurchaseHuaweiRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseHuaweiRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatePurchaseResponse\" id=\"r_Nakama_2EIApiValidatePurchaseResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">Nakama.IApiValidatePurchaseResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate IAP response.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatePurchaseResponse\" id=\"r_Nakama_2EApiValidatePurchaseResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatePurchaseResponse</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidateSubscriptionAppleRequest\" id=\"r_Nakama_2EIApiValidateSubscriptionAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">Nakama.IApiValidateSubscriptionAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple Subscription validation request.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidateSubscriptionAppleRequest\" id=\"r_Nakama_2EApiValidateSubscriptionAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionAppleRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidateSubscriptionGoogleRequest\" id=\"r_Nakama_2EIApiValidateSubscriptionGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">Nakama.IApiValidateSubscriptionGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google Subscription validation request.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidateSubscriptionGoogleRequest\" id=\"r_Nakama_2EApiValidateSubscriptionGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionGoogleRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidateSubscriptionResponse\" id=\"r_Nakama_2EIApiValidateSubscriptionResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">Nakama.IApiValidateSubscriptionResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate Subscription response.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidateSubscriptionResponse\" id=\"r_Nakama_2EApiValidateSubscriptionResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidateSubscriptionResponse</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatedPurchase\" id=\"r_Nakama_2EIApiValidatedPurchase\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_api_validated_purchase.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatedPurchase\" id=\"r_Nakama_2EApiValidatedPurchase\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatedPurchase</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiValidatedSubscription\" id=\"r_Nakama_2EIApiValidatedSubscription\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td></tr>\n<tr class=\"memitem:Nakama_2EApiValidatedSubscription\" id=\"r_Nakama_2EApiValidatedSubscription\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiValidatedSubscription</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiWriteStorageObject\" id=\"r_Nakama_2EIApiWriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The object to store.  <a href=\"interface_nakama_1_1_i_api_write_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiWriteStorageObject\" id=\"r_Nakama_2EApiWriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiWriteStorageObject</b></td></tr>\n<tr class=\"memitem:Nakama_2EIApiWriteStorageObjectsRequest\" id=\"r_Nakama_2EIApiWriteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">Nakama.IApiWriteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write objects to the storage engine.  <a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Nakama_2EApiWriteStorageObjectsRequest\" id=\"r_Nakama_2EApiWriteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiWriteStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:Nakama_2EIProtobufAny\" id=\"r_Nakama_2EIProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">Nakama.IProtobufAny</a></td></tr>\n<tr class=\"memitem:Nakama_2EProtobufAny\" id=\"r_Nakama_2EProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ProtobufAny</b></td></tr>\n<tr class=\"memitem:Nakama_2EIRpcStatus\" id=\"r_Nakama_2EIRpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a></td></tr>\n<tr class=\"memitem:Nakama_2ERpcStatus\" id=\"r_Nakama_2ERpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RpcStatus</b></td></tr>\n<tr class=\"memitem:Nakama_2EApiClient\" id=\"r_Nakama_2EApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> API. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-enum-members\" class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a8e9c42a36e780e31a03f2ba94a3bb6e7\" id=\"r_a8e9c42a36e780e31a03f2ba94a3bb6e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">Nakama.ApiOperator</a> { <br />\n&#160;&#160;<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">Nakama.NO_OVERRIDE</a> = 0\n, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\">Nakama.BEST</a> = 1\n, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\">Nakama.SET</a> = 2\n, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\">Nakama.INCREMENT</a> = 3\n, <br />\n&#160;&#160;<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\">Nakama.DECREMENT</a> = 4\n<br />\n }</td></tr>\n<tr class=\"memitem:a216a2d7c4acbc3a4f29a98514c483cd6\" id=\"r_a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">Nakama.ApiStoreEnvironment</a> { <a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\">Nakama.UNKNOWN</a> = 0\n, <a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\">Nakama.SANDBOX</a> = 1\n, <a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\">Nakama.PRODUCTION</a> = 2\n }</td></tr>\n<tr class=\"memdesc:a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Environment where a purchase/subscription took place,.  <a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">More...</a><br /></td></tr>\n<tr class=\"memitem:a80ae1f687aff9e2cdddb9e69a557cc49\" id=\"r_a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">Nakama.ApiStoreProvider</a> { <a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\">Nakama.APPLE_APP_STORE</a> = 0\n, <a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\">Nakama.GOOGLE_PLAY_STORE</a> = 1\n, <a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\">Nakama.HUAWEI_APP_GALLERY</a> = 2\n, <a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\">Nakama.FACEBOOK_INSTANT_STORE</a> = 3\n }</td></tr>\n<tr class=\"memdesc:a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validation Provider,.  <a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">More...</a><br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_api_client_8gen_8cs.html\">ApiClient.gen.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_api_client_8gen_8cs.js",
    "content": "var _nakama_2_api_client_8gen_8cs =\n[\n    [ \"Nakama.ApiResponseException\", \"class_nakama_1_1_api_response_exception.html\", \"class_nakama_1_1_api_response_exception\" ],\n    [ \"Nakama.IApiUpdateGroupRequest\", \"interface_nakama_1_1_i_api_update_group_request.html\", \"interface_nakama_1_1_i_api_update_group_request\" ],\n    [ \"Nakama.IFriendsOfFriendsListFriendOfFriend\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend\" ],\n    [ \"Nakama.IGroupUserListGroupUser\", \"interface_nakama_1_1_i_group_user_list_group_user.html\", \"interface_nakama_1_1_i_group_user_list_group_user\" ],\n    [ \"Nakama.IUserGroupListUserGroup\", \"interface_nakama_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_i_user_group_list_user_group\" ],\n    [ \"Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write\" ],\n    [ \"Nakama.IWriteTournamentRecordRequestTournamentRecordWrite\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write\" ],\n    [ \"Nakama.IApiAccount\", \"interface_nakama_1_1_i_api_account.html\", \"interface_nakama_1_1_i_api_account\" ],\n    [ \"Nakama.IApiAccountApple\", \"interface_nakama_1_1_i_api_account_apple.html\", \"interface_nakama_1_1_i_api_account_apple\" ],\n    [ \"Nakama.IApiAccountCustom\", \"interface_nakama_1_1_i_api_account_custom.html\", \"interface_nakama_1_1_i_api_account_custom\" ],\n    [ \"Nakama.IApiAccountDevice\", \"interface_nakama_1_1_i_api_account_device.html\", \"interface_nakama_1_1_i_api_account_device\" ],\n    [ \"Nakama.IApiAccountEmail\", \"interface_nakama_1_1_i_api_account_email.html\", \"interface_nakama_1_1_i_api_account_email\" ],\n    [ \"Nakama.IApiAccountFacebook\", \"interface_nakama_1_1_i_api_account_facebook.html\", \"interface_nakama_1_1_i_api_account_facebook\" ],\n    [ \"Nakama.IApiAccountFacebookInstantGame\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html\", \"interface_nakama_1_1_i_api_account_facebook_instant_game\" ],\n    [ \"Nakama.IApiAccountGameCenter\", \"interface_nakama_1_1_i_api_account_game_center.html\", \"interface_nakama_1_1_i_api_account_game_center\" ],\n    [ \"Nakama.IApiAccountGoogle\", \"interface_nakama_1_1_i_api_account_google.html\", \"interface_nakama_1_1_i_api_account_google\" ],\n    [ \"Nakama.IApiAccountSteam\", \"interface_nakama_1_1_i_api_account_steam.html\", \"interface_nakama_1_1_i_api_account_steam\" ],\n    [ \"Nakama.IApiChannelMessage\", \"interface_nakama_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_i_api_channel_message\" ],\n    [ \"Nakama.IApiChannelMessageList\", \"interface_nakama_1_1_i_api_channel_message_list.html\", \"interface_nakama_1_1_i_api_channel_message_list\" ],\n    [ \"Nakama.IApiCreateGroupRequest\", \"interface_nakama_1_1_i_api_create_group_request.html\", \"interface_nakama_1_1_i_api_create_group_request\" ],\n    [ \"Nakama.IApiDeleteStorageObjectId\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html\", \"interface_nakama_1_1_i_api_delete_storage_object_id\" ],\n    [ \"Nakama.IApiDeleteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html\", \"interface_nakama_1_1_i_api_delete_storage_objects_request\" ],\n    [ \"Nakama.IApiEvent\", \"interface_nakama_1_1_i_api_event.html\", \"interface_nakama_1_1_i_api_event\" ],\n    [ \"Nakama.IApiFriend\", \"interface_nakama_1_1_i_api_friend.html\", \"interface_nakama_1_1_i_api_friend\" ],\n    [ \"Nakama.IApiFriendList\", \"interface_nakama_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_i_api_friend_list\" ],\n    [ \"Nakama.IApiFriendsOfFriendsList\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html\", \"interface_nakama_1_1_i_api_friends_of_friends_list\" ],\n    [ \"Nakama.IApiGroup\", \"interface_nakama_1_1_i_api_group.html\", \"interface_nakama_1_1_i_api_group\" ],\n    [ \"Nakama.IApiGroupList\", \"interface_nakama_1_1_i_api_group_list.html\", \"interface_nakama_1_1_i_api_group_list\" ],\n    [ \"Nakama.IApiGroupUserList\", \"interface_nakama_1_1_i_api_group_user_list.html\", \"interface_nakama_1_1_i_api_group_user_list\" ],\n    [ \"Nakama.IApiLeaderboardRecord\", \"interface_nakama_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_i_api_leaderboard_record\" ],\n    [ \"Nakama.IApiLeaderboardRecordList\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html\", \"interface_nakama_1_1_i_api_leaderboard_record_list\" ],\n    [ \"Nakama.IApiLinkSteamRequest\", \"interface_nakama_1_1_i_api_link_steam_request.html\", \"interface_nakama_1_1_i_api_link_steam_request\" ],\n    [ \"Nakama.IApiListSubscriptionsRequest\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html\", \"interface_nakama_1_1_i_api_list_subscriptions_request\" ],\n    [ \"Nakama.IApiMatch\", \"interface_nakama_1_1_i_api_match.html\", \"interface_nakama_1_1_i_api_match\" ],\n    [ \"Nakama.IApiMatchList\", \"interface_nakama_1_1_i_api_match_list.html\", \"interface_nakama_1_1_i_api_match_list\" ],\n    [ \"Nakama.IApiMatchmakerCompletionStats\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats\" ],\n    [ \"Nakama.IApiMatchmakerStats\", \"interface_nakama_1_1_i_api_matchmaker_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_stats\" ],\n    [ \"Nakama.IApiNotification\", \"interface_nakama_1_1_i_api_notification.html\", \"interface_nakama_1_1_i_api_notification\" ],\n    [ \"Nakama.IApiNotificationList\", \"interface_nakama_1_1_i_api_notification_list.html\", \"interface_nakama_1_1_i_api_notification_list\" ],\n    [ \"Nakama.IApiParty\", \"interface_nakama_1_1_i_api_party.html\", \"interface_nakama_1_1_i_api_party\" ],\n    [ \"Nakama.IApiPartyList\", \"interface_nakama_1_1_i_api_party_list.html\", \"interface_nakama_1_1_i_api_party_list\" ],\n    [ \"Nakama.IApiReadStorageObjectId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html\", \"interface_nakama_1_1_i_api_read_storage_object_id\" ],\n    [ \"Nakama.IApiReadStorageObjectsRequest\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html\", \"interface_nakama_1_1_i_api_read_storage_objects_request\" ],\n    [ \"Nakama.IApiRpc\", \"interface_nakama_1_1_i_api_rpc.html\", \"interface_nakama_1_1_i_api_rpc\" ],\n    [ \"Nakama.IApiSession\", \"interface_nakama_1_1_i_api_session.html\", \"interface_nakama_1_1_i_api_session\" ],\n    [ \"Nakama.IApiSessionLogoutRequest\", \"interface_nakama_1_1_i_api_session_logout_request.html\", \"interface_nakama_1_1_i_api_session_logout_request\" ],\n    [ \"Nakama.IApiSessionRefreshRequest\", \"interface_nakama_1_1_i_api_session_refresh_request.html\", \"interface_nakama_1_1_i_api_session_refresh_request\" ],\n    [ \"Nakama.IApiStorageObject\", \"interface_nakama_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_i_api_storage_object\" ],\n    [ \"Nakama.IApiStorageObjectAck\", \"interface_nakama_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_i_api_storage_object_ack\" ],\n    [ \"Nakama.IApiStorageObjectAcks\", \"interface_nakama_1_1_i_api_storage_object_acks.html\", \"interface_nakama_1_1_i_api_storage_object_acks\" ],\n    [ \"Nakama.IApiStorageObjectList\", \"interface_nakama_1_1_i_api_storage_object_list.html\", \"interface_nakama_1_1_i_api_storage_object_list\" ],\n    [ \"Nakama.IApiStorageObjects\", \"interface_nakama_1_1_i_api_storage_objects.html\", \"interface_nakama_1_1_i_api_storage_objects\" ],\n    [ \"Nakama.IApiSubscriptionList\", \"interface_nakama_1_1_i_api_subscription_list.html\", \"interface_nakama_1_1_i_api_subscription_list\" ],\n    [ \"Nakama.IApiTournament\", \"interface_nakama_1_1_i_api_tournament.html\", \"interface_nakama_1_1_i_api_tournament\" ],\n    [ \"Nakama.IApiTournamentList\", \"interface_nakama_1_1_i_api_tournament_list.html\", \"interface_nakama_1_1_i_api_tournament_list\" ],\n    [ \"Nakama.IApiTournamentRecordList\", \"interface_nakama_1_1_i_api_tournament_record_list.html\", \"interface_nakama_1_1_i_api_tournament_record_list\" ],\n    [ \"Nakama.IApiUpdateAccountRequest\", \"interface_nakama_1_1_i_api_update_account_request.html\", \"interface_nakama_1_1_i_api_update_account_request\" ],\n    [ \"Nakama.IApiUser\", \"interface_nakama_1_1_i_api_user.html\", \"interface_nakama_1_1_i_api_user\" ],\n    [ \"Nakama.IApiUserGroupList\", \"interface_nakama_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_i_api_user_group_list\" ],\n    [ \"Nakama.IApiUsers\", \"interface_nakama_1_1_i_api_users.html\", \"interface_nakama_1_1_i_api_users\" ],\n    [ \"Nakama.IApiValidatePurchaseAppleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request\" ],\n    [ \"Nakama.IApiValidatePurchaseFacebookInstantRequest\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request\" ],\n    [ \"Nakama.IApiValidatePurchaseGoogleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_google_request\" ],\n    [ \"Nakama.IApiValidatePurchaseHuaweiRequest\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request\" ],\n    [ \"Nakama.IApiValidatePurchaseResponse\", \"interface_nakama_1_1_i_api_validate_purchase_response.html\", \"interface_nakama_1_1_i_api_validate_purchase_response\" ],\n    [ \"Nakama.IApiValidateSubscriptionAppleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request\" ],\n    [ \"Nakama.IApiValidateSubscriptionGoogleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_google_request\" ],\n    [ \"Nakama.IApiValidateSubscriptionResponse\", \"interface_nakama_1_1_i_api_validate_subscription_response.html\", \"interface_nakama_1_1_i_api_validate_subscription_response\" ],\n    [ \"Nakama.IApiValidatedPurchase\", \"interface_nakama_1_1_i_api_validated_purchase.html\", \"interface_nakama_1_1_i_api_validated_purchase\" ],\n    [ \"Nakama.IApiValidatedSubscription\", \"interface_nakama_1_1_i_api_validated_subscription.html\", \"interface_nakama_1_1_i_api_validated_subscription\" ],\n    [ \"Nakama.IApiWriteStorageObject\", \"interface_nakama_1_1_i_api_write_storage_object.html\", \"interface_nakama_1_1_i_api_write_storage_object\" ],\n    [ \"Nakama.IApiWriteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html\", \"interface_nakama_1_1_i_api_write_storage_objects_request\" ],\n    [ \"Nakama.IProtobufAny\", \"interface_nakama_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_i_protobuf_any\" ],\n    [ \"Nakama.IRpcStatus\", \"interface_nakama_1_1_i_rpc_status.html\", \"interface_nakama_1_1_i_rpc_status\" ],\n    [ \"Nakama.ApiOperator\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\", [\n      [ \"Nakama.ApiOperator.NO_OVERRIDE\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\", null ],\n      [ \"Nakama.ApiOperator.BEST\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\", null ],\n      [ \"Nakama.ApiOperator.SET\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\", null ],\n      [ \"Nakama.ApiOperator.INCREMENT\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\", null ],\n      [ \"Nakama.ApiOperator.DECREMENT\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\", null ]\n    ] ],\n    [ \"Nakama.ApiStoreEnvironment\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\", [\n      [ \"Nakama.ApiStoreEnvironment.UNKNOWN\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\", null ],\n      [ \"Nakama.ApiStoreEnvironment.SANDBOX\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\", null ],\n      [ \"Nakama.ApiStoreEnvironment.PRODUCTION\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\", null ]\n    ] ],\n    [ \"Nakama.ApiStoreProvider\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\", [\n      [ \"Nakama.ApiStoreProvider.APPLE_APP_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\", null ],\n      [ \"Nakama.ApiStoreProvider.GOOGLE_PLAY_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\", null ],\n      [ \"Nakama.ApiStoreProvider.HUAWEI_APP_GALLERY\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\", null ],\n      [ \"Nakama.ApiStoreProvider.FACEBOOK_INSTANT_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\", null ]\n    ] ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Client.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_client_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Client.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EClient\" id=\"r_Nakama_2EClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_client_8cs.html\">Client.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_client_8cs.js",
    "content": "var _nakama_2_client_8cs =\n[\n    [ \"Nakama.Client\", \"class_nakama_1_1_client.html\", \"class_nakama_1_1_client\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_g_zip_http_client_handler_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: GZipHttpClientHandler.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_g_zip_http_client_handler_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">GZipHttpClientHandler.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EGZipHttpClientHandler\" id=\"r_Nakama_2EGZipHttpClientHandler\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GZipHttpClientHandler</b></td></tr>\n<tr class=\"memitem:Nakama_2EGZipContent\" id=\"r_Nakama_2EGZipContent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.GZipContent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_g_zip_http_client_handler_8cs.html\">GZipHttpClientHandler.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_http_request_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: HttpRequestAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_http_request_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">HttpRequestAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EHttpRequestAdapter\" id=\"r_Nakama_2EHttpRequestAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">HTTP Request adapter which uses the .NET HttpClient to send requests.  <a href=\"class_nakama_1_1_http_request_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_http_request_adapter_8cs.html\">HttpRequestAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_http_request_adapter_8cs.js",
    "content": "var _nakama_2_http_request_adapter_8cs =\n[\n    [ \"Nakama.HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html\", \"class_nakama_1_1_http_request_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_i_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IClient.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_i_client_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IClient.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIClient\" id=\"r_Nakama_2EIClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_client.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_i_client_8cs.html\">IClient.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_i_client_8cs.js",
    "content": "var _nakama_2_i_client_8cs =\n[\n    [ \"Nakama.IClient\", \"interface_nakama_1_1_i_client.html\", \"interface_nakama_1_1_i_client\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_i_http_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IHttpAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_i_http_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIHttpAdapter\" id=\"r_Nakama_2EIHttpAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements the HTTP protocol.  <a href=\"interface_nakama_1_1_i_http_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_i_http_adapter_8cs.html\">IHttpAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_i_http_adapter_8cs.js",
    "content": "var _nakama_2_i_http_adapter_8cs =\n[\n    [ \"Nakama.IHttpAdapter\", \"interface_nakama_1_1_i_http_adapter.html\", \"interface_nakama_1_1_i_http_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_i_http_adapter_util_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IHttpAdapterUtil.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_i_http_adapter_util_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapterUtil.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EIHttpAdapterUtil\" id=\"r_Nakama_2EIHttpAdapterUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.IHttpAdapterUtil</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Utility methods for the <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">interface. NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile them properly to WebGL. </a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_i_http_adapter_util_8cs.html\">IHttpAdapterUtil.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_i_logger_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ILogger.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_i_logger_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ILogger.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EILogger\" id=\"r_Nakama_2EILogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A simple logger to write log messages to an output sink.  <a href=\"interface_nakama_1_1_i_logger.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_i_logger_8cs.html\">ILogger.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_i_logger_8cs.js",
    "content": "var _nakama_2_i_logger_8cs =\n[\n    [ \"Nakama.ILogger\", \"interface_nakama_1_1_i_logger.html\", \"interface_nakama_1_1_i_logger\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_i_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ISession.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_i_session_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ISession.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EISession\" id=\"r_Nakama_2EISession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_session.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_i_session_8cs.html\">ISession.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_i_session_8cs.js",
    "content": "var _nakama_2_i_session_8cs =\n[\n    [ \"Nakama.ISession\", \"interface_nakama_1_1_i_session.html\", \"interface_nakama_1_1_i_session\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_preserve_attribute_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PreserveAttribute.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_preserve_attribute_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PreserveAttribute.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPreserveAttribute\" id=\"r_Nakama_2EPreserveAttribute\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PreserveAttribute</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.xml file because the Unity Package Manager does not recognize link.xml files inside Unity packages. <a href=\"https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\">https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html</a>. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_preserve_attribute_8cs.html\">PreserveAttribute.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Retry.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Retry.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ERetry\" id=\"r_Nakama_2ERetry\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Nakama.Retry</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a single retry attempt.  <a href=\"class_nakama_1_1_retry.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_8cs.html\">Retry.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_8cs.js",
    "content": "var _nakama_2_retry_8cs =\n[\n    [ \"Nakama.Retry\", \"class_nakama_1_1_retry.html\", \"class_nakama_1_1_retry\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_retry_configuration_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryConfiguration.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_configuration_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryConfiguration.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ERetryConfiguration\" id=\"r_Nakama_2ERetryConfiguration\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A configuration for controlling retriable requests.  <a href=\"class_nakama_1_1_retry_configuration.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_configuration_8cs.html\">RetryConfiguration.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_configuration_8cs.js",
    "content": "var _nakama_2_retry_configuration_8cs =\n[\n    [ \"Nakama.RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html\", \"class_nakama_1_1_retry_configuration\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_retry_history_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryHistory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_history_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryHistory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ERetryHistory\" id=\"r_Nakama_2ERetryHistory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryHistory</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_history_8cs.html\">RetryHistory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_invoker_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryInvoker.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_invoker_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryInvoker.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ERetryInvoker\" id=\"r_Nakama_2ERetryInvoker\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryInvoker</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Invokes requests with retry and exponential backoff. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_invoker_8cs.html\">RetryInvoker.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_jitter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryJitter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_jitter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryJitter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ERetryJitter\" id=\"r_Nakama_2ERetryJitter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryJitter</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of <a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\" title=\"The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\">Jitter</a> algorithms. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a127d52a41cb18b64e939f4b06b316b59\" id=\"r_a127d52a41cb18b64e939f4b06b316b59\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\">Nakama.Jitter</a> (IList&lt; <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> &gt; retryHistory, int retryDelay, Random random)</td></tr>\n<tr class=\"memdesc:a127d52a41cb18b64e939f4b06b316b59\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_jitter_8cs.html\">RetryJitter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_jitter_8cs.js",
    "content": "var _nakama_2_retry_jitter_8cs =\n[\n    [ \"Nakama.Jitter\", \"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\", null ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_retry_listener_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryListener.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_retry_listener_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryListener.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a54689fcf19366a415851641cb61947d4\" id=\"r_a54689fcf19366a415851641cb61947d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\">Nakama.RetryListener</a> (int numRetry, <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> retry)</td></tr>\n<tr class=\"memdesc:a54689fcf19366a415851641cb61947d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Listens to retry events for a particular request.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_retry_listener_8cs.html\">RetryListener.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_retry_listener_8cs.js",
    "content": "var _nakama_2_retry_listener_8cs =\n[\n    [ \"Nakama.RetryListener\", \"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\", null ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Session.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_session_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Session.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ESession\" id=\"r_Nakama_2ESession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_session_8cs.html\">Session.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_session_8cs.js",
    "content": "var _nakama_2_session_8cs =\n[\n    [ \"Nakama.Session\", \"class_nakama_1_1_session.html\", \"class_nakama_1_1_session\" ]\n];"
  },
  {
    "path": "docs/html/_nakama_2_tiny_json_2_json_parser_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: JsonParser.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_tiny_json_2_json_parser_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">JsonParser.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ETinyJson_2EJsonParser\" id=\"r_Nakama_2ETinyJson_2EJsonParser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.TinyJson.JsonParser</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ETinyJson\" id=\"r_Nakama_2ETinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\">Nakama.TinyJson</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></li><li class=\"navelem\"><a href=\"_nakama_2_tiny_json_2_json_parser_8cs.html\">JsonParser.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_tiny_json_2_json_writer_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: JsonWriter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_tiny_json_2_json_writer_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">JsonWriter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ETinyJson_2EJsonWriter\" id=\"r_Nakama_2ETinyJson_2EJsonWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.TinyJson.JsonWriter</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ETinyJson\" id=\"r_Nakama_2ETinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\">Nakama.TinyJson</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></li><li class=\"navelem\"><a href=\"_nakama_2_tiny_json_2_json_writer_8cs.html\">JsonWriter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_transient_exception_delegate_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: TransientExceptionDelegate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2_transient_exception_delegate_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">TransientExceptionDelegate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a016772f008c1c294bf609c6ece102445\" id=\"r_a016772f008c1c294bf609c6ece102445\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\">Nakama.TransientExceptionDelegate</a> (Exception e)</td></tr>\n<tr class=\"memdesc:a016772f008c1c294bf609c6ece102445\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_nakama_2_transient_exception_delegate_8cs.html\">TransientExceptionDelegate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2_transient_exception_delegate_8cs.js",
    "content": "var _nakama_2_transient_exception_delegate_8cs =\n[\n    [ \"Nakama.TransientExceptionDelegate\", \"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\", null ]\n];"
  },
  {
    "path": "docs/html/_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\">net46</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_d0af3520e52159625e5c54b0a0666246.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_null_logger_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: NullLogger.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_null_logger_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">NullLogger.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENullLogger\" id=\"r_Nakama_2ENullLogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.NullLogger</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A logger which writes to nowhere. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_null_logger_8cs.html\">NullLogger.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Party.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Party.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EParty\" id=\"r_Nakama_2EParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Party</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_8cs.html\">Party.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_accept_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyAccept.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_accept_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyAccept.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyAccept\" id=\"r_Nakama_2EPartyAccept\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyAccept</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_accept_8cs.html\">PartyAccept.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_close_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyClose.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_close_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyClose.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyClose\" id=\"r_Nakama_2EPartyClose\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyClose</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members, and closing it. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_close_8cs.html\">PartyClose.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_create_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyCreate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_create_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyCreate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyCreate\" id=\"r_Nakama_2EPartyCreate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyCreate</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_create_8cs.html\">PartyCreate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_data_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyData.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_data_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyData.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyData\" id=\"r_Nakama_2EPartyData\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyData</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming party data delivered from the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_data_8cs.html\">PartyData.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_data_send_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyDataSend.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_data_send_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyDataSend.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyDataSend\" id=\"r_Nakama_2EPartyDataSend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyDataSend</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_data_send_8cs.html\">PartyDataSend.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_join_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyJoin.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_join_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyJoin.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyJoin\" id=\"r_Nakama_2EPartyJoin\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyJoin</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a party, or request to join if the party is not open. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_join_8cs.html\">PartyJoin.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_join_request_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyJoinRequest.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_join_request_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyJoinRequest.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyJoinRequest\" id=\"r_Nakama_2EPartyJoinRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyJoinRequest</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming notification for one or more new presences attempting to join the party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_join_request_8cs.html\">PartyJoinRequest.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_join_request_list_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyJoinRequestList.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_join_request_list_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyJoinRequestList.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyJoinRequestList\" id=\"r_Nakama_2EPartyJoinRequestList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyJoinRequestList</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Request a list of pending join requests for a party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_join_request_list_8cs.html\">PartyJoinRequestList.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_leader_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyLeader.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_leader_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyLeader.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyLeader\" id=\"r_Nakama_2EPartyLeader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyLeader</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Announcement of a new party leader. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_leader_8cs.html\">PartyLeader.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_leave_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyLeave.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_leave_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyLeave.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyLeave\" id=\"r_Nakama_2EPartyLeave\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyLeave</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_leave_8cs.html\">PartyLeave.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_matchmaker_add_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyMatchmakerAdd.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_matchmaker_add_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyMatchmakerAdd.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyMatchmakerAdd\" id=\"r_Nakama_2EPartyMatchmakerAdd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyMatchmakerAdd</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Begin matchmaking as a party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_matchmaker_add_8cs.html\">PartyMatchmakerAdd.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_matchmaker_remove_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyMatchmakerRemove.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_matchmaker_remove_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyMatchmakerRemove.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyMatchmakerRemove\" id=\"r_Nakama_2EPartyMatchmakerRemove\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyMatchmakerRemove</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the party from the matchmaker. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_matchmaker_remove_8cs.html\">PartyMatchmakerRemove.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_matchmaker_ticket_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyMatchmakerTicket.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_matchmaker_ticket_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyMatchmakerTicket.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyMatchmakerTicket\" id=\"r_Nakama_2EPartyMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyMatchmakerTicket</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_matchmaker_ticket_8cs.html\">PartyMatchmakerTicket.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_member_remove_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyMemberRemove.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_member_remove_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyMemberRemove.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyMemberRemove\" id=\"r_Nakama_2EPartyMemberRemove\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyMemberRemove</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick a party member, or decline a request to join. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_member_remove_8cs.html\">PartyMemberRemove.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_presence_event_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyPresenceEvent.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_presence_event_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyPresenceEvent.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyPresenceEvent\" id=\"r_Nakama_2EPartyPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyPresenceEvent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_presence_event_8cs.html\">PartyPresenceEvent.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_promote_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyPromote.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_promote_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyPromote.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyPromote\" id=\"r_Nakama_2EPartyPromote\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyPromote</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote a new party leader. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_promote_8cs.html\">PartyPromote.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_party_update_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PartyUpdate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_party_update_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PartyUpdate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPartyUpdate\" id=\"r_Nakama_2EPartyUpdate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PartyUpdate</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new party. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_party_update_8cs.html\">PartyUpdate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_ping_pong_manager_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PingPongManager.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_ping_pong_manager_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PingPongManager.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EPingPongManager\" id=\"r_Nakama_2ENinja_2EWebSockets_2EPingPongManager\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ping Pong Manager used to facilitate ping pong WebSocket messages.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_ping_pong_manager_8cs.html\">PingPongManager.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_ping_pong_manager_8cs.js",
    "content": "var _ping_pong_manager_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.PingPongManager\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager\" ]\n];"
  },
  {
    "path": "docs/html/_pong_event_args_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PongEventArgs.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_pong_event_args_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PongEventArgs.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EPongEventArgs\" id=\"r_Nakama_2ENinja_2EWebSockets_2EPongEventArgs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">Nakama.Ninja.WebSockets.PongEventArgs</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Pong EventArgs.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_pong_event_args_8cs.html\">PongEventArgs.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_pong_event_args_8cs.js",
    "content": "var _pong_event_args_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.PongEventArgs\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args\" ]\n];"
  },
  {
    "path": "docs/html/_presence_util_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PresenceUtil.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_presence_util_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PresenceUtil.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EPresenceUtil\" id=\"r_Nakama_2EPresenceUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.PresenceUtil</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_presence_util_8cs.html\">PresenceUtil.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_preserve_attribute_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: PreserveAttribute.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_preserve_attribute_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">PreserveAttribute.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PreserveAttribute</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.xml file because the Unity Package Manager does not recognize link.xml files inside Unity packages. <a href=\"https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\">https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html</a>  <br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_preserve_attribute_8cs.html\">PreserveAttribute.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_r_e_a_d_m_e_8md.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: README.md File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_r_e_a_d_m_e_8md.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">README.md File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"_r_e_a_d_m_e_8md.html\">README.md</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release/net46/.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\">net46</a></li><li class=\"navelem\"><a class=\"el\" href=\"_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2net46_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2net46_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\">net46</a></li><li class=\"navelem\"><a href=\"_release_2net46_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2net46_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2net46_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_75202c243db9baf385df0aac94b0acc0.html\">net46</a></li><li class=\"navelem\"><a href=\"_release_2net46_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_d0af3520e52159625e5c54b0a0666246.html\">netstandard2.0</a></li><li class=\"navelem\"><a class=\"el\" href=\"_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_d0af3520e52159625e5c54b0a0666246.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_7a595d23279f99f2e5346245557e8271.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Retry.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Retry.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Nakama.Retry</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a single retry attempt.  <a href=\"class_nakama_1_1_retry.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_8cs.html\">Retry.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_8cs.js",
    "content": "var _retry_8cs =\n[\n    [ \"Nakama.Retry\", \"class_nakama_1_1_retry.html\", \"class_nakama_1_1_retry\" ]\n];"
  },
  {
    "path": "docs/html/_retry_configuration_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: RetryConfiguration.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_configuration_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">RetryConfiguration.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A configuration for controlling retriable requests.  <a href=\"class_nakama_1_1_retry_configuration.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_configuration_8cs.html\">RetryConfiguration.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_configuration_8cs.js",
    "content": "var _retry_configuration_8cs =\n[\n    [ \"Nakama.RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html\", \"class_nakama_1_1_retry_configuration\" ]\n];"
  },
  {
    "path": "docs/html/_retry_history_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: RetryHistory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_history_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">RetryHistory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryHistory</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_history_8cs.html\">RetryHistory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_invoker_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: RetryInvoker.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_invoker_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">RetryInvoker.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryInvoker</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Invokes requests with retry and exponential backoff. <br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_invoker_8cs.html\">RetryInvoker.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_jitter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: RetryJitter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_jitter_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">RetryJitter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.RetryJitter</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of <a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\" title=\"The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\">Jitter</a> algorithms. <br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a127d52a41cb18b64e939f4b06b316b59\" id=\"r_a127d52a41cb18b64e939f4b06b316b59\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\">Nakama.Jitter</a> (IList&lt; <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> &gt; retryHistory, int retryDelay, Random random)</td></tr>\n<tr class=\"memdesc:a127d52a41cb18b64e939f4b06b316b59\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  <br /></td></tr>\n<tr class=\"separator:a127d52a41cb18b64e939f4b06b316b59\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_jitter_8cs.html\">RetryJitter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_jitter_8cs.js",
    "content": "var _retry_jitter_8cs =\n[\n    [ \"Jitter\", \"_retry_jitter_8cs.html#a127d52a41cb18b64e939f4b06b316b59\", null ]\n];"
  },
  {
    "path": "docs/html/_retry_listener_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: RetryListener.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('_retry_listener_8cs.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">RetryListener.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a54689fcf19366a415851641cb61947d4\" id=\"r_a54689fcf19366a415851641cb61947d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\">Nakama.RetryListener</a> (int numRetry, <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> retry)</td></tr>\n<tr class=\"memdesc:a54689fcf19366a415851641cb61947d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Listens to retry events for a particular request.  <br /></td></tr>\n<tr class=\"separator:a54689fcf19366a415851641cb61947d4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_retry_listener_8cs.html\">RetryListener.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_retry_listener_8cs.js",
    "content": "var _retry_listener_8cs =\n[\n    [ \"RetryListener\", \"_retry_listener_8cs.html#a54689fcf19366a415851641cb61947d4\", null ]\n];"
  },
  {
    "path": "docs/html/_satori_2_api_client_8gen_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ApiClient.gen.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_api_client_8gen_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ApiClient.gen.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EApiResponseException\" id=\"r_Satori_2EApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_satori_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EIApiUpdateMessageRequest\" id=\"r_Satori_2EIApiUpdateMessageRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">Satori.IApiUpdateMessageRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The request to update the status of a message.  <a href=\"interface_satori_1_1_i_api_update_message_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiUpdateMessageRequest\" id=\"r_Satori_2EApiUpdateMessageRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiUpdateMessageRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIFlagValueChangeReason\" id=\"r_Satori_2EIFlagValueChangeReason\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">Satori.IFlagValueChangeReason</a></td></tr>\n<tr class=\"memitem:Satori_2EFlagValueChangeReason\" id=\"r_Satori_2EFlagValueChangeReason\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.FlagValueChangeReason</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiAuthenticateLogoutRequest\" id=\"r_Satori_2EIApiAuthenticateLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">Satori.IApiAuthenticateLogoutRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  <a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiAuthenticateLogoutRequest\" id=\"r_Satori_2EApiAuthenticateLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiAuthenticateLogoutRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiAuthenticateRefreshRequest\" id=\"r_Satori_2EIApiAuthenticateRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">Satori.IApiAuthenticateRefreshRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server with a refresh token.  <a href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiAuthenticateRefreshRequest\" id=\"r_Satori_2EApiAuthenticateRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiAuthenticateRefreshRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiAuthenticateRequest\" id=\"r_Satori_2EIApiAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authentication request.  <a href=\"interface_satori_1_1_i_api_authenticate_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiAuthenticateRequest\" id=\"r_Satori_2EApiAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiAuthenticateRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiEvent\" id=\"r_Satori_2EIApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single event. Usually, but not necessarily, part of a batch.  <a href=\"interface_satori_1_1_i_api_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiEvent\" id=\"r_Satori_2EApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiEvent</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiEventRequest\" id=\"r_Satori_2EIApiEventRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\">Satori.IApiEventRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Publish an event to the server.  <a href=\"interface_satori_1_1_i_api_event_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiEventRequest\" id=\"r_Satori_2EApiEventRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiEventRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiExperiment\" id=\"r_Satori_2EIApiExperiment\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">Satori.IApiExperiment</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An experiment that this user is partaking.  <a href=\"interface_satori_1_1_i_api_experiment.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiExperiment\" id=\"r_Satori_2EApiExperiment\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiExperiment</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiExperimentList\" id=\"r_Satori_2EIApiExperimentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">Satori.IApiExperimentList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All experiments that this identity is involved with.  <a href=\"interface_satori_1_1_i_api_experiment_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiExperimentList\" id=\"r_Satori_2EApiExperimentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiExperimentList</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiFlag\" id=\"r_Satori_2EIApiFlag\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Feature flag available to the identity.  <a href=\"interface_satori_1_1_i_api_flag.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiFlag\" id=\"r_Satori_2EApiFlag\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiFlag</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiFlagList\" id=\"r_Satori_2EIApiFlagList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">Satori.IApiFlagList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags available to the identity.  <a href=\"interface_satori_1_1_i_api_flag_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiFlagList\" id=\"r_Satori_2EApiFlagList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiFlagList</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiFlagOverride\" id=\"r_Satori_2EIApiFlagOverride\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">Satori.IApiFlagOverride</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Feature flag available to the identity.  <a href=\"interface_satori_1_1_i_api_flag_override.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiFlagOverride\" id=\"r_Satori_2EApiFlagOverride\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiFlagOverride</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiFlagOverrideList\" id=\"r_Satori_2EIApiFlagOverrideList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">Satori.IApiFlagOverrideList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags available to the identity and their value overrides.  <a href=\"interface_satori_1_1_i_api_flag_override_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiFlagOverrideList\" id=\"r_Satori_2EApiFlagOverrideList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiFlagOverrideList</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiFlagOverrideValue\" id=\"r_Satori_2EIApiFlagOverrideValue\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The details of a flag value override.  <a href=\"interface_satori_1_1_i_api_flag_override_value.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiFlagOverrideValue\" id=\"r_Satori_2EApiFlagOverrideValue\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiFlagOverrideValue</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiGetMessageListResponse\" id=\"r_Satori_2EIApiGetMessageListResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A response containing all the messages for an identity.  <a href=\"interface_satori_1_1_i_api_get_message_list_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiGetMessageListResponse\" id=\"r_Satori_2EApiGetMessageListResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiGetMessageListResponse</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiIdentifyRequest\" id=\"r_Satori_2EIApiIdentifyRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">Satori.IApiIdentifyRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Enrich/replace the current session with a new ID.  <a href=\"interface_satori_1_1_i_api_identify_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiIdentifyRequest\" id=\"r_Satori_2EApiIdentifyRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiIdentifyRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiLiveEvent\" id=\"r_Satori_2EIApiLiveEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single live event.  <a href=\"interface_satori_1_1_i_api_live_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiLiveEvent\" id=\"r_Satori_2EApiLiveEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiLiveEvent</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiLiveEventList\" id=\"r_Satori_2EIApiLiveEventList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">Satori.IApiLiveEventList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of Live events.  <a href=\"interface_satori_1_1_i_api_live_event_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiLiveEventList\" id=\"r_Satori_2EApiLiveEventList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiLiveEventList</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiMessage\" id=\"r_Satori_2EIApiMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A scheduled message.  <a href=\"interface_satori_1_1_i_api_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiMessage\" id=\"r_Satori_2EApiMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiMessage</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiProperties\" id=\"r_Satori_2EIApiProperties\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">Satori.IApiProperties</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Properties associated with an identity.  <a href=\"interface_satori_1_1_i_api_properties.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiProperties\" id=\"r_Satori_2EApiProperties\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiProperties</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiSession\" id=\"r_Satori_2EIApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">Satori.IApiSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session.  <a href=\"interface_satori_1_1_i_api_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiSession\" id=\"r_Satori_2EApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiSession</b></td></tr>\n<tr class=\"memitem:Satori_2EIApiUpdatePropertiesRequest\" id=\"r_Satori_2EIApiUpdatePropertiesRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">Satori.IApiUpdatePropertiesRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update Properties associated with this identity.  <a href=\"interface_satori_1_1_i_api_update_properties_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Satori_2EApiUpdatePropertiesRequest\" id=\"r_Satori_2EApiUpdatePropertiesRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiUpdatePropertiesRequest</b></td></tr>\n<tr class=\"memitem:Satori_2EIProtobufAny\" id=\"r_Satori_2EIProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">Satori.IProtobufAny</a></td></tr>\n<tr class=\"memitem:Satori_2EProtobufAny\" id=\"r_Satori_2EProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ProtobufAny</b></td></tr>\n<tr class=\"memitem:Satori_2EIRpcStatus\" id=\"r_Satori_2EIRpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">Satori.IRpcStatus</a></td></tr>\n<tr class=\"memitem:Satori_2ERpcStatus\" id=\"r_Satori_2ERpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.RpcStatus</b></td></tr>\n<tr class=\"memitem:Satori_2EApiClient\" id=\"r_Satori_2EApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> API. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-enum-members\" class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a951af93b9ee547b7c4747566a1b5653f\" id=\"r_a951af93b9ee547b7c4747566a1b5653f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\">Satori.FlagValueChangeReasonType</a> { <a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\">Satori.UNKNOWN</a> = 0\n, <a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\">Satori.FLAG_VARIANT</a> = 1\n, <a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\">Satori.LIVE_EVENT</a> = 2\n, <a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\">Satori.EXPERIMENT</a> = 3\n }</td></tr>\n<tr class=\"memitem:a5b84f4807e2f627294a0a6fee00ab50d\" id=\"r_a5b84f4807e2f627294a0a6fee00ab50d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\">Satori.ApiFlagOverrideType</a> { <br />\n&#160;&#160;<a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\">Satori.FLAG</a> = 0\n, <a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\">Satori.FLAG_VARIANT</a> = 1\n, <a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\">Satori.LIVE_EVENT_FLAG</a> = 2\n, <a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\">Satori.LIVE_EVENT_FLAG_VARIANT</a> = 3\n, <br />\n&#160;&#160;<a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\">Satori.EXPERIMENT_PHASE_VARIANT_FLAG</a> = 4\n<br />\n }</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_api_client_8gen_8cs.html\">ApiClient.gen.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_api_client_8gen_8cs.js",
    "content": "var _satori_2_api_client_8gen_8cs =\n[\n    [ \"Satori.ApiResponseException\", \"class_satori_1_1_api_response_exception.html\", \"class_satori_1_1_api_response_exception\" ],\n    [ \"Satori.IApiUpdateMessageRequest\", \"interface_satori_1_1_i_api_update_message_request.html\", \"interface_satori_1_1_i_api_update_message_request\" ],\n    [ \"Satori.IFlagValueChangeReason\", \"interface_satori_1_1_i_flag_value_change_reason.html\", \"interface_satori_1_1_i_flag_value_change_reason\" ],\n    [ \"Satori.IApiAuthenticateLogoutRequest\", \"interface_satori_1_1_i_api_authenticate_logout_request.html\", \"interface_satori_1_1_i_api_authenticate_logout_request\" ],\n    [ \"Satori.IApiAuthenticateRefreshRequest\", \"interface_satori_1_1_i_api_authenticate_refresh_request.html\", \"interface_satori_1_1_i_api_authenticate_refresh_request\" ],\n    [ \"Satori.IApiAuthenticateRequest\", \"interface_satori_1_1_i_api_authenticate_request.html\", \"interface_satori_1_1_i_api_authenticate_request\" ],\n    [ \"Satori.IApiEvent\", \"interface_satori_1_1_i_api_event.html\", \"interface_satori_1_1_i_api_event\" ],\n    [ \"Satori.IApiEventRequest\", \"interface_satori_1_1_i_api_event_request.html\", \"interface_satori_1_1_i_api_event_request\" ],\n    [ \"Satori.IApiExperiment\", \"interface_satori_1_1_i_api_experiment.html\", \"interface_satori_1_1_i_api_experiment\" ],\n    [ \"Satori.IApiExperimentList\", \"interface_satori_1_1_i_api_experiment_list.html\", \"interface_satori_1_1_i_api_experiment_list\" ],\n    [ \"Satori.IApiFlag\", \"interface_satori_1_1_i_api_flag.html\", \"interface_satori_1_1_i_api_flag\" ],\n    [ \"Satori.IApiFlagList\", \"interface_satori_1_1_i_api_flag_list.html\", \"interface_satori_1_1_i_api_flag_list\" ],\n    [ \"Satori.IApiFlagOverride\", \"interface_satori_1_1_i_api_flag_override.html\", \"interface_satori_1_1_i_api_flag_override\" ],\n    [ \"Satori.IApiFlagOverrideList\", \"interface_satori_1_1_i_api_flag_override_list.html\", \"interface_satori_1_1_i_api_flag_override_list\" ],\n    [ \"Satori.IApiFlagOverrideValue\", \"interface_satori_1_1_i_api_flag_override_value.html\", \"interface_satori_1_1_i_api_flag_override_value\" ],\n    [ \"Satori.IApiGetMessageListResponse\", \"interface_satori_1_1_i_api_get_message_list_response.html\", \"interface_satori_1_1_i_api_get_message_list_response\" ],\n    [ \"Satori.IApiIdentifyRequest\", \"interface_satori_1_1_i_api_identify_request.html\", \"interface_satori_1_1_i_api_identify_request\" ],\n    [ \"Satori.IApiLiveEvent\", \"interface_satori_1_1_i_api_live_event.html\", \"interface_satori_1_1_i_api_live_event\" ],\n    [ \"Satori.IApiLiveEventList\", \"interface_satori_1_1_i_api_live_event_list.html\", \"interface_satori_1_1_i_api_live_event_list\" ],\n    [ \"Satori.IApiMessage\", \"interface_satori_1_1_i_api_message.html\", \"interface_satori_1_1_i_api_message\" ],\n    [ \"Satori.IApiProperties\", \"interface_satori_1_1_i_api_properties.html\", \"interface_satori_1_1_i_api_properties\" ],\n    [ \"Satori.IApiSession\", \"interface_satori_1_1_i_api_session.html\", \"interface_satori_1_1_i_api_session\" ],\n    [ \"Satori.IApiUpdatePropertiesRequest\", \"interface_satori_1_1_i_api_update_properties_request.html\", \"interface_satori_1_1_i_api_update_properties_request\" ],\n    [ \"Satori.IProtobufAny\", \"interface_satori_1_1_i_protobuf_any.html\", \"interface_satori_1_1_i_protobuf_any\" ],\n    [ \"Satori.IRpcStatus\", \"interface_satori_1_1_i_rpc_status.html\", \"interface_satori_1_1_i_rpc_status\" ],\n    [ \"Satori.ApiFlagOverrideType\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\", [\n      [ \"Satori.ApiFlagOverrideType.FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\", null ],\n      [ \"Satori.ApiFlagOverrideType.FLAG_VARIANT\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\", null ],\n      [ \"Satori.ApiFlagOverrideType.LIVE_EVENT_FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\", null ],\n      [ \"Satori.ApiFlagOverrideType.LIVE_EVENT_FLAG_VARIANT\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\", null ],\n      [ \"Satori.ApiFlagOverrideType.EXPERIMENT_PHASE_VARIANT_FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\", null ]\n    ] ],\n    [ \"Satori.FlagValueChangeReasonType\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\", [\n      [ \"Satori.FlagValueChangeReasonType.UNKNOWN\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\", null ],\n      [ \"Satori.FlagValueChangeReasonType.FLAG_VARIANT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\", null ],\n      [ \"Satori.FlagValueChangeReasonType.LIVE_EVENT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\", null ],\n      [ \"Satori.FlagValueChangeReasonType.EXPERIMENT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\", null ]\n    ] ]\n];"
  },
  {
    "path": "docs/html/_satori_2_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Client.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_client_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Client.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EClient\" id=\"r_Satori_2EClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_client_8cs.html\">Client.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_client_8cs.js",
    "content": "var _satori_2_client_8cs =\n[\n    [ \"Satori.Client\", \"class_satori_1_1_client.html\", \"class_satori_1_1_client\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_g_zip_http_client_handler_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: GZipHttpClientHandler.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_g_zip_http_client_handler_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">GZipHttpClientHandler.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EGZipHttpClientHandler\" id=\"r_Satori_2EGZipHttpClientHandler\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.GZipHttpClientHandler</b></td></tr>\n<tr class=\"memitem:Satori_2EGZipContent\" id=\"r_Satori_2EGZipContent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.GZipContent</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_g_zip_http_client_handler_8cs.html\">GZipHttpClientHandler.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_http_request_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: HttpRequestAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_http_request_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">HttpRequestAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EHttpRequestAdapter\" id=\"r_Satori_2EHttpRequestAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">HTTP Request adapter which uses the .NET HttpClient to send requests.  <a href=\"class_satori_1_1_http_request_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_http_request_adapter_8cs.html\">HttpRequestAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_http_request_adapter_8cs.js",
    "content": "var _satori_2_http_request_adapter_8cs =\n[\n    [ \"Satori.HttpRequestAdapter\", \"class_satori_1_1_http_request_adapter.html\", \"class_satori_1_1_http_request_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_i_client_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IClient.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_i_client_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IClient.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EIClient\" id=\"r_Satori_2EIClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  <a href=\"interface_satori_1_1_i_client.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_i_client_8cs.html\">IClient.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_i_client_8cs.js",
    "content": "var _satori_2_i_client_8cs =\n[\n    [ \"Satori.IClient\", \"interface_satori_1_1_i_client.html\", \"interface_satori_1_1_i_client\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_i_http_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IHttpAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_i_http_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EIHttpAdapter\" id=\"r_Satori_2EIHttpAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">Satori.IHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements the HTTP protocol.  <a href=\"interface_satori_1_1_i_http_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_i_http_adapter_8cs.html\">IHttpAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_i_http_adapter_8cs.js",
    "content": "var _satori_2_i_http_adapter_8cs =\n[\n    [ \"Satori.IHttpAdapter\", \"interface_satori_1_1_i_http_adapter.html\", \"interface_satori_1_1_i_http_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_i_http_adapter_util_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: IHttpAdapterUtil.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_i_http_adapter_util_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">IHttpAdapterUtil.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EHttpAdapterUtil\" id=\"r_Satori_2EHttpAdapterUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.HttpAdapterUtil</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Utility methods for the <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">interface. NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile them properly to WebGL. </a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_i_http_adapter_util_8cs.html\">IHttpAdapterUtil.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_i_logger_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ILogger.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_i_logger_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ILogger.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EILogger\" id=\"r_Satori_2EILogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A simple logger to write log messages to an output sink.  <a href=\"interface_satori_1_1_i_logger.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_i_logger_8cs.html\">ILogger.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_i_logger_8cs.js",
    "content": "var _satori_2_i_logger_8cs =\n[\n    [ \"Satori.ILogger\", \"interface_satori_1_1_i_logger.html\", \"interface_satori_1_1_i_logger\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_i_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ISession.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_i_session_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ISession.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EISession\" id=\"r_Satori_2EISession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  <a href=\"interface_satori_1_1_i_session.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_i_session_8cs.html\">ISession.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_i_session_8cs.js",
    "content": "var _satori_2_i_session_8cs =\n[\n    [ \"Satori.ISession\", \"interface_satori_1_1_i_session.html\", \"interface_satori_1_1_i_session\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_preserve_attribute_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: PreserveAttribute.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_preserve_attribute_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">PreserveAttribute.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2EPreserveAttribute\" id=\"r_Satori_2EPreserveAttribute\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.PreserveAttribute</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.xml file because the Unity Package Manager does not recognize link.xml files inside Unity packages. <a href=\"https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\">https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html</a>. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_preserve_attribute_8cs.html\">PreserveAttribute.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Retry.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Retry.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ERetry\" id=\"r_Satori_2ERetry\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_retry.html\">Satori.Retry</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a single retry attempt.  <a href=\"class_satori_1_1_retry.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_8cs.html\">Retry.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_8cs.js",
    "content": "var _satori_2_retry_8cs =\n[\n    [ \"Satori.Retry\", \"class_satori_1_1_retry.html\", \"class_satori_1_1_retry\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_retry_configuration_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryConfiguration.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_configuration_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryConfiguration.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ERetryConfiguration\" id=\"r_Satori_2ERetryConfiguration\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A configuration for controlling retriable requests.  <a href=\"class_satori_1_1_retry_configuration.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_configuration_8cs.html\">RetryConfiguration.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_configuration_8cs.js",
    "content": "var _satori_2_retry_configuration_8cs =\n[\n    [ \"Satori.RetryConfiguration\", \"class_satori_1_1_retry_configuration.html\", \"class_satori_1_1_retry_configuration\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_retry_history_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryHistory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_history_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryHistory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ERetryHistory\" id=\"r_Satori_2ERetryHistory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.RetryHistory</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_history_8cs.html\">RetryHistory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_invoker_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryInvoker.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_invoker_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryInvoker.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ERetryInvoker\" id=\"r_Satori_2ERetryInvoker\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.RetryInvoker</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Invokes requests with retry and exponential backoff. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_invoker_8cs.html\">RetryInvoker.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_jitter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryJitter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_jitter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryJitter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ERetryJitter\" id=\"r_Satori_2ERetryJitter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.RetryJitter</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of <a class=\"el\" href=\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\" title=\"The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\">Jitter</a> algorithms. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a8dc55a408f51bea7a34417ba2e8656a7\" id=\"r_a8dc55a408f51bea7a34417ba2e8656a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\">Satori.Jitter</a> (IList&lt; <a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> &gt; retryHistory, int retryDelay, Random random)</td></tr>\n<tr class=\"memdesc:a8dc55a408f51bea7a34417ba2e8656a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_jitter_8cs.html\">RetryJitter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_jitter_8cs.js",
    "content": "var _satori_2_retry_jitter_8cs =\n[\n    [ \"Satori.Jitter\", \"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\", null ]\n];"
  },
  {
    "path": "docs/html/_satori_2_retry_listener_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: RetryListener.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_retry_listener_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">RetryListener.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:afe3a987ac265a5690c1cdd971c6cb099\" id=\"r_afe3a987ac265a5690c1cdd971c6cb099\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\">Satori.RetryListener</a> (int numRetry, <a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> retry)</td></tr>\n<tr class=\"memdesc:afe3a987ac265a5690c1cdd971c6cb099\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Listens to retry events for a particular request.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_retry_listener_8cs.html\">RetryListener.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_retry_listener_8cs.js",
    "content": "var _satori_2_retry_listener_8cs =\n[\n    [ \"Satori.RetryListener\", \"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\", null ]\n];"
  },
  {
    "path": "docs/html/_satori_2_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Session.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_session_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Session.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ESession\" id=\"r_Satori_2ESession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_session_8cs.html\">Session.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_session_8cs.js",
    "content": "var _satori_2_session_8cs =\n[\n    [ \"Satori.Session\", \"class_satori_1_1_session.html\", \"class_satori_1_1_session\" ]\n];"
  },
  {
    "path": "docs/html/_satori_2_tiny_json_2_json_parser_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: JsonParser.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_tiny_json_2_json_parser_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">JsonParser.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ETinyJson_2EJsonParser\" id=\"r_Satori_2ETinyJson_2EJsonParser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.TinyJson.JsonParser</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n<tr class=\"memitem:Satori_2ETinyJson\" id=\"r_Satori_2ETinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori_1_1_tiny_json.html\">Satori.TinyJson</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\">TinyJson</a></li><li class=\"navelem\"><a href=\"_satori_2_tiny_json_2_json_parser_8cs.html\">JsonParser.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_tiny_json_2_json_writer_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: JsonWriter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_tiny_json_2_json_writer_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">JsonWriter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Satori_2ETinyJson_2EJsonWriter\" id=\"r_Satori_2ETinyJson_2EJsonWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Satori.TinyJson.JsonWriter</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n<tr class=\"memitem:Satori_2ETinyJson\" id=\"r_Satori_2ETinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori_1_1_tiny_json.html\">Satori.TinyJson</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\">TinyJson</a></li><li class=\"navelem\"><a href=\"_satori_2_tiny_json_2_json_writer_8cs.html\">JsonWriter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_transient_exception_delegate_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: TransientExceptionDelegate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2_transient_exception_delegate_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">TransientExceptionDelegate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Satori\" id=\"r_Satori\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a511888108671df4cff6cd4bbb1ff498f\" id=\"r_a511888108671df4cff6cd4bbb1ff498f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\">Satori.TransientExceptionDelegate</a> (Exception e)</td></tr>\n<tr class=\"memdesc:a511888108671df4cff6cd4bbb1ff498f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  <br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"_satori_2_transient_exception_delegate_8cs.html\">TransientExceptionDelegate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2_transient_exception_delegate_8cs.js",
    "content": "var _satori_2_transient_exception_delegate_8cs =\n[\n    [ \"Satori.TransientExceptionDelegate\", \"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\", null ]\n];"
  },
  {
    "path": "docs/html/_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_2024f50217af71df819eb31c540cc957.html\">net46</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETFramework,Version=v4.6.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_75202c243db9baf385df0aac94b0acc0.html\">net46</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.0.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_7a595d23279f99f2e5346245557e8271.html\">netstandard2.0</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: .NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">.NETStandard,Version=v2.1.AssemblyAttributes.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\">netstandard2.1</a></li><li class=\"navelem\"><a href=\"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_sec_web_socket_key_missing_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: SecWebSocketKeyMissingException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_sec_web_socket_key_missing_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">SecWebSocketKeyMissingException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2ESecWebSocketKeyMissingException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2ESecWebSocketKeyMissingException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_sec_web_socket_key_missing_exception_8cs.html\">SecWebSocketKeyMissingException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_sec_web_socket_key_missing_exception_8cs.js",
    "content": "var _sec_web_socket_key_missing_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception\" ]\n];"
  },
  {
    "path": "docs/html/_server_listener_socket_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: ServerListenerSocketException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_server_listener_socket_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">ServerListenerSocketException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EServerListenerSocketException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EServerListenerSocketException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_server_listener_socket_exception_8cs.html\">ServerListenerSocketException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_server_listener_socket_exception_8cs.js",
    "content": "var _server_listener_socket_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception\" ]\n];"
  },
  {
    "path": "docs/html/_session_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Session.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_session_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#namespaces\">Namespaces</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Session.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_session_8cs.html\">Session.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_session_8cs.js",
    "content": "var _session_8cs =\n[\n    [ \"Nakama.Session\", \"class_nakama_1_1_session.html\", \"class_nakama_1_1_session\" ]\n];"
  },
  {
    "path": "docs/html/_socket_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Socket.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_socket_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Socket.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ESocket\" id=\"r_Nakama_2ESocket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API.  <a href=\"class_nakama_1_1_socket.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_socket_8cs.html\">Socket.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_socket_8cs.js",
    "content": "var _socket_8cs =\n[\n    [ \"Nakama.Socket\", \"class_nakama_1_1_socket.html\", \"class_nakama_1_1_socket\" ]\n];"
  },
  {
    "path": "docs/html/_status_follow_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: StatusFollowMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_status_follow_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">StatusFollowMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EStatusFollowMessage\" id=\"r_Nakama_2EStatusFollowMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StatusFollowMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Follow one or more other users for status updates. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_status_follow_message_8cs.html\">StatusFollowMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_status_unfollow_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: StatusUnfollowMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_status_unfollow_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">StatusUnfollowMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EStatusUnfollowMessage\" id=\"r_Nakama_2EStatusUnfollowMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StatusUnfollowMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users on the server. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_status_unfollow_message_8cs.html\">StatusUnfollowMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_status_update_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: StatusUpdateMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_status_update_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">StatusUpdateMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EStatusUpdateMessage\" id=\"r_Nakama_2EStatusUpdateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.StatusUpdateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status of the current user. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_status_update_message_8cs.html\">StatusUpdateMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_storage_object_id_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: StorageObjectId.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_storage_object_id_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">StorageObjectId.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EStorageObjectId\" id=\"r_Nakama_2EStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An identifier for a storage object.  <a href=\"class_nakama_1_1_storage_object_id.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_storage_object_id_8cs.html\">StorageObjectId.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_storage_object_id_8cs.js",
    "content": "var _storage_object_id_8cs =\n[\n    [ \"Nakama.StorageObjectId\", \"class_nakama_1_1_storage_object_id.html\", \"class_nakama_1_1_storage_object_id\" ]\n];"
  },
  {
    "path": "docs/html/_transient_exception_delegate_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: TransientExceptionDelegate.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.5.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('_transient_exception_delegate_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#func-members\">Functions</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">TransientExceptionDelegate.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a016772f008c1c294bf609c6ece102445\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\">Nakama.TransientExceptionDelegate</a> (Exception e)</td></tr>\n<tr class=\"memdesc:a016772f008c1c294bf609c6ece102445\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.   <a href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\">More...</a><br /></td></tr>\n<tr class=\"separator:a016772f008c1c294bf609c6ece102445\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"_transient_exception_delegate_8cs.html\">TransientExceptionDelegate.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_transient_exception_delegate_8cs.js",
    "content": "var _transient_exception_delegate_8cs =\n[\n    [ \"TransientExceptionDelegate\", \"_transient_exception_delegate_8cs.html#a016772f008c1c294bf609c6ece102445\", null ]\n];"
  },
  {
    "path": "docs/html/_web_socket_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EWebSocketAdapter\" id=\"r_Nakama_2EWebSocketAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"class_nakama_1_1_web_socket_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_web_socket_adapter_8cs.html\">WebSocketAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_adapter_8cs.js",
    "content": "var _web_socket_adapter_8cs =\n[\n    [ \"Nakama.WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html\", \"class_nakama_1_1_web_socket_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_buffer_overflow_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketBufferOverflowException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_buffer_overflow_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketBufferOverflowException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketBufferOverflowException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketBufferOverflowException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_web_socket_buffer_overflow_exception_8cs.html\">WebSocketBufferOverflowException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_buffer_overflow_exception_8cs.js",
    "content": "var _web_socket_buffer_overflow_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_client_factory_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketClientFactory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_client_factory_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketClientFactory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EWebSocketClientFactory\" id=\"r_Nakama_2ENinja_2EWebSockets_2EWebSocketClientFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket client factory used to open web socket client connections.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_web_socket_client_factory_8cs.html\">WebSocketClientFactory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_client_factory_8cs.js",
    "content": "var _web_socket_client_factory_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_client_options_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketClientOptions.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_client_options_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketClientOptions.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EWebSocketClientOptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EWebSocketClientOptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_web_socket_client_options_8cs.html\">WebSocketClientOptions.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_client_options_8cs.js",
    "content": "var _web_socket_client_options_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.WebSocketClientOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_error_message_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketErrorMessage.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_error_message_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketErrorMessage.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EWebSocketErrorMessage\" id=\"r_Nakama_2EWebSocketErrorMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WebSocketErrorMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A logical error received on the WebSocket connection. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_web_socket_error_message_8cs.html\">WebSocketErrorMessage.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_frame_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketFrame.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_frame_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketFrame.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrame\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketFrame</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_frame_8cs.html\">WebSocketFrame.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_frame_common_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketFrameCommon.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_frame_common_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketFrameCommon.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameCommon\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameCommon\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketFrameCommon</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_frame_common_8cs.html\">WebSocketFrameCommon.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_frame_reader_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketFrameReader.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_frame_reader_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketFrameReader.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameReader\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameReader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketFrameReader</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads a WebSocket frame see <a href=\"http://tools.ietf.org/html/rfc6455\">http://tools.ietf.org/html/rfc6455</a> for specification. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_frame_reader_8cs.html\">WebSocketFrameReader.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_frame_writer_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketFrameWriter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_frame_writer_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketFrameWriter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameWriter\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketFrameWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketFrameWriter</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_frame_writer_8cs.html\">WebSocketFrameWriter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_handshake_failed_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketHandshakeFailedException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_handshake_failed_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketHandshakeFailedException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketHandshakeFailedException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketHandshakeFailedException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_web_socket_handshake_failed_exception_8cs.html\">WebSocketHandshakeFailedException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_handshake_failed_exception_8cs.js",
    "content": "var _web_socket_handshake_failed_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_http_context_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketHttpContext.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_http_context_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketHttpContext.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EWebSocketHttpContext\" id=\"r_Nakama_2ENinja_2EWebSockets_2EWebSocketHttpContext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The WebSocket HTTP Context used to initiate a WebSocket handshake.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_web_socket_http_context_8cs.html\">WebSocketHttpContext.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_http_context_8cs.js",
    "content": "var _web_socket_http_context_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.WebSocketHttpContext\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_implementation_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketImplementation.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_implementation_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketImplementation.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketImplementation\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketImplementation\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketImplementation</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Main implementation of the WebSocket abstract class. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_implementation_8cs.html\">WebSocketImplementation.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_message_envelope_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketMessageEnvelope.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_message_envelope_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketMessageEnvelope.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EWebSocketMessageEnvelope\" id=\"r_Nakama_2EWebSocketMessageEnvelope\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.WebSocketMessageEnvelope</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An envelope for messages received or sent on a <code>WebSocket</code>. <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_web_socket_message_envelope_8cs.html\">WebSocketMessageEnvelope.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_op_code_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketOpCode.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_op_code_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketOpCode.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_op_code_8cs.html\">WebSocketOpCode.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_read_cursor_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketReadCursor.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_read_cursor_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketReadCursor.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketReadCursor\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal_2EWebSocketReadCursor\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nakama.Ninja.WebSockets.Internal.WebSocketReadCursor</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EInternal\" id=\"r_Nakama_2ENinja_2EWebSockets_2EInternal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Nakama.Ninja.WebSockets.Internal</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li><li class=\"navelem\"><a href=\"_web_socket_read_cursor_8cs.html\">WebSocketReadCursor.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_server_factory_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketServerFactory.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_server_factory_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketServerFactory.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EWebSocketServerFactory\" id=\"r_Nakama_2ENinja_2EWebSockets_2EWebSocketServerFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket server factory used to open web socket server connections.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_web_socket_server_factory_8cs.html\">WebSocketServerFactory.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_server_factory_8cs.js",
    "content": "var _web_socket_server_factory_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_server_options_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketServerOptions.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_server_options_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketServerOptions.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EWebSocketServerOptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EWebSocketServerOptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Server WebSocket init options.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"_web_socket_server_options_8cs.html\">WebSocketServerOptions.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_server_options_8cs.js",
    "content": "var _web_socket_server_options_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.WebSocketServerOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_stdlib_adapter_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketStdlibAdapter.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_stdlib_adapter_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketStdlibAdapter.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EWebSocketStdlibAdapter\" id=\"r_Nakama_2EWebSocketStdlibAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_web_socket_stdlib_adapter_8cs.html\">WebSocketStdlibAdapter.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_stdlib_adapter_8cs.js",
    "content": "var _web_socket_stdlib_adapter_8cs =\n[\n    [ \"Nakama.WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html\", \"class_nakama_1_1_web_socket_stdlib_adapter\" ]\n];"
  },
  {
    "path": "docs/html/_web_socket_version_not_supported_exception_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WebSocketVersionNotSupportedException.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_web_socket_version_not_supported_exception_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WebSocketVersionNotSupportedException.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketVersionNotSupportedException\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions_2EWebSocketVersionNotSupportedException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja\" id=\"r_Nakama_2ENinja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Nakama.Ninja</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets\" id=\"r_Nakama_2ENinja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:Nakama_2ENinja_2EWebSockets_2EExceptions\" id=\"r_Nakama_2ENinja_2EWebSockets_2EExceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"_web_socket_version_not_supported_exception_8cs.html\">WebSocketVersionNotSupportedException.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_web_socket_version_not_supported_exception_8cs.js",
    "content": "var _web_socket_version_not_supported_exception_8cs =\n[\n    [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception\" ]\n];"
  },
  {
    "path": "docs/html/_write_storage_object_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: WriteStorageObject.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('_write_storage_object_8cs.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">WriteStorageObject.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:Nakama_2EWriteStorageObject\" id=\"r_Nakama_2EWriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Nakama\" id=\"r_Nakama\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"_write_storage_object_8cs.html\">WriteStorageObject.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/_write_storage_object_8cs.js",
    "content": "var _write_storage_object_8cs =\n[\n    [ \"Nakama.WriteStorageObject\", \"class_nakama_1_1_write_storage_object.html\", \"class_nakama_1_1_write_storage_object\" ]\n];"
  },
  {
    "path": "docs/html/annotated.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('annotated.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Class List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:dynsection.toggleLevel(1);\">1</span><span onclick=\"javascript:dynsection.toggleLevel(2);\">2</span><span onclick=\"javascript:dynsection.toggleLevel(3);\">3</span><span onclick=\"javascript:dynsection.toggleLevel(4);\">4</span><span onclick=\"javascript:dynsection.toggleLevel(5);\">5</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama.html\" target=\"_self\">Nakama</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_0_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_console.html\" target=\"_self\">Console</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\" target=\"_self\">ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_0_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\" target=\"_self\">IApiAccountDevice</a></td><td class=\"desc\">Send a device to the server. Used with authenticate/link/unlink and user </td></tr>\n<tr id=\"row_0_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\" target=\"_self\">IApiChannelMessage</a></td><td class=\"desc\">A message sent on a channel </td></tr>\n<tr id=\"row_0_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\" target=\"_self\">IApiFriend</a></td><td class=\"desc\">A friend of a user </td></tr>\n<tr id=\"row_0_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\" target=\"_self\">IApiFriendList</a></td><td class=\"desc\">A collection of zero or more friends of the user </td></tr>\n<tr id=\"row_0_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\" target=\"_self\">IApiGroup</a></td><td class=\"desc\">A group in the server </td></tr>\n<tr id=\"row_0_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\" target=\"_self\">IApiLeaderboardRecord</a></td><td class=\"desc\">Represents a complete leaderboard record with all scores and associated metadata </td></tr>\n<tr id=\"row_0_0_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\" target=\"_self\">IApiNotification</a></td><td class=\"desc\">A notification in the server </td></tr>\n<tr id=\"row_0_0_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\" target=\"_self\">IApiStorageObject</a></td><td class=\"desc\">An object within the storage engine </td></tr>\n<tr id=\"row_0_0_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\" target=\"_self\">IApiStorageObjectAck</a></td><td class=\"desc\">A storage acknowledgement </td></tr>\n<tr id=\"row_0_0_10_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\" target=\"_self\">IApiUser</a></td><td class=\"desc\">A user in the server </td></tr>\n<tr id=\"row_0_0_11_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\" target=\"_self\">IApiUserGroupList</a></td><td class=\"desc\">A list of groups belonging to a user, along with the user's role in each group </td></tr>\n<tr id=\"row_0_0_12_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\" target=\"_self\">IConfigWarning</a></td><td class=\"desc\">A warning for a configuration field </td></tr>\n<tr id=\"row_0_0_13_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\" target=\"_self\">IConsoleAccountExport</a></td><td class=\"desc\">An export of all information stored for a user account </td></tr>\n<tr id=\"row_0_0_14_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\" target=\"_self\">IConsoleAuthenticateRequest</a></td><td class=\"desc\">Authenticate a console user with username and password </td></tr>\n<tr id=\"row_0_0_15_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\" target=\"_self\">IConsoleConfig</a></td><td class=\"desc\">The current server configuration and any associated warnings </td></tr>\n<tr id=\"row_0_0_16_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\" target=\"_self\">IConsoleConsoleSession</a></td><td class=\"desc\">A console user session </td></tr>\n<tr id=\"row_0_0_17_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\" target=\"_self\">IConsoleStatusList</a></td><td class=\"desc\">List of nodes and their stats </td></tr>\n<tr id=\"row_0_0_18_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\" target=\"_self\">IConsoleStorageList</a></td><td class=\"desc\">List of storage objects </td></tr>\n<tr id=\"row_0_0_19_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\" target=\"_self\">IConsoleUnlinkDeviceRequest</a></td><td class=\"desc\">Unlink a particular device ID from a user's account </td></tr>\n<tr id=\"row_0_0_20_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\" target=\"_self\">IConsoleUserList</a></td><td class=\"desc\">A list of users </td></tr>\n<tr id=\"row_0_0_21_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\" target=\"_self\">IConsoleWalletLedger</a></td><td class=\"desc\">An individual update to a user's wallet </td></tr>\n<tr id=\"row_0_0_22_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\" target=\"_self\">IConsoleWalletLedgerList</a></td><td class=\"desc\">List of wallet ledger items for a particular user </td></tr>\n<tr id=\"row_0_0_23_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\" target=\"_self\">IConsoleWriteStorageObjectRequest</a></td><td class=\"desc\">Write a new storage object or update an existing one </td></tr>\n<tr id=\"row_0_0_24_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\" target=\"_self\">INakamaapiAccount</a></td><td class=\"desc\">A user with additional account details. Always the current user </td></tr>\n<tr id=\"row_0_0_25_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\" target=\"_self\">INakamaconsoleAccount</a></td><td class=\"desc\">Account information </td></tr>\n<tr id=\"row_0_0_26_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\" target=\"_self\">INakamaconsoleUpdateAccountRequest</a></td><td class=\"desc\">Update user account information </td></tr>\n<tr id=\"row_0_0_27_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\" target=\"_self\">IProtobufAny</a></td><td class=\"desc\"><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" } </td></tr>\n<tr id=\"row_0_0_28_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\" target=\"_self\">IRuntimeError</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_29_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\" target=\"_self\">IStatusListStatus</a></td><td class=\"desc\">The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node </td></tr>\n<tr id=\"row_0_0_30_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\" target=\"_self\">IUserGroupListUserGroup</a></td><td class=\"desc\">A single group-role pair </td></tr>\n<tr id=\"row_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\" target=\"_self\">Ninja</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_0_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\" target=\"_self\">WebSockets</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_0_0_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\" target=\"_self\">Exceptions</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\" target=\"_self\">EntityTooLargeException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\" target=\"_self\">InvalidHttpResponseCodeException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\" target=\"_self\">SecWebSocketKeyMissingException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\" target=\"_self\">ServerListenerSocketException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\" target=\"_self\">WebSocketBufferOverflowException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\" target=\"_self\">WebSocketHandshakeFailedException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\" target=\"_self\">WebSocketVersionNotSupportedException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_0_1_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" target=\"_self\">BufferPool</a></td><td class=\"desc\">This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes </td></tr>\n<tr id=\"row_0_1_0_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\" target=\"_self\">PublicBufferMemoryStream</a></td><td class=\"desc\">This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe) </td></tr>\n<tr id=\"row_0_1_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\" target=\"_self\">HttpHelper</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\" target=\"_self\">IBufferPool</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\" target=\"_self\">IPingPongManager</a></td><td class=\"desc\">Ping Pong Manager used to facilitate ping pong WebSocket messages </td></tr>\n<tr id=\"row_0_1_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\" target=\"_self\">IWebSocketClientFactory</a></td><td class=\"desc\">Web socket client factory used to open web socket client connections </td></tr>\n<tr id=\"row_0_1_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\" target=\"_self\">IWebSocketServerFactory</a></td><td class=\"desc\">Web socket server factory used to open web socket server connections </td></tr>\n<tr id=\"row_0_1_0_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" target=\"_self\">PingPongManager</a></td><td class=\"desc\">Ping Pong Manager used to facilitate ping pong WebSocket messages </td></tr>\n<tr id=\"row_0_1_0_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\" target=\"_self\">PongEventArgs</a></td><td class=\"desc\">Pong EventArgs </td></tr>\n<tr id=\"row_0_1_0_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" target=\"_self\">WebSocketClientFactory</a></td><td class=\"desc\">Web socket client factory used to open web socket client connections </td></tr>\n<tr id=\"row_0_1_0_10_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\" target=\"_self\">WebSocketClientOptions</a></td><td class=\"desc\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options </td></tr>\n<tr id=\"row_0_1_0_11_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" target=\"_self\">WebSocketHttpContext</a></td><td class=\"desc\">The WebSocket HTTP Context used to initiate a WebSocket handshake </td></tr>\n<tr id=\"row_0_1_0_12_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" target=\"_self\">WebSocketServerFactory</a></td><td class=\"desc\">Web socket server factory used to open web socket server connections </td></tr>\n<tr id=\"row_0_1_0_13_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\" target=\"_self\">WebSocketServerOptions</a></td><td class=\"desc\">Server WebSocket init options </td></tr>\n<tr id=\"row_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\" target=\"_self\">ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_client.html\" target=\"_self\">Client</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\" target=\"_self\">HttpRequestAdapter</a></td><td class=\"desc\">HTTP Request adapter which uses the .NET HttpClient to send requests </td></tr>\n<tr id=\"row_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\" target=\"_self\">IApiAccount</a></td><td class=\"desc\">A user with additional account details. Always the current user </td></tr>\n<tr id=\"row_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\" target=\"_self\">IApiAccountApple</a></td><td class=\"desc\">Send a Apple Sign In token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\" target=\"_self\">IApiAccountCustom</a></td><td class=\"desc\">Send a custom ID to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\" target=\"_self\">IApiAccountDevice</a></td><td class=\"desc\">Send a device to the server. Used with authenticate/link/unlink and user </td></tr>\n<tr id=\"row_0_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\" target=\"_self\">IApiAccountEmail</a></td><td class=\"desc\">Send an email with password to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_10_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\" target=\"_self\">IApiAccountFacebook</a></td><td class=\"desc\">Send a Facebook token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_11_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\" target=\"_self\">IApiAccountFacebookInstantGame</a></td><td class=\"desc\">Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_12_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\" target=\"_self\">IApiAccountGameCenter</a></td><td class=\"desc\">Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a> </td></tr>\n<tr id=\"row_0_13_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\" target=\"_self\">IApiAccountGoogle</a></td><td class=\"desc\">Send a Google token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_14_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\" target=\"_self\">IApiAccountSteam</a></td><td class=\"desc\">Send a Steam token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_0_15_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\" target=\"_self\">IApiChannelMessage</a></td><td class=\"desc\">A message sent on a channel </td></tr>\n<tr id=\"row_0_16_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\" target=\"_self\">IApiChannelMessageList</a></td><td class=\"desc\">A list of channel messages, usually a result of a list operation </td></tr>\n<tr id=\"row_0_17_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\" target=\"_self\">IApiCreateGroupRequest</a></td><td class=\"desc\">Create a group with the current user as owner </td></tr>\n<tr id=\"row_0_18_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\" target=\"_self\">IApiDeleteStorageObjectId</a></td><td class=\"desc\">Storage objects to delete </td></tr>\n<tr id=\"row_0_19_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\" target=\"_self\">IApiDeleteStorageObjectsRequest</a></td><td class=\"desc\">Batch delete storage objects </td></tr>\n<tr id=\"row_0_20_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\" target=\"_self\">IApiEvent</a></td><td class=\"desc\">Represents an event to be passed through the server to registered event handlers </td></tr>\n<tr id=\"row_0_21_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\" target=\"_self\">IApiFriend</a></td><td class=\"desc\">A friend of a user </td></tr>\n<tr id=\"row_0_22_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\" target=\"_self\">IApiFriendList</a></td><td class=\"desc\">A collection of zero or more friends of the user </td></tr>\n<tr id=\"row_0_23_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\" target=\"_self\">IApiFriendsOfFriendsList</a></td><td class=\"desc\">A List of friends of friends </td></tr>\n<tr id=\"row_0_24_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\" target=\"_self\">IApiGroup</a></td><td class=\"desc\">A group in the server </td></tr>\n<tr id=\"row_0_25_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\" target=\"_self\">IApiGroupList</a></td><td class=\"desc\">One or more groups returned from a listing operation </td></tr>\n<tr id=\"row_0_26_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\" target=\"_self\">IApiGroupUserList</a></td><td class=\"desc\">A list of users belonging to a group, along with their role </td></tr>\n<tr id=\"row_0_27_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\" target=\"_self\">IApiLeaderboardRecord</a></td><td class=\"desc\">Represents a complete leaderboard record with all scores and associated metadata </td></tr>\n<tr id=\"row_0_28_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\" target=\"_self\">IApiLeaderboardRecordList</a></td><td class=\"desc\">A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records </td></tr>\n<tr id=\"row_0_29_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\" target=\"_self\">IApiLinkSteamRequest</a></td><td class=\"desc\">Link Steam to the current user's account </td></tr>\n<tr id=\"row_0_30_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\" target=\"_self\">IApiListSubscriptionsRequest</a></td><td class=\"desc\">List user subscriptions </td></tr>\n<tr id=\"row_0_31_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\" target=\"_self\">IApiMatch</a></td><td class=\"desc\">Represents a realtime match </td></tr>\n<tr id=\"row_0_32_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\" target=\"_self\">IApiMatchList</a></td><td class=\"desc\">A list of realtime matches </td></tr>\n<tr id=\"row_0_33_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\" target=\"_self\">IApiMatchmakerCompletionStats</a></td><td class=\"desc\">Matchmaker ticket completion stats </td></tr>\n<tr id=\"row_0_34_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\" target=\"_self\">IApiMatchmakerStats</a></td><td class=\"desc\">Matchmaker stats </td></tr>\n<tr id=\"row_0_35_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\" target=\"_self\">IApiNotification</a></td><td class=\"desc\">A notification in the server </td></tr>\n<tr id=\"row_0_36_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\" target=\"_self\">IApiNotificationList</a></td><td class=\"desc\">A collection of zero or more notifications </td></tr>\n<tr id=\"row_0_37_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\" target=\"_self\">IApiParty</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_0_38_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\" target=\"_self\">IApiPartyList</a></td><td class=\"desc\">A list of realtime matches </td></tr>\n<tr id=\"row_0_39_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\" target=\"_self\">IApiReadStorageObjectId</a></td><td class=\"desc\">Storage objects to get </td></tr>\n<tr id=\"row_0_40_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\" target=\"_self\">IApiReadStorageObjectsRequest</a></td><td class=\"desc\">Batch get storage objects </td></tr>\n<tr id=\"row_0_41_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\" target=\"_self\">IApiRpc</a></td><td class=\"desc\">Execute an Lua function on the server </td></tr>\n<tr id=\"row_0_42_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\" target=\"_self\">IApiSession</a></td><td class=\"desc\">A user's session used to authenticate messages </td></tr>\n<tr id=\"row_0_43_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\" target=\"_self\">IApiSessionLogoutRequest</a></td><td class=\"desc\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user </td></tr>\n<tr id=\"row_0_44_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\" target=\"_self\">IApiSessionRefreshRequest</a></td><td class=\"desc\">Authenticate against the server with a refresh token </td></tr>\n<tr id=\"row_0_45_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\" target=\"_self\">IApiStorageObject</a></td><td class=\"desc\">An object within the storage engine </td></tr>\n<tr id=\"row_0_46_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\" target=\"_self\">IApiStorageObjectAck</a></td><td class=\"desc\">A storage acknowledgement </td></tr>\n<tr id=\"row_0_47_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\" target=\"_self\">IApiStorageObjectAcks</a></td><td class=\"desc\">Batch of acknowledgements for the storage object write </td></tr>\n<tr id=\"row_0_48_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\" target=\"_self\">IApiStorageObjectList</a></td><td class=\"desc\">List of storage objects </td></tr>\n<tr id=\"row_0_49_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\" target=\"_self\">IApiStorageObjects</a></td><td class=\"desc\">Batch of storage objects </td></tr>\n<tr id=\"row_0_50_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\" target=\"_self\">IApiSubscriptionList</a></td><td class=\"desc\">A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_0_51_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\" target=\"_self\">IApiTournament</a></td><td class=\"desc\">A tournament on the server </td></tr>\n<tr id=\"row_0_52_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\" target=\"_self\">IApiTournamentList</a></td><td class=\"desc\">A list of tournaments </td></tr>\n<tr id=\"row_0_53_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\" target=\"_self\">IApiTournamentRecordList</a></td><td class=\"desc\">A set of tournament records which may be part of a tournament records page or a batch of individual records </td></tr>\n<tr id=\"row_0_54_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\" target=\"_self\">IApiUpdateAccountRequest</a></td><td class=\"desc\">Update a user's account details </td></tr>\n<tr id=\"row_0_55_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\" target=\"_self\">IApiUpdateGroupRequest</a></td><td class=\"desc\">Update fields in a given group </td></tr>\n<tr id=\"row_0_56_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\" target=\"_self\">IApiUser</a></td><td class=\"desc\">A user in the server </td></tr>\n<tr id=\"row_0_57_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\" target=\"_self\">IApiUserGroupList</a></td><td class=\"desc\">A list of groups belonging to a user, along with the user's role in each group </td></tr>\n<tr id=\"row_0_58_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\" target=\"_self\">IApiUsers</a></td><td class=\"desc\">A collection of zero or more users </td></tr>\n<tr id=\"row_0_59_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\" target=\"_self\">IApiValidatedPurchase</a></td><td class=\"desc\">Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_0_60_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\" target=\"_self\">IApiValidatedSubscription</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_61_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\" target=\"_self\">IApiValidatePurchaseAppleRequest</a></td><td class=\"desc\">Apple IAP Purchases validation request </td></tr>\n<tr id=\"row_0_62_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\" target=\"_self\">IApiValidatePurchaseFacebookInstantRequest</a></td><td class=\"desc\">Facebook Instant IAP Purchase validation request </td></tr>\n<tr id=\"row_0_63_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\" target=\"_self\">IApiValidatePurchaseGoogleRequest</a></td><td class=\"desc\">Google IAP Purchase validation request </td></tr>\n<tr id=\"row_0_64_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\" target=\"_self\">IApiValidatePurchaseHuaweiRequest</a></td><td class=\"desc\">Huawei IAP Purchase validation request </td></tr>\n<tr id=\"row_0_65_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\" target=\"_self\">IApiValidatePurchaseResponse</a></td><td class=\"desc\">Validate IAP response </td></tr>\n<tr id=\"row_0_66_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\" target=\"_self\">IApiValidateSubscriptionAppleRequest</a></td><td class=\"desc\">Apple Subscription validation request </td></tr>\n<tr id=\"row_0_67_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\" target=\"_self\">IApiValidateSubscriptionGoogleRequest</a></td><td class=\"desc\">Google Subscription validation request </td></tr>\n<tr id=\"row_0_68_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\" target=\"_self\">IApiValidateSubscriptionResponse</a></td><td class=\"desc\">Validate Subscription response </td></tr>\n<tr id=\"row_0_69_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\" target=\"_self\">IApiWriteStorageObject</a></td><td class=\"desc\">The object to store </td></tr>\n<tr id=\"row_0_70_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\" target=\"_self\">IApiWriteStorageObjectsRequest</a></td><td class=\"desc\">Write objects to the storage engine </td></tr>\n<tr id=\"row_0_71_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\" target=\"_self\">IChannel</a></td><td class=\"desc\">A chat channel on the server </td></tr>\n<tr id=\"row_0_72_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\" target=\"_self\">IChannelMessageAck</a></td><td class=\"desc\">An acknowledgement from the server when a chat message is delivered to a channel </td></tr>\n<tr id=\"row_0_73_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\" target=\"_self\">IChannelPresenceEvent</a></td><td class=\"desc\">A batch of join and leave presences on a chat channel </td></tr>\n<tr id=\"row_0_74_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\" target=\"_self\">IClient</a></td><td class=\"desc\">A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_0_75_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\" target=\"_self\">IFriendsOfFriendsListFriendOfFriend</a></td><td class=\"desc\">A friend of a friend </td></tr>\n<tr id=\"row_0_76_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\" target=\"_self\">IGroupUserListGroupUser</a></td><td class=\"desc\">A single user-role pair </td></tr>\n<tr id=\"row_0_77_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\" target=\"_self\">IHttpAdapter</a></td><td class=\"desc\">An adapter which implements the HTTP protocol </td></tr>\n<tr id=\"row_0_78_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\" target=\"_self\">ILogger</a></td><td class=\"desc\">A simple logger to write log messages to an output sink </td></tr>\n<tr id=\"row_0_79_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\" target=\"_self\">IMatch</a></td><td class=\"desc\">A multiplayer match </td></tr>\n<tr id=\"row_0_80_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\" target=\"_self\">IMatchmakerMatched</a></td><td class=\"desc\">The result of a successful matchmaker operation sent to the server </td></tr>\n<tr id=\"row_0_81_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\" target=\"_self\">IMatchmakerTicket</a></td><td class=\"desc\">The matchmaker ticket received from the server </td></tr>\n<tr id=\"row_0_82_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\" target=\"_self\">IMatchmakerUser</a></td><td class=\"desc\">The user with the parameters they sent to the server when asking for opponents </td></tr>\n<tr id=\"row_0_83_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\" target=\"_self\">IMatchPresenceEvent</a></td><td class=\"desc\">A batch of join and leave presences for a match </td></tr>\n<tr id=\"row_0_84_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\" target=\"_self\">IMatchState</a></td><td class=\"desc\">Some game state update in a match </td></tr>\n<tr id=\"row_0_85_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\" target=\"_self\">IParty</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_0_86_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\" target=\"_self\">IPartyClose</a></td><td class=\"desc\">End a party, kicking all party members and closing it </td></tr>\n<tr id=\"row_0_87_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\" target=\"_self\">IPartyData</a></td><td class=\"desc\">Incoming party data delivered from the server </td></tr>\n<tr id=\"row_0_88_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\" target=\"_self\">IPartyJoinRequest</a></td><td class=\"desc\">Incoming notification for one or more new presences attempting to join the party </td></tr>\n<tr id=\"row_0_89_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\" target=\"_self\">IPartyLeader</a></td><td class=\"desc\">Announcement of a new party leader </td></tr>\n<tr id=\"row_0_90_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\" target=\"_self\">IPartyMatchmakerTicket</a></td><td class=\"desc\">A response from starting a new party matchmaking process </td></tr>\n<tr id=\"row_0_91_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\" target=\"_self\">IPartyPresenceEvent</a></td><td class=\"desc\">Presence update for a particular party </td></tr>\n<tr id=\"row_0_92_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\" target=\"_self\">IPartyUpdate</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_0_93_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\" target=\"_self\">IProtobufAny</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_94_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\" target=\"_self\">IRpcStatus</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_95_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\" target=\"_self\">ISession</a></td><td class=\"desc\">A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_0_96_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\" target=\"_self\">ISocket</a></td><td class=\"desc\">A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_0_97_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\" target=\"_self\">ISocketAdapter</a></td><td class=\"desc\">An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_0_98_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\" target=\"_self\">IStatus</a></td><td class=\"desc\">Receive status updates for users </td></tr>\n<tr id=\"row_0_99_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\" target=\"_self\">IStatusPresenceEvent</a></td><td class=\"desc\">A status update event about other users who've come online or gone offline </td></tr>\n<tr id=\"row_0_100_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\" target=\"_self\">IStream</a></td><td class=\"desc\">A realtime socket stream on the server </td></tr>\n<tr id=\"row_0_101_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\" target=\"_self\">IStreamPresenceEvent</a></td><td class=\"desc\">A batch of joins and leaves on the low level stream </td></tr>\n<tr id=\"row_0_102_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\" target=\"_self\">IStreamState</a></td><td class=\"desc\">A state change received from a stream </td></tr>\n<tr id=\"row_0_103_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\" target=\"_self\">IUserGroupListUserGroup</a></td><td class=\"desc\">A single group-role pair </td></tr>\n<tr id=\"row_0_104_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\" target=\"_self\">IUserPresence</a></td><td class=\"desc\">An object which represents a connected user in the server </td></tr>\n<tr id=\"row_0_105_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\" target=\"_self\">IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"desc\">Record values to write </td></tr>\n<tr id=\"row_0_106_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\" target=\"_self\">IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"desc\">Record values to write </td></tr>\n<tr id=\"row_0_107_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_retry.html\" target=\"_self\">Retry</a></td><td class=\"desc\">Represents a single retry attempt </td></tr>\n<tr id=\"row_0_108_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" target=\"_self\">RetryConfiguration</a></td><td class=\"desc\">A configuration for controlling retriable requests </td></tr>\n<tr id=\"row_0_109_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_session.html\" target=\"_self\">Session</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_110_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_socket.html\" target=\"_self\">Socket</a></td><td class=\"desc\">A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API </td></tr>\n<tr id=\"row_0_111_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\" target=\"_self\">StorageObjectId</a></td><td class=\"desc\">An identifier for a storage object </td></tr>\n<tr id=\"row_0_112_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\" target=\"_self\">WebSocketAdapter</a></td><td class=\"desc\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_0_113_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\" target=\"_self\">WebSocketStdlibAdapter</a></td><td class=\"desc\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_0_114_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\" target=\"_self\">WriteStorageObject</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_satori.html\" target=\"_self\">Satori</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\" target=\"_self\">ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_client.html\" target=\"_self\">Client</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_2_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_event.html\" target=\"_self\">Event</a></td><td class=\"desc\">An event to be published to the server </td></tr>\n<tr id=\"row_1_3_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\" target=\"_self\">HttpRequestAdapter</a></td><td class=\"desc\">HTTP Request adapter which uses the .NET HttpClient to send requests </td></tr>\n<tr id=\"row_1_4_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\" target=\"_self\">IApiAuthenticateLogoutRequest</a></td><td class=\"desc\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user </td></tr>\n<tr id=\"row_1_5_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\" target=\"_self\">IApiAuthenticateRefreshRequest</a></td><td class=\"desc\">Authenticate against the server with a refresh token </td></tr>\n<tr id=\"row_1_6_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\" target=\"_self\">IApiAuthenticateRequest</a></td><td class=\"desc\">Authentication request </td></tr>\n<tr id=\"row_1_7_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\" target=\"_self\">IApiEvent</a></td><td class=\"desc\">A single event. Usually, but not necessarily, part of a batch </td></tr>\n<tr id=\"row_1_8_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\" target=\"_self\">IApiEventRequest</a></td><td class=\"desc\">Publish an event to the server </td></tr>\n<tr id=\"row_1_9_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\" target=\"_self\">IApiExperiment</a></td><td class=\"desc\">An experiment that this user is partaking </td></tr>\n<tr id=\"row_1_10_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\" target=\"_self\">IApiExperimentList</a></td><td class=\"desc\">All experiments that this identity is involved with </td></tr>\n<tr id=\"row_1_11_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\" target=\"_self\">IApiFlag</a></td><td class=\"desc\">Feature flag available to the identity </td></tr>\n<tr id=\"row_1_12_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\" target=\"_self\">IApiFlagList</a></td><td class=\"desc\">All flags available to the identity </td></tr>\n<tr id=\"row_1_13_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\" target=\"_self\">IApiFlagOverride</a></td><td class=\"desc\">Feature flag available to the identity </td></tr>\n<tr id=\"row_1_14_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\" target=\"_self\">IApiFlagOverrideList</a></td><td class=\"desc\">All flags available to the identity and their value overrides </td></tr>\n<tr id=\"row_1_15_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\" target=\"_self\">IApiFlagOverrideValue</a></td><td class=\"desc\">The details of a flag value override </td></tr>\n<tr id=\"row_1_16_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\" target=\"_self\">IApiGetMessageListResponse</a></td><td class=\"desc\">A response containing all the messages for an identity </td></tr>\n<tr id=\"row_1_17_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\" target=\"_self\">IApiIdentifyRequest</a></td><td class=\"desc\">Enrich/replace the current session with a new ID </td></tr>\n<tr id=\"row_1_18_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\" target=\"_self\">IApiLiveEvent</a></td><td class=\"desc\">A single live event </td></tr>\n<tr id=\"row_1_19_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\" target=\"_self\">IApiLiveEventList</a></td><td class=\"desc\">List of Live events </td></tr>\n<tr id=\"row_1_20_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\" target=\"_self\">IApiMessage</a></td><td class=\"desc\">A scheduled message </td></tr>\n<tr id=\"row_1_21_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\" target=\"_self\">IApiProperties</a></td><td class=\"desc\">Properties associated with an identity </td></tr>\n<tr id=\"row_1_22_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\" target=\"_self\">IApiSession</a></td><td class=\"desc\">A session </td></tr>\n<tr id=\"row_1_23_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\" target=\"_self\">IApiUpdateMessageRequest</a></td><td class=\"desc\">The request to update the status of a message </td></tr>\n<tr id=\"row_1_24_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\" target=\"_self\">IApiUpdatePropertiesRequest</a></td><td class=\"desc\">Update Properties associated with this identity </td></tr>\n<tr id=\"row_1_25_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_client.html\" target=\"_self\">IClient</a></td><td class=\"desc\">A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server </td></tr>\n<tr id=\"row_1_26_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\" target=\"_self\">IFlagValueChangeReason</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_27_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\" target=\"_self\">IHttpAdapter</a></td><td class=\"desc\">An adapter which implements the HTTP protocol </td></tr>\n<tr id=\"row_1_28_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\" target=\"_self\">ILogger</a></td><td class=\"desc\">A simple logger to write log messages to an output sink </td></tr>\n<tr id=\"row_1_29_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\" target=\"_self\">IProtobufAny</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_30_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\" target=\"_self\">IRpcStatus</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_31_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_session.html\" target=\"_self\">ISession</a></td><td class=\"desc\">A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server </td></tr>\n<tr id=\"row_1_32_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_retry.html\" target=\"_self\">Retry</a></td><td class=\"desc\">Represents a single retry attempt </td></tr>\n<tr id=\"row_1_33_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" target=\"_self\">RetryConfiguration</a></td><td class=\"desc\">A configuration for controlling retriable requests </td></tr>\n<tr id=\"row_1_34_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_session.html\" target=\"_self\">Session</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/annotated_dup.js",
    "content": "var annotated_dup =\n[\n    [ \"Nakama\", \"namespace_nakama.html\", [\n      [ \"Console\", \"namespace_nakama_1_1_console.html\", [\n        [ \"ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html\", \"class_nakama_1_1_console_1_1_api_response_exception\" ],\n        [ \"IApiAccountDevice\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html\", \"interface_nakama_1_1_console_1_1_i_api_account_device\" ],\n        [ \"IApiChannelMessage\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_console_1_1_i_api_channel_message\" ],\n        [ \"IApiFriend\", \"interface_nakama_1_1_console_1_1_i_api_friend.html\", \"interface_nakama_1_1_console_1_1_i_api_friend\" ],\n        [ \"IApiFriendList\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_console_1_1_i_api_friend_list\" ],\n        [ \"IApiGroup\", \"interface_nakama_1_1_console_1_1_i_api_group.html\", \"interface_nakama_1_1_console_1_1_i_api_group\" ],\n        [ \"IApiLeaderboardRecord\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record\" ],\n        [ \"IApiNotification\", \"interface_nakama_1_1_console_1_1_i_api_notification.html\", \"interface_nakama_1_1_console_1_1_i_api_notification\" ],\n        [ \"IApiStorageObject\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object\" ],\n        [ \"IApiStorageObjectAck\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack\" ],\n        [ \"IApiUser\", \"interface_nakama_1_1_console_1_1_i_api_user.html\", \"interface_nakama_1_1_console_1_1_i_api_user\" ],\n        [ \"IApiUserGroupList\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list\" ],\n        [ \"IConfigWarning\", \"interface_nakama_1_1_console_1_1_i_config_warning.html\", \"interface_nakama_1_1_console_1_1_i_config_warning\" ],\n        [ \"IConsoleAccountExport\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html\", \"interface_nakama_1_1_console_1_1_i_console_account_export\" ],\n        [ \"IConsoleAuthenticateRequest\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request\" ],\n        [ \"IConsoleConfig\", \"interface_nakama_1_1_console_1_1_i_console_config.html\", \"interface_nakama_1_1_console_1_1_i_console_config\" ],\n        [ \"IConsoleConsoleSession\", \"interface_nakama_1_1_console_1_1_i_console_console_session.html\", \"interface_nakama_1_1_console_1_1_i_console_console_session\" ],\n        [ \"IConsoleStatusList\", \"interface_nakama_1_1_console_1_1_i_console_status_list.html\", \"interface_nakama_1_1_console_1_1_i_console_status_list\" ],\n        [ \"IConsoleStorageList\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html\", \"interface_nakama_1_1_console_1_1_i_console_storage_list\" ],\n        [ \"IConsoleUnlinkDeviceRequest\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request\" ],\n        [ \"IConsoleUserList\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html\", \"interface_nakama_1_1_console_1_1_i_console_user_list\" ],\n        [ \"IConsoleWalletLedger\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger\" ],\n        [ \"IConsoleWalletLedgerList\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list\" ],\n        [ \"IConsoleWriteStorageObjectRequest\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request\" ],\n        [ \"INakamaapiAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account\" ],\n        [ \"INakamaconsoleAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account\" ],\n        [ \"INakamaconsoleUpdateAccountRequest\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request\" ],\n        [ \"IProtobufAny\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_console_1_1_i_protobuf_any\" ],\n        [ \"IRuntimeError\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html\", \"interface_nakama_1_1_console_1_1_i_runtime_error\" ],\n        [ \"IStatusListStatus\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html\", \"interface_nakama_1_1_console_1_1_i_status_list_status\" ],\n        [ \"IUserGroupListUserGroup\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group\" ]\n      ] ],\n      [ \"Ninja\", \"namespace_nakama_1_1_ninja.html\", [\n        [ \"WebSockets\", \"namespace_nakama_1_1_ninja_1_1_web_sockets.html\", [\n          [ \"Exceptions\", \"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\", [\n            [ \"EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception\" ],\n            [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception\" ],\n            [ \"SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception\" ],\n            [ \"ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception\" ],\n            [ \"WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception\" ],\n            [ \"WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception\" ],\n            [ \"WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception\" ]\n          ] ],\n          [ \"BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool\" ],\n          [ \"HttpHelper\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\", null ],\n          [ \"IBufferPool\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool\" ],\n          [ \"IPingPongManager\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\" ],\n          [ \"IWebSocketClientFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory\" ],\n          [ \"IWebSocketServerFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory\" ],\n          [ \"PingPongManager\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager\" ],\n          [ \"PongEventArgs\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args\" ],\n          [ \"WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory\" ],\n          [ \"WebSocketClientOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options\" ],\n          [ \"WebSocketHttpContext\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context\" ],\n          [ \"WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory\" ],\n          [ \"WebSocketServerOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options\" ]\n        ] ]\n      ] ],\n      [ \"ApiResponseException\", \"class_nakama_1_1_api_response_exception.html\", \"class_nakama_1_1_api_response_exception\" ],\n      [ \"Client\", \"class_nakama_1_1_client.html\", \"class_nakama_1_1_client\" ],\n      [ \"HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html\", \"class_nakama_1_1_http_request_adapter\" ],\n      [ \"IApiAccount\", \"interface_nakama_1_1_i_api_account.html\", \"interface_nakama_1_1_i_api_account\" ],\n      [ \"IApiAccountApple\", \"interface_nakama_1_1_i_api_account_apple.html\", \"interface_nakama_1_1_i_api_account_apple\" ],\n      [ \"IApiAccountCustom\", \"interface_nakama_1_1_i_api_account_custom.html\", \"interface_nakama_1_1_i_api_account_custom\" ],\n      [ \"IApiAccountDevice\", \"interface_nakama_1_1_i_api_account_device.html\", \"interface_nakama_1_1_i_api_account_device\" ],\n      [ \"IApiAccountEmail\", \"interface_nakama_1_1_i_api_account_email.html\", \"interface_nakama_1_1_i_api_account_email\" ],\n      [ \"IApiAccountFacebook\", \"interface_nakama_1_1_i_api_account_facebook.html\", \"interface_nakama_1_1_i_api_account_facebook\" ],\n      [ \"IApiAccountFacebookInstantGame\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html\", \"interface_nakama_1_1_i_api_account_facebook_instant_game\" ],\n      [ \"IApiAccountGameCenter\", \"interface_nakama_1_1_i_api_account_game_center.html\", \"interface_nakama_1_1_i_api_account_game_center\" ],\n      [ \"IApiAccountGoogle\", \"interface_nakama_1_1_i_api_account_google.html\", \"interface_nakama_1_1_i_api_account_google\" ],\n      [ \"IApiAccountSteam\", \"interface_nakama_1_1_i_api_account_steam.html\", \"interface_nakama_1_1_i_api_account_steam\" ],\n      [ \"IApiChannelMessage\", \"interface_nakama_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_i_api_channel_message\" ],\n      [ \"IApiChannelMessageList\", \"interface_nakama_1_1_i_api_channel_message_list.html\", \"interface_nakama_1_1_i_api_channel_message_list\" ],\n      [ \"IApiCreateGroupRequest\", \"interface_nakama_1_1_i_api_create_group_request.html\", \"interface_nakama_1_1_i_api_create_group_request\" ],\n      [ \"IApiDeleteStorageObjectId\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html\", \"interface_nakama_1_1_i_api_delete_storage_object_id\" ],\n      [ \"IApiDeleteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html\", \"interface_nakama_1_1_i_api_delete_storage_objects_request\" ],\n      [ \"IApiEvent\", \"interface_nakama_1_1_i_api_event.html\", \"interface_nakama_1_1_i_api_event\" ],\n      [ \"IApiFriend\", \"interface_nakama_1_1_i_api_friend.html\", \"interface_nakama_1_1_i_api_friend\" ],\n      [ \"IApiFriendList\", \"interface_nakama_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_i_api_friend_list\" ],\n      [ \"IApiFriendsOfFriendsList\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html\", \"interface_nakama_1_1_i_api_friends_of_friends_list\" ],\n      [ \"IApiGroup\", \"interface_nakama_1_1_i_api_group.html\", \"interface_nakama_1_1_i_api_group\" ],\n      [ \"IApiGroupList\", \"interface_nakama_1_1_i_api_group_list.html\", \"interface_nakama_1_1_i_api_group_list\" ],\n      [ \"IApiGroupUserList\", \"interface_nakama_1_1_i_api_group_user_list.html\", \"interface_nakama_1_1_i_api_group_user_list\" ],\n      [ \"IApiLeaderboardRecord\", \"interface_nakama_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_i_api_leaderboard_record\" ],\n      [ \"IApiLeaderboardRecordList\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html\", \"interface_nakama_1_1_i_api_leaderboard_record_list\" ],\n      [ \"IApiLinkSteamRequest\", \"interface_nakama_1_1_i_api_link_steam_request.html\", \"interface_nakama_1_1_i_api_link_steam_request\" ],\n      [ \"IApiListSubscriptionsRequest\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html\", \"interface_nakama_1_1_i_api_list_subscriptions_request\" ],\n      [ \"IApiMatch\", \"interface_nakama_1_1_i_api_match.html\", \"interface_nakama_1_1_i_api_match\" ],\n      [ \"IApiMatchList\", \"interface_nakama_1_1_i_api_match_list.html\", \"interface_nakama_1_1_i_api_match_list\" ],\n      [ \"IApiMatchmakerCompletionStats\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats\" ],\n      [ \"IApiMatchmakerStats\", \"interface_nakama_1_1_i_api_matchmaker_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_stats\" ],\n      [ \"IApiNotification\", \"interface_nakama_1_1_i_api_notification.html\", \"interface_nakama_1_1_i_api_notification\" ],\n      [ \"IApiNotificationList\", \"interface_nakama_1_1_i_api_notification_list.html\", \"interface_nakama_1_1_i_api_notification_list\" ],\n      [ \"IApiParty\", \"interface_nakama_1_1_i_api_party.html\", \"interface_nakama_1_1_i_api_party\" ],\n      [ \"IApiPartyList\", \"interface_nakama_1_1_i_api_party_list.html\", \"interface_nakama_1_1_i_api_party_list\" ],\n      [ \"IApiReadStorageObjectId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html\", \"interface_nakama_1_1_i_api_read_storage_object_id\" ],\n      [ \"IApiReadStorageObjectsRequest\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html\", \"interface_nakama_1_1_i_api_read_storage_objects_request\" ],\n      [ \"IApiRpc\", \"interface_nakama_1_1_i_api_rpc.html\", \"interface_nakama_1_1_i_api_rpc\" ],\n      [ \"IApiSession\", \"interface_nakama_1_1_i_api_session.html\", \"interface_nakama_1_1_i_api_session\" ],\n      [ \"IApiSessionLogoutRequest\", \"interface_nakama_1_1_i_api_session_logout_request.html\", \"interface_nakama_1_1_i_api_session_logout_request\" ],\n      [ \"IApiSessionRefreshRequest\", \"interface_nakama_1_1_i_api_session_refresh_request.html\", \"interface_nakama_1_1_i_api_session_refresh_request\" ],\n      [ \"IApiStorageObject\", \"interface_nakama_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_i_api_storage_object\" ],\n      [ \"IApiStorageObjectAck\", \"interface_nakama_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_i_api_storage_object_ack\" ],\n      [ \"IApiStorageObjectAcks\", \"interface_nakama_1_1_i_api_storage_object_acks.html\", \"interface_nakama_1_1_i_api_storage_object_acks\" ],\n      [ \"IApiStorageObjectList\", \"interface_nakama_1_1_i_api_storage_object_list.html\", \"interface_nakama_1_1_i_api_storage_object_list\" ],\n      [ \"IApiStorageObjects\", \"interface_nakama_1_1_i_api_storage_objects.html\", \"interface_nakama_1_1_i_api_storage_objects\" ],\n      [ \"IApiSubscriptionList\", \"interface_nakama_1_1_i_api_subscription_list.html\", \"interface_nakama_1_1_i_api_subscription_list\" ],\n      [ \"IApiTournament\", \"interface_nakama_1_1_i_api_tournament.html\", \"interface_nakama_1_1_i_api_tournament\" ],\n      [ \"IApiTournamentList\", \"interface_nakama_1_1_i_api_tournament_list.html\", \"interface_nakama_1_1_i_api_tournament_list\" ],\n      [ \"IApiTournamentRecordList\", \"interface_nakama_1_1_i_api_tournament_record_list.html\", \"interface_nakama_1_1_i_api_tournament_record_list\" ],\n      [ \"IApiUpdateAccountRequest\", \"interface_nakama_1_1_i_api_update_account_request.html\", \"interface_nakama_1_1_i_api_update_account_request\" ],\n      [ \"IApiUpdateGroupRequest\", \"interface_nakama_1_1_i_api_update_group_request.html\", \"interface_nakama_1_1_i_api_update_group_request\" ],\n      [ \"IApiUser\", \"interface_nakama_1_1_i_api_user.html\", \"interface_nakama_1_1_i_api_user\" ],\n      [ \"IApiUserGroupList\", \"interface_nakama_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_i_api_user_group_list\" ],\n      [ \"IApiUsers\", \"interface_nakama_1_1_i_api_users.html\", \"interface_nakama_1_1_i_api_users\" ],\n      [ \"IApiValidatedPurchase\", \"interface_nakama_1_1_i_api_validated_purchase.html\", \"interface_nakama_1_1_i_api_validated_purchase\" ],\n      [ \"IApiValidatedSubscription\", \"interface_nakama_1_1_i_api_validated_subscription.html\", \"interface_nakama_1_1_i_api_validated_subscription\" ],\n      [ \"IApiValidatePurchaseAppleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request\" ],\n      [ \"IApiValidatePurchaseFacebookInstantRequest\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request\" ],\n      [ \"IApiValidatePurchaseGoogleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_google_request\" ],\n      [ \"IApiValidatePurchaseHuaweiRequest\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request\" ],\n      [ \"IApiValidatePurchaseResponse\", \"interface_nakama_1_1_i_api_validate_purchase_response.html\", \"interface_nakama_1_1_i_api_validate_purchase_response\" ],\n      [ \"IApiValidateSubscriptionAppleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request\" ],\n      [ \"IApiValidateSubscriptionGoogleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_google_request\" ],\n      [ \"IApiValidateSubscriptionResponse\", \"interface_nakama_1_1_i_api_validate_subscription_response.html\", \"interface_nakama_1_1_i_api_validate_subscription_response\" ],\n      [ \"IApiWriteStorageObject\", \"interface_nakama_1_1_i_api_write_storage_object.html\", \"interface_nakama_1_1_i_api_write_storage_object\" ],\n      [ \"IApiWriteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html\", \"interface_nakama_1_1_i_api_write_storage_objects_request\" ],\n      [ \"IChannel\", \"interface_nakama_1_1_i_channel.html\", \"interface_nakama_1_1_i_channel\" ],\n      [ \"IChannelMessageAck\", \"interface_nakama_1_1_i_channel_message_ack.html\", \"interface_nakama_1_1_i_channel_message_ack\" ],\n      [ \"IChannelPresenceEvent\", \"interface_nakama_1_1_i_channel_presence_event.html\", \"interface_nakama_1_1_i_channel_presence_event\" ],\n      [ \"IClient\", \"interface_nakama_1_1_i_client.html\", \"interface_nakama_1_1_i_client\" ],\n      [ \"IFriendsOfFriendsListFriendOfFriend\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend\" ],\n      [ \"IGroupUserListGroupUser\", \"interface_nakama_1_1_i_group_user_list_group_user.html\", \"interface_nakama_1_1_i_group_user_list_group_user\" ],\n      [ \"IHttpAdapter\", \"interface_nakama_1_1_i_http_adapter.html\", \"interface_nakama_1_1_i_http_adapter\" ],\n      [ \"ILogger\", \"interface_nakama_1_1_i_logger.html\", \"interface_nakama_1_1_i_logger\" ],\n      [ \"IMatch\", \"interface_nakama_1_1_i_match.html\", \"interface_nakama_1_1_i_match\" ],\n      [ \"IMatchmakerMatched\", \"interface_nakama_1_1_i_matchmaker_matched.html\", \"interface_nakama_1_1_i_matchmaker_matched\" ],\n      [ \"IMatchmakerTicket\", \"interface_nakama_1_1_i_matchmaker_ticket.html\", \"interface_nakama_1_1_i_matchmaker_ticket\" ],\n      [ \"IMatchmakerUser\", \"interface_nakama_1_1_i_matchmaker_user.html\", \"interface_nakama_1_1_i_matchmaker_user\" ],\n      [ \"IMatchPresenceEvent\", \"interface_nakama_1_1_i_match_presence_event.html\", \"interface_nakama_1_1_i_match_presence_event\" ],\n      [ \"IMatchState\", \"interface_nakama_1_1_i_match_state.html\", \"interface_nakama_1_1_i_match_state\" ],\n      [ \"IParty\", \"interface_nakama_1_1_i_party.html\", \"interface_nakama_1_1_i_party\" ],\n      [ \"IPartyClose\", \"interface_nakama_1_1_i_party_close.html\", \"interface_nakama_1_1_i_party_close\" ],\n      [ \"IPartyData\", \"interface_nakama_1_1_i_party_data.html\", \"interface_nakama_1_1_i_party_data\" ],\n      [ \"IPartyJoinRequest\", \"interface_nakama_1_1_i_party_join_request.html\", \"interface_nakama_1_1_i_party_join_request\" ],\n      [ \"IPartyLeader\", \"interface_nakama_1_1_i_party_leader.html\", \"interface_nakama_1_1_i_party_leader\" ],\n      [ \"IPartyMatchmakerTicket\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html\", \"interface_nakama_1_1_i_party_matchmaker_ticket\" ],\n      [ \"IPartyPresenceEvent\", \"interface_nakama_1_1_i_party_presence_event.html\", \"interface_nakama_1_1_i_party_presence_event\" ],\n      [ \"IPartyUpdate\", \"interface_nakama_1_1_i_party_update.html\", \"interface_nakama_1_1_i_party_update\" ],\n      [ \"IProtobufAny\", \"interface_nakama_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_i_protobuf_any\" ],\n      [ \"IRpcStatus\", \"interface_nakama_1_1_i_rpc_status.html\", \"interface_nakama_1_1_i_rpc_status\" ],\n      [ \"ISession\", \"interface_nakama_1_1_i_session.html\", \"interface_nakama_1_1_i_session\" ],\n      [ \"ISocket\", \"interface_nakama_1_1_i_socket.html\", \"interface_nakama_1_1_i_socket\" ],\n      [ \"ISocketAdapter\", \"interface_nakama_1_1_i_socket_adapter.html\", \"interface_nakama_1_1_i_socket_adapter\" ],\n      [ \"IStatus\", \"interface_nakama_1_1_i_status.html\", \"interface_nakama_1_1_i_status\" ],\n      [ \"IStatusPresenceEvent\", \"interface_nakama_1_1_i_status_presence_event.html\", \"interface_nakama_1_1_i_status_presence_event\" ],\n      [ \"IStream\", \"interface_nakama_1_1_i_stream.html\", \"interface_nakama_1_1_i_stream\" ],\n      [ \"IStreamPresenceEvent\", \"interface_nakama_1_1_i_stream_presence_event.html\", \"interface_nakama_1_1_i_stream_presence_event\" ],\n      [ \"IStreamState\", \"interface_nakama_1_1_i_stream_state.html\", \"interface_nakama_1_1_i_stream_state\" ],\n      [ \"IUserGroupListUserGroup\", \"interface_nakama_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_i_user_group_list_user_group\" ],\n      [ \"IUserPresence\", \"interface_nakama_1_1_i_user_presence.html\", \"interface_nakama_1_1_i_user_presence\" ],\n      [ \"IWriteLeaderboardRecordRequestLeaderboardRecordWrite\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write\" ],\n      [ \"IWriteTournamentRecordRequestTournamentRecordWrite\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write\" ],\n      [ \"Retry\", \"class_nakama_1_1_retry.html\", \"class_nakama_1_1_retry\" ],\n      [ \"RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html\", \"class_nakama_1_1_retry_configuration\" ],\n      [ \"Session\", \"class_nakama_1_1_session.html\", \"class_nakama_1_1_session\" ],\n      [ \"Socket\", \"class_nakama_1_1_socket.html\", \"class_nakama_1_1_socket\" ],\n      [ \"StorageObjectId\", \"class_nakama_1_1_storage_object_id.html\", \"class_nakama_1_1_storage_object_id\" ],\n      [ \"WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html\", \"class_nakama_1_1_web_socket_adapter\" ],\n      [ \"WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html\", \"class_nakama_1_1_web_socket_stdlib_adapter\" ],\n      [ \"WriteStorageObject\", \"class_nakama_1_1_write_storage_object.html\", \"class_nakama_1_1_write_storage_object\" ]\n    ] ],\n    [ \"Satori\", \"namespace_satori.html\", [\n      [ \"ApiResponseException\", \"class_satori_1_1_api_response_exception.html\", \"class_satori_1_1_api_response_exception\" ],\n      [ \"Client\", \"class_satori_1_1_client.html\", \"class_satori_1_1_client\" ],\n      [ \"Event\", \"class_satori_1_1_event.html\", \"class_satori_1_1_event\" ],\n      [ \"HttpRequestAdapter\", \"class_satori_1_1_http_request_adapter.html\", \"class_satori_1_1_http_request_adapter\" ],\n      [ \"IApiAuthenticateLogoutRequest\", \"interface_satori_1_1_i_api_authenticate_logout_request.html\", \"interface_satori_1_1_i_api_authenticate_logout_request\" ],\n      [ \"IApiAuthenticateRefreshRequest\", \"interface_satori_1_1_i_api_authenticate_refresh_request.html\", \"interface_satori_1_1_i_api_authenticate_refresh_request\" ],\n      [ \"IApiAuthenticateRequest\", \"interface_satori_1_1_i_api_authenticate_request.html\", \"interface_satori_1_1_i_api_authenticate_request\" ],\n      [ \"IApiEvent\", \"interface_satori_1_1_i_api_event.html\", \"interface_satori_1_1_i_api_event\" ],\n      [ \"IApiEventRequest\", \"interface_satori_1_1_i_api_event_request.html\", \"interface_satori_1_1_i_api_event_request\" ],\n      [ \"IApiExperiment\", \"interface_satori_1_1_i_api_experiment.html\", \"interface_satori_1_1_i_api_experiment\" ],\n      [ \"IApiExperimentList\", \"interface_satori_1_1_i_api_experiment_list.html\", \"interface_satori_1_1_i_api_experiment_list\" ],\n      [ \"IApiFlag\", \"interface_satori_1_1_i_api_flag.html\", \"interface_satori_1_1_i_api_flag\" ],\n      [ \"IApiFlagList\", \"interface_satori_1_1_i_api_flag_list.html\", \"interface_satori_1_1_i_api_flag_list\" ],\n      [ \"IApiFlagOverride\", \"interface_satori_1_1_i_api_flag_override.html\", \"interface_satori_1_1_i_api_flag_override\" ],\n      [ \"IApiFlagOverrideList\", \"interface_satori_1_1_i_api_flag_override_list.html\", \"interface_satori_1_1_i_api_flag_override_list\" ],\n      [ \"IApiFlagOverrideValue\", \"interface_satori_1_1_i_api_flag_override_value.html\", \"interface_satori_1_1_i_api_flag_override_value\" ],\n      [ \"IApiGetMessageListResponse\", \"interface_satori_1_1_i_api_get_message_list_response.html\", \"interface_satori_1_1_i_api_get_message_list_response\" ],\n      [ \"IApiIdentifyRequest\", \"interface_satori_1_1_i_api_identify_request.html\", \"interface_satori_1_1_i_api_identify_request\" ],\n      [ \"IApiLiveEvent\", \"interface_satori_1_1_i_api_live_event.html\", \"interface_satori_1_1_i_api_live_event\" ],\n      [ \"IApiLiveEventList\", \"interface_satori_1_1_i_api_live_event_list.html\", \"interface_satori_1_1_i_api_live_event_list\" ],\n      [ \"IApiMessage\", \"interface_satori_1_1_i_api_message.html\", \"interface_satori_1_1_i_api_message\" ],\n      [ \"IApiProperties\", \"interface_satori_1_1_i_api_properties.html\", \"interface_satori_1_1_i_api_properties\" ],\n      [ \"IApiSession\", \"interface_satori_1_1_i_api_session.html\", \"interface_satori_1_1_i_api_session\" ],\n      [ \"IApiUpdateMessageRequest\", \"interface_satori_1_1_i_api_update_message_request.html\", \"interface_satori_1_1_i_api_update_message_request\" ],\n      [ \"IApiUpdatePropertiesRequest\", \"interface_satori_1_1_i_api_update_properties_request.html\", \"interface_satori_1_1_i_api_update_properties_request\" ],\n      [ \"IClient\", \"interface_satori_1_1_i_client.html\", \"interface_satori_1_1_i_client\" ],\n      [ \"IFlagValueChangeReason\", \"interface_satori_1_1_i_flag_value_change_reason.html\", \"interface_satori_1_1_i_flag_value_change_reason\" ],\n      [ \"IHttpAdapter\", \"interface_satori_1_1_i_http_adapter.html\", \"interface_satori_1_1_i_http_adapter\" ],\n      [ \"ILogger\", \"interface_satori_1_1_i_logger.html\", \"interface_satori_1_1_i_logger\" ],\n      [ \"IProtobufAny\", \"interface_satori_1_1_i_protobuf_any.html\", \"interface_satori_1_1_i_protobuf_any\" ],\n      [ \"IRpcStatus\", \"interface_satori_1_1_i_rpc_status.html\", \"interface_satori_1_1_i_rpc_status\" ],\n      [ \"ISession\", \"interface_satori_1_1_i_session.html\", \"interface_satori_1_1_i_session\" ],\n      [ \"Retry\", \"class_satori_1_1_retry.html\", \"class_satori_1_1_retry\" ],\n      [ \"RetryConfiguration\", \"class_satori_1_1_retry_configuration.html\", \"class_satori_1_1_retry_configuration\" ],\n      [ \"Session\", \"class_satori_1_1_session.html\", \"class_satori_1_1_session\" ]\n    ] ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_api_response_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_api_response_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ApiResponseException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\">ApiResponseException</a>(long statusCode, string content, int grpcCode)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8\">ApiResponseException</a>(string message, Exception e)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1\">ApiResponseException</a>(string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\">GrpcStatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\">StatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">Nakama.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_api_response_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.ApiResponseException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_api_response_exception.html','','class_nakama_1_1_api_response_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ApiResponseException Class Reference<span class=\"mlabels\"><span class=\"mlabel sealed\">sealed</span></span></div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An exception generated for <code>HttpResponse</code> objects don't return a success status.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.ApiResponseException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_api_response_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a77dfa1e69b45294a8be2755b0a95d928\" id=\"r_a77dfa1e69b45294a8be2755b0a95d928\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a77dfa1e69b45294a8be2755b0a95d928\">ApiResponseException</a> (long statusCode, string content, int grpcCode)</td></tr>\n<tr class=\"memitem:a0d264746286648211638110f05e80ac8\" id=\"r_a0d264746286648211638110f05e80ac8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d264746286648211638110f05e80ac8\">ApiResponseException</a> (string message, Exception e)</td></tr>\n<tr class=\"memitem:a261e959445b965fea35318918d6bc1f1\" id=\"r_a261e959445b965fea35318918d6bc1f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a261e959445b965fea35318918d6bc1f1\">ApiResponseException</a> (string content)</td></tr>\n<tr class=\"memitem:a8bdf4cef42dbc531d7a96b655713918f\" id=\"r_a8bdf4cef42dbc531d7a96b655713918f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8bdf4cef42dbc531d7a96b655713918f\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a340b4726dde4af94b5e2553ffcc1f3ee\" id=\"r_a340b4726dde4af94b5e2553ffcc1f3ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a340b4726dde4af94b5e2553ffcc1f3ee\">StatusCode</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ab5e8be519a60a0799ed0fed798e3ef14\" id=\"r_ab5e8be519a60a0799ed0fed798e3ef14\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab5e8be519a60a0799ed0fed798e3ef14\">GrpcStatusCode</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An exception generated for <code>HttpResponse</code> objects don't return a success status. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a77dfa1e69b45294a8be2755b0a95d928\" name=\"a77dfa1e69b45294a8be2755b0a95d928\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a77dfa1e69b45294a8be2755b0a95d928\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>statusCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>grpcCode</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0d264746286648211638110f05e80ac8\" name=\"a0d264746286648211638110f05e80ac8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d264746286648211638110f05e80ac8\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a261e959445b965fea35318918d6bc1f1\" name=\"a261e959445b965fea35318918d6bc1f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a261e959445b965fea35318918d6bc1f1\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a8bdf4cef42dbc531d7a96b655713918f\" name=\"a8bdf4cef42dbc531d7a96b655713918f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8bdf4cef42dbc531d7a96b655713918f\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.ApiResponseException.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab5e8be519a60a0799ed0fed798e3ef14\" name=\"ab5e8be519a60a0799ed0fed798e3ef14\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab5e8be519a60a0799ed0fed798e3ef14\">&#9670;&#160;</a></span>GrpcStatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.ApiResponseException.GrpcStatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a340b4726dde4af94b5e2553ffcc1f3ee\" name=\"a340b4726dde4af94b5e2553ffcc1f3ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a340b4726dde4af94b5e2553ffcc1f3ee\">&#9670;&#160;</a></span>StatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.ApiResponseException.StatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_api_response_exception.html\">ApiResponseException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_api_response_exception.js",
    "content": "var class_nakama_1_1_api_response_exception =\n[\n    [ \"ApiResponseException\", \"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\", null ],\n    [ \"ApiResponseException\", \"class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8\", null ],\n    [ \"ApiResponseException\", \"class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1\", null ],\n    [ \"ToString\", \"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\", null ],\n    [ \"GrpcStatusCode\", \"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\", null ],\n    [ \"StatusCode\", \"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_client-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_client.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Client Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\">AddFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, string metadata=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\">AddGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\">AuthenticateAppleAsync</a>(string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\">AuthenticateCustomAsync</a>(string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\">AuthenticateDeviceAsync</a>(string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\">AuthenticateEmailAsync</a>(string email, string password, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\">AuthenticateFacebookAsync</a>(string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\">AuthenticateGameCenterAsync</a>(string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\">AuthenticateGoogleAsync</a>(string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\">AuthenticateSteamAsync</a>(string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\">AutoRefreshSession</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\">BanGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\">BlockFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\">Client</a>(string serverKey)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460\">Client</a>(string serverKey, IHttpAdapter adapter)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6\">Client</a>(string scheme, string host, int port, string serverKey)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711\">Client</a>(string scheme, string host, int port, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\">Client</a>(Uri uri, string serverKey)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830\">Client</a>(Uri uri, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\">CreateGroupAsync</a>(ISession session, string name, string description=&quot;&quot;, string avatarUrl=null, string langTag=null, bool open=true, int maxCount=100, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621\">DefaultExpiredTimeSpan</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35\">DefaultHost</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756\">DefaultPort</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493\">DefaultScheme</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\">DeleteAccountAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\">DeleteFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\">DeleteGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\">DeleteLeaderboardRecordAsync</a>(ISession session, string leaderboardId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\">DeleteNotificationsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\">DeleteStorageObjectsAsync</a>(ISession session, StorageObjectId[] ids=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\">DeleteTournamentRecordAsync</a>(ISession session, string tournamentId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\">DemoteGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; usernames, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\">EventAsync</a>(ISession session, string name, Dictionary&lt; string, string &gt; properties, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\">GetAccountAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\">GetSubscriptionAsync</a>(ISession session, string productId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\">GetUsersAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, IEnumerable&lt; string &gt; facebookIds=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\">GlobalRetryConfiguration</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\">Host</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\">ImportFacebookFriendsAsync</a>(ISession session, string token, bool? reset=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\">ImportSteamFriendsAsync</a>(ISession session, string token, bool? reset=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\">JoinGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\">JoinTournamentAsync</a>(ISession session, string tournamentId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\">KickGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\">LeaveGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\">LinkAppleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\">LinkCustomAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\">LinkDeviceAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\">LinkEmailAsync</a>(ISession session, string email, string password, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\">LinkFacebookAsync</a>(ISession session, string token, bool? import=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\">LinkGameCenterAsync</a>(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">LinkGoogleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\">LinkSteamAsync</a>(ISession session, string token, bool sync, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\">ListChannelMessagesAsync</a>(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\">ListChannelMessagesAsync</a>(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\">ListFriendsAsync</a>(ISession session, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\">ListGroupsAsync</a>(ISession session, string name=null, int limit=1, string cursor=null, string langTag=null, int? members=null, bool? open=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\">ListGroupUsersAsync</a>(ISession session, string groupId, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\">ListLeaderboardRecordsAroundOwnerAsync</a>(ISession session, string leaderboardId, string ownerId, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\">ListLeaderboardRecordsAsync</a>(ISession session, string leaderboardId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\">ListMatchesAsync</a>(ISession session, int min, int max, int limit, bool authoritative, string label, string query, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\">ListNotificationsAsync</a>(ISession session, int limit=1, string cacheableCursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">ListPartiesAsync</a>(ISession session, int limit, bool? open, string query=null, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\">ListStorageObjects</a>(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\">ListStorageObjectsAsync</a>(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270\">ListStorageObjectsAsync</a>(ISession session, string collection, string userId=&quot;&quot;, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\">ListSubscriptionsAsync</a>(ISession session, int limit, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\">ListTournamentRecordsAroundOwnerAsync</a>(ISession session, string tournamentId, string ownerId, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\">ListTournamentRecordsAsync</a>(ISession session, string tournamentId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\">ListTournamentsAsync</a>(ISession session, int categoryStart, int categoryEnd, int? startTime=null, int? endTime=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\">ListUserGroupsAsync</a>(ISession session, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\">ListUserGroupsAsync</a>(ISession session, string userId, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\">ListUsersStorageObjectsAsync</a>(ISession session, string collection, string userId, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\">Port</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\">PromoteGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\">ReadStorageObjectsAsync</a>(ISession session, IApiReadStorageObjectId[] ids=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\">ReceivedSessionUpdated</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\">RpcAsync</a>(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\">RpcAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\">RpcAsync</a>(string httpkey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\">RpcAsync</a>(string httpkey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\">Scheme</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\">ServerKey</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\">SessionLogoutAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\">SessionLogoutAsync</a>(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\">SessionRefreshAsync</a>(ISession session, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\">Timeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\">UnlinkAppleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\">UnlinkCustomAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\">UnlinkDeviceAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\">UnlinkEmailAsync</a>(ISession session, string email, string password, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\">UnlinkFacebookAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\">UnlinkGameCenterAsync</a>(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\">UnlinkGoogleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\">UnlinkSteamAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\">UpdateAccountAsync</a>(ISession session, string username, string displayName=null, string avatarUrl=null, string langTag=null, string location=null, string timezone=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\">UpdateGroupAsync</a>(ISession session, string groupId, string name, bool open, string description=null, string avatarUrl=null, string langTag=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\">ValidatePurchaseAppleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\">ValidatePurchaseFacebookInstantAsync</a>(ISession session, string signedRequest, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\">ValidatePurchaseGoogleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\">ValidatePurchaseHuaweiAsync</a>(ISession session, string receipt, string signature, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\">ValidateSubscriptionAppleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\">ValidateSubscriptionGoogleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\">WriteLeaderboardRecordAsync</a>(ISession session, string leaderboardId, long score, long subScore=0, string metadata=null, ApiOperator apiOperator=ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\">WriteStorageObjectsAsync</a>(ISession session, IApiWriteStorageObject[] objects=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\">WriteTournamentRecordAsync</a>(ISession session, string tournamentId, long score, long subScore=0, string metadata=null, ApiOperator apiOperator=ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Nakama.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_client.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Client Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_client.html','','class_nakama_1_1_client-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Client Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p> \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Client:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_client.png\" usemap=\"#Nakama_2EClient_map\" alt=\"\"/>\n  <map id=\"Nakama_2EClient_map\" name=\"Nakama_2EClient_map\">\n<area href=\"interface_nakama_1_1_i_client.html\" title=\"A client for the API in Nakama server.\" alt=\"Nakama.IClient\" shape=\"rect\" coords=\"0,0,96,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a5158082c303c41499cd7e31e4834cb59\" id=\"r_a5158082c303c41499cd7e31e4834cb59\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5158082c303c41499cd7e31e4834cb59\">Client</a> (string serverKey)</td></tr>\n<tr class=\"memitem:a86b0693fa59c2083725ed015b4bcc460\" id=\"r_a86b0693fa59c2083725ed015b4bcc460\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a86b0693fa59c2083725ed015b4bcc460\">Client</a> (string serverKey, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a> adapter)</td></tr>\n<tr class=\"memitem:a053ab2c59dedc46d1fb3f34f7b10e9d6\" id=\"r_a053ab2c59dedc46d1fb3f34f7b10e9d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a053ab2c59dedc46d1fb3f34f7b10e9d6\">Client</a> (string scheme, string host, int port, string serverKey)</td></tr>\n<tr class=\"memitem:a547987248989d14b05cc7760034fc711\" id=\"r_a547987248989d14b05cc7760034fc711\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a547987248989d14b05cc7760034fc711\">Client</a> (string scheme, string host, int port, string serverKey, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a> adapter, bool autoRefreshSession=true)</td></tr>\n<tr class=\"memitem:ab36fa5c0c9ea2a99f8afa1d8b6d26b04\" id=\"r_ab36fa5c0c9ea2a99f8afa1d8b6d26b04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\">Client</a> (Uri uri, string serverKey)</td></tr>\n<tr class=\"memitem:a869bb89ffb168e3e4134a8d7955e4830\" id=\"r_a869bb89ffb168e3e4134a8d7955e4830\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a869bb89ffb168e3e4134a8d7955e4830\">Client</a> (Uri uri, string serverKey, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a> adapter, bool autoRefreshSession=true)</td></tr>\n<tr class=\"memitem:a2c2aa0509927ec99a260681056ffc0d0\" id=\"r_a2c2aa0509927ec99a260681056ffc0d0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2c2aa0509927ec99a260681056ffc0d0\">AddFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, string metadata=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2c2aa0509927ec99a260681056ffc0d0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add one or more friends by id or username.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to add as friends.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>Optional metadata to add to the friendship edge.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a769d19ca9593f14fc8a3f91d1950f155\" id=\"r_a769d19ca9593f14fc8a3f91d1950f155\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a769d19ca9593f14fc8a3f91d1950f155\">AddGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a769d19ca9593f14fc8a3f91d1950f155\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add one or more users to the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The id of the group to add users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite to the group.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ae30e21d72b2f12cdb23d03994e6dfd35\" id=\"r_ae30e21d72b2f12cdb23d03994e6dfd35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae30e21d72b2f12cdb23d03994e6dfd35\">AuthenticateAppleAsync</a> (string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae30e21d72b2f12cdb23d03994e6dfd35\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with an Apple ID against the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aecf7fd6a4745f23d3e411b3911ef7b8d\" id=\"r_aecf7fd6a4745f23d3e411b3911ef7b8d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aecf7fd6a4745f23d3e411b3911ef7b8d\">AuthenticateCustomAsync</a> (string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aecf7fd6a4745f23d3e411b3911ef7b8d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a custom id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afe268da1eb4063933420c27ac8ce6bfe\" id=\"r_afe268da1eb4063933420c27ac8ce6bfe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe268da1eb4063933420c27ac8ce6bfe\">AuthenticateDeviceAsync</a> (string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:afe268da1eb4063933420c27ac8ce6bfe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a device id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a40bb677a0c6360f6402850720de573a6\" id=\"r_a40bb677a0c6360f6402850720de573a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a40bb677a0c6360f6402850720de573a6\">AuthenticateEmailAsync</a> (string email, string password, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a40bb677a0c6360f6402850720de573a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with an email and password.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8965dfabd8ea716c3b119fb57b93d499\" id=\"r_a8965dfabd8ea716c3b119fb57b93d499\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8965dfabd8ea716c3b119fb57b93d499\">AuthenticateFacebookAsync</a> (string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8965dfabd8ea716c3b119fb57b93d499\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Facebook auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a275feb7d3de0a6b85741f463645fad3f\" id=\"r_a275feb7d3de0a6b85741f463645fad3f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a275feb7d3de0a6b85741f463645fad3f\">AuthenticateGameCenterAsync</a> (string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a275feb7d3de0a6b85741f463645fad3f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with Apple Game Center.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle id of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player id of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a09315e1b205b1b94074f4137e6be9f00\" id=\"r_a09315e1b205b1b94074f4137e6be9f00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a09315e1b205b1b94074f4137e6be9f00\">AuthenticateGoogleAsync</a> (string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a09315e1b205b1b94074f4137e6be9f00\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Google auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2e075e4cf4c522e3de378a855dc34899\" id=\"r_a2e075e4cf4c522e3de378a855dc34899\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2e075e4cf4c522e3de378a855dc34899\">AuthenticateSteamAsync</a> (string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2e075e4cf4c522e3de378a855dc34899\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Steam auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:af3738338a0465f5bb312b8c8ea9a5cf1\" id=\"r_af3738338a0465f5bb312b8c8ea9a5cf1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af3738338a0465f5bb312b8c8ea9a5cf1\">BanGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af3738338a0465f5bb312b8c8ea9a5cf1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ban a set of users from a group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group to ban the users from.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to ban.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac0dc24ed36ac130f370fe7e9d47a109a\" id=\"r_ac0dc24ed36ac130f370fe7e9d47a109a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0dc24ed36ac130f370fe7e9d47a109a\">BlockFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac0dc24ed36ac130f370fe7e9d47a109a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Block one or more friends by id or username.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to block.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to block.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad74fadcf61eebd9cb089641775671798\" id=\"r_ad74fadcf61eebd9cb089641775671798\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad74fadcf61eebd9cb089641775671798\">CreateGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name, string description=&quot;&quot;, string avatarUrl=null, string langTag=null, bool open=true, int maxCount=100, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad74fadcf61eebd9cb089641775671798\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name for the group.</td></tr>\n    <tr><td class=\"paramname\">description</td><td>A description for the group.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>An avatar url for the group.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A language tag in BCP-47 format for the group.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>If the group should have open membership.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of members allowed.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new group object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a1a6889f635581df903db628b0b6edab5\" id=\"r_a1a6889f635581df903db628b0b6edab5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1a6889f635581df903db628b0b6edab5\">DeleteAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1a6889f635581df903db628b0b6edab5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the current user's account. Note that this will invalidate your session, requiring you to reauthenticate.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a638d387931e416f96e3355dbcc9dd95d\" id=\"r_a638d387931e416f96e3355dbcc9dd95d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a638d387931e416f96e3355dbcc9dd95d\">DeleteFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a638d387931e416f96e3355dbcc9dd95d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one more or users by id or username from friends.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The user ids to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ab2c13e106e4abaad160c025fd4b171f5\" id=\"r_ab2c13e106e4abaad160c025fd4b171f5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab2c13e106e4abaad160c025fd4b171f5\">DeleteGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ab2c13e106e4abaad160c025fd4b171f5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a group by id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group id to to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a4c3aa998092d7fd8d4a5e57eac1adc7a\" id=\"r_a4c3aa998092d7fd8d4a5e57eac1adc7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4c3aa998092d7fd8d4a5e57eac1adc7a\">DeleteLeaderboardRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a4c3aa998092d7fd8d4a5e57eac1adc7a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a leaderboard record.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The id of the leaderboard with the record to be deleted.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aaca81a7fc8183e44c7f6e10071d9a456\" id=\"r_aaca81a7fc8183e44c7f6e10071d9a456\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaca81a7fc8183e44c7f6e10071d9a456\">DeleteNotificationsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aaca81a7fc8183e44c7f6e10071d9a456\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one or more notifications by id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The notification ids to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a745a2c98d488d19c2abad03aa914f97b\" id=\"r_a745a2c98d488d19c2abad03aa914f97b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a745a2c98d488d19c2abad03aa914f97b\">DeleteStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a>[] ids=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a745a2c98d488d19c2abad03aa914f97b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one or more storage objects.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the objects to delete.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aba74817698adc4b1692eb6766b792c0b\" id=\"r_aba74817698adc4b1692eb6766b792c0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aba74817698adc4b1692eb6766b792c0b\">DeleteTournamentRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aba74817698adc4b1692eb6766b792c0b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the user's tournament record.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The id of the tournament to delete from.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:acc21379975775bac5077abf0ef956fab\" id=\"r_acc21379975775bac5077abf0ef956fab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc21379975775bac5077abf0ef956fab\">DemoteGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; usernames, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:acc21379975775bac5077abf0ef956fab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Demote a set of users in a group to the next role down. </p><dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">groupId</td><td>The group to demote users in.</td></tr>\n    <tr><td class=\"paramname\">userIds</td><td>The users to demote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\nMembers who are already at the lowest rank will be skipped.  <br /></td></tr>\n<tr class=\"memitem:a50215658d4619df72a664d635a0aefe6\" id=\"r_a50215658d4619df72a664d635a0aefe6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a50215658d4619df72a664d635a0aefe6\">EventAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name, Dictionary&lt; string, string &gt; properties, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a50215658d4619df72a664d635a0aefe6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Submit an event for processing in the server's registered runtime custom events handler.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the event.</td></tr>\n    <tr><td class=\"paramname\">properties</td><td>The properties of the event.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8333b61102e6af80cdaa17b8c79d9825\" id=\"r_a8333b61102e6af80cdaa17b8c79d9825\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8333b61102e6af80cdaa17b8c79d9825\">GetAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8333b61102e6af80cdaa17b8c79d9825\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the account object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6632bd7f63f6c739cc587bb6a5d88f31\" id=\"r_a6632bd7f63f6c739cc587bb6a5d88f31\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6632bd7f63f6c739cc587bb6a5d88f31\">GetSubscriptionAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string productId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6632bd7f63f6c739cc587bb6a5d88f31\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get the subscription represented by the provided product id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">productId</td><td>The product id.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ae8a6ed442cf4d4fe757b8af4ccf0f697\" id=\"r_ae8a6ed442cf4d4fe757b8af4ccf0f697\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae8a6ed442cf4d4fe757b8af4ccf0f697\">GetUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, IEnumerable&lt; string &gt; facebookIds=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae8a6ed442cf4d4fe757b8af4ccf0f697\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch one or more users by id, usernames, and Facebook ids.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">facebookIds</td><td>The facebook IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a collection of user objects.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ae22e0fb5972e5a4d2b52aaa82045a271\" id=\"r_ae22e0fb5972e5a4d2b52aaa82045a271\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae22e0fb5972e5a4d2b52aaa82045a271\">ImportFacebookFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? reset=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae22e0fb5972e5a4d2b52aaa82045a271\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Import Facebook friends and add them to the user's account.The server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation.   <br /></td></tr>\n<tr class=\"memitem:aff3b742f37107b47f31d4a93020239d0\" id=\"r_aff3b742f37107b47f31d4a93020239d0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aff3b742f37107b47f31d4a93020239d0\">ImportSteamFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? reset=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aff3b742f37107b47f31d4a93020239d0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Import Steam friends and add them to the user's account.The server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation.   <br /></td></tr>\n<tr class=\"memitem:a9e10ec43011fa4aaf3ad1d389da1ea2b\" id=\"r_a9e10ec43011fa4aaf3ad1d389da1ea2b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e10ec43011fa4aaf3ad1d389da1ea2b\">JoinGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a9e10ec43011fa4aaf3ad1d389da1ea2b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a group if it has open membership or request to join it.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a5cc312ccc276515a2643ef173e398641\" id=\"r_a5cc312ccc276515a2643ef173e398641\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5cc312ccc276515a2643ef173e398641\">JoinTournamentAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a5cc312ccc276515a2643ef173e398641\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a tournament by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8d40ee6b5c3a92ebcab8701ed7ff9505\" id=\"r_a8d40ee6b5c3a92ebcab8701ed7ff9505\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8d40ee6b5c3a92ebcab8701ed7ff9505\">KickGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8d40ee6b5c3a92ebcab8701ed7ff9505\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick one or more users from the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to kick.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aff050ee2645b7b3a239a40c6ce357c24\" id=\"r_aff050ee2645b7b3a239a40c6ce357c24\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aff050ee2645b7b3a239a40c6ce357c24\">LeaveGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aff050ee2645b7b3a239a40c6ce357c24\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a group by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to leave.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a9979bf574bdb33a716ac56b51eca6758\" id=\"r_a9979bf574bdb33a716ac56b51eca6758\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9979bf574bdb33a716ac56b51eca6758\">LinkAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a9979bf574bdb33a716ac56b51eca6758\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link an Apple ID to the social profiles on the current user's account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac4845e6a960a43d8ead44c2cb2d2fb00\" id=\"r_ac4845e6a960a43d8ead44c2cb2d2fb00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac4845e6a960a43d8ead44c2cb2d2fb00\">LinkCustomAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac4845e6a960a43d8ead44c2cb2d2fb00\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a custom ID to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aad4baf992848d4029adcbb4ce964bb2e\" id=\"r_aad4baf992848d4029adcbb4ce964bb2e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aad4baf992848d4029adcbb4ce964bb2e\">LinkDeviceAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aad4baf992848d4029adcbb4ce964bb2e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a device ID to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aadee51567a81169984fd146111f237db\" id=\"r_aadee51567a81169984fd146111f237db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aadee51567a81169984fd146111f237db\">LinkEmailAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string email, string password, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aadee51567a81169984fd146111f237db\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link an email with password to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac81c5d3cf0fcf05f3c482ceec63c17e8\" id=\"r_ac81c5d3cf0fcf05f3c482ceec63c17e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac81c5d3cf0fcf05f3c482ceec63c17e8\">LinkFacebookAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? import=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac81c5d3cf0fcf05f3c482ceec63c17e8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Facebook profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a655ce991784045167e7b470b421788fa\" id=\"r_a655ce991784045167e7b470b421788fa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a655ce991784045167e7b470b421788fa\">LinkGameCenterAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a655ce991784045167e7b470b421788fa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Game Center profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a0f4fe2298df0fa8b4ac5a14dbbfce74b\" id=\"r_a0f4fe2298df0fa8b4ac5a14dbbfce74b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">LinkGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a0f4fe2298df0fa8b4ac5a14dbbfce74b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Google profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a53f8adbc758568e7b70653cbfc33eeec\" id=\"r_a53f8adbc758568e7b70653cbfc33eeec\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a53f8adbc758568e7b70653cbfc33eeec\">LinkSteamAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool sync, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a53f8adbc758568e7b70653cbfc33eeec\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Steam profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a5915e1dd4090b1f58f9295361b58016b\" id=\"r_a5915e1dd4090b1f58f9295361b58016b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5915e1dd4090b1f58f9295361b58016b\">ListChannelMessagesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, int limit=1, bool forward=true, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a5915e1dd4090b1f58f9295361b58016b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List messages from a chat channel.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channel</td><td>The chat channel object.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afda758a691879a09e10e7689a871a781\" id=\"r_afda758a691879a09e10e7689a871a781\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afda758a691879a09e10e7689a871a781\">ListChannelMessagesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string channelId, int limit=1, bool forward=true, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:afda758a691879a09e10e7689a871a781\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List messages from a chat channel.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channelId</td><td>A channel identifier.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a1258302f25c2441cd419460a21aa3756\" id=\"r_a1258302f25c2441cd419460a21aa3756\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1258302f25c2441cd419460a21aa3756\">ListFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int? state, int limit, string cursor, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1258302f25c2441cd419460a21aa3756\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of friends of the current user.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by friendship state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of friends to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the friends list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the friend objects.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a80306a00533b136b52cd6aff74db3e90\" id=\"r_a80306a00533b136b52cd6aff74db3e90\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a80306a00533b136b52cd6aff74db3e90\">ListGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, int? state, int limit, string cursor, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:a052addd5b095f2c4d2b2d38dfc8e993f\" id=\"r_a052addd5b095f2c4d2b2d38dfc8e993f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a052addd5b095f2c4d2b2d38dfc8e993f\">ListGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name=null, int limit=1, string cursor=null, string langTag=null, int? members=null, bool? open=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a052addd5b095f2c4d2b2d38dfc8e993f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List groups on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of groups to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the groups to list.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">members</td><td>The number of group members filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>The open/closed filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve group objects.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ab0157c7184c86a9e6cbaae2ae720adf1\" id=\"r_ab0157c7184c86a9e6cbaae2ae720adf1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0157c7184c86a9e6cbaae2ae720adf1\">ListLeaderboardRecordsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:aa04a0875a781b0edc1818e07239a078e\" id=\"r_aa04a0875a781b0edc1818e07239a078e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa04a0875a781b0edc1818e07239a078e\">ListLeaderboardRecordsAroundOwnerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, string ownerId, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:ad169be18d357b3b57067abf62e063310\" id=\"r_ad169be18d357b3b57067abf62e063310\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad169be18d357b3b57067abf62e063310\">ListMatchesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int min, int max, int limit, bool authoritative, string label, string query, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad169be18d357b3b57067abf62e063310\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch a list of matches active on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">min</td><td>The minimum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">max</td><td>The maximum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of matches to list.</td></tr>\n    <tr><td class=\"paramname\">authoritative</td><td>If authoritative matches should be included.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>The label to filter the match list on.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>A query for the matches to filter.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the match list object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:acde199dc46bdceabea904a44477cd284\" id=\"r_acde199dc46bdceabea904a44477cd284\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acde199dc46bdceabea904a44477cd284\">ListNotificationsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit=1, string cacheableCursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:af63f8ffa4aca4a2ee80d99cb36ffe2a6\" id=\"r_af63f8ffa4aca4a2ee80d99cb36ffe2a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">ListPartiesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit, bool? open, string query=null, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af63f8ffa4aca4a2ee80d99cb36ffe2a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List advertised parties and optionally filter them by label.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>Optionally filter by party open status.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Optionally provide a query to filter via custom party labels.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to fetch the next page of results, if any.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the party object list.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a90db3c9a4f3994fc1616bc702a2584e1\" id=\"r_a90db3c9a4f3994fc1616bc702a2584e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a90db3c9a4f3994fc1616bc702a2584e1\">ListStorageObjects</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:a35c013a31537eea2ff7fe2239f5623e9\" id=\"r_a35c013a31537eea2ff7fe2239f5623e9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35c013a31537eea2ff7fe2239f5623e9\">ListStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a35c013a31537eea2ff7fe2239f5623e9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List storage objects in a collection which have public read access.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list. Maximum 100.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection. May be null.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a1ef58ab10a34f892086c7905ecb90270\" id=\"r_a1ef58ab10a34f892086c7905ecb90270\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1ef58ab10a34f892086c7905ecb90270\">ListStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, string userId=&quot;&quot;, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:a66425250e7fb827cc677da4732290329\" id=\"r_a66425250e7fb827cc677da4732290329\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a66425250e7fb827cc677da4732290329\">ListSubscriptionsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a66425250e7fb827cc677da4732290329\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List the user's subscriptions.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of subscriptions to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of subscriptions.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription list.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ab69ecb2fb4ffa8dea78392719ae08e65\" id=\"r_ab69ecb2fb4ffa8dea78392719ae08e65\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab69ecb2fb4ffa8dea78392719ae08e65\">ListTournamentRecordsAroundOwnerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, string ownerId, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:aa994ad73bfce3f829e041505fb54e119\" id=\"r_aa994ad73bfce3f829e041505fb54e119\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa994ad73bfce3f829e041505fb54e119\">ListTournamentRecordsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:a4e64d250674e061e2304bdf2e4fe4342\" id=\"r_a4e64d250674e061e2304bdf2e4fe4342\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4e64d250674e061e2304bdf2e4fe4342\">ListTournamentsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int categoryStart, int categoryEnd, int? startTime=null, int? endTime=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a4e64d250674e061e2304bdf2e4fe4342\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List current or upcoming tournaments.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">categoryStart</td><td>The start of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">categoryEnd</td><td>The end of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">startTime</td><td>The start time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by start time.</td></tr>\n    <tr><td class=\"paramname\">endTime</td><td>The end time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by end time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of tournaments to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of tournaments.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the list of tournament objects.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afb7774654804a171c8a602f3406466a1\" id=\"r_afb7774654804a171c8a602f3406466a1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afb7774654804a171c8a602f3406466a1\">ListUserGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int? state, int limit, string cursor, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:afb7774654804a171c8a602f3406466a1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of groups the current user is a member of.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6dbbdc5225f9e64e576ad171003bbda8\" id=\"r_a6dbbdc5225f9e64e576ad171003bbda8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6dbbdc5225f9e64e576ad171003bbda8\">ListUserGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string userId, int? state, int limit, string cursor, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6dbbdc5225f9e64e576ad171003bbda8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List groups a user is a member of.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The ID of the user whose groups to list.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a90c1f81c4e27cc664f16dcad793a6381\" id=\"r_a90c1f81c4e27cc664f16dcad793a6381\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a90c1f81c4e27cc664f16dcad793a6381\">ListUsersStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, string userId, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a90c1f81c4e27cc664f16dcad793a6381\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List storage objects in a collection which belong to a specific user and have public read access.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The user ID of the user to list objects for.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a703f15655bec3592a25827f78715ecda\" id=\"r_a703f15655bec3592a25827f78715ecda\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a703f15655bec3592a25827f78715ecda\">PromoteGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a703f15655bec3592a25827f78715ecda\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote one or more users in the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to promote users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to promote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2dd9eb134b2aabf3df838aa0c15cb715\" id=\"r_a2dd9eb134b2aabf3df838aa0c15cb715\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2dd9eb134b2aabf3df838aa0c15cb715\">ReadStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a>[] ids=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2dd9eb134b2aabf3df838aa0c15cb715\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Read one or more objects from the storage engine.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The objects to read.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage batch object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a662403d6079acb66a0c8acb71e87b24d\" id=\"r_a662403d6079acb66a0c8acb71e87b24d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a662403d6079acb66a0c8acb71e87b24d\">RpcAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, string payload, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a662403d6079acb66a0c8acb71e87b24d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function with an input payload on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>The payload to send with the function call.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ae7903e1c260db27a9325f542410dffb1\" id=\"r_ae7903e1c260db27a9325f542410dffb1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae7903e1c260db27a9325f542410dffb1\">RpcAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae7903e1c260db27a9325f542410dffb1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac3e801102a384357b4f77c34aa518416\" id=\"r_ac3e801102a384357b4f77c34aa518416\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3e801102a384357b4f77c34aa518416\">RpcAsync</a> (string httpkey, string id, string payload, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac3e801102a384357b4f77c34aa518416\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server without a session.This function is usually used with server side code. DO NOT USE client side.   <br /></td></tr>\n<tr class=\"memitem:accc4af743509eb1a72bf890e60b7b3de\" id=\"r_accc4af743509eb1a72bf890e60b7b3de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#accc4af743509eb1a72bf890e60b7b3de\">RpcAsync</a> (string httpkey, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:accc4af743509eb1a72bf890e60b7b3de\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server without a session.This function is usually used with server side code. DO NOT USE client side.   <br /></td></tr>\n<tr class=\"memitem:a3cf4591ab80d069ec55b8021bb51c730\" id=\"r_a3cf4591ab80d069ec55b8021bb51c730\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3cf4591ab80d069ec55b8021bb51c730\">SessionLogoutAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3cf4591ab80d069ec55b8021bb51c730\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session which invalidates the authorization and refresh token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session to logout.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6e965270a90777b5aab3f3b4c7ba2374\" id=\"r_a6e965270a90777b5aab3f3b4c7ba2374\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6e965270a90777b5aab3f3b4c7ba2374\">SessionLogoutAsync</a> (string authToken, string refreshToken, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6e965270a90777b5aab3f3b4c7ba2374\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session which optionally invalidates the authorization and/or refresh tokens.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a54ddec21945530369fca30e9306efe5d\" id=\"r_a54ddec21945530369fca30e9306efe5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a54ddec21945530369fca30e9306efe5d\">SessionRefreshAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a54ddec21945530369fca30e9306efe5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information which should be bundled inside the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ae1aeb5b30fed94af008058803b5bd352\" id=\"r_ae1aeb5b30fed94af008058803b5bd352\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae1aeb5b30fed94af008058803b5bd352\">ToString</a> ()</td></tr>\n<tr class=\"memitem:adf62218ff4074ee7847260fb69f7a40e\" id=\"r_adf62218ff4074ee7847260fb69f7a40e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adf62218ff4074ee7847260fb69f7a40e\">UnlinkAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:adf62218ff4074ee7847260fb69f7a40e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the Apple ID from the social profiles on the current user's account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:adb85bd4e511e508ef6858b103aa31523\" id=\"r_adb85bd4e511e508ef6858b103aa31523\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adb85bd4e511e508ef6858b103aa31523\">UnlinkCustomAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:adb85bd4e511e508ef6858b103aa31523\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a custom ID from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a04f2596af7c5ffde9353981faed6443d\" id=\"r_a04f2596af7c5ffde9353981faed6443d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a04f2596af7c5ffde9353981faed6443d\">UnlinkDeviceAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a04f2596af7c5ffde9353981faed6443d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a device ID from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a93428352ac3edb3e35d00afe0e108f5d\" id=\"r_a93428352ac3edb3e35d00afe0e108f5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a93428352ac3edb3e35d00afe0e108f5d\">UnlinkEmailAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string email, string password, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a93428352ac3edb3e35d00afe0e108f5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink an email with password from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a116b79c31bc4bf94f0b037e6ecb33fc1\" id=\"r_a116b79c31bc4bf94f0b037e6ecb33fc1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a116b79c31bc4bf94f0b037e6ecb33fc1\">UnlinkFacebookAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a116b79c31bc4bf94f0b037e6ecb33fc1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Facebook profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:adb1615cbce3978b43928c6dc1641fcd9\" id=\"r_adb1615cbce3978b43928c6dc1641fcd9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adb1615cbce3978b43928c6dc1641fcd9\">UnlinkGameCenterAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:adb1615cbce3978b43928c6dc1641fcd9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Game Center profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad30a4f27ec44259a72fb7ecd55b855cc\" id=\"r_ad30a4f27ec44259a72fb7ecd55b855cc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad30a4f27ec44259a72fb7ecd55b855cc\">UnlinkGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad30a4f27ec44259a72fb7ecd55b855cc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Google profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aa7cf34d32c3bd2dd89224491dd03627a\" id=\"r_aa7cf34d32c3bd2dd89224491dd03627a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa7cf34d32c3bd2dd89224491dd03627a\">UnlinkSteamAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aa7cf34d32c3bd2dd89224491dd03627a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Steam profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a493aaa96074ed53faae99041c1ff71e7\" id=\"r_a493aaa96074ed53faae99041c1ff71e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a493aaa96074ed53faae99041c1ff71e7\">UpdateAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string username, string displayName=null, string avatarUrl=null, string langTag=null, string location=null, string timezone=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:ae4721e57aa314b32152069e2644eb02b\" id=\"r_ae4721e57aa314b32152069e2644eb02b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae4721e57aa314b32152069e2644eb02b\">UpdateGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, string name, bool open, string description=null, string avatarUrl=null, string langTag=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae4721e57aa314b32152069e2644eb02b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a group.The user must have the correct access permissions for the group.   <br /></td></tr>\n<tr class=\"memitem:a03a03e289c71ee9a21c6dc03241bd846\" id=\"r_a03a03e289c71ee9a21c6dc03241bd846\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a03a03e289c71ee9a21c6dc03241bd846\">ValidatePurchaseAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a03a03e289c71ee9a21c6dc03241bd846\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Apple App Store.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8badc57f270e3324fccb046a58b7c8a9\" id=\"r_a8badc57f270e3324fccb046a58b7c8a9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8badc57f270e3324fccb046a58b7c8a9\">ValidatePurchaseFacebookInstantAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string signedRequest, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8badc57f270e3324fccb046a58b7c8a9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against Facebook Instant Games.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">signedRequest</td><td>Base64 encoded Facebook Instant receipt data payload.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a08e6406e21fd5fc52ee905b586210276\" id=\"r_a08e6406e21fd5fc52ee905b586210276\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a08e6406e21fd5fc52ee905b586210276\">ValidatePurchaseGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a08e6406e21fd5fc52ee905b586210276\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Google Play Store.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a7d49b887e6d302f68917162a0567ad66\" id=\"r_a7d49b887e6d302f68917162a0567ad66\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7d49b887e6d302f68917162a0567ad66\">ValidatePurchaseHuaweiAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, string signature, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a7d49b887e6d302f68917162a0567ad66\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Huawei AppGallery.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The signature of the purchase receipt.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a63b6bc07335627f58236ba0c9997336f\" id=\"r_a63b6bc07335627f58236ba0c9997336f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a63b6bc07335627f58236ba0c9997336f\">ValidateSubscriptionAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a63b6bc07335627f58236ba0c9997336f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate an Apple subscription receipt.  <br /></td></tr>\n<tr class=\"memitem:a30b942db8e51709901e60c6a5d26c5bb\" id=\"r_a30b942db8e51709901e60c6a5d26c5bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a30b942db8e51709901e60c6a5d26c5bb\">ValidateSubscriptionGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a30b942db8e51709901e60c6a5d26c5bb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a Google subscription receipt.  <br /></td></tr>\n<tr class=\"memitem:a6b44990352ecbf4c847b29ac715014fb\" id=\"r_a6b44990352ecbf4c847b29ac715014fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6b44990352ecbf4c847b29ac715014fb\">WriteLeaderboardRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, long score, long subScore=0, string metadata=null, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> apiOperator=<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a>, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6b44990352ecbf4c847b29ac715014fb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a record to a leaderboard.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the leaderboard. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad2d4bb27d5340afb6be824a2bc2e7815\" id=\"r_ad2d4bb27d5340afb6be824a2bc2e7815\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad2d4bb27d5340afb6be824a2bc2e7815\">WriteStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a>[] objects=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad2d4bb27d5340afb6be824a2bc2e7815\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write objects to the storage engine.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">objects</td><td>The objects to write.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage write acknowledgements.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:af0b988b7a04b78b7aac805dc502ff52d\" id=\"r_af0b988b7a04b78b7aac805dc502ff52d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af0b988b7a04b78b7aac805dc502ff52d\">WriteTournamentRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, long score, long subScore=0, string metadata=null, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> apiOperator=<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a>, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af0b988b7a04b78b7aac805dc502ff52d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a record to a tournament.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score of the tournament record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the tournament. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the tournament record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-attribs\" class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:adfd3245cf5d85e2f66518dbcbcc88d35\" id=\"r_adfd3245cf5d85e2f66518dbcbcc88d35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adfd3245cf5d85e2f66518dbcbcc88d35\">DefaultHost</a> = &quot;127.0.0.1&quot;</td></tr>\n<tr class=\"memdesc:adfd3245cf5d85e2f66518dbcbcc88d35\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default host address of the server.  <br /></td></tr>\n<tr class=\"memitem:a339d6ad5a6a8571aa36bc3fac5bde493\" id=\"r_a339d6ad5a6a8571aa36bc3fac5bde493\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a339d6ad5a6a8571aa36bc3fac5bde493\">DefaultScheme</a> = &quot;http&quot;</td></tr>\n<tr class=\"memdesc:a339d6ad5a6a8571aa36bc3fac5bde493\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default protocol scheme for the socket connection.  <br /></td></tr>\n<tr class=\"memitem:ae484d126d47ce2306242951d21e35756\" id=\"r_ae484d126d47ce2306242951d21e35756\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae484d126d47ce2306242951d21e35756\">DefaultPort</a> = 7350</td></tr>\n<tr class=\"memdesc:ae484d126d47ce2306242951d21e35756\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default port number of the server.  <br /></td></tr>\n<tr class=\"memitem:a3e646cbc75def08c741b231588f2a621\" id=\"r_a3e646cbc75def08c741b231588f2a621\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static TimeSpan&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3e646cbc75def08c741b231588f2a621\">DefaultExpiredTimeSpan</a> = TimeSpan.FromMinutes(5)</td></tr>\n<tr class=\"memdesc:a3e646cbc75def08c741b231588f2a621\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default expired timespan used to check session lifetime.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2abea8492c53d4579c14eb4ae5327610\" id=\"r_a2abea8492c53d4579c14eb4ae5327610\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2abea8492c53d4579c14eb4ae5327610\">AutoRefreshSession</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2abea8492c53d4579c14eb4ae5327610\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the session should be refreshed with an active refresh token.  <br /></td></tr>\n<tr class=\"memitem:a4e84dc06e439ead1dcdc918350b93ed8\" id=\"r_a4e84dc06e439ead1dcdc918350b93ed8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4e84dc06e439ead1dcdc918350b93ed8\">GlobalRetryConfiguration</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a4e84dc06e439ead1dcdc918350b93ed8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The global retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>.  <br /></td></tr>\n<tr class=\"memitem:aacad034c2d21b970537423de0ba27e4f\" id=\"r_aacad034c2d21b970537423de0ba27e4f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aacad034c2d21b970537423de0ba27e4f\">Host</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aacad034c2d21b970537423de0ba27e4f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The host address of the server. Defaults to \"127.0.0.1\".  <br /></td></tr>\n<tr class=\"memitem:ac88ab4b97d244c62ffc0e2710f69a651\" id=\"r_ac88ab4b97d244c62ffc0e2710f69a651\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac88ab4b97d244c62ffc0e2710f69a651\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ac88ab4b97d244c62ffc0e2710f69a651\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the client.  <br /></td></tr>\n<tr class=\"memitem:aa59309ff4ed7172795782cd69cb295d8\" id=\"r_aa59309ff4ed7172795782cd69cb295d8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa59309ff4ed7172795782cd69cb295d8\">Port</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa59309ff4ed7172795782cd69cb295d8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The port number of the server. Defaults to 7350.  <br /></td></tr>\n<tr class=\"memitem:afaf274b5c7dc2b21931b7d6814f3d455\" id=\"r_afaf274b5c7dc2b21931b7d6814f3d455\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afaf274b5c7dc2b21931b7d6814f3d455\">Scheme</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afaf274b5c7dc2b21931b7d6814f3d455\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".  <br /></td></tr>\n<tr class=\"memitem:aa70b920781b70f74f0419d262043dbd1\" id=\"r_aa70b920781b70f74f0419d262043dbd1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa70b920781b70f74f0419d262043dbd1\">ServerKey</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa70b920781b70f74f0419d262043dbd1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key used to authenticate with the server without a session. Defaults to \"defaultkey\".  <br /></td></tr>\n<tr class=\"memitem:afa11ac790793b5178c423364cc1a1cd2\" id=\"r_afa11ac790793b5178c423364cc1a1cd2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afa11ac790793b5178c423364cc1a1cd2\">Timeout</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:afa11ac790793b5178c423364cc1a1cd2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Set the timeout in seconds on requests sent to the server.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a9dc5ecc3c4faaa26b8508a931a086217\" id=\"r_a9dc5ecc3c4faaa26b8508a931a086217\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9dc5ecc3c4faaa26b8508a931a086217\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"inherit_header events_interface_nakama_1_1_i_client\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_nakama_1_1_i_client')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td></tr>\n<tr class=\"memitem:a9d6c9e57b47566fe3b5184166786a30b inherit events_interface_nakama_1_1_i_client\" id=\"r_a9d6c9e57b47566fe3b5184166786a30b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"memdesc:a9d6c9e57b47566fe3b5184166786a30b inherit events_interface_nakama_1_1_i_client\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new session after the current one has expired.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"></div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a5158082c303c41499cd7e31e4834cb59\" name=\"a5158082c303c41499cd7e31e4834cb59\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5158082c303c41499cd7e31e4834cb59\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[1/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>There is a bug in Unity's WebGL implementation that prevents the proper invocation of constructors with more than four parameters. For this reason, avoid defining constructors that do this. </p>\n\n</div>\n</div>\n<a id=\"a86b0693fa59c2083725ed015b4bcc460\" name=\"a86b0693fa59c2083725ed015b4bcc460\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a86b0693fa59c2083725ed015b4bcc460\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[2/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a053ab2c59dedc46d1fb3f34f7b10e9d6\" name=\"a053ab2c59dedc46d1fb3f34f7b10e9d6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a053ab2c59dedc46d1fb3f34f7b10e9d6\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[3/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>scheme</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a547987248989d14b05cc7760034fc711\" name=\"a547987248989d14b05cc7760034fc711\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a547987248989d14b05cc7760034fc711\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[4/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>scheme</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>autoRefreshSession</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab36fa5c0c9ea2a99f8afa1d8b6d26b04\" name=\"ab36fa5c0c9ea2a99f8afa1d8b6d26b04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[5/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a869bb89ffb168e3e4134a8d7955e4830\" name=\"a869bb89ffb168e3e4134a8d7955e4830\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a869bb89ffb168e3e4134a8d7955e4830\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[6/6]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>serverKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>autoRefreshSession</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a2c2aa0509927ec99a260681056ffc0d0\" name=\"a2c2aa0509927ec99a260681056ffc0d0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2c2aa0509927ec99a260681056ffc0d0\">&#9670;&#160;</a></span>AddFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.AddFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Add one or more friends by id or username.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to add as friends.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>Optional metadata to add to the friendship edge.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a769d19ca9593f14fc8a3f91d1950f155\" name=\"a769d19ca9593f14fc8a3f91d1950f155\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a769d19ca9593f14fc8a3f91d1950f155\">&#9670;&#160;</a></span>AddGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.AddGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Add one or more users to the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The id of the group to add users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite to the group.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae30e21d72b2f12cdb23d03994e6dfd35\" name=\"ae30e21d72b2f12cdb23d03994e6dfd35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae30e21d72b2f12cdb23d03994e6dfd35\">&#9670;&#160;</a></span>AuthenticateAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with an Apple ID against the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aecf7fd6a4745f23d3e411b3911ef7b8d\" name=\"aecf7fd6a4745f23d3e411b3911ef7b8d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aecf7fd6a4745f23d3e411b3911ef7b8d\">&#9670;&#160;</a></span>AuthenticateCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a custom id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afe268da1eb4063933420c27ac8ce6bfe\" name=\"afe268da1eb4063933420c27ac8ce6bfe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe268da1eb4063933420c27ac8ce6bfe\">&#9670;&#160;</a></span>AuthenticateDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a device id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a40bb677a0c6360f6402850720de573a6\" name=\"a40bb677a0c6360f6402850720de573a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a40bb677a0c6360f6402850720de573a6\">&#9670;&#160;</a></span>AuthenticateEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with an email and password.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a8965dfabd8ea716c3b119fb57b93d499\" name=\"a8965dfabd8ea716c3b119fb57b93d499\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8965dfabd8ea716c3b119fb57b93d499\">&#9670;&#160;</a></span>AuthenticateFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Facebook auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a275feb7d3de0a6b85741f463645fad3f\" name=\"a275feb7d3de0a6b85741f463645fad3f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a275feb7d3de0a6b85741f463645fad3f\">&#9670;&#160;</a></span>AuthenticateGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with Apple Game Center.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle id of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player id of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a09315e1b205b1b94074f4137e6be9f00\" name=\"a09315e1b205b1b94074f4137e6be9f00\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a09315e1b205b1b94074f4137e6be9f00\">&#9670;&#160;</a></span>AuthenticateGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Google auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a2e075e4cf4c522e3de378a855dc34899\" name=\"a2e075e4cf4c522e3de378a855dc34899\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2e075e4cf4c522e3de378a855dc34899\">&#9670;&#160;</a></span>AuthenticateSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.AuthenticateSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Steam auth token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"af3738338a0465f5bb312b8c8ea9a5cf1\" name=\"af3738338a0465f5bb312b8c8ea9a5cf1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af3738338a0465f5bb312b8c8ea9a5cf1\">&#9670;&#160;</a></span>BanGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.BanGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Ban a set of users from a group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group to ban the users from.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to ban.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac0dc24ed36ac130f370fe7e9d47a109a\" name=\"ac0dc24ed36ac130f370fe7e9d47a109a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0dc24ed36ac130f370fe7e9d47a109a\">&#9670;&#160;</a></span>BlockFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.BlockFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Block one or more friends by id or username.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to block.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to block.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ad74fadcf61eebd9cb089641775671798\" name=\"ad74fadcf61eebd9cb089641775671798\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad74fadcf61eebd9cb089641775671798\">&#9670;&#160;</a></span>CreateGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> &gt; Nakama.Client.CreateGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>description</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;&quot;</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">100</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name for the group.</td></tr>\n    <tr><td class=\"paramname\">description</td><td>A description for the group.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>An avatar url for the group.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A language tag in BCP-47 format for the group.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>If the group should have open membership.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of members allowed.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new group object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a1a6889f635581df903db628b0b6edab5\" name=\"a1a6889f635581df903db628b0b6edab5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1a6889f635581df903db628b0b6edab5\">&#9670;&#160;</a></span>DeleteAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete the current user's account. Note that this will invalidate your session, requiring you to reauthenticate.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a638d387931e416f96e3355dbcc9dd95d\" name=\"a638d387931e416f96e3355dbcc9dd95d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a638d387931e416f96e3355dbcc9dd95d\">&#9670;&#160;</a></span>DeleteFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete one more or users by id or username from friends.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The user ids to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ab2c13e106e4abaad160c025fd4b171f5\" name=\"ab2c13e106e4abaad160c025fd4b171f5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab2c13e106e4abaad160c025fd4b171f5\">&#9670;&#160;</a></span>DeleteGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete a group by id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group id to to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a4c3aa998092d7fd8d4a5e57eac1adc7a\" name=\"a4c3aa998092d7fd8d4a5e57eac1adc7a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4c3aa998092d7fd8d4a5e57eac1adc7a\">&#9670;&#160;</a></span>DeleteLeaderboardRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteLeaderboardRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete a leaderboard record.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The id of the leaderboard with the record to be deleted.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aaca81a7fc8183e44c7f6e10071d9a456\" name=\"aaca81a7fc8183e44c7f6e10071d9a456\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaca81a7fc8183e44c7f6e10071d9a456\">&#9670;&#160;</a></span>DeleteNotificationsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteNotificationsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete one or more notifications by id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The notification ids to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a745a2c98d488d19c2abad03aa914f97b\" name=\"a745a2c98d488d19c2abad03aa914f97b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a745a2c98d488d19c2abad03aa914f97b\">&#9670;&#160;</a></span>DeleteStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete one or more storage objects.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the objects to delete.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aba74817698adc4b1692eb6766b792c0b\" name=\"aba74817698adc4b1692eb6766b792c0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aba74817698adc4b1692eb6766b792c0b\">&#9670;&#160;</a></span>DeleteTournamentRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DeleteTournamentRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete the user's tournament record.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The id of the tournament to delete from.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"acc21379975775bac5077abf0ef956fab\" name=\"acc21379975775bac5077abf0ef956fab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc21379975775bac5077abf0ef956fab\">&#9670;&#160;</a></span>DemoteGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.DemoteGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Demote a set of users in a group to the next role down. </p><dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">groupId</td><td>The group to demote users in.</td></tr>\n    <tr><td class=\"paramname\">userIds</td><td>The users to demote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\nMembers who are already at the lowest rank will be skipped. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a50215658d4619df72a664d635a0aefe6\" name=\"a50215658d4619df72a664d635a0aefe6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a50215658d4619df72a664d635a0aefe6\">&#9670;&#160;</a></span>EventAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.EventAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>properties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Submit an event for processing in the server's registered runtime custom events handler.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the event.</td></tr>\n    <tr><td class=\"paramname\">properties</td><td>The properties of the event.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a8333b61102e6af80cdaa17b8c79d9825\" name=\"a8333b61102e6af80cdaa17b8c79d9825\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8333b61102e6af80cdaa17b8c79d9825\">&#9670;&#160;</a></span>GetAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a> &gt; Nakama.Client.GetAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Fetch the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the account object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a6632bd7f63f6c739cc587bb6a5d88f31\" name=\"a6632bd7f63f6c739cc587bb6a5d88f31\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6632bd7f63f6c739cc587bb6a5d88f31\">&#9670;&#160;</a></span>GetSubscriptionAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> &gt; Nakama.Client.GetSubscriptionAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>productId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get the subscription represented by the provided product id.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">productId</td><td>The product id.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae8a6ed442cf4d4fe757b8af4ccf0f697\" name=\"ae8a6ed442cf4d4fe757b8af4ccf0f697\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae8a6ed442cf4d4fe757b8af4ccf0f697\">&#9670;&#160;</a></span>GetUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a> &gt; Nakama.Client.GetUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>facebookIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Fetch one or more users by id, usernames, and Facebook ids.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">facebookIds</td><td>The facebook IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a collection of user objects.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae22e0fb5972e5a4d2b52aaa82045a271\" name=\"ae22e0fb5972e5a4d2b52aaa82045a271\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae22e0fb5972e5a4d2b52aaa82045a271\">&#9670;&#160;</a></span>ImportFacebookFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.ImportFacebookFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reset</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Import Facebook friends and add them to the user's account.The server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aff3b742f37107b47f31d4a93020239d0\" name=\"aff3b742f37107b47f31d4a93020239d0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aff3b742f37107b47f31d4a93020239d0\">&#9670;&#160;</a></span>ImportSteamFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.ImportSteamFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reset</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Import Steam friends and add them to the user's account.The server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a9e10ec43011fa4aaf3ad1d389da1ea2b\" name=\"a9e10ec43011fa4aaf3ad1d389da1ea2b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e10ec43011fa4aaf3ad1d389da1ea2b\">&#9670;&#160;</a></span>JoinGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.JoinGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a group if it has open membership or request to join it.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a5cc312ccc276515a2643ef173e398641\" name=\"a5cc312ccc276515a2643ef173e398641\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5cc312ccc276515a2643ef173e398641\">&#9670;&#160;</a></span>JoinTournamentAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.JoinTournamentAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a tournament by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a8d40ee6b5c3a92ebcab8701ed7ff9505\" name=\"a8d40ee6b5c3a92ebcab8701ed7ff9505\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8d40ee6b5c3a92ebcab8701ed7ff9505\">&#9670;&#160;</a></span>KickGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.KickGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Kick one or more users from the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to kick.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aff050ee2645b7b3a239a40c6ce357c24\" name=\"aff050ee2645b7b3a239a40c6ce357c24\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aff050ee2645b7b3a239a40c6ce357c24\">&#9670;&#160;</a></span>LeaveGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LeaveGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Leave a group by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to leave.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a9979bf574bdb33a716ac56b51eca6758\" name=\"a9979bf574bdb33a716ac56b51eca6758\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9979bf574bdb33a716ac56b51eca6758\">&#9670;&#160;</a></span>LinkAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link an Apple ID to the social profiles on the current user's account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac4845e6a960a43d8ead44c2cb2d2fb00\" name=\"ac4845e6a960a43d8ead44c2cb2d2fb00\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac4845e6a960a43d8ead44c2cb2d2fb00\">&#9670;&#160;</a></span>LinkCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a custom ID to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aad4baf992848d4029adcbb4ce964bb2e\" name=\"aad4baf992848d4029adcbb4ce964bb2e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aad4baf992848d4029adcbb4ce964bb2e\">&#9670;&#160;</a></span>LinkDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a device ID to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aadee51567a81169984fd146111f237db\" name=\"aadee51567a81169984fd146111f237db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aadee51567a81169984fd146111f237db\">&#9670;&#160;</a></span>LinkEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link an email with password to the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac81c5d3cf0fcf05f3c482ceec63c17e8\" name=\"ac81c5d3cf0fcf05f3c482ceec63c17e8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac81c5d3cf0fcf05f3c482ceec63c17e8\">&#9670;&#160;</a></span>LinkFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a Facebook profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a655ce991784045167e7b470b421788fa\" name=\"a655ce991784045167e7b470b421788fa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a655ce991784045167e7b470b421788fa\">&#9670;&#160;</a></span>LinkGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a Game Center profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a0f4fe2298df0fa8b4ac5a14dbbfce74b\" name=\"a0f4fe2298df0fa8b4ac5a14dbbfce74b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">&#9670;&#160;</a></span>LinkGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a Google profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a53f8adbc758568e7b70653cbfc33eeec\" name=\"a53f8adbc758568e7b70653cbfc33eeec\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a53f8adbc758568e7b70653cbfc33eeec\">&#9670;&#160;</a></span>LinkSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.LinkSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sync</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Link a Steam profile to a user account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a5915e1dd4090b1f58f9295361b58016b\" name=\"a5915e1dd4090b1f58f9295361b58016b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5915e1dd4090b1f58f9295361b58016b\">&#9670;&#160;</a></span>ListChannelMessagesAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt; Nakama.Client.ListChannelMessagesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List messages from a chat channel.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channel</td><td>The chat channel object.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afda758a691879a09e10e7689a871a781\" name=\"afda758a691879a09e10e7689a871a781\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afda758a691879a09e10e7689a871a781\">&#9670;&#160;</a></span>ListChannelMessagesAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt; Nakama.Client.ListChannelMessagesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List messages from a chat channel.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channelId</td><td>A channel identifier.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a1258302f25c2441cd419460a21aa3756\" name=\"a1258302f25c2441cd419460a21aa3756\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1258302f25c2441cd419460a21aa3756\">&#9670;&#160;</a></span>ListFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a> &gt; Nakama.Client.ListFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List of friends of the current user.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by friendship state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of friends to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the friends list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the friend objects.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a052addd5b095f2c4d2b2d38dfc8e993f\" name=\"a052addd5b095f2c4d2b2d38dfc8e993f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a052addd5b095f2c4d2b2d38dfc8e993f\">&#9670;&#160;</a></span>ListGroupsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a> &gt; Nakama.Client.ListGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>members</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List groups on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of groups to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the groups to list.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">members</td><td>The number of group members filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>The open/closed filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve group objects.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a80306a00533b136b52cd6aff74db3e90\" name=\"a80306a00533b136b52cd6aff74db3e90\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a80306a00533b136b52cd6aff74db3e90\">&#9670;&#160;</a></span>ListGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a> &gt; Nakama.Client.ListGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List all users part of the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of groups to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the group listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group user objects.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\" title=\"A list of users belonging to a group, along with their role.\">IApiGroupUserList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa04a0875a781b0edc1818e07239a078e\" name=\"aa04a0875a781b0edc1818e07239a078e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa04a0875a781b0edc1818e07239a078e\">&#9670;&#160;</a></span>ListLeaderboardRecordsAroundOwnerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt; Nakama.Client.ListLeaderboardRecordsAroundOwnerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List leaderboard records that belong to a user.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to list.</td></tr>\n    <tr><td class=\"paramname\">ownerId</td><td>The ID of the user to list around.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The limit of the listings.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record objects.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\" title=\"A set of leaderboard records, may be part of a leaderboard records page or a batch of individual reco...\">IApiLeaderboardRecordList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ab0157c7184c86a9e6cbaae2ae720adf1\" name=\"ab0157c7184c86a9e6cbaae2ae720adf1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0157c7184c86a9e6cbaae2ae720adf1\">&#9670;&#160;</a></span>ListLeaderboardRecordsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt; Nakama.Client.ListLeaderboardRecordsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List records from a leaderboard.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to list.</td></tr>\n    <tr><td class=\"paramname\">ownerIds</td><td>Record owners to fetch with the list of records.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the leaderboard records to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record objects.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\" title=\"A set of leaderboard records, may be part of a leaderboard records page or a batch of individual reco...\">IApiLeaderboardRecordList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ad169be18d357b3b57067abf62e063310\" name=\"ad169be18d357b3b57067abf62e063310\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad169be18d357b3b57067abf62e063310\">&#9670;&#160;</a></span>ListMatchesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a> &gt; Nakama.Client.ListMatchesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>min</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>max</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authoritative</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Fetch a list of matches active on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">min</td><td>The minimum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">max</td><td>The maximum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of matches to list.</td></tr>\n    <tr><td class=\"paramname\">authoritative</td><td>If authoritative matches should be included.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>The label to filter the match list on.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>A query for the matches to filter.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the match list object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"acde199dc46bdceabea904a44477cd284\" name=\"acde199dc46bdceabea904a44477cd284\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acde199dc46bdceabea904a44477cd284\">&#9670;&#160;</a></span>ListNotificationsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a> &gt; Nakama.Client.ListNotificationsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cacheableCursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List notifications for the user with an optional cursor.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of notifications to list.</td></tr>\n    <tr><td class=\"paramname\">cacheableCursor</td><td>A cursor for the current position in notifications to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve notifications objects.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\" title=\"A collection of zero or more notifications.\">IApiNotificationList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"af63f8ffa4aca4a2ee80d99cb36ffe2a6\" name=\"af63f8ffa4aca4a2ee80d99cb36ffe2a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">&#9670;&#160;</a></span>ListPartiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a> &gt; Nakama.Client.ListPartiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List advertised parties and optionally filter them by label.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>Optionally filter by party open status.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Optionally provide a query to filter via custom party labels.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to fetch the next page of results, if any.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the party object list.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a90db3c9a4f3994fc1616bc702a2584e1\" name=\"a90db3c9a4f3994fc1616bc702a2584e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a90db3c9a4f3994fc1616bc702a2584e1\">&#9670;&#160;</a></span>ListStorageObjects()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.Client.ListStorageObjects </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a35c013a31537eea2ff7fe2239f5623e9\" name=\"a35c013a31537eea2ff7fe2239f5623e9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35c013a31537eea2ff7fe2239f5623e9\">&#9670;&#160;</a></span>ListStorageObjectsAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.Client.ListStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List storage objects in a collection which have public read access.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list. Maximum 100.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection. May be null.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a1ef58ab10a34f892086c7905ecb90270\" name=\"a1ef58ab10a34f892086c7905ecb90270\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1ef58ab10a34f892086c7905ecb90270\">&#9670;&#160;</a></span>ListStorageObjectsAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.Client.ListStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userId</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;&quot;</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a66425250e7fb827cc677da4732290329\" name=\"a66425250e7fb827cc677da4732290329\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a66425250e7fb827cc677da4732290329\">&#9670;&#160;</a></span>ListSubscriptionsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a> &gt; Nakama.Client.ListSubscriptionsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List the user's subscriptions.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of subscriptions to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of subscriptions.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription list.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ab69ecb2fb4ffa8dea78392719ae08e65\" name=\"ab69ecb2fb4ffa8dea78392719ae08e65\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab69ecb2fb4ffa8dea78392719ae08e65\">&#9670;&#160;</a></span>ListTournamentRecordsAroundOwnerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt; Nakama.Client.ListTournamentRecordsAroundOwnerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List tournament records around the owner.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament.</td></tr>\n    <tr><td class=\"paramname\">ownerId</td><td>The ID of the owner to pivot around.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the tournament record list object.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\" title=\"A set of tournament records which may be part of a tournament records page or a batch of individual r...\">IApiTournamentRecordList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa994ad73bfce3f829e041505fb54e119\" name=\"aa994ad73bfce3f829e041505fb54e119\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa994ad73bfce3f829e041505fb54e119\">&#9670;&#160;</a></span>ListTournamentRecordsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt; Nakama.Client.ListTournamentRecordsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>List records from a tournament.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament.</td></tr>\n    <tr><td class=\"paramname\">ownerIds</td><td>The IDs of the record owners to return in the result.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of tournament records.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the list of tournament records.</dd></dl>\n </p>\n<p>The returned <code><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\" title=\"A set of tournament records which may be part of a tournament records page or a batch of individual r...\">IApiTournamentRecordList</a></code> is automatically updated to reflect username changes for the current user. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a4e64d250674e061e2304bdf2e4fe4342\" name=\"a4e64d250674e061e2304bdf2e4fe4342\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4e64d250674e061e2304bdf2e4fe4342\">&#9670;&#160;</a></span>ListTournamentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a> &gt; Nakama.Client.ListTournamentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>categoryStart</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>categoryEnd</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>startTime</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>endTime</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List current or upcoming tournaments.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">categoryStart</td><td>The start of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">categoryEnd</td><td>The end of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">startTime</td><td>The start time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by start time.</td></tr>\n    <tr><td class=\"paramname\">endTime</td><td>The end time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by end time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of tournaments to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of tournaments.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the list of tournament objects.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afb7774654804a171c8a602f3406466a1\" name=\"afb7774654804a171c8a602f3406466a1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afb7774654804a171c8a602f3406466a1\">&#9670;&#160;</a></span>ListUserGroupsAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt; Nakama.Client.ListUserGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List of groups the current user is a member of.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a6dbbdc5225f9e64e576ad171003bbda8\" name=\"a6dbbdc5225f9e64e576ad171003bbda8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6dbbdc5225f9e64e576ad171003bbda8\">&#9670;&#160;</a></span>ListUserGroupsAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt; Nakama.Client.ListUserGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List groups a user is a member of.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The ID of the user whose groups to list.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a90c1f81c4e27cc664f16dcad793a6381\" name=\"a90c1f81c4e27cc664f16dcad793a6381\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a90c1f81c4e27cc664f16dcad793a6381\">&#9670;&#160;</a></span>ListUsersStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.Client.ListUsersStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List storage objects in a collection which belong to a specific user and have public read access.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The user ID of the user to list objects for.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a703f15655bec3592a25827f78715ecda\" name=\"a703f15655bec3592a25827f78715ecda\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a703f15655bec3592a25827f78715ecda\">&#9670;&#160;</a></span>PromoteGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.PromoteGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Promote one or more users in the group.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to promote users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to promote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a2dd9eb134b2aabf3df838aa0c15cb715\" name=\"a2dd9eb134b2aabf3df838aa0c15cb715\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2dd9eb134b2aabf3df838aa0c15cb715\">&#9670;&#160;</a></span>ReadStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a> &gt; Nakama.Client.ReadStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Read one or more objects from the storage engine.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The objects to read.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage batch object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae7903e1c260db27a9325f542410dffb1\" name=\"ae7903e1c260db27a9325f542410dffb1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae7903e1c260db27a9325f542410dffb1\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[1/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Client.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a662403d6079acb66a0c8acb71e87b24d\" name=\"a662403d6079acb66a0c8acb71e87b24d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a662403d6079acb66a0c8acb71e87b24d\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[2/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Client.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function with an input payload on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>The payload to send with the function call.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"accc4af743509eb1a72bf890e60b7b3de\" name=\"accc4af743509eb1a72bf890e60b7b3de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#accc4af743509eb1a72bf890e60b7b3de\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[3/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Client.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpkey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server without a session.This function is usually used with server side code. DO NOT USE client side.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac3e801102a384357b4f77c34aa518416\" name=\"ac3e801102a384357b4f77c34aa518416\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3e801102a384357b4f77c34aa518416\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[4/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Client.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpkey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server without a session.This function is usually used with server side code. DO NOT USE client side.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a3cf4591ab80d069ec55b8021bb51c730\" name=\"a3cf4591ab80d069ec55b8021bb51c730\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3cf4591ab80d069ec55b8021bb51c730\">&#9670;&#160;</a></span>SessionLogoutAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Client.SessionLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session which invalidates the authorization and refresh token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session to logout.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a6e965270a90777b5aab3f3b4c7ba2374\" name=\"a6e965270a90777b5aab3f3b4c7ba2374\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e965270a90777b5aab3f3b4c7ba2374\">&#9670;&#160;</a></span>SessionLogoutAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Client.SessionLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>refreshToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session which optionally invalidates the authorization and/or refresh tokens.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a54ddec21945530369fca30e9306efe5d\" name=\"a54ddec21945530369fca30e9306efe5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a54ddec21945530369fca30e9306efe5d\">&#9670;&#160;</a></span>SessionRefreshAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.Client.SessionRefreshAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information which should be bundled inside the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae1aeb5b30fed94af008058803b5bd352\" name=\"ae1aeb5b30fed94af008058803b5bd352\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae1aeb5b30fed94af008058803b5bd352\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.Client.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"adf62218ff4074ee7847260fb69f7a40e\" name=\"adf62218ff4074ee7847260fb69f7a40e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adf62218ff4074ee7847260fb69f7a40e\">&#9670;&#160;</a></span>UnlinkAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Remove the Apple ID from the social profiles on the current user's account.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"adb85bd4e511e508ef6858b103aa31523\" name=\"adb85bd4e511e508ef6858b103aa31523\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb85bd4e511e508ef6858b103aa31523\">&#9670;&#160;</a></span>UnlinkCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a custom ID from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a04f2596af7c5ffde9353981faed6443d\" name=\"a04f2596af7c5ffde9353981faed6443d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a04f2596af7c5ffde9353981faed6443d\">&#9670;&#160;</a></span>UnlinkDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a device ID from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a93428352ac3edb3e35d00afe0e108f5d\" name=\"a93428352ac3edb3e35d00afe0e108f5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a93428352ac3edb3e35d00afe0e108f5d\">&#9670;&#160;</a></span>UnlinkEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink an email with password from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a116b79c31bc4bf94f0b037e6ecb33fc1\" name=\"a116b79c31bc4bf94f0b037e6ecb33fc1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a116b79c31bc4bf94f0b037e6ecb33fc1\">&#9670;&#160;</a></span>UnlinkFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Facebook profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"adb1615cbce3978b43928c6dc1641fcd9\" name=\"adb1615cbce3978b43928c6dc1641fcd9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb1615cbce3978b43928c6dc1641fcd9\">&#9670;&#160;</a></span>UnlinkGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Game Center profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ad30a4f27ec44259a72fb7ecd55b855cc\" name=\"ad30a4f27ec44259a72fb7ecd55b855cc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad30a4f27ec44259a72fb7ecd55b855cc\">&#9670;&#160;</a></span>UnlinkGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Google profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa7cf34d32c3bd2dd89224491dd03627a\" name=\"aa7cf34d32c3bd2dd89224491dd03627a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7cf34d32c3bd2dd89224491dd03627a\">&#9670;&#160;</a></span>UnlinkSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UnlinkSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Steam profile from the user account owned by the session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a493aaa96074ed53faae99041c1ff71e7\" name=\"a493aaa96074ed53faae99041c1ff71e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a493aaa96074ed53faae99041c1ff71e7\">&#9670;&#160;</a></span>UpdateAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UpdateAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>displayName</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>location</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timezone</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<p>Update the current user's account on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>The new username for the user.</td></tr>\n    <tr><td class=\"paramname\">displayName</td><td>A new display name for the user.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>A new avatar url for the user.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A new language tag in BCP-47 format for the user.</td></tr>\n    <tr><td class=\"paramname\">location</td><td>A new location for the user.</td></tr>\n    <tr><td class=\"paramname\">timezone</td><td>New timezone information for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n<p>The current user's username will be automatically refreshed in their authorized <code><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\" title=\"A session authenticated for a user with Nakama server.\">ISession</a></code> if the username field is updated to become different. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ae4721e57aa314b32152069e2644eb02b\" name=\"ae4721e57aa314b32152069e2644eb02b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae4721e57aa314b32152069e2644eb02b\">&#9670;&#160;</a></span>UpdateGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Client.UpdateGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>description</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update a group.The user must have the correct access permissions for the group.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a03a03e289c71ee9a21c6dc03241bd846\" name=\"a03a03e289c71ee9a21c6dc03241bd846\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a03a03e289c71ee9a21c6dc03241bd846\">&#9670;&#160;</a></span>ValidatePurchaseAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.Client.ValidatePurchaseAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Apple App Store.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a8badc57f270e3324fccb046a58b7c8a9\" name=\"a8badc57f270e3324fccb046a58b7c8a9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8badc57f270e3324fccb046a58b7c8a9\">&#9670;&#160;</a></span>ValidatePurchaseFacebookInstantAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.Client.ValidatePurchaseFacebookInstantAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signedRequest</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against Facebook Instant Games.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">signedRequest</td><td>Base64 encoded Facebook Instant receipt data payload.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a08e6406e21fd5fc52ee905b586210276\" name=\"a08e6406e21fd5fc52ee905b586210276\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a08e6406e21fd5fc52ee905b586210276\">&#9670;&#160;</a></span>ValidatePurchaseGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.Client.ValidatePurchaseGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Google Play Store.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a7d49b887e6d302f68917162a0567ad66\" name=\"a7d49b887e6d302f68917162a0567ad66\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7d49b887e6d302f68917162a0567ad66\">&#9670;&#160;</a></span>ValidatePurchaseHuaweiAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.Client.ValidatePurchaseHuaweiAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Huawei AppGallery.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The signature of the purchase receipt.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a63b6bc07335627f58236ba0c9997336f\" name=\"a63b6bc07335627f58236ba0c9997336f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a63b6bc07335627f58236ba0c9997336f\">&#9670;&#160;</a></span>ValidateSubscriptionAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt; Nakama.Client.ValidateSubscriptionAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate an Apple subscription receipt. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The receipt to validate.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to persist the receipt to <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>'s database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription validation response. </dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a30b942db8e51709901e60c6a5d26c5bb\" name=\"a30b942db8e51709901e60c6a5d26c5bb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a30b942db8e51709901e60c6a5d26c5bb\">&#9670;&#160;</a></span>ValidateSubscriptionGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt; Nakama.Client.ValidateSubscriptionGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Validate a Google subscription receipt. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The receipt to validate.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to persist the receipt to <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>'s database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription validation response. </dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a6b44990352ecbf4c847b29ac715014fb\" name=\"a6b44990352ecbf4c847b29ac715014fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6b44990352ecbf4c847b29ac715014fb\">&#9670;&#160;</a></span>WriteLeaderboardRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt; Nakama.Client.WriteLeaderboardRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>score</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>subScore</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">0</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiOperator</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator::NO_OVERRIDE</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Write a record to a leaderboard.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the leaderboard. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ad2d4bb27d5340afb6be824a2bc2e7815\" name=\"ad2d4bb27d5340afb6be824a2bc2e7815\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad2d4bb27d5340afb6be824a2bc2e7815\">&#9670;&#160;</a></span>WriteStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a> &gt; Nakama.Client.WriteStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>objects</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Write objects to the storage engine.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">objects</td><td>The objects to write.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage write acknowledgements.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"af0b988b7a04b78b7aac805dc502ff52d\" name=\"af0b988b7a04b78b7aac805dc502ff52d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af0b988b7a04b78b7aac805dc502ff52d\">&#9670;&#160;</a></span>WriteTournamentRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt; Nakama.Client.WriteTournamentRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>score</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>subScore</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">0</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiOperator</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator::NO_OVERRIDE</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Write a record to a tournament.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score of the tournament record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the tournament. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the tournament record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-variable-members\" id=\"doc-variable-members\"></a><h2 id=\"header-doc-variable-members\" class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a3e646cbc75def08c741b231588f2a621\" name=\"a3e646cbc75def08c741b231588f2a621\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3e646cbc75def08c741b231588f2a621\">&#9670;&#160;</a></span>DefaultExpiredTimeSpan</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TimeSpan Nakama.Client.DefaultExpiredTimeSpan = TimeSpan.FromMinutes(5)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default expired timespan used to check session lifetime. </p>\n\n</div>\n</div>\n<a id=\"adfd3245cf5d85e2f66518dbcbcc88d35\" name=\"adfd3245cf5d85e2f66518dbcbcc88d35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adfd3245cf5d85e2f66518dbcbcc88d35\">&#9670;&#160;</a></span>DefaultHost</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const string Nakama.Client.DefaultHost = &quot;127.0.0.1&quot;</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default host address of the server. </p>\n\n</div>\n</div>\n<a id=\"ae484d126d47ce2306242951d21e35756\" name=\"ae484d126d47ce2306242951d21e35756\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae484d126d47ce2306242951d21e35756\">&#9670;&#160;</a></span>DefaultPort</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int Nakama.Client.DefaultPort = 7350</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default port number of the server. </p>\n\n</div>\n</div>\n<a id=\"a339d6ad5a6a8571aa36bc3fac5bde493\" name=\"a339d6ad5a6a8571aa36bc3fac5bde493\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a339d6ad5a6a8571aa36bc3fac5bde493\">&#9670;&#160;</a></span>DefaultScheme</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const string Nakama.Client.DefaultScheme = &quot;http&quot;</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default protocol scheme for the socket connection. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a2abea8492c53d4579c14eb4ae5327610\" name=\"a2abea8492c53d4579c14eb4ae5327610\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2abea8492c53d4579c14eb4ae5327610\">&#9670;&#160;</a></span>AutoRefreshSession</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Client.AutoRefreshSession</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the session should be refreshed with an active refresh token. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a4e84dc06e439ead1dcdc918350b93ed8\" name=\"a4e84dc06e439ead1dcdc918350b93ed8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4e84dc06e439ead1dcdc918350b93ed8\">&#9670;&#160;</a></span>GlobalRetryConfiguration</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> Nakama.Client.GlobalRetryConfiguration</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<b>Initial value:</b><div class=\"fragment\"><div class=\"line\">= <span class=\"keyword\">new</span> <a class=\"code hl_class\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a>(</div>\n<div class=\"line\">            baseDelayMs: 500,</div>\n<div class=\"line\">            jitter: RetryJitter.FullJitter,</div>\n<div class=\"line\">            listener: <span class=\"keyword\">null</span>,</div>\n<div class=\"line\">            maxRetries: 4)</div>\n<div class=\"ttc\" id=\"aclass_nakama_1_1_retry_configuration_html\"><div class=\"ttname\"><a href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></div><div class=\"ttdoc\">A configuration for controlling retriable requests.</div><div class=\"ttdef\"><b>Definition</b> Nakama/RetryConfiguration.cs:30</div></div>\n</div><!-- fragment -->\n<p>The global retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aacad034c2d21b970537423de0ba27e4f\" name=\"aacad034c2d21b970537423de0ba27e4f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aacad034c2d21b970537423de0ba27e4f\">&#9670;&#160;</a></span>Host</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Client.Host</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The host address of the server. Defaults to \"127.0.0.1\". </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac88ab4b97d244c62ffc0e2710f69a651\" name=\"ac88ab4b97d244c62ffc0e2710f69a651\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac88ab4b97d244c62ffc0e2710f69a651\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.Client.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the client. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa59309ff4ed7172795782cd69cb295d8\" name=\"aa59309ff4ed7172795782cd69cb295d8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa59309ff4ed7172795782cd69cb295d8\">&#9670;&#160;</a></span>Port</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Client.Port</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The port number of the server. Defaults to 7350. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afaf274b5c7dc2b21931b7d6814f3d455\" name=\"afaf274b5c7dc2b21931b7d6814f3d455\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afaf274b5c7dc2b21931b7d6814f3d455\">&#9670;&#160;</a></span>Scheme</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Client.Scheme</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The protocol scheme used to connect with the server. Must be either \"http\" or \"https\". </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa70b920781b70f74f0419d262043dbd1\" name=\"aa70b920781b70f74f0419d262043dbd1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa70b920781b70f74f0419d262043dbd1\">&#9670;&#160;</a></span>ServerKey</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Client.ServerKey</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key used to authenticate with the server without a session. Defaults to \"defaultkey\". </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afa11ac790793b5178c423364cc1a1cd2\" name=\"afa11ac790793b5178c423364cc1a1cd2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa11ac790793b5178c423364cc1a1cd2\">&#9670;&#160;</a></span>Timeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Client.Timeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Set the timeout in seconds on requests sent to the server. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\">Nakama.IClient</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a9dc5ecc3c4faaa26b8508a931a086217\" name=\"a9dc5ecc3c4faaa26b8508a931a086217\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9dc5ecc3c4faaa26b8508a931a086217\">&#9670;&#160;</a></span>ReceivedSessionUpdated</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a>&gt; Nakama.Client.ReceivedSessionUpdated</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_client_8cs.html\">Nakama/Client.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_client.html\">Client</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_client.js",
    "content": "var class_nakama_1_1_client =\n[\n    [ \"Client\", \"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\", null ],\n    [ \"Client\", \"class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460\", null ],\n    [ \"Client\", \"class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6\", null ],\n    [ \"Client\", \"class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711\", null ],\n    [ \"Client\", \"class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\", null ],\n    [ \"Client\", \"class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830\", null ],\n    [ \"AddFriendsAsync\", \"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\", null ],\n    [ \"AddGroupUsersAsync\", \"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\", null ],\n    [ \"AuthenticateAppleAsync\", \"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\", null ],\n    [ \"AuthenticateCustomAsync\", \"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\", null ],\n    [ \"AuthenticateDeviceAsync\", \"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\", null ],\n    [ \"AuthenticateEmailAsync\", \"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\", null ],\n    [ \"AuthenticateFacebookAsync\", \"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\", null ],\n    [ \"AuthenticateGameCenterAsync\", \"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\", null ],\n    [ \"AuthenticateGoogleAsync\", \"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\", null ],\n    [ \"AuthenticateSteamAsync\", \"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\", null ],\n    [ \"BanGroupUsersAsync\", \"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\", null ],\n    [ \"BlockFriendsAsync\", \"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\", null ],\n    [ \"CreateGroupAsync\", \"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\", null ],\n    [ \"DeleteAccountAsync\", \"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\", null ],\n    [ \"DeleteFriendsAsync\", \"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\", null ],\n    [ \"DeleteGroupAsync\", \"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\", null ],\n    [ \"DeleteLeaderboardRecordAsync\", \"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\", null ],\n    [ \"DeleteNotificationsAsync\", \"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\", null ],\n    [ \"DeleteStorageObjectsAsync\", \"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\", null ],\n    [ \"DeleteTournamentRecordAsync\", \"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\", null ],\n    [ \"DemoteGroupUsersAsync\", \"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\", null ],\n    [ \"EventAsync\", \"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\", null ],\n    [ \"GetAccountAsync\", \"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\", null ],\n    [ \"GetSubscriptionAsync\", \"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\", null ],\n    [ \"GetUsersAsync\", \"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\", null ],\n    [ \"ImportFacebookFriendsAsync\", \"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\", null ],\n    [ \"ImportSteamFriendsAsync\", \"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\", null ],\n    [ \"JoinGroupAsync\", \"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\", null ],\n    [ \"JoinTournamentAsync\", \"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\", null ],\n    [ \"KickGroupUsersAsync\", \"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\", null ],\n    [ \"LeaveGroupAsync\", \"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\", null ],\n    [ \"LinkAppleAsync\", \"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\", null ],\n    [ \"LinkCustomAsync\", \"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\", null ],\n    [ \"LinkDeviceAsync\", \"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\", null ],\n    [ \"LinkEmailAsync\", \"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\", null ],\n    [ \"LinkFacebookAsync\", \"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\", null ],\n    [ \"LinkGameCenterAsync\", \"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\", null ],\n    [ \"LinkGoogleAsync\", \"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\", null ],\n    [ \"LinkSteamAsync\", \"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\", null ],\n    [ \"ListChannelMessagesAsync\", \"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\", null ],\n    [ \"ListChannelMessagesAsync\", \"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\", null ],\n    [ \"ListFriendsAsync\", \"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\", null ],\n    [ \"ListGroupsAsync\", \"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\", null ],\n    [ \"ListGroupUsersAsync\", \"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\", null ],\n    [ \"ListLeaderboardRecordsAroundOwnerAsync\", \"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\", null ],\n    [ \"ListLeaderboardRecordsAsync\", \"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\", null ],\n    [ \"ListMatchesAsync\", \"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\", null ],\n    [ \"ListNotificationsAsync\", \"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\", null ],\n    [ \"ListPartiesAsync\", \"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\", null ],\n    [ \"ListStorageObjects\", \"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\", null ],\n    [ \"ListStorageObjectsAsync\", \"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\", null ],\n    [ \"ListStorageObjectsAsync\", \"class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270\", null ],\n    [ \"ListSubscriptionsAsync\", \"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\", null ],\n    [ \"ListTournamentRecordsAroundOwnerAsync\", \"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\", null ],\n    [ \"ListTournamentRecordsAsync\", \"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\", null ],\n    [ \"ListTournamentsAsync\", \"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\", null ],\n    [ \"ListUserGroupsAsync\", \"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\", null ],\n    [ \"ListUserGroupsAsync\", \"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\", null ],\n    [ \"ListUsersStorageObjectsAsync\", \"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\", null ],\n    [ \"PromoteGroupUsersAsync\", \"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\", null ],\n    [ \"ReadStorageObjectsAsync\", \"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\", null ],\n    [ \"SessionLogoutAsync\", \"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\", null ],\n    [ \"SessionLogoutAsync\", \"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\", null ],\n    [ \"SessionRefreshAsync\", \"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\", null ],\n    [ \"ToString\", \"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\", null ],\n    [ \"UnlinkAppleAsync\", \"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\", null ],\n    [ \"UnlinkCustomAsync\", \"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\", null ],\n    [ \"UnlinkDeviceAsync\", \"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\", null ],\n    [ \"UnlinkEmailAsync\", \"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\", null ],\n    [ \"UnlinkFacebookAsync\", \"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\", null ],\n    [ \"UnlinkGameCenterAsync\", \"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\", null ],\n    [ \"UnlinkGoogleAsync\", \"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\", null ],\n    [ \"UnlinkSteamAsync\", \"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\", null ],\n    [ \"UpdateAccountAsync\", \"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\", null ],\n    [ \"UpdateGroupAsync\", \"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\", null ],\n    [ \"ValidatePurchaseAppleAsync\", \"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\", null ],\n    [ \"ValidatePurchaseFacebookInstantAsync\", \"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\", null ],\n    [ \"ValidatePurchaseGoogleAsync\", \"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\", null ],\n    [ \"ValidatePurchaseHuaweiAsync\", \"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\", null ],\n    [ \"ValidateSubscriptionAppleAsync\", \"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\", null ],\n    [ \"ValidateSubscriptionGoogleAsync\", \"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\", null ],\n    [ \"WriteLeaderboardRecordAsync\", \"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\", null ],\n    [ \"WriteStorageObjectsAsync\", \"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\", null ],\n    [ \"WriteTournamentRecordAsync\", \"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\", null ],\n    [ \"AutoRefreshSession\", \"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\", null ],\n    [ \"GlobalRetryConfiguration\", \"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\", null ],\n    [ \"Host\", \"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\", null ],\n    [ \"Logger\", \"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\", null ],\n    [ \"Port\", \"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\", null ],\n    [ \"Scheme\", \"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\", null ],\n    [ \"ServerKey\", \"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\", null ],\n    [ \"Timeout\", \"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\", null ],\n    [ \"ReceivedSessionUpdated\", \"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_console_1_1_api_response_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_console_1_1_api_response_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.ApiResponseException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\">ApiResponseException</a>(long statusCode, string content, int grpcCode)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a\">ApiResponseException</a>(string message, Exception e)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19\">ApiResponseException</a>(string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\">GrpcStatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\">StatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">Nakama.Console.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_console_1_1_api_response_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.ApiResponseException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_console_1_1_api_response_exception.html','','class_nakama_1_1_console_1_1_api_response_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.ApiResponseException Class Reference<span class=\"mlabels\"><span class=\"mlabel sealed\">sealed</span></span></div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An exception generated for <code>HttpResponse</code> objects don't return a success status.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Console.ApiResponseException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_console_1_1_api_response_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a933cc0e479dba1f3cd313f4b1c20d767\" id=\"r_a933cc0e479dba1f3cd313f4b1c20d767\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a933cc0e479dba1f3cd313f4b1c20d767\">ApiResponseException</a> (long statusCode, string content, int grpcCode)</td></tr>\n<tr class=\"memitem:a86369acf7418c84ce4a240da5265426a\" id=\"r_a86369acf7418c84ce4a240da5265426a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a86369acf7418c84ce4a240da5265426a\">ApiResponseException</a> (string message, Exception e)</td></tr>\n<tr class=\"memitem:a01bba3c61b60831e541fa66042a02b19\" id=\"r_a01bba3c61b60831e541fa66042a02b19\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a01bba3c61b60831e541fa66042a02b19\">ApiResponseException</a> (string content)</td></tr>\n<tr class=\"memitem:a2f8ee604a09e87845c62e456c971b80b\" id=\"r_a2f8ee604a09e87845c62e456c971b80b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2f8ee604a09e87845c62e456c971b80b\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a21148e047e087bcccedeecabd6155a75\" id=\"r_a21148e047e087bcccedeecabd6155a75\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a21148e047e087bcccedeecabd6155a75\">StatusCode</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ac3d8426c1cdd77745c764b0e6552050c\" id=\"r_ac3d8426c1cdd77745c764b0e6552050c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3d8426c1cdd77745c764b0e6552050c\">GrpcStatusCode</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An exception generated for <code>HttpResponse</code> objects don't return a success status. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a933cc0e479dba1f3cd313f4b1c20d767\" name=\"a933cc0e479dba1f3cd313f4b1c20d767\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a933cc0e479dba1f3cd313f4b1c20d767\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Console.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>statusCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>grpcCode</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a86369acf7418c84ce4a240da5265426a\" name=\"a86369acf7418c84ce4a240da5265426a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a86369acf7418c84ce4a240da5265426a\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Console.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a01bba3c61b60831e541fa66042a02b19\" name=\"a01bba3c61b60831e541fa66042a02b19\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a01bba3c61b60831e541fa66042a02b19\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Console.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a2f8ee604a09e87845c62e456c971b80b\" name=\"a2f8ee604a09e87845c62e456c971b80b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f8ee604a09e87845c62e456c971b80b\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.Console.ApiResponseException.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac3d8426c1cdd77745c764b0e6552050c\" name=\"ac3d8426c1cdd77745c764b0e6552050c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3d8426c1cdd77745c764b0e6552050c\">&#9670;&#160;</a></span>GrpcStatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.ApiResponseException.GrpcStatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a21148e047e087bcccedeecabd6155a75\" name=\"a21148e047e087bcccedeecabd6155a75\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a21148e047e087bcccedeecabd6155a75\">&#9670;&#160;</a></span>StatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.Console.ApiResponseException.StatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">ApiResponseException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_console_1_1_api_response_exception.js",
    "content": "var class_nakama_1_1_console_1_1_api_response_exception =\n[\n    [ \"ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\", null ],\n    [ \"ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a\", null ],\n    [ \"ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19\", null ],\n    [ \"ToString\", \"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\", null ],\n    [ \"GrpcStatusCode\", \"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\", null ],\n    [ \"StatusCode\", \"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_http_request_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_http_request_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.HttpRequestAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\">HttpRequestAdapter</a>(HttpClient httpClient)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269\">IsTransientException</a>(Exception e)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\">SendAsync</a>(string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeout, CancellationToken? userCancelToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\">TransientExceptionDelegate</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e\">WithGzip</a>(bool decompression=false, bool compression=false)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">Nakama.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_http_request_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.HttpRequestAdapter Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_http_request_adapter.html','','class_nakama_1_1_http_request_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.HttpRequestAdapter Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>HTTP Request adapter which uses the .NET HttpClient to send requests.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.HttpRequestAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_http_request_adapter.png\" usemap=\"#Nakama_2EHttpRequestAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama_2EHttpRequestAdapter_map\" name=\"Nakama_2EHttpRequestAdapter_map\">\n<area href=\"interface_nakama_1_1_i_http_adapter.html\" title=\"An adapter which implements the HTTP protocol.\" alt=\"Nakama.IHttpAdapter\" shape=\"rect\" coords=\"0,0,172,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:abd7df73941b1255fe8ddd66e995e6a7a\" id=\"r_abd7df73941b1255fe8ddd66e995e6a7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abd7df73941b1255fe8ddd66e995e6a7a\">HttpRequestAdapter</a> (HttpClient httpClient)</td></tr>\n<tr class=\"memitem:a7562e1777699f16911ed2d5e245eb5b7\" id=\"r_a7562e1777699f16911ed2d5e245eb5b7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7562e1777699f16911ed2d5e245eb5b7\">SendAsync</a> (string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeout, CancellationToken? userCancelToken)</td></tr>\n<tr class=\"memdesc:a7562e1777699f16911ed2d5e245eb5b7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a HTTP request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:ac251341e77f88116e774bddd549c330e\" id=\"r_ac251341e77f88116e774bddd549c330e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac251341e77f88116e774bddd549c330e\">WithGzip</a> (bool decompression=false, bool compression=false)</td></tr>\n<tr class=\"memdesc:ac251341e77f88116e774bddd549c330e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A new HTTP adapter with configuration for gzip support in the underlying HTTP client.  <br /></td></tr>\n<tr class=\"memitem:a764f057e1eb1077be6fefb03f9ba8269\" id=\"r_a764f057e1eb1077be6fefb03f9ba8269\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a764f057e1eb1077be6fefb03f9ba8269\">IsTransientException</a> (Exception e)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7365d2d5c82d5d0d6b8ac64941a8e533\" id=\"r_a7365d2d5c82d5d0d6b8ac64941a8e533\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7365d2d5c82d5d0d6b8ac64941a8e533\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a7365d2d5c82d5d0d6b8ac64941a8e533\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.  <br /></td></tr>\n<tr class=\"memitem:ae3ce0f7e336c27b77b9040fe5d851bc5\" id=\"r_ae3ce0f7e336c27b77b9040fe5d851bc5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae3ce0f7e336c27b77b9040fe5d851bc5\">TransientExceptionDelegate</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>HTTP Request adapter which uses the .NET HttpClient to send requests. </p>\n<p>Accept header is always set as 'application/json'. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"abd7df73941b1255fe8ddd66e995e6a7a\" name=\"abd7df73941b1255fe8ddd66e995e6a7a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abd7df73941b1255fe8ddd66e995e6a7a\">&#9670;&#160;</a></span>HttpRequestAdapter()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.HttpRequestAdapter.HttpRequestAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\">HttpClient</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpClient</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a764f057e1eb1077be6fefb03f9ba8269\" name=\"a764f057e1eb1077be6fefb03f9ba8269\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a764f057e1eb1077be6fefb03f9ba8269\">&#9670;&#160;</a></span>IsTransientException()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.HttpRequestAdapter.IsTransientException </td>\n          <td>(</td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7562e1777699f16911ed2d5e245eb5b7\" name=\"a7562e1777699f16911ed2d5e245eb5b7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7562e1777699f16911ed2d5e245eb5b7\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; string &gt; Nakama.HttpRequestAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>method</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>headers</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>body</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeout</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userCancelToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send a HTTP request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">Nakama.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ac251341e77f88116e774bddd549c330e\" name=\"ac251341e77f88116e774bddd549c330e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac251341e77f88116e774bddd549c330e\">&#9670;&#160;</a></span>WithGzip()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a> Nakama.HttpRequestAdapter.WithGzip </td>\n          <td>(</td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>decompression</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>compression</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A new HTTP adapter with configuration for gzip support in the underlying HTTP client. </p>\n<p>NOTE Decompression does not work with Mono AOT on Android. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">decompression</td><td>If automatic decompression should be enabled with the HTTP adapter.</td></tr>\n    <tr><td class=\"paramname\">compression</td><td>If automatic compression should be enabled with the HTTP adapter.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A new HTTP adapter.</dd></dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7365d2d5c82d5d0d6b8ac64941a8e533\" name=\"a7365d2d5c82d5d0d6b8ac64941a8e533\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7365d2d5c82d5d0d6b8ac64941a8e533\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.HttpRequestAdapter.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the adapter. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Nakama.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ae3ce0f7e336c27b77b9040fe5d851bc5\" name=\"ae3ce0f7e336c27b77b9040fe5d851bc5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae3ce0f7e336c27b77b9040fe5d851bc5\">&#9670;&#160;</a></span>TransientExceptionDelegate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TransientExceptionDelegate Nakama.HttpRequestAdapter.TransientExceptionDelegate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\">Nakama.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_http_request_adapter_8cs.html\">Nakama/HttpRequestAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_http_request_adapter.html\">HttpRequestAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_http_request_adapter.js",
    "content": "var class_nakama_1_1_http_request_adapter =\n[\n    [ \"HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\", null ],\n    [ \"SendAsync\", \"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\", null ],\n    [ \"Logger\", \"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\", null ],\n    [ \"TransientExceptionDelegate\", \"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.BufferPool Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\">BufferPool</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc\">BufferPool</a>(int bufferSize)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\">GetBuffer</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\">ReturnBuffer</a>(byte[] buffer)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">Nakama.Ninja.WebSockets.BufferPool</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">protected</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.BufferPool Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.BufferPool Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.BufferPool:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EBufferPool_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EBufferPool_map\" name=\"Nakama_2ENinja_2EWebSockets_2EBufferPool_map\">\n<area href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\" alt=\"Nakama.Ninja.WebSockets.IBufferPool\" shape=\"rect\" coords=\"0,0,230,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:PublicBufferMemoryStream\" id=\"r_PublicBufferMemoryStream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">PublicBufferMemoryStream</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe)  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#details\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:af9baf99ac988522e6bbacde7669aaaa4\" id=\"r_af9baf99ac988522e6bbacde7669aaaa4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af9baf99ac988522e6bbacde7669aaaa4\">BufferPool</a> ()</td></tr>\n<tr class=\"memitem:abb99536c0129f9ccbba8ad57e772d5fc\" id=\"r_abb99536c0129f9ccbba8ad57e772d5fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb99536c0129f9ccbba8ad57e772d5fc\">BufferPool</a> (int bufferSize)</td></tr>\n<tr class=\"memitem:a3eacbad8a136b33a3c2e859c0cf6fe67\" id=\"r_a3eacbad8a136b33a3c2e859c0cf6fe67\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">MemoryStream&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3eacbad8a136b33a3c2e859c0cf6fe67\">GetBuffer</a> ()</td></tr>\n<tr class=\"memdesc:a3eacbad8a136b33a3c2e859c0cf6fe67\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Gets a MemoryStream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pro-methods\" class=\"groupheader\"><a id=\"pro-methods\" name=\"pro-methods\"></a>\nProtected Member Functions</h2></td></tr>\n<tr class=\"memitem:ae69844db9d6751407ef246703ec64574\" id=\"r_ae69844db9d6751407ef246703ec64574\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae69844db9d6751407ef246703ec64574\">ReturnBuffer</a> (byte[] buffer)</td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"af9baf99ac988522e6bbacde7669aaaa4\" name=\"af9baf99ac988522e6bbacde7669aaaa4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af9baf99ac988522e6bbacde7669aaaa4\">&#9670;&#160;</a></span>BufferPool() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.BufferPool.BufferPool </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"abb99536c0129f9ccbba8ad57e772d5fc\" name=\"abb99536c0129f9ccbba8ad57e772d5fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb99536c0129f9ccbba8ad57e772d5fc\">&#9670;&#160;</a></span>BufferPool() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.BufferPool.BufferPool </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bufferSize</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a3eacbad8a136b33a3c2e859c0cf6fe67\" name=\"a3eacbad8a136b33a3c2e859c0cf6fe67\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3eacbad8a136b33a3c2e859c0cf6fe67\">&#9670;&#160;</a></span>GetBuffer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">MemoryStream Nakama.Ninja.WebSockets.BufferPool.GetBuffer </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Gets a MemoryStream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\">Nakama.Ninja.WebSockets.IBufferPool</a>.</p>\n\n</div>\n</div>\n<a id=\"ae69844db9d6751407ef246703ec64574\" name=\"ae69844db9d6751407ef246703ec64574\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae69844db9d6751407ef246703ec64574\">&#9670;&#160;</a></span>ReturnBuffer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Ninja.WebSockets.BufferPool.ReturnBuffer </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel protected\">protected</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_buffer_pool_8cs.html\">BufferPool.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool =\n[\n    [ \"PublicBufferMemoryStream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream\" ],\n    [ \"BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\", null ],\n    [ \"BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc\", null ],\n    [ \"GetBuffer\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\", null ],\n    [ \"ReturnBuffer\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\">BeginRead</a>(byte[] buffer, int offset, int count, AsyncCallback callback, object state)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\">BeginWrite</a>(byte[] buffer, int offset, int count, AsyncCallback callback, object state)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\">CanRead</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\">CanSeek</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\">CanTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\">CanWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\">Capacity</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\">Close</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\">CopyToAsync</a>(System.IO.Stream destination, int bufferSize, CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\">EndRead</a>(IAsyncResult asyncResult)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\">EndWrite</a>(IAsyncResult asyncResult)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\">Flush</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\">FlushAsync</a>(CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\">GetBuffer</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\">InitializeLifetimeService</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\">Length</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\">Position</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\">PublicBufferMemoryStream</a>(byte[] buffer, BufferPool bufferPool)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\">Read</a>(byte[] buffer, int offset, int count)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\">ReadAsync</a>(byte[] buffer, int offset, int count, CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\">ReadByte</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\">ReadTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\">Seek</a>(long offset, SeekOrigin loc)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\">SetLength</a>(long value)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\">ToArray</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\">TryGetBuffer</a>(out ArraySegment&lt; byte &gt; buffer)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\">Write</a>(byte[] buffer, int offset, int count)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\">WriteAsync</a>(byte[] buffer, int offset, int count, CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\">WriteByte</a>(byte value)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\">WriteTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\">WriteTo</a>(System.IO.Stream stream)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe)  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a9e132ec51a7e7b44148bbc0174b087db\" id=\"r_a9e132ec51a7e7b44148bbc0174b087db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e132ec51a7e7b44148bbc0174b087db\">PublicBufferMemoryStream</a> (byte[] buffer, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a> bufferPool)</td></tr>\n<tr class=\"memitem:a282c64e19a381ae3112c1c6dcc9edbc1\" id=\"r_a282c64e19a381ae3112c1c6dcc9edbc1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override IAsyncResult&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a282c64e19a381ae3112c1c6dcc9edbc1\">BeginRead</a> (byte[] buffer, int offset, int count, AsyncCallback callback, object state)</td></tr>\n<tr class=\"memitem:a0817a70e52ee58f07dc7b2439ff4e118\" id=\"r_a0817a70e52ee58f07dc7b2439ff4e118\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override IAsyncResult&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0817a70e52ee58f07dc7b2439ff4e118\">BeginWrite</a> (byte[] buffer, int offset, int count, AsyncCallback callback, object state)</td></tr>\n<tr class=\"memitem:a3f1bc42f24e76c1e6bdd1aa40cdd1a01\" id=\"r_a3f1bc42f24e76c1e6bdd1aa40cdd1a01\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\">Close</a> ()</td></tr>\n<tr class=\"memitem:ad9c1a68bbd0be9674b1836a387e1fb99\" id=\"r_ad9c1a68bbd0be9674b1836a387e1fb99\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad9c1a68bbd0be9674b1836a387e1fb99\">CopyToAsync</a> (System.IO.Stream destination, int bufferSize, CancellationToken cancellationToken)</td></tr>\n<tr class=\"memitem:a59594ae24d7d39ef08e9b73292324ee7\" id=\"r_a59594ae24d7d39ef08e9b73292324ee7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a59594ae24d7d39ef08e9b73292324ee7\">EndRead</a> (IAsyncResult asyncResult)</td></tr>\n<tr class=\"memitem:a71d425d0d6626926a04dc11d01886a8c\" id=\"r_a71d425d0d6626926a04dc11d01886a8c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a71d425d0d6626926a04dc11d01886a8c\">EndWrite</a> (IAsyncResult asyncResult)</td></tr>\n<tr class=\"memitem:a1b7518b4364bf38343f92a307d2c6b43\" id=\"r_a1b7518b4364bf38343f92a307d2c6b43\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b7518b4364bf38343f92a307d2c6b43\">Flush</a> ()</td></tr>\n<tr class=\"memitem:a5372442ce53b399347db05b9e733945c\" id=\"r_a5372442ce53b399347db05b9e733945c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5372442ce53b399347db05b9e733945c\">FlushAsync</a> (CancellationToken cancellationToken)</td></tr>\n<tr class=\"memitem:a1122a5146dc370748b8581da8c0ab41d\" id=\"r_a1122a5146dc370748b8581da8c0ab41d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override byte[]&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1122a5146dc370748b8581da8c0ab41d\">GetBuffer</a> ()</td></tr>\n<tr class=\"memitem:a7daab5da199e393bc7abdc0436e170f3\" id=\"r_a7daab5da199e393bc7abdc0436e170f3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7daab5da199e393bc7abdc0436e170f3\">Read</a> (byte[] buffer, int offset, int count)</td></tr>\n<tr class=\"memitem:ac1c46516d90ca145d1bd7094ac258ebd\" id=\"r_ac1c46516d90ca145d1bd7094ac258ebd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac1c46516d90ca145d1bd7094ac258ebd\">WriteByte</a> (byte value)</td></tr>\n<tr class=\"memitem:ab3c4ef8d23b7a74be94cc3e92346a38f\" id=\"r_ab3c4ef8d23b7a74be94cc3e92346a38f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab3c4ef8d23b7a74be94cc3e92346a38f\">Write</a> (byte[] buffer, int offset, int count)</td></tr>\n<tr class=\"memitem:ae5791506aa3049962dba047ebacffa6c\" id=\"r_ae5791506aa3049962dba047ebacffa6c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae5791506aa3049962dba047ebacffa6c\">WriteAsync</a> (byte[] buffer, int offset, int count, CancellationToken cancellationToken)</td></tr>\n<tr class=\"memitem:ab3f81c5158946e3dc9d88de4157278fb\" id=\"r_ab3f81c5158946e3dc9d88de4157278fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override object&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab3f81c5158946e3dc9d88de4157278fb\">InitializeLifetimeService</a> ()</td></tr>\n<tr class=\"memitem:a955801633531e75dd0253f10549eeb20\" id=\"r_a955801633531e75dd0253f10549eeb20\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override Task&lt; int &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a955801633531e75dd0253f10549eeb20\">ReadAsync</a> (byte[] buffer, int offset, int count, CancellationToken cancellationToken)</td></tr>\n<tr class=\"memitem:a7c2849628d872035ec9cc20b5b5f70dc\" id=\"r_a7c2849628d872035ec9cc20b5b5f70dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7c2849628d872035ec9cc20b5b5f70dc\">ReadByte</a> ()</td></tr>\n<tr class=\"memitem:a8948a34a2cd6cc6e8a037fd5367ed1c2\" id=\"r_a8948a34a2cd6cc6e8a037fd5367ed1c2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8948a34a2cd6cc6e8a037fd5367ed1c2\">Seek</a> (long offset, SeekOrigin loc)</td></tr>\n<tr class=\"memitem:a00482a87fdede1c9c58bc5b5e5b270bb\" id=\"r_a00482a87fdede1c9c58bc5b5e5b270bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a00482a87fdede1c9c58bc5b5e5b270bb\">SetLength</a> (long value)</td></tr>\n<tr class=\"memdesc:a00482a87fdede1c9c58bc5b5e5b270bb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Note: This will not make the MemoryStream any smaller, only larger.  <br /></td></tr>\n<tr class=\"memitem:aedb7be72f275938ff045731903d69c0b\" id=\"r_aedb7be72f275938ff045731903d69c0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override byte[]&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aedb7be72f275938ff045731903d69c0b\">ToArray</a> ()</td></tr>\n<tr class=\"memitem:aa52f535e992c3dd6b6c20ad130e66cf1\" id=\"r_aa52f535e992c3dd6b6c20ad130e66cf1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa52f535e992c3dd6b6c20ad130e66cf1\">TryGetBuffer</a> (out ArraySegment&lt; byte &gt; buffer)</td></tr>\n<tr class=\"memitem:a013c3a3c4ea163fb9c77c73af20ff246\" id=\"r_a013c3a3c4ea163fb9c77c73af20ff246\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a013c3a3c4ea163fb9c77c73af20ff246\">WriteTo</a> (System.IO.Stream stream)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a61cb4f87023656278059afed1a06ba4d\" id=\"r_a61cb4f87023656278059afed1a06ba4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a61cb4f87023656278059afed1a06ba4d\">Length</a><code> [get]</code></td></tr>\n<tr class=\"memitem:af24f9eaf71916c050aad99177b594538\" id=\"r_af24f9eaf71916c050aad99177b594538\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af24f9eaf71916c050aad99177b594538\">CanRead</a><code> [get]</code></td></tr>\n<tr class=\"memitem:aa607a424a8839dcb11a385f6e0fc1c5c\" id=\"r_aa607a424a8839dcb11a385f6e0fc1c5c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa607a424a8839dcb11a385f6e0fc1c5c\">CanSeek</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a9b8a44104d76c5333e4efa28a60723bf\" id=\"r_a9b8a44104d76c5333e4efa28a60723bf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9b8a44104d76c5333e4efa28a60723bf\">CanTimeout</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ad13235eb0b005d96a0cb80a8cc00a0fd\" id=\"r_ad13235eb0b005d96a0cb80a8cc00a0fd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad13235eb0b005d96a0cb80a8cc00a0fd\">CanWrite</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ac0de8f527f01c8f7a94abdaedffa350b\" id=\"r_ac0de8f527f01c8f7a94abdaedffa350b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0de8f527f01c8f7a94abdaedffa350b\">Capacity</a><code> [get, set]</code></td></tr>\n<tr class=\"memitem:a75bd09da03497aa32ad309d4b47f9ad5\" id=\"r_a75bd09da03497aa32ad309d4b47f9ad5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a75bd09da03497aa32ad309d4b47f9ad5\">Position</a><code> [get, set]</code></td></tr>\n<tr class=\"memitem:a0791ccdc5eff12b7627d094e745a98c5\" id=\"r_a0791ccdc5eff12b7627d094e745a98c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0791ccdc5eff12b7627d094e745a98c5\">ReadTimeout</a><code> [get, set]</code></td></tr>\n<tr class=\"memitem:a59b4d264b544d539ef53be7fcbfc2add\" id=\"r_a59b4d264b544d539ef53be7fcbfc2add\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a59b4d264b544d539ef53be7fcbfc2add\">WriteTimeout</a><code> [get, set]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe) </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a9e132ec51a7e7b44148bbc0174b087db\" name=\"a9e132ec51a7e7b44148bbc0174b087db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e132ec51a7e7b44148bbc0174b087db\">&#9670;&#160;</a></span>PublicBufferMemoryStream()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.PublicBufferMemoryStream </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>bufferPool</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a282c64e19a381ae3112c1c6dcc9edbc1\" name=\"a282c64e19a381ae3112c1c6dcc9edbc1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a282c64e19a381ae3112c1c6dcc9edbc1\">&#9670;&#160;</a></span>BeginRead()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override IAsyncResult Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.BeginRead </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">AsyncCallback</td>          <td class=\"paramname\"><span class=\"paramname\"><em>callback</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">object</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0817a70e52ee58f07dc7b2439ff4e118\" name=\"a0817a70e52ee58f07dc7b2439ff4e118\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0817a70e52ee58f07dc7b2439ff4e118\">&#9670;&#160;</a></span>BeginWrite()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override IAsyncResult Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.BeginWrite </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">AsyncCallback</td>          <td class=\"paramname\"><span class=\"paramname\"><em>callback</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">object</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a3f1bc42f24e76c1e6bdd1aa40cdd1a01\" name=\"a3f1bc42f24e76c1e6bdd1aa40cdd1a01\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\">&#9670;&#160;</a></span>Close()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Close </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad9c1a68bbd0be9674b1836a387e1fb99\" name=\"ad9c1a68bbd0be9674b1836a387e1fb99\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad9c1a68bbd0be9674b1836a387e1fb99\">&#9670;&#160;</a></span>CopyToAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override Task Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.CopyToAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>destination</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bufferSize</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a59594ae24d7d39ef08e9b73292324ee7\" name=\"a59594ae24d7d39ef08e9b73292324ee7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a59594ae24d7d39ef08e9b73292324ee7\">&#9670;&#160;</a></span>EndRead()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.EndRead </td>\n          <td>(</td>\n          <td class=\"paramtype\">IAsyncResult</td>          <td class=\"paramname\"><span class=\"paramname\"><em>asyncResult</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a71d425d0d6626926a04dc11d01886a8c\" name=\"a71d425d0d6626926a04dc11d01886a8c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a71d425d0d6626926a04dc11d01886a8c\">&#9670;&#160;</a></span>EndWrite()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.EndWrite </td>\n          <td>(</td>\n          <td class=\"paramtype\">IAsyncResult</td>          <td class=\"paramname\"><span class=\"paramname\"><em>asyncResult</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1b7518b4364bf38343f92a307d2c6b43\" name=\"a1b7518b4364bf38343f92a307d2c6b43\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b7518b4364bf38343f92a307d2c6b43\">&#9670;&#160;</a></span>Flush()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Flush </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a5372442ce53b399347db05b9e733945c\" name=\"a5372442ce53b399347db05b9e733945c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5372442ce53b399347db05b9e733945c\">&#9670;&#160;</a></span>FlushAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override Task Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.FlushAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a1122a5146dc370748b8581da8c0ab41d\" name=\"a1122a5146dc370748b8581da8c0ab41d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1122a5146dc370748b8581da8c0ab41d\">&#9670;&#160;</a></span>GetBuffer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override byte[] Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.GetBuffer </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab3f81c5158946e3dc9d88de4157278fb\" name=\"ab3f81c5158946e3dc9d88de4157278fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab3f81c5158946e3dc9d88de4157278fb\">&#9670;&#160;</a></span>InitializeLifetimeService()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override object Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.InitializeLifetimeService </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7daab5da199e393bc7abdc0436e170f3\" name=\"a7daab5da199e393bc7abdc0436e170f3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7daab5da199e393bc7abdc0436e170f3\">&#9670;&#160;</a></span>Read()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Read </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a955801633531e75dd0253f10549eeb20\" name=\"a955801633531e75dd0253f10549eeb20\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a955801633531e75dd0253f10549eeb20\">&#9670;&#160;</a></span>ReadAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override Task&lt; int &gt; Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.ReadAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7c2849628d872035ec9cc20b5b5f70dc\" name=\"a7c2849628d872035ec9cc20b5b5f70dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7c2849628d872035ec9cc20b5b5f70dc\">&#9670;&#160;</a></span>ReadByte()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.ReadByte </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8948a34a2cd6cc6e8a037fd5367ed1c2\" name=\"a8948a34a2cd6cc6e8a037fd5367ed1c2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8948a34a2cd6cc6e8a037fd5367ed1c2\">&#9670;&#160;</a></span>Seek()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override long Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Seek </td>\n          <td>(</td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">SeekOrigin</td>          <td class=\"paramname\"><span class=\"paramname\"><em>loc</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a00482a87fdede1c9c58bc5b5e5b270bb\" name=\"a00482a87fdede1c9c58bc5b5e5b270bb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a00482a87fdede1c9c58bc5b5e5b270bb\">&#9670;&#160;</a></span>SetLength()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.SetLength </td>\n          <td>(</td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>value</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Note: This will not make the MemoryStream any smaller, only larger. </p>\n\n</div>\n</div>\n<a id=\"aedb7be72f275938ff045731903d69c0b\" name=\"aedb7be72f275938ff045731903d69c0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aedb7be72f275938ff045731903d69c0b\">&#9670;&#160;</a></span>ToArray()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override byte[] Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.ToArray </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa52f535e992c3dd6b6c20ad130e66cf1\" name=\"aa52f535e992c3dd6b6c20ad130e66cf1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa52f535e992c3dd6b6c20ad130e66cf1\">&#9670;&#160;</a></span>TryGetBuffer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override bool Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.TryGetBuffer </td>\n          <td>(</td>\n          <td class=\"paramtype\">out ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab3c4ef8d23b7a74be94cc3e92346a38f\" name=\"ab3c4ef8d23b7a74be94cc3e92346a38f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab3c4ef8d23b7a74be94cc3e92346a38f\">&#9670;&#160;</a></span>Write()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Write </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae5791506aa3049962dba047ebacffa6c\" name=\"ae5791506aa3049962dba047ebacffa6c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae5791506aa3049962dba047ebacffa6c\">&#9670;&#160;</a></span>WriteAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override Task Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.WriteAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>count</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac1c46516d90ca145d1bd7094ac258ebd\" name=\"ac1c46516d90ca145d1bd7094ac258ebd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac1c46516d90ca145d1bd7094ac258ebd\">&#9670;&#160;</a></span>WriteByte()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.WriteByte </td>\n          <td>(</td>\n          <td class=\"paramtype\">byte</td>          <td class=\"paramname\"><span class=\"paramname\"><em>value</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a013c3a3c4ea163fb9c77c73af20ff246\" name=\"a013c3a3c4ea163fb9c77c73af20ff246\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a013c3a3c4ea163fb9c77c73af20ff246\">&#9670;&#160;</a></span>WriteTo()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override void Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.WriteTo </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af24f9eaf71916c050aad99177b594538\" name=\"af24f9eaf71916c050aad99177b594538\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af24f9eaf71916c050aad99177b594538\">&#9670;&#160;</a></span>CanRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override bool Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.CanRead</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aa607a424a8839dcb11a385f6e0fc1c5c\" name=\"aa607a424a8839dcb11a385f6e0fc1c5c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa607a424a8839dcb11a385f6e0fc1c5c\">&#9670;&#160;</a></span>CanSeek</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override bool Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.CanSeek</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9b8a44104d76c5333e4efa28a60723bf\" name=\"a9b8a44104d76c5333e4efa28a60723bf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9b8a44104d76c5333e4efa28a60723bf\">&#9670;&#160;</a></span>CanTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override bool Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.CanTimeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad13235eb0b005d96a0cb80a8cc00a0fd\" name=\"ad13235eb0b005d96a0cb80a8cc00a0fd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad13235eb0b005d96a0cb80a8cc00a0fd\">&#9670;&#160;</a></span>CanWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override bool Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.CanWrite</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ac0de8f527f01c8f7a94abdaedffa350b\" name=\"ac0de8f527f01c8f7a94abdaedffa350b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0de8f527f01c8f7a94abdaedffa350b\">&#9670;&#160;</a></span>Capacity</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Capacity</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a61cb4f87023656278059afed1a06ba4d\" name=\"a61cb4f87023656278059afed1a06ba4d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a61cb4f87023656278059afed1a06ba4d\">&#9670;&#160;</a></span>Length</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override long Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Length</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a75bd09da03497aa32ad309d4b47f9ad5\" name=\"a75bd09da03497aa32ad309d4b47f9ad5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a75bd09da03497aa32ad309d4b47f9ad5\">&#9670;&#160;</a></span>Position</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override long Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.Position</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0791ccdc5eff12b7627d094e745a98c5\" name=\"a0791ccdc5eff12b7627d094e745a98c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0791ccdc5eff12b7627d094e745a98c5\">&#9670;&#160;</a></span>ReadTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.ReadTimeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a59b4d264b544d539ef53be7fcbfc2add\" name=\"a59b4d264b544d539ef53be7fcbfc2add\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a59b4d264b544d539ef53be7fcbfc2add\">&#9670;&#160;</a></span>WriteTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override int Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.WriteTimeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_buffer_pool_8cs.html\">BufferPool.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">PublicBufferMemoryStream</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream =\n[\n    [ \"PublicBufferMemoryStream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\", null ],\n    [ \"BeginRead\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\", null ],\n    [ \"BeginWrite\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\", null ],\n    [ \"Close\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\", null ],\n    [ \"CopyToAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\", null ],\n    [ \"EndRead\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\", null ],\n    [ \"EndWrite\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\", null ],\n    [ \"Flush\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\", null ],\n    [ \"FlushAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\", null ],\n    [ \"GetBuffer\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\", null ],\n    [ \"InitializeLifetimeService\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\", null ],\n    [ \"Read\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\", null ],\n    [ \"ReadAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\", null ],\n    [ \"ReadByte\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\", null ],\n    [ \"Seek\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\", null ],\n    [ \"SetLength\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\", null ],\n    [ \"ToArray\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\", null ],\n    [ \"TryGetBuffer\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\", null ],\n    [ \"Write\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\", null ],\n    [ \"WriteAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\", null ],\n    [ \"WriteByte\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\", null ],\n    [ \"WriteTo\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\", null ],\n    [ \"CanRead\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\", null ],\n    [ \"CanSeek\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\", null ],\n    [ \"CanTimeout\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\", null ],\n    [ \"CanWrite\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\", null ],\n    [ \"Capacity\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\", null ],\n    [ \"Length\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\", null ],\n    [ \"Position\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\", null ],\n    [ \"ReadTimeout\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\", null ],\n    [ \"WriteTimeout\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\">EntityTooLargeException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1\">EntityTooLargeException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da\">EntityTooLargeException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:abc1f5d6066924fd459fce627fa2b554c\" id=\"r_abc1f5d6066924fd459fce627fa2b554c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abc1f5d6066924fd459fce627fa2b554c\">EntityTooLargeException</a> ()</td></tr>\n<tr class=\"memitem:a628ff4e3f729f87e5b894ef03764c0e1\" id=\"r_a628ff4e3f729f87e5b894ef03764c0e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a628ff4e3f729f87e5b894ef03764c0e1\">EntityTooLargeException</a> (string message)</td></tr>\n<tr class=\"memdesc:a628ff4e3f729f87e5b894ef03764c0e1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Http header too large to fit in buffer.  <br /></td></tr>\n<tr class=\"memitem:afad15e3f4c217372acdc26ba564694da\" id=\"r_afad15e3f4c217372acdc26ba564694da\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afad15e3f4c217372acdc26ba564694da\">EntityTooLargeException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"abc1f5d6066924fd459fce627fa2b554c\" name=\"abc1f5d6066924fd459fce627fa2b554c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abc1f5d6066924fd459fce627fa2b554c\">&#9670;&#160;</a></span>EntityTooLargeException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a628ff4e3f729f87e5b894ef03764c0e1\" name=\"a628ff4e3f729f87e5b894ef03764c0e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a628ff4e3f729f87e5b894ef03764c0e1\">&#9670;&#160;</a></span>EntityTooLargeException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Http header too large to fit in buffer. </p>\n\n</div>\n</div>\n<a id=\"afad15e3f4c217372acdc26ba564694da\" name=\"afad15e3f4c217372acdc26ba564694da\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afad15e3f4c217372acdc26ba564694da\">&#9670;&#160;</a></span>EntityTooLargeException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_entity_too_large_exception_8cs.html\">EntityTooLargeException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">EntityTooLargeException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception =\n[\n    [ \"EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\", null ],\n    [ \"EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1\", null ],\n    [ \"EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\">InvalidHttpResponseCodeException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d\">InvalidHttpResponseCodeException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\">InvalidHttpResponseCodeException</a>(string responseCode, string responseDetails, string responseHeader)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb\">InvalidHttpResponseCodeException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\">ResponseCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\">ResponseDetails</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\">ResponseHeader</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a90c0aed4715df79e5899c8824f4ec714\" id=\"r_a90c0aed4715df79e5899c8824f4ec714\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a90c0aed4715df79e5899c8824f4ec714\">InvalidHttpResponseCodeException</a> ()</td></tr>\n<tr class=\"memitem:a10bbe729a7327fa25e72f2dd4395b39d\" id=\"r_a10bbe729a7327fa25e72f2dd4395b39d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a10bbe729a7327fa25e72f2dd4395b39d\">InvalidHttpResponseCodeException</a> (string message)</td></tr>\n<tr class=\"memitem:acbf09e3cbb7bbf3fc21353aa2c4fb2c3\" id=\"r_acbf09e3cbb7bbf3fc21353aa2c4fb2c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\">InvalidHttpResponseCodeException</a> (string responseCode, string responseDetails, string responseHeader)</td></tr>\n<tr class=\"memitem:a717a8d9bb8b67ef7642a9336baeabbbb\" id=\"r_a717a8d9bb8b67ef7642a9336baeabbbb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a717a8d9bb8b67ef7642a9336baeabbbb\">InvalidHttpResponseCodeException</a> (string message, Exception inner)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af6bbf55134722b3156c223839b81daba\" id=\"r_af6bbf55134722b3156c223839b81daba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af6bbf55134722b3156c223839b81daba\">ResponseCode</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a331bc21a5eee98f43d9992641a6196e7\" id=\"r_a331bc21a5eee98f43d9992641a6196e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a331bc21a5eee98f43d9992641a6196e7\">ResponseHeader</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a113f65ed87eae571b93a306ddef68316\" id=\"r_a113f65ed87eae571b93a306ddef68316\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a113f65ed87eae571b93a306ddef68316\">ResponseDetails</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a90c0aed4715df79e5899c8824f4ec714\" name=\"a90c0aed4715df79e5899c8824f4ec714\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a90c0aed4715df79e5899c8824f4ec714\">&#9670;&#160;</a></span>InvalidHttpResponseCodeException() <span class=\"overload\">[1/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a10bbe729a7327fa25e72f2dd4395b39d\" name=\"a10bbe729a7327fa25e72f2dd4395b39d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a10bbe729a7327fa25e72f2dd4395b39d\">&#9670;&#160;</a></span>InvalidHttpResponseCodeException() <span class=\"overload\">[2/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"acbf09e3cbb7bbf3fc21353aa2c4fb2c3\" name=\"acbf09e3cbb7bbf3fc21353aa2c4fb2c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\">&#9670;&#160;</a></span>InvalidHttpResponseCodeException() <span class=\"overload\">[3/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>responseCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>responseDetails</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>responseHeader</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a717a8d9bb8b67ef7642a9336baeabbbb\" name=\"a717a8d9bb8b67ef7642a9336baeabbbb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a717a8d9bb8b67ef7642a9336baeabbbb\">&#9670;&#160;</a></span>InvalidHttpResponseCodeException() <span class=\"overload\">[4/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af6bbf55134722b3156c223839b81daba\" name=\"af6bbf55134722b3156c223839b81daba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af6bbf55134722b3156c223839b81daba\">&#9670;&#160;</a></span>ResponseCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.ResponseCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a113f65ed87eae571b93a306ddef68316\" name=\"a113f65ed87eae571b93a306ddef68316\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a113f65ed87eae571b93a306ddef68316\">&#9670;&#160;</a></span>ResponseDetails</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.ResponseDetails</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a331bc21a5eee98f43d9992641a6196e7\" name=\"a331bc21a5eee98f43d9992641a6196e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a331bc21a5eee98f43d9992641a6196e7\">&#9670;&#160;</a></span>ResponseHeader</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.ResponseHeader</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_invalid_http_response_code_exception_8cs.html\">InvalidHttpResponseCodeException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">InvalidHttpResponseCodeException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception =\n[\n    [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\", null ],\n    [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d\", null ],\n    [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\", null ],\n    [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb\", null ],\n    [ \"ResponseCode\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\", null ],\n    [ \"ResponseDetails\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\", null ],\n    [ \"ResponseHeader\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\">SecWebSocketKeyMissingException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640\">SecWebSocketKeyMissingException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a\">SecWebSocketKeyMissingException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ad9d2cb831443f13f73ded2e50e998101\" id=\"r_ad9d2cb831443f13f73ded2e50e998101\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad9d2cb831443f13f73ded2e50e998101\">SecWebSocketKeyMissingException</a> ()</td></tr>\n<tr class=\"memitem:a46726192be18f23f164859c1adb61640\" id=\"r_a46726192be18f23f164859c1adb61640\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a46726192be18f23f164859c1adb61640\">SecWebSocketKeyMissingException</a> (string message)</td></tr>\n<tr class=\"memitem:a2de4061f2db2f7e10faea85407b9ad3a\" id=\"r_a2de4061f2db2f7e10faea85407b9ad3a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2de4061f2db2f7e10faea85407b9ad3a\">SecWebSocketKeyMissingException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ad9d2cb831443f13f73ded2e50e998101\" name=\"ad9d2cb831443f13f73ded2e50e998101\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad9d2cb831443f13f73ded2e50e998101\">&#9670;&#160;</a></span>SecWebSocketKeyMissingException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a46726192be18f23f164859c1adb61640\" name=\"a46726192be18f23f164859c1adb61640\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a46726192be18f23f164859c1adb61640\">&#9670;&#160;</a></span>SecWebSocketKeyMissingException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a2de4061f2db2f7e10faea85407b9ad3a\" name=\"a2de4061f2db2f7e10faea85407b9ad3a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2de4061f2db2f7e10faea85407b9ad3a\">&#9670;&#160;</a></span>SecWebSocketKeyMissingException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_sec_web_socket_key_missing_exception_8cs.html\">SecWebSocketKeyMissingException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">SecWebSocketKeyMissingException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception =\n[\n    [ \"SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\", null ],\n    [ \"SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640\", null ],\n    [ \"SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\">ServerListenerSocketException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf\">ServerListenerSocketException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e\">ServerListenerSocketException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ad1157f9923ff7137fd226d8d61c1cdc7\" id=\"r_ad1157f9923ff7137fd226d8d61c1cdc7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad1157f9923ff7137fd226d8d61c1cdc7\">ServerListenerSocketException</a> ()</td></tr>\n<tr class=\"memitem:ad77e30ec3f871bf621276fa00ac2d8cf\" id=\"r_ad77e30ec3f871bf621276fa00ac2d8cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad77e30ec3f871bf621276fa00ac2d8cf\">ServerListenerSocketException</a> (string message)</td></tr>\n<tr class=\"memitem:a03ed8282bad053839e32a709ea034b4e\" id=\"r_a03ed8282bad053839e32a709ea034b4e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a03ed8282bad053839e32a709ea034b4e\">ServerListenerSocketException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ad1157f9923ff7137fd226d8d61c1cdc7\" name=\"ad1157f9923ff7137fd226d8d61c1cdc7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad1157f9923ff7137fd226d8d61c1cdc7\">&#9670;&#160;</a></span>ServerListenerSocketException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad77e30ec3f871bf621276fa00ac2d8cf\" name=\"ad77e30ec3f871bf621276fa00ac2d8cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad77e30ec3f871bf621276fa00ac2d8cf\">&#9670;&#160;</a></span>ServerListenerSocketException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a03ed8282bad053839e32a709ea034b4e\" name=\"a03ed8282bad053839e32a709ea034b4e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a03ed8282bad053839e32a709ea034b4e\">&#9670;&#160;</a></span>ServerListenerSocketException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_server_listener_socket_exception_8cs.html\">ServerListenerSocketException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">ServerListenerSocketException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception =\n[\n    [ \"ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\", null ],\n    [ \"ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf\", null ],\n    [ \"ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\">WebSocketBufferOverflowException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1\">WebSocketBufferOverflowException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d\">WebSocketBufferOverflowException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7995307d8f8510a62068b2efef8a0767\" id=\"r_a7995307d8f8510a62068b2efef8a0767\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7995307d8f8510a62068b2efef8a0767\">WebSocketBufferOverflowException</a> ()</td></tr>\n<tr class=\"memitem:a06646121cfc19cefa45dfe3c237744f1\" id=\"r_a06646121cfc19cefa45dfe3c237744f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a06646121cfc19cefa45dfe3c237744f1\">WebSocketBufferOverflowException</a> (string message)</td></tr>\n<tr class=\"memitem:a02de4e50e60e158d84e0d4fa8417e04d\" id=\"r_a02de4e50e60e158d84e0d4fa8417e04d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a02de4e50e60e158d84e0d4fa8417e04d\">WebSocketBufferOverflowException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a7995307d8f8510a62068b2efef8a0767\" name=\"a7995307d8f8510a62068b2efef8a0767\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7995307d8f8510a62068b2efef8a0767\">&#9670;&#160;</a></span>WebSocketBufferOverflowException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a06646121cfc19cefa45dfe3c237744f1\" name=\"a06646121cfc19cefa45dfe3c237744f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a06646121cfc19cefa45dfe3c237744f1\">&#9670;&#160;</a></span>WebSocketBufferOverflowException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a02de4e50e60e158d84e0d4fa8417e04d\" name=\"a02de4e50e60e158d84e0d4fa8417e04d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02de4e50e60e158d84e0d4fa8417e04d\">&#9670;&#160;</a></span>WebSocketBufferOverflowException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_buffer_overflow_exception_8cs.html\">WebSocketBufferOverflowException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">WebSocketBufferOverflowException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception =\n[\n    [ \"WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\", null ],\n    [ \"WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1\", null ],\n    [ \"WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\">WebSocketHandshakeFailedException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9\">WebSocketHandshakeFailedException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c\">WebSocketHandshakeFailedException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aa056e2cb8e72b87c28015d9947ef0c7a\" id=\"r_aa056e2cb8e72b87c28015d9947ef0c7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa056e2cb8e72b87c28015d9947ef0c7a\">WebSocketHandshakeFailedException</a> ()</td></tr>\n<tr class=\"memitem:aaa3d64dd95ff3b88121c7d5136f086b9\" id=\"r_aaa3d64dd95ff3b88121c7d5136f086b9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaa3d64dd95ff3b88121c7d5136f086b9\">WebSocketHandshakeFailedException</a> (string message)</td></tr>\n<tr class=\"memitem:af4212c589c1575d390845be9e6b0e27c\" id=\"r_af4212c589c1575d390845be9e6b0e27c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4212c589c1575d390845be9e6b0e27c\">WebSocketHandshakeFailedException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"aa056e2cb8e72b87c28015d9947ef0c7a\" name=\"aa056e2cb8e72b87c28015d9947ef0c7a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa056e2cb8e72b87c28015d9947ef0c7a\">&#9670;&#160;</a></span>WebSocketHandshakeFailedException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"aaa3d64dd95ff3b88121c7d5136f086b9\" name=\"aaa3d64dd95ff3b88121c7d5136f086b9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaa3d64dd95ff3b88121c7d5136f086b9\">&#9670;&#160;</a></span>WebSocketHandshakeFailedException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af4212c589c1575d390845be9e6b0e27c\" name=\"af4212c589c1575d390845be9e6b0e27c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4212c589c1575d390845be9e6b0e27c\">&#9670;&#160;</a></span>WebSocketHandshakeFailedException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_handshake_failed_exception_8cs.html\">WebSocketHandshakeFailedException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">WebSocketHandshakeFailedException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception =\n[\n    [ \"WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\", null ],\n    [ \"WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9\", null ],\n    [ \"WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\">WebSocketVersionNotSupportedException</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607\">WebSocketVersionNotSupportedException</a>(string message)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d\">WebSocketVersionNotSupportedException</a>(string message, Exception inner)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a622db3686e8c00a0354965941af5b6b4\" id=\"r_a622db3686e8c00a0354965941af5b6b4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a622db3686e8c00a0354965941af5b6b4\">WebSocketVersionNotSupportedException</a> ()</td></tr>\n<tr class=\"memitem:a46f2737701bdc2e3933a4f2450307607\" id=\"r_a46f2737701bdc2e3933a4f2450307607\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a46f2737701bdc2e3933a4f2450307607\">WebSocketVersionNotSupportedException</a> (string message)</td></tr>\n<tr class=\"memitem:a890f584a8f8b7235778088dfec119b7d\" id=\"r_a890f584a8f8b7235778088dfec119b7d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a890f584a8f8b7235778088dfec119b7d\">WebSocketVersionNotSupportedException</a> (string message, Exception inner)</td></tr>\n</table>\n<a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a622db3686e8c00a0354965941af5b6b4\" name=\"a622db3686e8c00a0354965941af5b6b4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a622db3686e8c00a0354965941af5b6b4\">&#9670;&#160;</a></span>WebSocketVersionNotSupportedException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a46f2737701bdc2e3933a4f2450307607\" name=\"a46f2737701bdc2e3933a4f2450307607\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a46f2737701bdc2e3933a4f2450307607\">&#9670;&#160;</a></span>WebSocketVersionNotSupportedException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a890f584a8f8b7235778088dfec119b7d\" name=\"a890f584a8f8b7235778088dfec119b7d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a890f584a8f8b7235778088dfec119b7d\">&#9670;&#160;</a></span>WebSocketVersionNotSupportedException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>inner</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_version_not_supported_exception_8cs.html\">WebSocketVersionNotSupportedException.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">WebSocketVersionNotSupportedException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception =\n[\n    [ \"WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\", null ],\n    [ \"WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607\", null ],\n    [ \"WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.HttpHelper Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5\">CalculateWebSocketKey</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337\">ComputeSocketAcceptString</a>(string secWebSocketKey)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab\">GetPathFromHeader</a>(string httpHeader)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f\">GetSubProtocols</a>(string httpHeader)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b\">IsWebSocketUpgradeRequest</a>(String header)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c\">ReadHttpHeaderAsync</a>(System.IO.Stream stream, CancellationToken token)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14\">ReadHttpResponseCode</a>(string response)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634\">WriteHttpHeaderAsync</a>(string response, System.IO.Stream stream, CancellationToken token)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.HttpHelper Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.HttpHelper Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:a9b5b222971fabf47b7dcf9124e4cd6e5\" id=\"r_a9b5b222971fabf47b7dcf9124e4cd6e5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9b5b222971fabf47b7dcf9124e4cd6e5\">CalculateWebSocketKey</a> ()</td></tr>\n<tr class=\"memdesc:a9b5b222971fabf47b7dcf9124e4cd6e5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Calculates a random WebSocket key that can be used to initiate a WebSocket handshake.  <br /></td></tr>\n<tr class=\"memitem:ac7996ac7be1b518142877ae09e7a8337\" id=\"r_ac7996ac7be1b518142877ae09e7a8337\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7996ac7be1b518142877ae09e7a8337\">ComputeSocketAcceptString</a> (string secWebSocketKey)</td></tr>\n<tr class=\"memdesc:ac7996ac7be1b518142877ae09e7a8337\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Computes a WebSocket accept string from a given key.  <br /></td></tr>\n<tr class=\"memitem:aa5ded6a39f622623cee6b9453cdbab1c\" id=\"r_aa5ded6a39f622623cee6b9453cdbab1c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static async Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa5ded6a39f622623cee6b9453cdbab1c\">ReadHttpHeaderAsync</a> (System.IO.Stream stream, CancellationToken token)</td></tr>\n<tr class=\"memdesc:aa5ded6a39f622623cee6b9453cdbab1c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads an http header as per the HTTP spec.  <br /></td></tr>\n<tr class=\"memitem:a7b6d73c58a1a86ab4aee854945708f0b\" id=\"r_a7b6d73c58a1a86ab4aee854945708f0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b6d73c58a1a86ab4aee854945708f0b\">IsWebSocketUpgradeRequest</a> (String header)</td></tr>\n<tr class=\"memdesc:a7b6d73c58a1a86ab4aee854945708f0b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Decodes the header to detect is this is a web socket upgrade response.  <br /></td></tr>\n<tr class=\"memitem:a5d4a53f6713ee2dd4447b333389c26ab\" id=\"r_a5d4a53f6713ee2dd4447b333389c26ab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5d4a53f6713ee2dd4447b333389c26ab\">GetPathFromHeader</a> (string httpHeader)</td></tr>\n<tr class=\"memdesc:a5d4a53f6713ee2dd4447b333389c26ab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Gets the path from the HTTP header.  <br /></td></tr>\n<tr class=\"memitem:a5b5e11646f512d03ba8c2c9b61fa2d7f\" id=\"r_a5b5e11646f512d03ba8c2c9b61fa2d7f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static IList&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5b5e11646f512d03ba8c2c9b61fa2d7f\">GetSubProtocols</a> (string httpHeader)</td></tr>\n<tr class=\"memitem:a68bef1cf1eda1608db5ce1750d040d14\" id=\"r_a68bef1cf1eda1608db5ce1750d040d14\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a68bef1cf1eda1608db5ce1750d040d14\">ReadHttpResponseCode</a> (string response)</td></tr>\n<tr class=\"memdesc:a68bef1cf1eda1608db5ce1750d040d14\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads the HTTP response code from the http response string.  <br /></td></tr>\n<tr class=\"memitem:a6e758500694c66088449bc7ff86c6634\" id=\"r_a6e758500694c66088449bc7ff86c6634\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6e758500694c66088449bc7ff86c6634\">WriteHttpHeaderAsync</a> (string response, System.IO.Stream stream, CancellationToken token)</td></tr>\n<tr class=\"memdesc:a6e758500694c66088449bc7ff86c6634\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Writes an HTTP response string to the stream.  <br /></td></tr>\n</table>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a9b5b222971fabf47b7dcf9124e4cd6e5\" name=\"a9b5b222971fabf47b7dcf9124e4cd6e5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9b5b222971fabf47b7dcf9124e4cd6e5\">&#9670;&#160;</a></span>CalculateWebSocketKey()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.HttpHelper.CalculateWebSocketKey </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Calculates a random WebSocket key that can be used to initiate a WebSocket handshake. </p>\n<dl class=\"section return\"><dt>Returns</dt><dd>A random websocket key</dd></dl>\n\n</div>\n</div>\n<a id=\"ac7996ac7be1b518142877ae09e7a8337\" name=\"ac7996ac7be1b518142877ae09e7a8337\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7996ac7be1b518142877ae09e7a8337\">&#9670;&#160;</a></span>ComputeSocketAcceptString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.HttpHelper.ComputeSocketAcceptString </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>secWebSocketKey</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Computes a WebSocket accept string from a given key. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">secWebSocketKey</td><td>The web socket key to base the accept string on</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A web socket accept string</dd></dl>\n\n</div>\n</div>\n<a id=\"a5d4a53f6713ee2dd4447b333389c26ab\" name=\"a5d4a53f6713ee2dd4447b333389c26ab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5d4a53f6713ee2dd4447b333389c26ab\">&#9670;&#160;</a></span>GetPathFromHeader()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.HttpHelper.GetPathFromHeader </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpHeader</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Gets the path from the HTTP header. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">httpHeader</td><td>The HTTP header to read</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>The path</dd></dl>\n\n</div>\n</div>\n<a id=\"a5b5e11646f512d03ba8c2c9b61fa2d7f\" name=\"a5b5e11646f512d03ba8c2c9b61fa2d7f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5b5e11646f512d03ba8c2c9b61fa2d7f\">&#9670;&#160;</a></span>GetSubProtocols()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IList&lt; string &gt; Nakama.Ninja.WebSockets.HttpHelper.GetSubProtocols </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpHeader</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a7b6d73c58a1a86ab4aee854945708f0b\" name=\"a7b6d73c58a1a86ab4aee854945708f0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b6d73c58a1a86ab4aee854945708f0b\">&#9670;&#160;</a></span>IsWebSocketUpgradeRequest()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Ninja.WebSockets.HttpHelper.IsWebSocketUpgradeRequest </td>\n          <td>(</td>\n          <td class=\"paramtype\">String</td>          <td class=\"paramname\"><span class=\"paramname\"><em>header</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Decodes the header to detect is this is a web socket upgrade response. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">header</td><td>The HTTP header</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>True if this is an http WebSocket upgrade response</dd></dl>\n\n</div>\n</div>\n<a id=\"aa5ded6a39f622623cee6b9453cdbab1c\" name=\"aa5ded6a39f622623cee6b9453cdbab1c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa5ded6a39f622623cee6b9453cdbab1c\">&#9670;&#160;</a></span>ReadHttpHeaderAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; string &gt; Nakama.Ninja.WebSockets.HttpHelper.ReadHttpHeaderAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Reads an http header as per the HTTP spec. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">stream</td><td>The stream to read UTF8 text from</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>The HTTP header</dd></dl>\n\n</div>\n</div>\n<a id=\"a68bef1cf1eda1608db5ce1750d040d14\" name=\"a68bef1cf1eda1608db5ce1750d040d14\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a68bef1cf1eda1608db5ce1750d040d14\">&#9670;&#160;</a></span>ReadHttpResponseCode()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.HttpHelper.ReadHttpResponseCode </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>response</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Reads the HTTP response code from the http response string. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">response</td><td>The response string</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>the response code</dd></dl>\n\n</div>\n</div>\n<a id=\"a6e758500694c66088449bc7ff86c6634\" name=\"a6e758500694c66088449bc7ff86c6634\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e758500694c66088449bc7ff86c6634\">&#9670;&#160;</a></span>WriteHttpHeaderAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Ninja.WebSockets.HttpHelper.WriteHttpHeaderAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>response</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Writes an HTTP response string to the stream. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">response</td><td>The response (without the new line characters)</td></tr>\n    <tr><td class=\"paramname\">stream</td><td>The stream to write to</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_http_helper_8cs.html\">HttpHelper.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">HttpHelper</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.PingPongManager Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\">OnPong</a>(PongEventArgs e)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">protected</span><span class=\"mlabel\">virtual</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\">PingPongManager</a>(Guid guid, WebSocket webSocket, TimeSpan keepAliveInterval, CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\">Pong</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\">SendPing</a>(ArraySegment&lt; byte &gt; payload, CancellationToken cancellation)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">Nakama.Ninja.WebSockets.PingPongManager</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.PingPongManager Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.PingPongManager Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Ping Pong Manager used to facilitate ping pong WebSocket messages.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.PingPongManager:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EPingPongManager_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EPingPongManager_map\" name=\"Nakama_2ENinja_2EWebSockets_2EPingPongManager_map\">\n<area href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\" alt=\"Nakama.Ninja.WebSockets.IPingPongManager\" shape=\"rect\" coords=\"0,0,275,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a28b64f995bd9dfc95b4b2981c24219df\" id=\"r_a28b64f995bd9dfc95b4b2981c24219df\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28b64f995bd9dfc95b4b2981c24219df\">PingPongManager</a> (Guid guid, WebSocket webSocket, TimeSpan keepAliveInterval, CancellationToken cancellationToken)</td></tr>\n<tr class=\"memdesc:a28b64f995bd9dfc95b4b2981c24219df\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> to facilitate ping pong WebSocket messages. If you are manually creating an instance of this class then it is advisable to set keepAliveInterval to TimeSpan.Zero when you create the WebSocket instance (using a factory) otherwise you may be automatically be sending duplicate Ping messages (see keepAliveInterval below)  <br /></td></tr>\n<tr class=\"memitem:ad8ad09c265a7ade2143b855911c1f1cf\" id=\"r_ad8ad09c265a7ade2143b855911c1f1cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad8ad09c265a7ade2143b855911c1f1cf\">SendPing</a> (ArraySegment&lt; byte &gt; payload, CancellationToken cancellation)</td></tr>\n<tr class=\"memdesc:ad8ad09c265a7ade2143b855911c1f1cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Sends a ping frame.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pro-methods\" class=\"groupheader\"><a id=\"pro-methods\" name=\"pro-methods\"></a>\nProtected Member Functions</h2></td></tr>\n<tr class=\"memitem:a6033a08ddfa5dc60e5c98bd1bc4abe29\" id=\"r_a6033a08ddfa5dc60e5c98bd1bc4abe29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">virtual void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6033a08ddfa5dc60e5c98bd1bc4abe29\">OnPong</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a> e)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a2f1ae430d5ee59981e308167590b941c\" id=\"r_a2f1ae430d5ee59981e308167590b941c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">EventHandler&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2f1ae430d5ee59981e308167590b941c\">Pong</a></td></tr>\n<tr class=\"memdesc:a2f1ae430d5ee59981e308167590b941c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raised when a Pong frame is received.  <br /></td></tr>\n<tr class=\"inherit_header events_interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">Nakama.Ninja.WebSockets.IPingPongManager</a></td></tr>\n<tr class=\"memitem:a745f1289cfea320742116e665442b4b8 inherit events_interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\" id=\"r_a745f1289cfea320742116e665442b4b8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">EventHandler&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\">Pong</a></td></tr>\n<tr class=\"memdesc:a745f1289cfea320742116e665442b4b8 inherit events_interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raised when a Pong frame is received.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Ping Pong Manager used to facilitate ping pong WebSocket messages. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a28b64f995bd9dfc95b4b2981c24219df\" name=\"a28b64f995bd9dfc95b4b2981c24219df\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28b64f995bd9dfc95b4b2981c24219df\">&#9670;&#160;</a></span>PingPongManager()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.PingPongManager.PingPongManager </td>\n          <td>(</td>\n          <td class=\"paramtype\">Guid</td>          <td class=\"paramname\"><span class=\"paramname\"><em>guid</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">WebSocket</td>          <td class=\"paramname\"><span class=\"paramname\"><em>webSocket</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">TimeSpan</td>          <td class=\"paramname\"><span class=\"paramname\"><em>keepAliveInterval</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> to facilitate ping pong WebSocket messages. If you are manually creating an instance of this class then it is advisable to set keepAliveInterval to TimeSpan.Zero when you create the WebSocket instance (using a factory) otherwise you may be automatically be sending duplicate Ping messages (see keepAliveInterval below) </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">webSocket</td><td>The web socket used to listen to ping messages and send pong messages</td></tr>\n    <tr><td class=\"paramname\">keepAliveInterval</td><td>The time between automatically sending ping messages. Set this to TimeSpan.Zero if you with to manually control sending ping messages. </td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The token used to cancel a pending ping send AND the automatic sending of ping messages if keepAliveInterval is positive</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a6033a08ddfa5dc60e5c98bd1bc4abe29\" name=\"a6033a08ddfa5dc60e5c98bd1bc4abe29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6033a08ddfa5dc60e5c98bd1bc4abe29\">&#9670;&#160;</a></span>OnPong()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">virtual void Nakama.Ninja.WebSockets.PingPongManager.OnPong </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel protected\">protected</span><span class=\"mlabel virtual\">virtual</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ad8ad09c265a7ade2143b855911c1f1cf\" name=\"ad8ad09c265a7ade2143b855911c1f1cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad8ad09c265a7ade2143b855911c1f1cf\">&#9670;&#160;</a></span>SendPing()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.Ninja.WebSockets.PingPongManager.SendPing </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellation</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Sends a ping frame. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">payload</td><td>The payload (must be 125 bytes of less)</td></tr>\n    <tr><td class=\"paramname\">cancellation</td><td>The cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\">Nakama.Ninja.WebSockets.IPingPongManager</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a2f1ae430d5ee59981e308167590b941c\" name=\"a2f1ae430d5ee59981e308167590b941c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f1ae430d5ee59981e308167590b941c\">&#9670;&#160;</a></span>Pong</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">EventHandler&lt;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a>&gt; Nakama.Ninja.WebSockets.PingPongManager.Pong</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Raised when a Pong frame is received. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_ping_pong_manager_8cs.html\">PingPongManager.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">PingPongManager</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager =\n[\n    [ \"PingPongManager\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\", null ],\n    [ \"OnPong\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\", null ],\n    [ \"SendPing\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\", null ],\n    [ \"Pong\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.PongEventArgs Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">Nakama.Ninja.WebSockets.PongEventArgs</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\">Payload</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">Nakama.Ninja.WebSockets.PongEventArgs</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\">PongEventArgs</a>(ArraySegment&lt; byte &gt; payload)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">Nakama.Ninja.WebSockets.PongEventArgs</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.PongEventArgs Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.PongEventArgs Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Pong EventArgs.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.PongEventArgs:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a0eeaa849de1d4f2f1ece6d27170ffb1c\" id=\"r_a0eeaa849de1d4f2f1ece6d27170ffb1c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0eeaa849de1d4f2f1ece6d27170ffb1c\">PongEventArgs</a> (ArraySegment&lt; byte &gt; payload)</td></tr>\n<tr class=\"memdesc:a0eeaa849de1d4f2f1ece6d27170ffb1c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\" title=\"Pong EventArgs.\">PongEventArgs</a> class.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a732cfef369ecc2c8eae01d4aba6ccd38\" id=\"r_a732cfef369ecc2c8eae01d4aba6ccd38\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">ArraySegment&lt; byte &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a732cfef369ecc2c8eae01d4aba6ccd38\">Payload</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a732cfef369ecc2c8eae01d4aba6ccd38\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The data extracted from a Pong WebSocket frame.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Pong EventArgs. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a0eeaa849de1d4f2f1ece6d27170ffb1c\" name=\"a0eeaa849de1d4f2f1ece6d27170ffb1c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0eeaa849de1d4f2f1ece6d27170ffb1c\">&#9670;&#160;</a></span>PongEventArgs()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.PongEventArgs.PongEventArgs </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\" title=\"Pong EventArgs.\">PongEventArgs</a> class. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">payload</td><td>The pong payload must be 125 bytes or less (can be zero bytes)</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a732cfef369ecc2c8eae01d4aba6ccd38\" name=\"a732cfef369ecc2c8eae01d4aba6ccd38\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a732cfef369ecc2c8eae01d4aba6ccd38\">&#9670;&#160;</a></span>Payload</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">ArraySegment&lt;byte&gt; Nakama.Ninja.WebSockets.PongEventArgs.Payload</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The data extracted from a Pong WebSocket frame. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_pong_event_args_8cs.html\">PongEventArgs.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args =\n[\n    [ \"PongEventArgs\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\", null ],\n    [ \"Payload\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketClientFactory Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\">ConnectAsync</a>(Uri uri, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\">ConnectAsync</a>(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\">ConnectAsync</a>(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\">GetStream</a>(Guid loggingGuid, bool isSecure, bool noDelay, string host, int port, CancellationToken cancellationToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">protected</span><span class=\"mlabel\">virtual</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\">TlsAuthenticateAsClient</a>(SslStream sslStream, string host)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">protected</span><span class=\"mlabel\">virtual</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\">WebSocketClientFactory</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731\">WebSocketClientFactory</a>(Func&lt; MemoryStream &gt; bufferFactory)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.WebSocketClientFactory Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketClientFactory Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Web socket client factory used to open web socket client connections.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.WebSocketClientFactory:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EWebSocketClientFactory_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EWebSocketClientFactory_map\" name=\"Nakama_2ENinja_2EWebSockets_2EWebSocketClientFactory_map\">\n<area href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\" alt=\"Nakama.Ninja.WebSockets.IWebSocketClientFactory\" shape=\"rect\" coords=\"0,0,309,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a2a013885f5f062a116c300d3bb5bb192\" id=\"r_a2a013885f5f062a116c300d3bb5bb192\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2a013885f5f062a116c300d3bb5bb192\">WebSocketClientFactory</a> ()</td></tr>\n<tr class=\"memdesc:a2a013885f5f062a116c300d3bb5bb192\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class without caring about internal buffers.  <br /></td></tr>\n<tr class=\"memitem:a8cabd737201862075fe8587573f96731\" id=\"r_a8cabd737201862075fe8587573f96731\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8cabd737201862075fe8587573f96731\">WebSocketClientFactory</a> (Func&lt; MemoryStream &gt; bufferFactory)</td></tr>\n<tr class=\"memdesc:a8cabd737201862075fe8587573f96731\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class with control over internal buffer creation.  <br /></td></tr>\n<tr class=\"memitem:ac2b906812572c082e8d283ea7edca1d1\" id=\"r_ac2b906812572c082e8d283ea7edca1d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac2b906812572c082e8d283ea7edca1d1\">ConnectAsync</a> (Uri uri, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:ac2b906812572c082e8d283ea7edca1d1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with default options.  <br /></td></tr>\n<tr class=\"memitem:a08071ad49b700843123a9eee3593338a\" id=\"r_a08071ad49b700843123a9eee3593338a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a08071ad49b700843123a9eee3593338a\">ConnectAsync</a> (Uri uri, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a08071ad49b700843123a9eee3593338a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with options specified.  <br /></td></tr>\n<tr class=\"memitem:ada652ae0129477188e577b13ee36bd04\" id=\"r_ada652ae0129477188e577b13ee36bd04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ada652ae0129477188e577b13ee36bd04\">ConnectAsync</a> (System.IO.Stream responseStream, string secWebSocketKey, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:ada652ae0129477188e577b13ee36bd04\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/IP and this function will allow you to do that.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pro-methods\" class=\"groupheader\"><a id=\"pro-methods\" name=\"pro-methods\"></a>\nProtected Member Functions</h2></td></tr>\n<tr class=\"memitem:ae82bdab87a83f521602e1a3608ea7bb9\" id=\"r_ae82bdab87a83f521602e1a3608ea7bb9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">virtual void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae82bdab87a83f521602e1a3608ea7bb9\">TlsAuthenticateAsClient</a> (SslStream sslStream, string host)</td></tr>\n<tr class=\"memdesc:ae82bdab87a83f521602e1a3608ea7bb9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Override this if you need more fine grained control over the TLS handshake like setting the SslProtocol or adding a client certificate.  <br /></td></tr>\n<tr class=\"memitem:ae3747882e5308def7db0b4a387fdb466\" id=\"r_ae3747882e5308def7db0b4a387fdb466\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">virtual async Task&lt; System.IO.Stream &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae3747882e5308def7db0b4a387fdb466\">GetStream</a> (Guid loggingGuid, bool isSecure, bool noDelay, string host, int port, CancellationToken cancellationToken)</td></tr>\n<tr class=\"memdesc:ae3747882e5308def7db0b4a387fdb466\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Override this if you need more control over how the stream used for the websocket is created. It does not event need to be a TCP stream.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Web socket client factory used to open web socket client connections. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a2a013885f5f062a116c300d3bb5bb192\" name=\"a2a013885f5f062a116c300d3bb5bb192\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2a013885f5f062a116c300d3bb5bb192\">&#9670;&#160;</a></span>WebSocketClientFactory() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class without caring about internal buffers. </p>\n\n</div>\n</div>\n<a id=\"a8cabd737201862075fe8587573f96731\" name=\"a8cabd737201862075fe8587573f96731\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8cabd737201862075fe8587573f96731\">&#9670;&#160;</a></span>WebSocketClientFactory() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory </td>\n          <td>(</td>\n          <td class=\"paramtype\">Func&lt; MemoryStream &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bufferFactory</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class with control over internal buffer creation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">bufferFactory</td><td>Used to get a memory stream. Feel free to implement your own buffer pool. MemoryStreams will be disposed when no longer needed and can be returned to the pool.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ada652ae0129477188e577b13ee36bd04\" name=\"ada652ae0129477188e577b13ee36bd04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ada652ae0129477188e577b13ee36bd04\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>responseStream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>secWebSocketKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/IP and this function will allow you to do that. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">responseStream</td><td>The full duplex response stream from the server</td></tr>\n    <tr><td class=\"paramname\">secWebSocketKey</td><td>The secWebSocketKey you used in the handshake request</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The WebSocket client options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd></dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"ac2b906812572c082e8d283ea7edca1d1\" name=\"ac2b906812572c082e8d283ea7edca1d1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac2b906812572c082e8d283ea7edca1d1\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect with default options. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket instance</dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"a08071ad49b700843123a9eee3593338a\" name=\"a08071ad49b700843123a9eee3593338a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a08071ad49b700843123a9eee3593338a\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect with options specified. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The WebSocket client options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket instance</dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"ae3747882e5308def7db0b4a387fdb466\" name=\"ae3747882e5308def7db0b4a387fdb466\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae3747882e5308def7db0b4a387fdb466\">&#9670;&#160;</a></span>GetStream()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">virtual async Task&lt; System.IO.Stream &gt; Nakama.Ninja.WebSockets.WebSocketClientFactory.GetStream </td>\n          <td>(</td>\n          <td class=\"paramtype\">Guid</td>          <td class=\"paramname\"><span class=\"paramname\"><em>loggingGuid</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>isSecure</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>noDelay</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel protected\">protected</span><span class=\"mlabel virtual\">virtual</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Override this if you need more control over how the stream used for the websocket is created. It does not event need to be a TCP stream. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">loggingGuid</td><td>For logging purposes only</td></tr>\n    <tr><td class=\"paramname\">isSecure</td><td>Make a secure connection</td></tr>\n    <tr><td class=\"paramname\">noDelay</td><td>Set to true to send a message immediately with the least amount of latency (typical usage for chat)</td></tr>\n    <tr><td class=\"paramname\">host</td><td>The destination host (can be an IP address)</td></tr>\n    <tr><td class=\"paramname\">port</td><td>The destination port</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>Used to cancel the request</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected and open stream</dd></dl>\n\n</div>\n</div>\n<a id=\"ae82bdab87a83f521602e1a3608ea7bb9\" name=\"ae82bdab87a83f521602e1a3608ea7bb9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae82bdab87a83f521602e1a3608ea7bb9\">&#9670;&#160;</a></span>TlsAuthenticateAsClient()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">virtual void Nakama.Ninja.WebSockets.WebSocketClientFactory.TlsAuthenticateAsClient </td>\n          <td>(</td>\n          <td class=\"paramtype\">SslStream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sslStream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel protected\">protected</span><span class=\"mlabel virtual\">virtual</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Override this if you need more fine grained control over the TLS handshake like setting the SslProtocol or adding a client certificate. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_client_factory_8cs.html\">WebSocketClientFactory.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">WebSocketClientFactory</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory =\n[\n    [ \"WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\", null ],\n    [ \"WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\", null ],\n    [ \"GetStream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\", null ],\n    [ \"TlsAuthenticateAsClient\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketClientOptions Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\">AdditionalHttpHeaders</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\">IncludeExceptionInCloseResponse</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\">KeepAliveInterval</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\">NoDelay</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\">SecWebSocketExtensions</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\">SecWebSocketProtocol</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\">WebSocketClientOptions</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.WebSocketClientOptions Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketClientOptions Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a60d072f7c1b6cdf03216249e257efe6f\" id=\"r_a60d072f7c1b6cdf03216249e257efe6f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60d072f7c1b6cdf03216249e257efe6f\">WebSocketClientOptions</a> ()</td></tr>\n<tr class=\"memdesc:a60d072f7c1b6cdf03216249e257efe6f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\" title=\"Client WebSocket init options.\">WebSocketClientOptions</a> class.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a63b39ac48f2759d98574e53599e7c337\" id=\"r_a63b39ac48f2759d98574e53599e7c337\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TimeSpan&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a63b39ac48f2759d98574e53599e7c337\">KeepAliveInterval</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a63b39ac48f2759d98574e53599e7c337\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">How often to send ping requests to the Server This is done to prevent proxy servers from closing your connection The default is TimeSpan.Zero meaning that it is disabled. WebSocket servers usually send ping messages so it is not normally necessary for the client to send them (hence the TimeSpan.Zero default) You can manually control ping pong messages using the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> class. If you do that it is advisible to set this KeepAliveInterval to zero for the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a>.  <br /></td></tr>\n<tr class=\"memitem:a4eecc580079d1338e13b8368f686177f\" id=\"r_a4eecc580079d1338e13b8368f686177f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4eecc580079d1338e13b8368f686177f\">NoDelay</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a4eecc580079d1338e13b8368f686177f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Set to true to send a message immediately with the least amount of latency (typical usage for chat) This will disable Nagle's algorithm which can cause high tcp latency for small packets sent infrequently However, if you are streaming large packets or sending large numbers of small packets frequently it is advisable to set NoDelay to false This way data will be bundled into larger packets for better throughput.  <br /></td></tr>\n<tr class=\"memitem:acde18f33707e3a3589136457f0b17c04\" id=\"r_acde18f33707e3a3589136457f0b17c04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Dictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acde18f33707e3a3589136457f0b17c04\">AdditionalHttpHeaders</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:acde18f33707e3a3589136457f0b17c04\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add any additional http headers to this dictionary.  <br /></td></tr>\n<tr class=\"memitem:a32c1934b7aa3d481854c7caf6509df3b\" id=\"r_a32c1934b7aa3d481854c7caf6509df3b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a32c1934b7aa3d481854c7caf6509df3b\">IncludeExceptionInCloseResponse</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a32c1934b7aa3d481854c7caf6509df3b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Include the full exception (with stack trace) in the close response when an exception is encountered and the WebSocket connection is closed The default is false.  <br /></td></tr>\n<tr class=\"memitem:a0f6ffb1c602783b96fa63822adf93162\" id=\"r_a0f6ffb1c602783b96fa63822adf93162\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f6ffb1c602783b96fa63822adf93162\">SecWebSocketExtensions</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a0f6ffb1c602783b96fa63822adf93162\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">WebSocket Extensions as an HTTP header value.  <br /></td></tr>\n<tr class=\"memitem:a7f6a8ce6c2e54c8fd2e8966fc148d669\" id=\"r_a7f6a8ce6c2e54c8fd2e8966fc148d669\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f6a8ce6c2e54c8fd2e8966fc148d669\">SecWebSocketProtocol</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a7f6a8ce6c2e54c8fd2e8966fc148d669\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A comma separated list of sub protocols in preference order (first one being the most preferred) The server will return the first supported sub protocol (or none if none are supported) Can be null.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a60d072f7c1b6cdf03216249e257efe6f\" name=\"a60d072f7c1b6cdf03216249e257efe6f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60d072f7c1b6cdf03216249e257efe6f\">&#9670;&#160;</a></span>WebSocketClientOptions()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketClientOptions.WebSocketClientOptions </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\" title=\"Client WebSocket init options.\">WebSocketClientOptions</a> class. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"acde18f33707e3a3589136457f0b17c04\" name=\"acde18f33707e3a3589136457f0b17c04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acde18f33707e3a3589136457f0b17c04\">&#9670;&#160;</a></span>AdditionalHttpHeaders</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Dictionary&lt;string, string&gt; Nakama.Ninja.WebSockets.WebSocketClientOptions.AdditionalHttpHeaders</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Add any additional http headers to this dictionary. </p>\n\n</div>\n</div>\n<a id=\"a32c1934b7aa3d481854c7caf6509df3b\" name=\"a32c1934b7aa3d481854c7caf6509df3b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a32c1934b7aa3d481854c7caf6509df3b\">&#9670;&#160;</a></span>IncludeExceptionInCloseResponse</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Ninja.WebSockets.WebSocketClientOptions.IncludeExceptionInCloseResponse</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Include the full exception (with stack trace) in the close response when an exception is encountered and the WebSocket connection is closed The default is false. </p>\n\n</div>\n</div>\n<a id=\"a63b39ac48f2759d98574e53599e7c337\" name=\"a63b39ac48f2759d98574e53599e7c337\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a63b39ac48f2759d98574e53599e7c337\">&#9670;&#160;</a></span>KeepAliveInterval</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TimeSpan Nakama.Ninja.WebSockets.WebSocketClientOptions.KeepAliveInterval</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>How often to send ping requests to the Server This is done to prevent proxy servers from closing your connection The default is TimeSpan.Zero meaning that it is disabled. WebSocket servers usually send ping messages so it is not normally necessary for the client to send them (hence the TimeSpan.Zero default) You can manually control ping pong messages using the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> class. If you do that it is advisible to set this KeepAliveInterval to zero for the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a>. </p>\n\n</div>\n</div>\n<a id=\"a4eecc580079d1338e13b8368f686177f\" name=\"a4eecc580079d1338e13b8368f686177f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4eecc580079d1338e13b8368f686177f\">&#9670;&#160;</a></span>NoDelay</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Ninja.WebSockets.WebSocketClientOptions.NoDelay</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Set to true to send a message immediately with the least amount of latency (typical usage for chat) This will disable Nagle's algorithm which can cause high tcp latency for small packets sent infrequently However, if you are streaming large packets or sending large numbers of small packets frequently it is advisable to set NoDelay to false This way data will be bundled into larger packets for better throughput. </p>\n\n</div>\n</div>\n<a id=\"a0f6ffb1c602783b96fa63822adf93162\" name=\"a0f6ffb1c602783b96fa63822adf93162\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f6ffb1c602783b96fa63822adf93162\">&#9670;&#160;</a></span>SecWebSocketExtensions</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.WebSocketClientOptions.SecWebSocketExtensions</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>WebSocket Extensions as an HTTP header value. </p>\n\n</div>\n</div>\n<a id=\"a7f6a8ce6c2e54c8fd2e8966fc148d669\" name=\"a7f6a8ce6c2e54c8fd2e8966fc148d669\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f6a8ce6c2e54c8fd2e8966fc148d669\">&#9670;&#160;</a></span>SecWebSocketProtocol</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.WebSocketClientOptions.SecWebSocketProtocol</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A comma separated list of sub protocols in preference order (first one being the most preferred) The server will return the first supported sub protocol (or none if none are supported) Can be null. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_client_options_8cs.html\">WebSocketClientOptions.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options =\n[\n    [ \"WebSocketClientOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\", null ],\n    [ \"AdditionalHttpHeaders\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\", null ],\n    [ \"IncludeExceptionInCloseResponse\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\", null ],\n    [ \"KeepAliveInterval\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\", null ],\n    [ \"NoDelay\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\", null ],\n    [ \"SecWebSocketExtensions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\", null ],\n    [ \"SecWebSocketProtocol\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketHttpContext Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\">HttpHeader</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\">IsWebSocketRequest</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\">Path</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\">Stream</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\">WebSocketHttpContext</a>(bool isWebSocketRequest, IList&lt; string &gt; webSocketRequestedProtocols, string httpHeader, string path, System.IO.Stream stream)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\">WebSocketRequestedProtocols</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.WebSocketHttpContext Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketHttpContext Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The WebSocket HTTP Context used to initiate a WebSocket handshake.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aa24f04051ef73f6a5d98fc6633f6df07\" id=\"r_aa24f04051ef73f6a5d98fc6633f6df07\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa24f04051ef73f6a5d98fc6633f6df07\">WebSocketHttpContext</a> (bool isWebSocketRequest, IList&lt; string &gt; webSocketRequestedProtocols, string httpHeader, string path, System.IO.Stream stream)</td></tr>\n<tr class=\"memdesc:aa24f04051ef73f6a5d98fc6633f6df07\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a> class.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8b859fa2d5d24faf05a01ccbe8fb065c\" id=\"r_a8b859fa2d5d24faf05a01ccbe8fb065c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b859fa2d5d24faf05a01ccbe8fb065c\">IsWebSocketRequest</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8b859fa2d5d24faf05a01ccbe8fb065c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if this is a valid WebSocket request.  <br /></td></tr>\n<tr class=\"memitem:a7011896fdcffd2d44086d50d1f4345fa\" id=\"r_a7011896fdcffd2d44086d50d1f4345fa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IList&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7011896fdcffd2d44086d50d1f4345fa\">WebSocketRequestedProtocols</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a32f6e5fb1559a4194aca29eabc565b23\" id=\"r_a32f6e5fb1559a4194aca29eabc565b23\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a32f6e5fb1559a4194aca29eabc565b23\">HttpHeader</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a32f6e5fb1559a4194aca29eabc565b23\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The raw http header extracted from the stream.  <br /></td></tr>\n<tr class=\"memitem:a317b0b47e66328f10d359db023cbad7c\" id=\"r_a317b0b47e66328f10d359db023cbad7c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a317b0b47e66328f10d359db023cbad7c\">Path</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a317b0b47e66328f10d359db023cbad7c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Path extracted from the http header.  <br /></td></tr>\n<tr class=\"memitem:a6ec7ab7d4889b2687797bb0410df4ee8\" id=\"r_a6ec7ab7d4889b2687797bb0410df4ee8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">System.IO.Stream&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6ec7ab7d4889b2687797bb0410df4ee8\">Stream</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6ec7ab7d4889b2687797bb0410df4ee8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The stream AFTER the header has already been read.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The WebSocket HTTP Context used to initiate a WebSocket handshake. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"aa24f04051ef73f6a5d98fc6633f6df07\" name=\"aa24f04051ef73f6a5d98fc6633f6df07\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa24f04051ef73f6a5d98fc6633f6df07\">&#9670;&#160;</a></span>WebSocketHttpContext()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketHttpContext.WebSocketHttpContext </td>\n          <td>(</td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>isWebSocketRequest</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IList&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>webSocketRequestedProtocols</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpHeader</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>path</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a> class. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">isWebSocketRequest</td><td>True if this is a valid WebSocket request</td></tr>\n    <tr><td class=\"paramname\">httpHeader</td><td>The raw http header extracted from the stream</td></tr>\n    <tr><td class=\"paramname\">path</td><td>The Path extracted from the http header</td></tr>\n    <tr><td class=\"paramname\">stream</td><td>The stream AFTER the header has already been read</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a32f6e5fb1559a4194aca29eabc565b23\" name=\"a32f6e5fb1559a4194aca29eabc565b23\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a32f6e5fb1559a4194aca29eabc565b23\">&#9670;&#160;</a></span>HttpHeader</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.WebSocketHttpContext.HttpHeader</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The raw http header extracted from the stream. </p>\n\n</div>\n</div>\n<a id=\"a8b859fa2d5d24faf05a01ccbe8fb065c\" name=\"a8b859fa2d5d24faf05a01ccbe8fb065c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b859fa2d5d24faf05a01ccbe8fb065c\">&#9670;&#160;</a></span>IsWebSocketRequest</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Ninja.WebSockets.WebSocketHttpContext.IsWebSocketRequest</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if this is a valid WebSocket request. </p>\n\n</div>\n</div>\n<a id=\"a317b0b47e66328f10d359db023cbad7c\" name=\"a317b0b47e66328f10d359db023cbad7c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a317b0b47e66328f10d359db023cbad7c\">&#9670;&#160;</a></span>Path</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.WebSocketHttpContext.Path</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Path extracted from the http header. </p>\n\n</div>\n</div>\n<a id=\"a6ec7ab7d4889b2687797bb0410df4ee8\" name=\"a6ec7ab7d4889b2687797bb0410df4ee8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6ec7ab7d4889b2687797bb0410df4ee8\">&#9670;&#160;</a></span>Stream</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">System.IO.Stream Nakama.Ninja.WebSockets.WebSocketHttpContext.Stream</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The stream AFTER the header has already been read. </p>\n\n</div>\n</div>\n<a id=\"a7011896fdcffd2d44086d50d1f4345fa\" name=\"a7011896fdcffd2d44086d50d1f4345fa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7011896fdcffd2d44086d50d1f4345fa\">&#9670;&#160;</a></span>WebSocketRequestedProtocols</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IList&lt;string&gt; Nakama.Ninja.WebSockets.WebSocketHttpContext.WebSocketRequestedProtocols</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_http_context_8cs.html\">WebSocketHttpContext.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context =\n[\n    [ \"WebSocketHttpContext\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\", null ],\n    [ \"HttpHeader\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\", null ],\n    [ \"IsWebSocketRequest\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\", null ],\n    [ \"Path\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\", null ],\n    [ \"Stream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\", null ],\n    [ \"WebSocketRequestedProtocols\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketServerFactory Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\">AcceptWebSocketAsync</a>(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\">AcceptWebSocketAsync</a>(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\">ReadHttpHeaderFromStreamAsync</a>(System.IO.Stream stream, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\">WebSocketServerFactory</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23\">WebSocketServerFactory</a>(Func&lt; MemoryStream &gt; bufferFactory)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.WebSocketServerFactory Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketServerFactory Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Web socket server factory used to open web socket server connections.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.WebSocketServerFactory:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EWebSocketServerFactory_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EWebSocketServerFactory_map\" name=\"Nakama_2ENinja_2EWebSockets_2EWebSocketServerFactory_map\">\n<area href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\" alt=\"Nakama.Ninja.WebSockets.IWebSocketServerFactory\" shape=\"rect\" coords=\"0,0,316,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:af85018d663e9cc04e4d9e8cd2886fcbe\" id=\"r_af85018d663e9cc04e4d9e8cd2886fcbe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af85018d663e9cc04e4d9e8cd2886fcbe\">WebSocketServerFactory</a> ()</td></tr>\n<tr class=\"memdesc:af85018d663e9cc04e4d9e8cd2886fcbe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\">WebSocketServerFactory</a> class without caring about internal buffers.  <br /></td></tr>\n<tr class=\"memitem:a955e882752665598157e9a5d02deca23\" id=\"r_a955e882752665598157e9a5d02deca23\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a955e882752665598157e9a5d02deca23\">WebSocketServerFactory</a> (Func&lt; MemoryStream &gt; bufferFactory)</td></tr>\n<tr class=\"memdesc:a955e882752665598157e9a5d02deca23\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class with control over internal buffer creation.  <br /></td></tr>\n<tr class=\"memitem:ade4d2f2f4962ed47fc4419dff1cc76c4\" id=\"r_ade4d2f2f4962ed47fc4419dff1cc76c4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ade4d2f2f4962ed47fc4419dff1cc76c4\">ReadHttpHeaderFromStreamAsync</a> (System.IO.Stream stream, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:ade4d2f2f4962ed47fc4419dff1cc76c4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade.  <br /></td></tr>\n<tr class=\"memitem:a047b8446ad6f83559eed6d9203efaf4d\" id=\"r_a047b8446ad6f83559eed6d9203efaf4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a047b8446ad6f83559eed6d9203efaf4d\">AcceptWebSocketAsync</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> context, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a047b8446ad6f83559eed6d9203efaf4d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept web socket with default options Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>.  <br /></td></tr>\n<tr class=\"memitem:a6f531a90110af6ae8015aebf690cf27f\" id=\"r_a6f531a90110af6ae8015aebf690cf27f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6f531a90110af6ae8015aebf690cf27f\">AcceptWebSocketAsync</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> context, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a6f531a90110af6ae8015aebf690cf27f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept web socket with options specified Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Web socket server factory used to open web socket server connections. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"af85018d663e9cc04e4d9e8cd2886fcbe\" name=\"af85018d663e9cc04e4d9e8cd2886fcbe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af85018d663e9cc04e4d9e8cd2886fcbe\">&#9670;&#160;</a></span>WebSocketServerFactory() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\">WebSocketServerFactory</a> class without caring about internal buffers. </p>\n\n</div>\n</div>\n<a id=\"a955e882752665598157e9a5d02deca23\" name=\"a955e882752665598157e9a5d02deca23\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a955e882752665598157e9a5d02deca23\">&#9670;&#160;</a></span>WebSocketServerFactory() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory </td>\n          <td>(</td>\n          <td class=\"paramtype\">Func&lt; MemoryStream &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bufferFactory</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\">WebSocketClientFactory</a> class with control over internal buffer creation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">bufferPool</td><td>Used to get a memory stream. Feel free to implement your own buffer pool. MemoryStreams will be disposed when no longer needed and can be returned to the pool.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a047b8446ad6f83559eed6d9203efaf4d\" name=\"a047b8446ad6f83559eed6d9203efaf4d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a047b8446ad6f83559eed6d9203efaf4d\">&#9670;&#160;</a></span>AcceptWebSocketAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>context</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Accept web socket with default options Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">context</td><td>The http context used to initiate this web socket request</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket</dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"a6f531a90110af6ae8015aebf690cf27f\" name=\"a6f531a90110af6ae8015aebf690cf27f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6f531a90110af6ae8015aebf690cf27f\">&#9670;&#160;</a></span>AcceptWebSocketAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>context</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Accept web socket with options specified Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">context</td><td>The http context used to initiate this web socket request</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The web socket options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket</dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"ade4d2f2f4962ed47fc4419dff1cc76c4\" name=\"ade4d2f2f4962ed47fc4419dff1cc76c4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ade4d2f2f4962ed47fc4419dff1cc76c4\">&#9670;&#160;</a></span>ReadHttpHeaderFromStreamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> &gt; Nakama.Ninja.WebSockets.WebSocketServerFactory.ReadHttpHeaderFromStreamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">stream</td><td>The network stream</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>Http data read from the stream</dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_server_factory_8cs.html\">WebSocketServerFactory.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">WebSocketServerFactory</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory =\n[\n    [ \"WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\", null ],\n    [ \"WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23\", null ],\n    [ \"AcceptWebSocketAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\", null ],\n    [ \"AcceptWebSocketAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\", null ],\n    [ \"ReadHttpHeaderFromStreamAsync\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketServerOptions Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\">IncludeExceptionInCloseResponse</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\">KeepAliveInterval</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\">SubProtocol</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\">WebSocketServerOptions</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.WebSocketServerOptions Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html','','class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.WebSocketServerOptions Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Server WebSocket init options.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a6426bfca9608a20915f11ef0955d1984\" id=\"r_a6426bfca9608a20915f11ef0955d1984\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6426bfca9608a20915f11ef0955d1984\">WebSocketServerOptions</a> ()</td></tr>\n<tr class=\"memdesc:a6426bfca9608a20915f11ef0955d1984\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\" title=\"Server WebSocket init options.\">WebSocketServerOptions</a> class.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6cb09bf00c31ac1c361a95a8daec0ddd\" id=\"r_a6cb09bf00c31ac1c361a95a8daec0ddd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TimeSpan&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6cb09bf00c31ac1c361a95a8daec0ddd\">KeepAliveInterval</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a6cb09bf00c31ac1c361a95a8daec0ddd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">How often to send ping requests to the <a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> The default is 60 seconds This is done to prevent proxy servers from closing your connection A timespan of zero will disable the automatic ping pong mechanism You can manually control ping pong messages using the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> class. If you do that it is advisible to set this KeepAliveInterval to zero in the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\">WebSocketServerFactory</a>.  <br /></td></tr>\n<tr class=\"memitem:a27fc45e264a324caeb170709872fe12d\" id=\"r_a27fc45e264a324caeb170709872fe12d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a27fc45e264a324caeb170709872fe12d\">IncludeExceptionInCloseResponse</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a27fc45e264a324caeb170709872fe12d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Include the full exception (with stack trace) in the close response when an exception is encountered and the WebSocket connection is closed The default is false.  <br /></td></tr>\n<tr class=\"memitem:afa0e3b2185d29c0d5be60327e5ef2640\" id=\"r_afa0e3b2185d29c0d5be60327e5ef2640\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afa0e3b2185d29c0d5be60327e5ef2640\">SubProtocol</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:afa0e3b2185d29c0d5be60327e5ef2640\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Specifies the sub protocol to send back to the client in the opening handshake Can be null (the most common use case) The client can specify multiple preferred protocols in the opening handshake header The server should use the first supported one or set this to null if none of the requested sub protocols are supported.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Server WebSocket init options. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a6426bfca9608a20915f11ef0955d1984\" name=\"a6426bfca9608a20915f11ef0955d1984\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6426bfca9608a20915f11ef0955d1984\">&#9670;&#160;</a></span>WebSocketServerOptions()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Ninja.WebSockets.WebSocketServerOptions.WebSocketServerOptions </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Initialises a new instance of the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\" title=\"Server WebSocket init options.\">WebSocketServerOptions</a> class. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a27fc45e264a324caeb170709872fe12d\" name=\"a27fc45e264a324caeb170709872fe12d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a27fc45e264a324caeb170709872fe12d\">&#9670;&#160;</a></span>IncludeExceptionInCloseResponse</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Ninja.WebSockets.WebSocketServerOptions.IncludeExceptionInCloseResponse</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Include the full exception (with stack trace) in the close response when an exception is encountered and the WebSocket connection is closed The default is false. </p>\n\n</div>\n</div>\n<a id=\"a6cb09bf00c31ac1c361a95a8daec0ddd\" name=\"a6cb09bf00c31ac1c361a95a8daec0ddd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6cb09bf00c31ac1c361a95a8daec0ddd\">&#9670;&#160;</a></span>KeepAliveInterval</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TimeSpan Nakama.Ninja.WebSockets.WebSocketServerOptions.KeepAliveInterval</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>How often to send ping requests to the <a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> The default is 60 seconds This is done to prevent proxy servers from closing your connection A timespan of zero will disable the automatic ping pong mechanism You can manually control ping pong messages using the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\">PingPongManager</a> class. If you do that it is advisible to set this KeepAliveInterval to zero in the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\">WebSocketServerFactory</a>. </p>\n\n</div>\n</div>\n<a id=\"afa0e3b2185d29c0d5be60327e5ef2640\" name=\"afa0e3b2185d29c0d5be60327e5ef2640\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa0e3b2185d29c0d5be60327e5ef2640\">&#9670;&#160;</a></span>SubProtocol</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Ninja.WebSockets.WebSocketServerOptions.SubProtocol</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Specifies the sub protocol to send back to the client in the opening handshake Can be null (the most common use case) The client can specify multiple preferred protocols in the opening handshake header The server should use the first supported one or set this to null if none of the requested sub protocols are supported. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_server_options_8cs.html\">WebSocketServerOptions.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.js",
    "content": "var class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options =\n[\n    [ \"WebSocketServerOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\", null ],\n    [ \"IncludeExceptionInCloseResponse\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\", null ],\n    [ \"KeepAliveInterval\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\", null ],\n    [ \"SubProtocol\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_retry.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Retry Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Nakama.Retry</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\">ExponentialBackoff</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Nakama.Retry</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\">JitterBackoff</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Nakama.Retry</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Retry Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_retry.html','','class_nakama_1_1_retry-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Retry Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents a single retry attempt.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a9d83426b9d7eda194e490a5b7be1f5c8\" id=\"r_a9d83426b9d7eda194e490a5b7be1f5c8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9d83426b9d7eda194e490a5b7be1f5c8\">ExponentialBackoff</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9d83426b9d7eda194e490a5b7be1f5c8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm.  <br /></td></tr>\n<tr class=\"memitem:a72695f7bd13ec6d4e22ad021a26f0a08\" id=\"r_a72695f7bd13ec6d4e22ad021a26f0a08\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a72695f7bd13ec6d4e22ad021a26f0a08\">JitterBackoff</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a72695f7bd13ec6d4e22ad021a26f0a08\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The delay (milliseconds) in the request retry attributable to the jitter algorithm.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents a single retry attempt. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a9d83426b9d7eda194e490a5b7be1f5c8\" name=\"a9d83426b9d7eda194e490a5b7be1f5c8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d83426b9d7eda194e490a5b7be1f5c8\">&#9670;&#160;</a></span>ExponentialBackoff</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Retry.ExponentialBackoff</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm. </p>\n\n</div>\n</div>\n<a id=\"a72695f7bd13ec6d4e22ad021a26f0a08\" name=\"a72695f7bd13ec6d4e22ad021a26f0a08\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a72695f7bd13ec6d4e22ad021a26f0a08\">&#9670;&#160;</a></span>JitterBackoff</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Retry.JitterBackoff</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The delay (milliseconds) in the request retry attributable to the jitter algorithm. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_retry_8cs.html\">Nakama/Retry.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_retry.html\">Retry</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry.js",
    "content": "var class_nakama_1_1_retry =\n[\n    [ \"ExponentialBackoff\", \"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\", null ],\n    [ \"JitterBackoff\", \"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry_configuration-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_retry_configuration.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.RetryConfiguration Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\">BaseDelayMs</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\">Jitter</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\">MaxAttempts</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\">RetryConfiguration</a>(int baseDelayMs, int maxRetries)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a\">RetryConfiguration</a>(int baseDelayMs, int maxRetries, RetryListener listener)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f\">RetryConfiguration</a>(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry_configuration.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.RetryConfiguration Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_retry_configuration.html','','class_nakama_1_1_retry_configuration-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.RetryConfiguration Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A configuration for controlling retriable requests.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:adbf0f298d35e14e72ef1ba0937b7f272\" id=\"r_adbf0f298d35e14e72ef1ba0937b7f272\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adbf0f298d35e14e72ef1ba0937b7f272\">RetryConfiguration</a> (int baseDelayMs, int maxRetries)</td></tr>\n<tr class=\"memdesc:adbf0f298d35e14e72ef1ba0937b7f272\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n<tr class=\"memitem:a743f91374fba32298211ad64cfd7d57a\" id=\"r_a743f91374fba32298211ad64cfd7d57a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a743f91374fba32298211ad64cfd7d57a\">RetryConfiguration</a> (int baseDelayMs, int maxRetries, <a class=\"el\" href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a> listener)</td></tr>\n<tr class=\"memdesc:a743f91374fba32298211ad64cfd7d57a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n<tr class=\"memitem:a4444b94d9d22c6ef75c03ac92d71264f\" id=\"r_a4444b94d9d22c6ef75c03ac92d71264f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4444b94d9d22c6ef75c03ac92d71264f\">RetryConfiguration</a> (int baseDelayMs, int maxRetries, <a class=\"el\" href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a> listener, <a class=\"el\" href=\"#a06fc034fcd8b2fe5eed976079264c0cd\">Jitter</a> jitter)</td></tr>\n<tr class=\"memdesc:a4444b94d9d22c6ef75c03ac92d71264f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:abb2a37c54f24e2fcd6c4ef4e2b5b3f75\" id=\"r_abb2a37c54f24e2fcd6c4ef4e2b5b3f75\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\">BaseDelayMs</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abb2a37c54f24e2fcd6c4ef4e2b5b3f75\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The base delay (milliseconds) used to calculate the time before making another request attempt. This base will be raised to N, where N is the number of retry attempts.  <br /></td></tr>\n<tr class=\"memitem:a06fc034fcd8b2fe5eed976079264c0cd\" id=\"r_a06fc034fcd8b2fe5eed976079264c0cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Jitter&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a06fc034fcd8b2fe5eed976079264c0cd\">Jitter</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a06fc034fcd8b2fe5eed976079264c0cd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The jitter algorithm used to apply randomness to the retry delay. Defaults to RetryJitter.FullJitter  <br /></td></tr>\n<tr class=\"memitem:a3be7ea95f69217237c03c9bf50fd466e\" id=\"r_a3be7ea95f69217237c03c9bf50fd466e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3be7ea95f69217237c03c9bf50fd466e\">MaxAttempts</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3be7ea95f69217237c03c9bf50fd466e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of attempts to make before cancelling the request task.  <br /></td></tr>\n<tr class=\"memitem:a45bbacb24a971f1092d15bc2dac0bafe\" id=\"r_a45bbacb24a971f1092d15bc2dac0bafe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">RetryListener&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a45bbacb24a971f1092d15bc2dac0bafe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A callback that is invoked before a new retry attempt is made.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A configuration for controlling retriable requests. </p>\n<p><a class=\"el\" href=\"class_nakama_1_1_retry.html\" title=\"Represents a single retry attempt.\">Retry</a> configurations can be assigned to the <a class=\"el\" href=\"interface_nakama_1_1_i_client.html\" title=\"A client for the API in Nakama server.\">IClient</a> on a request-by-request basis via the see &lt;cref=\"RequestConfiguration\"/&gt; parameter.</p>\n<p><a class=\"el\" href=\"class_nakama_1_1_retry.html\" title=\"Represents a single retry attempt.\">Retry</a> configurations can also be assigned on a global basis using <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\" title=\"The global retry configuration. See RetryConfiguration.\">IClient.GlobalRetryConfiguration</a>. Configurations passed via the see &lt;cref=\"RequestConfiguraiton\"/&gt; parameter take precedence over the global configuration. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"adbf0f298d35e14e72ef1ba0937b7f272\" name=\"adbf0f298d35e14e72ef1ba0937b7f272\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adbf0f298d35e14e72ef1ba0937b7f272\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a743f91374fba32298211ad64cfd7d57a\" name=\"a743f91374fba32298211ad64cfd7d57a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a743f91374fba32298211ad64cfd7d57a\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>listener</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n    <tr><td class=\"paramname\">listener</td><td>A callback that is invoked before a new retry attempt is made.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a4444b94d9d22c6ef75c03ac92d71264f\" name=\"a4444b94d9d22c6ef75c03ac92d71264f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4444b94d9d22c6ef75c03ac92d71264f\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">RetryListener</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>listener</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#a06fc034fcd8b2fe5eed976079264c0cd\">Jitter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>jitter</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n    <tr><td class=\"paramname\">listener</td><td>A callback that is invoked before a new retry attempt is made.</td></tr>\n    <tr><td class=\"paramname\">jitter</td><td>The jitter algorithm used to apply randomness to the retry delay.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"abb2a37c54f24e2fcd6c4ef4e2b5b3f75\" name=\"abb2a37c54f24e2fcd6c4ef4e2b5b3f75\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\">&#9670;&#160;</a></span>BaseDelayMs</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.RetryConfiguration.BaseDelayMs</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The base delay (milliseconds) used to calculate the time before making another request attempt. This base will be raised to N, where N is the number of retry attempts. </p>\n\n</div>\n</div>\n<a id=\"a06fc034fcd8b2fe5eed976079264c0cd\" name=\"a06fc034fcd8b2fe5eed976079264c0cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a06fc034fcd8b2fe5eed976079264c0cd\">&#9670;&#160;</a></span>Jitter</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Jitter Nakama.RetryConfiguration.Jitter</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The jitter algorithm used to apply randomness to the retry delay. Defaults to RetryJitter.FullJitter </p>\n\n</div>\n</div>\n<a id=\"a3be7ea95f69217237c03c9bf50fd466e\" name=\"a3be7ea95f69217237c03c9bf50fd466e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3be7ea95f69217237c03c9bf50fd466e\">&#9670;&#160;</a></span>MaxAttempts</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.RetryConfiguration.MaxAttempts</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of attempts to make before cancelling the request task. </p>\n\n</div>\n</div>\n<a id=\"a45bbacb24a971f1092d15bc2dac0bafe\" name=\"a45bbacb24a971f1092d15bc2dac0bafe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a45bbacb24a971f1092d15bc2dac0bafe\">&#9670;&#160;</a></span>RetryListener</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">RetryListener Nakama.RetryConfiguration.RetryListener</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A callback that is invoked before a new retry attempt is made. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_retry_configuration_8cs.html\">Nakama/RetryConfiguration.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_retry_configuration.js",
    "content": "var class_nakama_1_1_retry_configuration =\n[\n    [ \"RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\", null ],\n    [ \"RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a\", null ],\n    [ \"RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f\", null ],\n    [ \"BaseDelayMs\", \"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\", null ],\n    [ \"Jitter\", \"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\", null ],\n    [ \"MaxAttempts\", \"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\", null ],\n    [ \"RetryListener\", \"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Session Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\">AuthToken</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\">Created</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f\">Epoch</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\">ExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\">HasExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\">HasRefreshExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\">IsExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">IsRefreshExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\">RefreshExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582\">Restore</a>(string authToken, string refreshToken=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\">Update</a>(string authToken, string refreshToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Nakama.Session</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Session Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_session.html','','class_nakama_1_1_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Session Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p> \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Session:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_session.png\" usemap=\"#Nakama_2ESession_map\" alt=\"\"/>\n  <map id=\"Nakama_2ESession_map\" name=\"Nakama_2ESession_map\">\n<area href=\"interface_nakama_1_1_i_session.html\" title=\"A session authenticated for a user with Nakama server.\" alt=\"Nakama.ISession\" shape=\"rect\" coords=\"0,0,108,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a32aa5055ec8b4629d48574c14ca52929\" id=\"r_a32aa5055ec8b4629d48574c14ca52929\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a32aa5055ec8b4629d48574c14ca52929\">HasExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:a32aa5055ec8b4629d48574c14ca52929\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check the session has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a292f6d27e68f068d5b71a5e998f93adc\" id=\"r_a292f6d27e68f068d5b71a5e998f93adc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a292f6d27e68f068d5b71a5e998f93adc\">HasRefreshExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:a292f6d27e68f068d5b71a5e998f93adc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check if the refresh token has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8387864684cbee2f57ed82211c12e6cd\" id=\"r_a8387864684cbee2f57ed82211c12e6cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8387864684cbee2f57ed82211c12e6cd\">ToString</a> ()</td></tr>\n<tr class=\"memitem:af8b93681b0868726ad3d77c3f59c3ace\" id=\"r_af8b93681b0868726ad3d77c3f59c3ace\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af8b93681b0868726ad3d77c3f59c3ace\">Update</a> (string authToken, string refreshToken)</td></tr>\n<tr class=\"memdesc:af8b93681b0868726ad3d77c3f59c3ace\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the current session token with a new authorization token and refresh token.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:ac3615441ca8d14d464fd610c22ce5582\" id=\"r_ac3615441ca8d14d464fd610c22ce5582\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3615441ca8d14d464fd610c22ce5582\">Restore</a> (string authToken, string refreshToken=null)</td></tr>\n<tr class=\"memdesc:ac3615441ca8d14d464fd610c22ce5582\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Restore a session from the auth token.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-attribs\" class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:ae2346092b17fd6cecea2e5371f748b4f\" id=\"r_ae2346092b17fd6cecea2e5371f748b4f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static readonly DateTime&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae2346092b17fd6cecea2e5371f748b4f\">Epoch</a> = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6109a78f8514b76f1a0977937dcaaaaf\" id=\"r_a6109a78f8514b76f1a0977937dcaaaaf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6109a78f8514b76f1a0977937dcaaaaf\">AuthToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6109a78f8514b76f1a0977937dcaaaaf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The authorization token used to construct this session.  <br /></td></tr>\n<tr class=\"memitem:a07dd0bf598118762c5d4ac81f1f234fb\" id=\"r_a07dd0bf598118762c5d4ac81f1f234fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a07dd0bf598118762c5d4ac81f1f234fb\">Created</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a07dd0bf598118762c5d4ac81f1f234fb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the user account for this session was just created.  <br /></td></tr>\n<tr class=\"memitem:ad29e88275b3bb763a8153944e0bb9912\" id=\"r_ad29e88275b3bb763a8153944e0bb9912\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad29e88275b3bb763a8153944e0bb9912\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad29e88275b3bb763a8153944e0bb9912\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session was created.  <br /></td></tr>\n<tr class=\"memitem:acb53fd22e6b8a815c5cddb2686b2df91\" id=\"r_acb53fd22e6b8a815c5cddb2686b2df91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acb53fd22e6b8a815c5cddb2686b2df91\">ExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acb53fd22e6b8a815c5cddb2686b2df91\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session will expire.  <br /></td></tr>\n<tr class=\"memitem:a2fc70f9f9afb4440faa5936c0f4f1129\" id=\"r_a2fc70f9f9afb4440faa5936c0f4f1129\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2fc70f9f9afb4440faa5936c0f4f1129\">IsExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2fc70f9f9afb4440faa5936c0f4f1129\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the session has expired.  <br /></td></tr>\n<tr class=\"memitem:a8b0cbb6a8f2c7f8a6bb41a77a05739ac\" id=\"r_a8b0cbb6a8f2c7f8a6bb41a77a05739ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">IsRefreshExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8b0cbb6a8f2c7f8a6bb41a77a05739ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the refresh token has expired.  <br /></td></tr>\n<tr class=\"memitem:aa220b017e0bb05a9e55f437268338002\" id=\"r_aa220b017e0bb05a9e55f437268338002\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa220b017e0bb05a9e55f437268338002\">RefreshExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa220b017e0bb05a9e55f437268338002\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when the refresh token will expire.  <br /></td></tr>\n<tr class=\"memitem:a3b756ff336a724af7cb65b2711ffd8d0\" id=\"r_a3b756ff336a724af7cb65b2711ffd8d0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3b756ff336a724af7cb65b2711ffd8d0\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3b756ff336a724af7cb65b2711ffd8d0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token that can be used for session token renewal.  <br /></td></tr>\n<tr class=\"memitem:a3c15d4dd38f96f5920516e9b0bd599d7\" id=\"r_a3c15d4dd38f96f5920516e9b0bd599d7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3c15d4dd38f96f5920516e9b0bd599d7\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3c15d4dd38f96f5920516e9b0bd599d7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Any custom properties associated with this session.  <br /></td></tr>\n<tr class=\"memitem:aaa6a5d93c2578c8c83aafdafc8ac724e\" id=\"r_aaa6a5d93c2578c8c83aafdafc8ac724e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaa6a5d93c2578c8c83aafdafc8ac724e\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aaa6a5d93c2578c8c83aafdafc8ac724e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user who owns this session.  <br /></td></tr>\n<tr class=\"memitem:abb1e6deb54c15459678f13a8b0feaa1f\" id=\"r_abb1e6deb54c15459678f13a8b0feaa1f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb1e6deb54c15459678f13a8b0feaa1f\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abb1e6deb54c15459678f13a8b0feaa1f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the user who owns this session.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"></div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a32aa5055ec8b4629d48574c14ca52929\" name=\"a32aa5055ec8b4629d48574c14ca52929\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a32aa5055ec8b4629d48574c14ca52929\">&#9670;&#160;</a></span>HasExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Session.HasExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Check the session has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a292f6d27e68f068d5b71a5e998f93adc\" name=\"a292f6d27e68f068d5b71a5e998f93adc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a292f6d27e68f068d5b71a5e998f93adc\">&#9670;&#160;</a></span>HasRefreshExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Session.HasRefreshExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Check if the refresh token has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"ac3615441ca8d14d464fd610c22ce5582\" name=\"ac3615441ca8d14d464fd610c22ce5582\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3615441ca8d14d464fd610c22ce5582\">&#9670;&#160;</a></span>Restore()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> Nakama.Session.Restore </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>refreshToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Restore a session from the auth token. </p>\n<p>A <code>null</code> or empty authentication token will return null. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to restore as a session.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token for the session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A session.</dd></dl>\n\n</div>\n</div>\n<a id=\"a8387864684cbee2f57ed82211c12e6cd\" name=\"a8387864684cbee2f57ed82211c12e6cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8387864684cbee2f57ed82211c12e6cd\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.Session.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af8b93681b0868726ad3d77c3f59c3ace\" name=\"af8b93681b0868726ad3d77c3f59c3ace\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af8b93681b0868726ad3d77c3f59c3ace\">&#9670;&#160;</a></span>Update()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Session.Update </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>refreshToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update the current session token with a new authorization token and refresh token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to update into the session.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token to update into the session.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-variable-members\" id=\"doc-variable-members\"></a><h2 id=\"header-doc-variable-members\" class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"ae2346092b17fd6cecea2e5371f748b4f\" name=\"ae2346092b17fd6cecea2e5371f748b4f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae2346092b17fd6cecea2e5371f748b4f\">&#9670;&#160;</a></span>Epoch</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">readonly DateTime Nakama.Session.Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6109a78f8514b76f1a0977937dcaaaaf\" name=\"a6109a78f8514b76f1a0977937dcaaaaf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6109a78f8514b76f1a0977937dcaaaaf\">&#9670;&#160;</a></span>AuthToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Session.AuthToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The authorization token used to construct this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a07dd0bf598118762c5d4ac81f1f234fb\" name=\"a07dd0bf598118762c5d4ac81f1f234fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a07dd0bf598118762c5d4ac81f1f234fb\">&#9670;&#160;</a></span>Created</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Session.Created</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the user account for this session was just created. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"ad29e88275b3bb763a8153944e0bb9912\" name=\"ad29e88275b3bb763a8153944e0bb9912\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad29e88275b3bb763a8153944e0bb9912\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.Session.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session was created. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"acb53fd22e6b8a815c5cddb2686b2df91\" name=\"acb53fd22e6b8a815c5cddb2686b2df91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acb53fd22e6b8a815c5cddb2686b2df91\">&#9670;&#160;</a></span>ExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.Session.ExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session will expire. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a2fc70f9f9afb4440faa5936c0f4f1129\" name=\"a2fc70f9f9afb4440faa5936c0f4f1129\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2fc70f9f9afb4440faa5936c0f4f1129\">&#9670;&#160;</a></span>IsExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Session.IsExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the session has expired. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a8b0cbb6a8f2c7f8a6bb41a77a05739ac\" name=\"a8b0cbb6a8f2c7f8a6bb41a77a05739ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">&#9670;&#160;</a></span>IsRefreshExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Session.IsRefreshExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the refresh token has expired. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"aa220b017e0bb05a9e55f437268338002\" name=\"aa220b017e0bb05a9e55f437268338002\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa220b017e0bb05a9e55f437268338002\">&#9670;&#160;</a></span>RefreshExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.Session.RefreshExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when the refresh token will expire. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a3b756ff336a724af7cb65b2711ffd8d0\" name=\"a3b756ff336a724af7cb65b2711ffd8d0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3b756ff336a724af7cb65b2711ffd8d0\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Session.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token that can be used for session token renewal. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"abb1e6deb54c15459678f13a8b0feaa1f\" name=\"abb1e6deb54c15459678f13a8b0feaa1f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb1e6deb54c15459678f13a8b0feaa1f\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Session.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the user who owns this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"aaa6a5d93c2578c8c83aafdafc8ac724e\" name=\"aaa6a5d93c2578c8c83aafdafc8ac724e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaa6a5d93c2578c8c83aafdafc8ac724e\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Session.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user who owns this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a3c15d4dd38f96f5920516e9b0bd599d7\" name=\"a3c15d4dd38f96f5920516e9b0bd599d7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c15d4dd38f96f5920516e9b0bd599d7\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.Session.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Any custom properties associated with this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\">Nakama.ISession</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_session_8cs.html\">Nakama/Session.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_session.html\">Session</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_session.js",
    "content": "var class_nakama_1_1_session =\n[\n    [ \"HasExpired\", \"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\", null ],\n    [ \"HasRefreshExpired\", \"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\", null ],\n    [ \"ToString\", \"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\", null ],\n    [ \"Update\", \"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\", null ],\n    [ \"AuthToken\", \"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\", null ],\n    [ \"Created\", \"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\", null ],\n    [ \"CreateTime\", \"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\", null ],\n    [ \"ExpireTime\", \"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\", null ],\n    [ \"IsExpired\", \"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\", null ],\n    [ \"IsRefreshExpired\", \"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\", null ],\n    [ \"RefreshExpireTime\", \"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\", null ],\n    [ \"RefreshToken\", \"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\", null ],\n    [ \"UserId\", \"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\", null ],\n    [ \"Username\", \"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\", null ],\n    [ \"Vars\", \"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_socket-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_socket.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Socket Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\">AcceptPartyMemberAsync</a>(string partyId, IUserPresence presence)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\">AddMatchmakerAsync</a>(string query=&quot;*&quot;, int minCount=2, int maxCount=8, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\">AddMatchmakerPartyAsync</a>(string partyId, string query, int minCount, int maxCount, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\">CloseAsync</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\">Closed</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\">ClosePartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\">ConnectAsync</a>(ISession session, bool appearOnline=false, int connectTimeoutSec=DefaultConnectTimeout, string langTag=&quot;en&quot;)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\">Connected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\">CreateMatchAsync</a>(string name=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\">CreatePartyAsync</a>(bool open, bool hidden, int maxSize, string label=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\">DefaultConnectTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7\">DefaultSendTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\">FollowUsersAsync</a>(IEnumerable&lt; IApiUser &gt; users)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\">FollowUsersAsync</a>(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d\">From</a>(IClient client)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ac4201f5bdda381252451e4aef465b498\">From</a>(IClient client, ISocketAdapter adapter)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\">IsConnected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\">IsConnecting</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\">JoinChatAsync</a>(string target, ChannelType type, bool persistence=false, bool hidden=false)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\">JoinMatchAsync</a>(IMatchmakerMatched matched)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\">JoinMatchAsync</a>(string matchId, IDictionary&lt; string, string &gt; metadata=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\">JoinPartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\">LeaveChatAsync</a>(IChannel channel)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\">LeaveChatAsync</a>(string channelId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\">LeaveMatchAsync</a>(IMatch match)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\">LeaveMatchAsync</a>(string matchId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\">LeavePartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\">ListPartyJoinRequestsAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\">PromotePartyMemberAsync</a>(string partyId, IUserPresence partyMember)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\">ReceivedChannelMessage</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\">ReceivedChannelPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\">ReceivedError</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\">ReceivedMatchmakerMatched</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\">ReceivedMatchPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\">ReceivedMatchState</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\">ReceivedNotification</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\">ReceivedParty</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\">ReceivedPartyClose</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\">ReceivedPartyData</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\">ReceivedPartyJoinRequest</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\">ReceivedPartyLeader</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\">ReceivedPartyMatchmakerTicket</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\">ReceivedPartyPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\">ReceivedPartyUpdate</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\">ReceivedStatusPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\">ReceivedStreamPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\">ReceivedStreamState</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\">RemoveChatMessageAsync</a>(IChannel channel, string messageId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\">RemoveChatMessageAsync</a>(string channelId, string messageId)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\">RemoveMatchmakerAsync</a>(IMatchmakerTicket ticket)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\">RemoveMatchmakerAsync</a>(string ticket)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\">RemoveMatchmakerPartyAsync</a>(string partyId, string ticket)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\">RemovePartyMemberAsync</a>(string partyId, IUserPresence presence)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\">RpcAsync</a>(string funcId, string payload=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\">RpcAsync</a>(string funcId, ArraySegment&lt; byte &gt; payload)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\">SendMatchStateAsync</a>(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\">SendMatchStateAsync</a>(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\">SendMatchStateAsync</a>(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\">SendPartyDataAsync</a>(string partyId, long opCode, ArraySegment&lt; byte &gt; data)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\">SendPartyDataAsync</a>(string partyId, long opCode, string data)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\">SendPartyDataAsync</a>(string partyId, long opCode, byte[] data)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\">Socket</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7\">Socket</a>(ISocketAdapter adapter)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1\">Socket</a>(string scheme, string host, int port, ISocketAdapter adapter, int sendTimeoutSec=DefaultSendTimeout)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\">UnfollowUsersAsync</a>(IEnumerable&lt; IApiUser &gt; users)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\">UnfollowUsersAsync</a>(IEnumerable&lt; string &gt; userIDs)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">UpdateChatMessageAsync</a>(IChannel channel, string messageId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\">UpdateChatMessageAsync</a>(string channelId, string messageId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\">UpdatePartyAsync</a>(string partyId, bool open, bool hidden, string label)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\">UpdateStatusAsync</a>(string status)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\">WriteChatMessageAsync</a>(IChannel channel, string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\">WriteChatMessageAsync</a>(string channelId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Nakama.Socket</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_socket.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Socket Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_socket.html','','class_nakama_1_1_socket-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Socket Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Socket:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_socket.png\" usemap=\"#Nakama_2ESocket_map\" alt=\"\"/>\n  <map id=\"Nakama_2ESocket_map\" name=\"Nakama_2ESocket_map\">\n<area href=\"interface_nakama_1_1_i_socket.html\" title=\"A socket to interact with Nakama server.\" alt=\"Nakama.ISocket\" shape=\"rect\" coords=\"0,0,102,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a957a7a72f3206eeb71b4f823b89481b2\" id=\"r_a957a7a72f3206eeb71b4f823b89481b2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a957a7a72f3206eeb71b4f823b89481b2\">Socket</a> ()</td></tr>\n<tr class=\"memdesc:a957a7a72f3206eeb71b4f823b89481b2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A new socket with default options.  <br /></td></tr>\n<tr class=\"memitem:a5cd86e4fde0b78a4230ed024ef43dbe7\" id=\"r_a5cd86e4fde0b78a4230ed024ef43dbe7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5cd86e4fde0b78a4230ed024ef43dbe7\">Socket</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a> adapter)</td></tr>\n<tr class=\"memdesc:a5cd86e4fde0b78a4230ed024ef43dbe7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A new socket with an adapter.  <br /></td></tr>\n<tr class=\"memitem:a7a528ae9507ab34fb8a19fe5fd90fde1\" id=\"r_a7a528ae9507ab34fb8a19fe5fd90fde1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7a528ae9507ab34fb8a19fe5fd90fde1\">Socket</a> (string scheme, string host, int port, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a> adapter, int sendTimeoutSec=<a class=\"el\" href=\"#a533161073904d1f02ea89edef79cfee7\">DefaultSendTimeout</a>)</td></tr>\n<tr class=\"memdesc:a7a528ae9507ab34fb8a19fe5fd90fde1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A new socket with server connection and adapter options.  <br /></td></tr>\n<tr class=\"memitem:ae9fa18dcb3d306d29c7dc97a8e64687a\" id=\"r_ae9fa18dcb3d306d29c7dc97a8e64687a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae9fa18dcb3d306d29c7dc97a8e64687a\">AcceptPartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> presence)</td></tr>\n<tr class=\"memdesc:ae9fa18dcb3d306d29c7dc97a8e64687a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept a party member's request to join the party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The party ID to accept the join request for.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to accept as a party member. </td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aed1cb5c5784d1fd08bf5e63ab270a848\" id=\"r_aed1cb5c5784d1fd08bf5e63ab270a848\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aed1cb5c5784d1fd08bf5e63ab270a848\">AddMatchmakerAsync</a> (string query=&quot;*&quot;, int minCount=2, int maxCount=8, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td></tr>\n<tr class=\"memdesc:aed1cb5c5784d1fd08bf5e63ab270a848\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join the matchmaker pool and search for opponents on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">query</td><td>The matchmaker query to search for opponents.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>The minimum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>A set of key/value properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>A set of key/value numeric properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a matchmaker ticket object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a5ed1f27ccf52792a55363ce3273e22de\" id=\"r_a5ed1f27ccf52792a55363ce3273e22de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5ed1f27ccf52792a55363ce3273e22de\">AddMatchmakerPartyAsync</a> (string partyId, string query, int minCount, int maxCount, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td></tr>\n<tr class=\"memdesc:a5ed1f27ccf52792a55363ce3273e22de\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Begin matchmaking as a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Filter query used to identify suitable users.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>Minimum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>Maximum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>String properties.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>Numeric properties.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a party matchmaker ticket object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a5d033f1ff9973aa3e53a5675c91d108e\" id=\"r_a5d033f1ff9973aa3e53a5675c91d108e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5d033f1ff9973aa3e53a5675c91d108e\">CloseAsync</a> ()</td></tr>\n<tr class=\"memdesc:a5d033f1ff9973aa3e53a5675c91d108e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Close the socket connection to the server.<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a11620a9e6706ddaf48d260d56c7cdcaa\" id=\"r_a11620a9e6706ddaf48d260d56c7cdcaa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a11620a9e6706ddaf48d260d56c7cdcaa\">ConnectAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, bool appearOnline=false, int connectTimeoutSec=<a class=\"el\" href=\"#ae902438fa7e36bfa60a9c7c062218216\">DefaultConnectTimeout</a>, string langTag=&quot;en&quot;)</td></tr>\n<tr class=\"memdesc:a11620a9e6706ddaf48d260d56c7cdcaa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">appearOnline</td><td>If the user who appear online to other users.</td></tr>\n    <tr><td class=\"paramname\">connectTimeout</td><td>The time allowed for the socket connection to be established.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag of the user on the connected socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a56e29efdc1831754a70b889a08588237\" id=\"r_a56e29efdc1831754a70b889a08588237\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a56e29efdc1831754a70b889a08588237\">ClosePartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a56e29efdc1831754a70b889a08588237\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members and closing it.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The ID of the party.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a62f9170d0c155670b7fb57d7de9884a6\" id=\"r_a62f9170d0c155670b7fb57d7de9884a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a62f9170d0c155670b7fb57d7de9884a6\">CreateMatchAsync</a> (string name=null)</td></tr>\n<tr class=\"memdesc:a62f9170d0c155670b7fb57d7de9884a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a multiplayer match on the server.<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a1374f5d0081d33b17a6bda84978f069d\" id=\"r_a1374f5d0081d33b17a6bda84978f069d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1374f5d0081d33b17a6bda84978f069d\">CreatePartyAsync</a> (bool open, bool hidden, int maxSize, string label=null)</td></tr>\n<tr class=\"memdesc:a1374f5d0081d33b17a6bda84978f069d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">open</td><td>Whether the party will require join requests to be approved by the party leader.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>Whether the party should be hidden from client listing.</td></tr>\n    <tr><td class=\"paramname\">maxSize</td><td>Maximum number of party members.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>An optional label to set for party listing.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad6180b6f74a9adfdbc53b1c19c63efa5\" id=\"r_ad6180b6f74a9adfdbc53b1c19c63efa5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad6180b6f74a9adfdbc53b1c19c63efa5\">FollowUsersAsync</a> (IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt; users)</td></tr>\n<tr class=\"memdesc:ad6180b6f74a9adfdbc53b1c19c63efa5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscribe to one or more users for their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a1f567b12eb7a0d498edb3bcea9518338\" id=\"r_a1f567b12eb7a0d498edb3bcea9518338\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1f567b12eb7a0d498edb3bcea9518338\">FollowUsersAsync</a> (IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)</td></tr>\n<tr class=\"memdesc:a1f567b12eb7a0d498edb3bcea9518338\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscribe to one or more users for their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of users.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad20754e8420f8adbf838a2c57b4f6fd4\" id=\"r_ad20754e8420f8adbf838a2c57b4f6fd4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad20754e8420f8adbf838a2c57b4f6fd4\">JoinChatAsync</a> (string target, <a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">ChannelType</a> type, bool persistence=false, bool hidden=false)</td></tr>\n<tr class=\"memdesc:ad20754e8420f8adbf838a2c57b4f6fd4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">target</td><td>The target channel to join.</td></tr>\n    <tr><td class=\"paramname\">type</td><td>The type of channel to join.</td></tr>\n    <tr><td class=\"paramname\">persistence</td><td>If chat messages should be stored.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>If the current user should be hidden on the channel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a chat channel object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2fe4966a0ad40291bafe2d4b3fc69c80\" id=\"r_a2fe4966a0ad40291bafe2d4b3fc69c80\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2fe4966a0ad40291bafe2d4b3fc69c80\">JoinMatchAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> matched)</td></tr>\n<tr class=\"memdesc:a2fe4966a0ad40291bafe2d4b3fc69c80\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a multiplayer match with the matchmaker matched object.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matched</td><td>A matchmaker matched object.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6d9068f06c70a089a1bd4c25b61802cb\" id=\"r_a6d9068f06c70a089a1bd4c25b61802cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6d9068f06c70a089a1bd4c25b61802cb\">JoinMatchAsync</a> (string matchId, IDictionary&lt; string, string &gt; metadata=null)</td></tr>\n<tr class=\"memdesc:a6d9068f06c70a089a1bd4c25b61802cb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a multiplayer match by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match to attempt to join.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>An optional set of key-value metadata pairs to be passed to the match handler.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a57b7ff03c3588dcd4ff1f255f013d519\" id=\"r_a57b7ff03c3588dcd4ff1f255f013d519\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a57b7ff03c3588dcd4ff1f255f013d519\">JoinPartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a57b7ff03c3588dcd4ff1f255f013d519\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2e174430fb895e329fab4c6bde3b93a7\" id=\"r_a2e174430fb895e329fab4c6bde3b93a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2e174430fb895e329fab4c6bde3b93a7\">LeaveChatAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel)</td></tr>\n<tr class=\"memdesc:a2e174430fb895e329fab4c6bde3b93a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8350140a21c191ea84617135fef4082e\" id=\"r_a8350140a21c191ea84617135fef4082e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8350140a21c191ea84617135fef4082e\">LeaveChatAsync</a> (string channelId)</td></tr>\n<tr class=\"memdesc:a8350140a21c191ea84617135fef4082e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:abcd300eb623ef096f446bfb11b6de0dd\" id=\"r_abcd300eb623ef096f446bfb11b6de0dd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abcd300eb623ef096f446bfb11b6de0dd\">LeaveMatchAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> match)</td></tr>\n<tr class=\"memdesc:abcd300eb623ef096f446bfb11b6de0dd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">match</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:acc15b0880cb30f2c5afc3318c76a4db6\" id=\"r_acc15b0880cb30f2c5afc3318c76a4db6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc15b0880cb30f2c5afc3318c76a4db6\">LeaveMatchAsync</a> (string matchId)</td></tr>\n<tr class=\"memdesc:acc15b0880cb30f2c5afc3318c76a4db6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a261e11e3f7828ec4854957c766c036cb\" id=\"r_a261e11e3f7828ec4854957c766c036cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a261e11e3f7828ec4854957c766c036cb\">LeavePartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a261e11e3f7828ec4854957c766c036cb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ab0ae67833a8133ef069312fcdaecbe48\" id=\"r_ab0ae67833a8133ef069312fcdaecbe48\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0ae67833a8133ef069312fcdaecbe48\">ListPartyJoinRequestsAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:ab0ae67833a8133ef069312fcdaecbe48\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Request a list of pending join requests for a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of all party join requests.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:add01eba7310dbba3a01ecbefb132ade0\" id=\"r_add01eba7310dbba3a01ecbefb132ade0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#add01eba7310dbba3a01ecbefb132ade0\">PromotePartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> partyMember)</td></tr>\n<tr class=\"memdesc:add01eba7310dbba3a01ecbefb132ade0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote a new party leader.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">partyMember</td><td>The presence of an existing party member to promote as the new leader.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an announcement of a new party leader.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aa167fc7e9cae1b65a7f0585431fc3daf\" id=\"r_aa167fc7e9cae1b65a7f0585431fc3daf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa167fc7e9cae1b65a7f0585431fc3daf\">RemoveChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string messageId)</td></tr>\n<tr class=\"memdesc:aa167fc7e9cae1b65a7f0585431fc3daf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a chat message from a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a34eef836c0c7f1707c5ffdd9a07f248e\" id=\"r_a34eef836c0c7f1707c5ffdd9a07f248e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a34eef836c0c7f1707c5ffdd9a07f248e\">RemoveChatMessageAsync</a> (string channelId, string messageId)</td></tr>\n<tr class=\"memdesc:a34eef836c0c7f1707c5ffdd9a07f248e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a chat message from a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aa49d9456a9a1ab735f7f5f1106f56827\" id=\"r_aa49d9456a9a1ab735f7f5f1106f56827\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa49d9456a9a1ab735f7f5f1106f56827\">RemoveMatchmakerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> ticket)</td></tr>\n<tr class=\"memdesc:aa49d9456a9a1ab735f7f5f1106f56827\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the matchmaker pool with the ticket.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8afad86c4eedab3e40b5f7069b170f72\" id=\"r_a8afad86c4eedab3e40b5f7069b170f72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8afad86c4eedab3e40b5f7069b170f72\">RemoveMatchmakerAsync</a> (string ticket)</td></tr>\n<tr class=\"memdesc:a8afad86c4eedab3e40b5f7069b170f72\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the matchmaker pool with the ticket contents.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The contents of the ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a7047d31f96d51a71879219df0d510dd3\" id=\"r_a7047d31f96d51a71879219df0d510dd3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7047d31f96d51a71879219df0d510dd3\">RemoveMatchmakerPartyAsync</a> (string partyId, string ticket)</td></tr>\n<tr class=\"memdesc:a7047d31f96d51a71879219df0d510dd3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cancel a party matchmaking process using a ticket.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">ticket</td><td>The ticket to cancel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a35dcc5e4b9135bffd54793b42fb9b4e1\" id=\"r_a35dcc5e4b9135bffd54793b42fb9b4e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35dcc5e4b9135bffd54793b42fb9b4e1\">RemovePartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> presence)</td></tr>\n<tr class=\"memdesc:a35dcc5e4b9135bffd54793b42fb9b4e1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick a party member, or decline a request to join.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to remove/reject from.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to remove or reject.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a01a6c34d95185413168cf645e7e8943f\" id=\"r_a01a6c34d95185413168cf645e7e8943f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a01a6c34d95185413168cf645e7e8943f\">RpcAsync</a> (string funcId, string payload=null)</td></tr>\n<tr class=\"memdesc:a01a6c34d95185413168cf645e7e8943f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an RPC function to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload to send to the server.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a30717efa7340511c87fc7e4babe99f80\" id=\"r_a30717efa7340511c87fc7e4babe99f80\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a30717efa7340511c87fc7e4babe99f80\">RpcAsync</a> (string funcId, ArraySegment&lt; byte &gt; payload)</td></tr>\n<tr class=\"memdesc:a30717efa7340511c87fc7e4babe99f80\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an RPC function to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload sent to the server from the byte buffer.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a4b674ce28156f9bec04915fefca0286a\" id=\"r_a4b674ce28156f9bec04915fefca0286a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4b674ce28156f9bec04915fefca0286a\">SendMatchStateAsync</a> (string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:a4b674ce28156f9bec04915fefca0286a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>An operation code for the input.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>The input data to send from the byte buffer.</td></tr>\n    <tr><td class=\"paramname\">presences</td><td>The presences in the match who should receive the input.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a3e990dd6a05b4949d2800a6c8c91b935\" id=\"r_a3e990dd6a05b4949d2800a6c8c91b935\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3e990dd6a05b4949d2800a6c8c91b935\">SendMatchStateAsync</a> (string matchId, long opCode, string state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:a3e990dd6a05b4949d2800a6c8c91b935\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server./// When no presences are supplied the new match state will be sent to all presences.   <br /></td></tr>\n<tr class=\"memitem:af98298e1a187ca977c9dcf63c738dc2c\" id=\"r_af98298e1a187ca977c9dcf63c738dc2c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af98298e1a187ca977c9dcf63c738dc2c\">SendMatchStateAsync</a> (string matchId, long opCode, byte[] state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:af98298e1a187ca977c9dcf63c738dc2c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server./// When no presences are supplied the new match state will be sent to all presences.   <br /></td></tr>\n<tr class=\"memitem:a8b3b14eceedee8d96186d5bf234d820c\" id=\"r_a8b3b14eceedee8d96186d5bf234d820c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b3b14eceedee8d96186d5bf234d820c\">SendPartyDataAsync</a> (string partyId, long opCode, ArraySegment&lt; byte &gt; data)</td></tr>\n<tr class=\"memdesc:a8b3b14eceedee8d96186d5bf234d820c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>The input data to send from the byte buffer, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aaade8d235e868a54af041e54b216af9d\" id=\"r_aaade8d235e868a54af041e54b216af9d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaade8d235e868a54af041e54b216af9d\">SendPartyDataAsync</a> (string partyId, long opCode, string data)</td></tr>\n<tr class=\"memdesc:aaade8d235e868a54af041e54b216af9d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2208d5d13196fbf4f40e3131eb224d47\" id=\"r_a2208d5d13196fbf4f40e3131eb224d47\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2208d5d13196fbf4f40e3131eb224d47\">SendPartyDataAsync</a> (string partyId, long opCode, byte[] data)</td></tr>\n<tr class=\"memdesc:a2208d5d13196fbf4f40e3131eb224d47\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a3f20c76d13d14d9f7b3e82555815d39d\" id=\"r_a3f20c76d13d14d9f7b3e82555815d39d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3f20c76d13d14d9f7b3e82555815d39d\">ToString</a> ()</td></tr>\n<tr class=\"memitem:a69d7b68ed48c79402440a90101981eec\" id=\"r_a69d7b68ed48c79402440a90101981eec\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a69d7b68ed48c79402440a90101981eec\">UnfollowUsersAsync</a> (IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt; users)</td></tr>\n<tr class=\"memdesc:a69d7b68ed48c79402440a90101981eec\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users from their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a3834aed45938e02964a4f29adcb51986\" id=\"r_a3834aed45938e02964a4f29adcb51986\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3834aed45938e02964a4f29adcb51986\">UnfollowUsersAsync</a> (IEnumerable&lt; string &gt; userIDs)</td></tr>\n<tr class=\"memdesc:a3834aed45938e02964a4f29adcb51986\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users from their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of the users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a3c3fbea58ee3a2f6e3d3885ca79ded9b\" id=\"r_a3c3fbea58ee3a2f6e3d3885ca79ded9b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">UpdateChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string messageId, string content)</td></tr>\n<tr class=\"memdesc:a3c3fbea58ee3a2f6e3d3885ca79ded9b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message on a chat channel in the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:adcc67413fe0ddd3aa5125290680151cf\" id=\"r_adcc67413fe0ddd3aa5125290680151cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adcc67413fe0ddd3aa5125290680151cf\">UpdateChatMessageAsync</a> (string channelId, string messageId, string content)</td></tr>\n<tr class=\"memdesc:adcc67413fe0ddd3aa5125290680151cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message on a chat channel in the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a4ef44e17bdfac9f72f0bec033321b22a\" id=\"r_a4ef44e17bdfac9f72f0bec033321b22a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4ef44e17bdfac9f72f0bec033321b22a\">UpdatePartyAsync</a> (string partyId, bool open, bool hidden, string label)</td></tr>\n<tr class=\"memdesc:a4ef44e17bdfac9f72f0bec033321b22a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update party label and optionally whether it is open or closed.  <br /></td></tr>\n<tr class=\"memitem:a869d3761f21ba7a2578f005a6690f707\" id=\"r_a869d3761f21ba7a2578f005a6690f707\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a869d3761f21ba7a2578f005a6690f707\">UpdateStatusAsync</a> (string status)</td></tr>\n<tr class=\"memdesc:a869d3761f21ba7a2578f005a6690f707\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status for the current user online.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">status</td><td>The new status for the user.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6cb398d1815a5a14d0e98dbe726a45dc\" id=\"r_a6cb398d1815a5a14d0e98dbe726a45dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6cb398d1815a5a14d0e98dbe726a45dc\">WriteChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string content)</td></tr>\n<tr class=\"memdesc:a6cb398d1815a5a14d0e98dbe726a45dc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a36c7765ff46d9f1fa8d3d9114311d772\" id=\"r_a36c7765ff46d9f1fa8d3d9114311d772\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a36c7765ff46d9f1fa8d3d9114311d772\">WriteChatMessageAsync</a> (string channelId, string content)</td></tr>\n<tr class=\"memdesc:a36c7765ff46d9f1fa8d3d9114311d772\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:a05a1bfe0921f27da4243fc6e829aa28d\" id=\"r_a05a1bfe0921f27da4243fc6e829aa28d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a05a1bfe0921f27da4243fc6e829aa28d\">From</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a> client)</td></tr>\n<tr class=\"memdesc:a05a1bfe0921f27da4243fc6e829aa28d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Build a socket from a client object.  <br /></td></tr>\n<tr class=\"memitem:ac4201f5bdda381252451e4aef465b498\" id=\"r_ac4201f5bdda381252451e4aef465b498\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac4201f5bdda381252451e4aef465b498\">From</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a> client, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a> adapter)</td></tr>\n<tr class=\"memdesc:ac4201f5bdda381252451e4aef465b498\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Build a socket from a client object and socket adapter.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-attribs\" class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:ae902438fa7e36bfa60a9c7c062218216\" id=\"r_ae902438fa7e36bfa60a9c7c062218216\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae902438fa7e36bfa60a9c7c062218216\">DefaultConnectTimeout</a> = 30</td></tr>\n<tr class=\"memdesc:ae902438fa7e36bfa60a9c7c062218216\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default timeout for when the socket connects.  <br /></td></tr>\n<tr class=\"memitem:a533161073904d1f02ea89edef79cfee7\" id=\"r_a533161073904d1f02ea89edef79cfee7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a533161073904d1f02ea89edef79cfee7\">DefaultSendTimeout</a> = 10</td></tr>\n<tr class=\"memdesc:a533161073904d1f02ea89edef79cfee7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default timeout for when the socket sends a message.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3487edbd9dd5dfa7f5a47c485c506639\" id=\"r_a3487edbd9dd5dfa7f5a47c485c506639\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3487edbd9dd5dfa7f5a47c485c506639\">IsConnected</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3487edbd9dd5dfa7f5a47c485c506639\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a1319b640499d302aa32dc6d4b6373195\" id=\"r_a1319b640499d302aa32dc6d4b6373195\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1319b640499d302aa32dc6d4b6373195\">IsConnecting</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1319b640499d302aa32dc6d4b6373195\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connecting.  <br /></td></tr>\n<tr class=\"memitem:a49b31620c26b5c3bcb73395c6e43e7e7\" id=\"r_a49b31620c26b5c3bcb73395c6e43e7e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a49b31620c26b5c3bcb73395c6e43e7e7\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a49b31620c26b5c3bcb73395c6e43e7e7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the socket.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a300991e0a08a180f811dd86cc81756f2\" id=\"r_a300991e0a08a180f811dd86cc81756f2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a300991e0a08a180f811dd86cc81756f2\">Closed</a></td></tr>\n<tr class=\"memitem:a96b11a256b14b2f940d74ce55c6bcfac\" id=\"r_a96b11a256b14b2f940d74ce55c6bcfac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a96b11a256b14b2f940d74ce55c6bcfac\">Connected</a></td></tr>\n<tr class=\"memitem:a2fc741ef8ec0c967409927269fe17b2d\" id=\"r_a2fc741ef8ec0c967409927269fe17b2d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2fc741ef8ec0c967409927269fe17b2d\">ReceivedChannelMessage</a></td></tr>\n<tr class=\"memitem:a7df1f68cfed0dbc80c151d9fc9146436\" id=\"r_a7df1f68cfed0dbc80c151d9fc9146436\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7df1f68cfed0dbc80c151d9fc9146436\">ReceivedChannelPresence</a></td></tr>\n<tr class=\"memitem:a1d55fb80f035773813b9c20836fd7d4b\" id=\"r_a1d55fb80f035773813b9c20836fd7d4b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1d55fb80f035773813b9c20836fd7d4b\">ReceivedError</a></td></tr>\n<tr class=\"memitem:a58bda7f53b946b4aeea917fb410d5b53\" id=\"r_a58bda7f53b946b4aeea917fb410d5b53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a58bda7f53b946b4aeea917fb410d5b53\">ReceivedMatchmakerMatched</a></td></tr>\n<tr class=\"memitem:a2126823bf94305bc690de717c204ddc8\" id=\"r_a2126823bf94305bc690de717c204ddc8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2126823bf94305bc690de717c204ddc8\">ReceivedMatchState</a></td></tr>\n<tr class=\"memitem:aa994986e8223a436057a51123b53c138\" id=\"r_aa994986e8223a436057a51123b53c138\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa994986e8223a436057a51123b53c138\">ReceivedMatchPresence</a></td></tr>\n<tr class=\"memitem:ae852000e396b907fe3427275e20a438a\" id=\"r_ae852000e396b907fe3427275e20a438a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae852000e396b907fe3427275e20a438a\">ReceivedNotification</a></td></tr>\n<tr class=\"memitem:aafb682456f9e2f2f6786c7a604068579\" id=\"r_aafb682456f9e2f2f6786c7a604068579\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aafb682456f9e2f2f6786c7a604068579\">ReceivedStatusPresence</a></td></tr>\n<tr class=\"memitem:a8f87e235201537ea096e9f7644fcbb53\" id=\"r_a8f87e235201537ea096e9f7644fcbb53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8f87e235201537ea096e9f7644fcbb53\">ReceivedStreamPresence</a></td></tr>\n<tr class=\"memitem:ab74f9b37e9a85409f5c742c1f7472df8\" id=\"r_ab74f9b37e9a85409f5c742c1f7472df8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab74f9b37e9a85409f5c742c1f7472df8\">ReceivedStreamState</a></td></tr>\n<tr class=\"memitem:ae0aea1347e564c5b4e05808f8b4f7c7b\" id=\"r_ae0aea1347e564c5b4e05808f8b4f7c7b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae0aea1347e564c5b4e05808f8b4f7c7b\">ReceivedParty</a></td></tr>\n<tr class=\"memitem:a1c7b6705495d0d792ea206c2c3ec60db\" id=\"r_a1c7b6705495d0d792ea206c2c3ec60db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1c7b6705495d0d792ea206c2c3ec60db\">ReceivedPartyClose</a></td></tr>\n<tr class=\"memitem:af68d467390d65c70387cdb4a81f07b05\" id=\"r_af68d467390d65c70387cdb4a81f07b05\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af68d467390d65c70387cdb4a81f07b05\">ReceivedPartyData</a></td></tr>\n<tr class=\"memitem:a0d55c55027d6793198c512a035b3d33f\" id=\"r_a0d55c55027d6793198c512a035b3d33f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d55c55027d6793198c512a035b3d33f\">ReceivedPartyUpdate</a></td></tr>\n<tr class=\"memitem:a5e3f748ba1eb18860832bf62c820bcd6\" id=\"r_a5e3f748ba1eb18860832bf62c820bcd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5e3f748ba1eb18860832bf62c820bcd6\">ReceivedPartyJoinRequest</a></td></tr>\n<tr class=\"memitem:a65997479fd70edd6a4c343d00413ca53\" id=\"r_a65997479fd70edd6a4c343d00413ca53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a65997479fd70edd6a4c343d00413ca53\">ReceivedPartyLeader</a></td></tr>\n<tr class=\"memitem:a7efe921c019734677c663fadd61abd10\" id=\"r_a7efe921c019734677c663fadd61abd10\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7efe921c019734677c663fadd61abd10\">ReceivedPartyPresence</a></td></tr>\n<tr class=\"memitem:a3d974d278adc00819b18a946f07d467e\" id=\"r_a3d974d278adc00819b18a946f07d467e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3d974d278adc00819b18a946f07d467e\">ReceivedPartyMatchmakerTicket</a></td></tr>\n<tr class=\"inherit_header events_interface_nakama_1_1_i_socket\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_nakama_1_1_i_socket')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td></tr>\n<tr class=\"memitem:afe4d8fe65118a41d40732a82908ab483 inherit events_interface_nakama_1_1_i_socket\" id=\"r_afe4d8fe65118a41d40732a82908ab483\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\">Closed</a></td></tr>\n<tr class=\"memdesc:afe4d8fe65118a41d40732a82908ab483 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when a socket is closed.  <br /></td></tr>\n<tr class=\"memitem:a66bcbfecb40518837510e12cd48b7acd inherit events_interface_nakama_1_1_i_socket\" id=\"r_a66bcbfecb40518837510e12cd48b7acd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\">Connected</a></td></tr>\n<tr class=\"memdesc:a66bcbfecb40518837510e12cd48b7acd inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when a socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a0cc3f5be403f1189d4e72c51b96d9680 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a0cc3f5be403f1189d4e72c51b96d9680\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\">ReceivedChannelMessage</a></td></tr>\n<tr class=\"memdesc:a0cc3f5be403f1189d4e72c51b96d9680 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a chat channel message.  <br /></td></tr>\n<tr class=\"memitem:a515084ae8f6466b60570292eadf4c700 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a515084ae8f6466b60570292eadf4c700\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\">ReceivedChannelPresence</a></td></tr>\n<tr class=\"memdesc:a515084ae8f6466b60570292eadf4c700 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves with users in a chat channel.  <br /></td></tr>\n<tr class=\"memitem:a8318c9b7e2709e8306d00bc2a0d03e86 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a8318c9b7e2709e8306d00bc2a0d03e86\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\">ReceivedError</a></td></tr>\n<tr class=\"memdesc:a8318c9b7e2709e8306d00bc2a0d03e86 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when an error occurs on the socket.  <br /></td></tr>\n<tr class=\"memitem:aee6beff734538a19c915d37fcf703834 inherit events_interface_nakama_1_1_i_socket\" id=\"r_aee6beff734538a19c915d37fcf703834\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\">ReceivedMatchmakerMatched</a></td></tr>\n<tr class=\"memdesc:aee6beff734538a19c915d37fcf703834 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a matchmaker matched message.  <br /></td></tr>\n<tr class=\"memitem:a17b98d2b0b33fcf3e0d956d05fddcdf2 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a17b98d2b0b33fcf3e0d956d05fddcdf2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\">ReceivedMatchState</a></td></tr>\n<tr class=\"memdesc:a17b98d2b0b33fcf3e0d956d05fddcdf2 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a message from a multiplayer match.  <br /></td></tr>\n<tr class=\"memitem:ac02519653c675729d70dbf70ed84d57b inherit events_interface_nakama_1_1_i_socket\" id=\"r_ac02519653c675729d70dbf70ed84d57b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\">ReceivedMatchPresence</a></td></tr>\n<tr class=\"memdesc:ac02519653c675729d70dbf70ed84d57b inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves of users in a multiplayer match.  <br /></td></tr>\n<tr class=\"memitem:a21c8dec048d4d59faef0f5177d5dd57c inherit events_interface_nakama_1_1_i_socket\" id=\"r_a21c8dec048d4d59faef0f5177d5dd57c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\">ReceivedNotification</a></td></tr>\n<tr class=\"memdesc:a21c8dec048d4d59faef0f5177d5dd57c inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a notification for the current user.  <br /></td></tr>\n<tr class=\"memitem:aef9916951402f7727f07f6964412738c inherit events_interface_nakama_1_1_i_socket\" id=\"r_aef9916951402f7727f07f6964412738c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\">ReceivedParty</a></td></tr>\n<tr class=\"memdesc:aef9916951402f7727f07f6964412738c inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party event. This will occur when the current user's invitation request is accepted by the party leader of a closed party.  <br /></td></tr>\n<tr class=\"memitem:a689062bafabff8c4ef43eb778e28ccc3 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a689062bafabff8c4ef43eb778e28ccc3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\">ReceivedPartyClose</a></td></tr>\n<tr class=\"memdesc:a689062bafabff8c4ef43eb778e28ccc3 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party close event.  <br /></td></tr>\n<tr class=\"memitem:aa857c8d6d11304b468fd20f8201dcc2a inherit events_interface_nakama_1_1_i_socket\" id=\"r_aa857c8d6d11304b468fd20f8201dcc2a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\">ReceivedPartyData</a></td></tr>\n<tr class=\"memdesc:aa857c8d6d11304b468fd20f8201dcc2a inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received custom party data.  <br /></td></tr>\n<tr class=\"memitem:ae8b2267febd5ee639429aa65fcc774e3 inherit events_interface_nakama_1_1_i_socket\" id=\"r_ae8b2267febd5ee639429aa65fcc774e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\">ReceivedPartyJoinRequest</a></td></tr>\n<tr class=\"memdesc:ae8b2267febd5ee639429aa65fcc774e3 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a request to join the party.  <br /></td></tr>\n<tr class=\"memitem:a8ac582863e0349af106020bddea8aca3 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a8ac582863e0349af106020bddea8aca3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\">ReceivedPartyLeader</a></td></tr>\n<tr class=\"memdesc:a8ac582863e0349af106020bddea8aca3 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a change in the party leader.  <br /></td></tr>\n<tr class=\"memitem:a6537de9e92b9e3073d425178c88fbfe7 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a6537de9e92b9e3073d425178c88fbfe7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\">ReceivedPartyMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:a6537de9e92b9e3073d425178c88fbfe7 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new matchmaker ticket for the party.  <br /></td></tr>\n<tr class=\"memitem:a826e3c85c992db9c009ad30a31280f5d inherit events_interface_nakama_1_1_i_socket\" id=\"r_a826e3c85c992db9c009ad30a31280f5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\">ReceivedPartyPresence</a></td></tr>\n<tr class=\"memdesc:a826e3c85c992db9c009ad30a31280f5d inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new presence event in the party.  <br /></td></tr>\n<tr class=\"memitem:a9927bfe41792b4791f1fb4d2eb5cbc00 inherit events_interface_nakama_1_1_i_socket\" id=\"r_a9927bfe41792b4791f1fb4d2eb5cbc00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\">ReceivedPartyUpdate</a></td></tr>\n<tr class=\"memdesc:a9927bfe41792b4791f1fb4d2eb5cbc00 inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party label and/or open/closed change.  <br /></td></tr>\n<tr class=\"memitem:a8ffa8e010664063ab88ffd2b5db472ce inherit events_interface_nakama_1_1_i_socket\" id=\"r_a8ffa8e010664063ab88ffd2b5db472ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\">ReceivedStatusPresence</a></td></tr>\n<tr class=\"memdesc:a8ffa8e010664063ab88ffd2b5db472ce inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for when a user updated their online status.  <br /></td></tr>\n<tr class=\"memitem:af79cb677935c51a7271a9cb95f84353a inherit events_interface_nakama_1_1_i_socket\" id=\"r_af79cb677935c51a7271a9cb95f84353a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\">ReceivedStreamPresence</a></td></tr>\n<tr class=\"memdesc:af79cb677935c51a7271a9cb95f84353a inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves on a realtime stream.  <br /></td></tr>\n<tr class=\"memitem:ac38386b65fb4b5a4a0cd96a22e20cefb inherit events_interface_nakama_1_1_i_socket\" id=\"r_ac38386b65fb4b5a4a0cd96a22e20cefb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\">ReceivedStreamState</a></td></tr>\n<tr class=\"memdesc:ac38386b65fb4b5a4a0cd96a22e20cefb inherit events_interface_nakama_1_1_i_socket\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a message from a realtime stream.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a957a7a72f3206eeb71b4f823b89481b2\" name=\"a957a7a72f3206eeb71b4f823b89481b2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a957a7a72f3206eeb71b4f823b89481b2\">&#9670;&#160;</a></span>Socket() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Socket.Socket </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A new socket with default options. </p>\n\n</div>\n</div>\n<a id=\"a5cd86e4fde0b78a4230ed024ef43dbe7\" name=\"a5cd86e4fde0b78a4230ed024ef43dbe7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5cd86e4fde0b78a4230ed024ef43dbe7\">&#9670;&#160;</a></span>Socket() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Socket.Socket </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A new socket with an adapter. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">adapter</td><td>The adapter for use with the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a7a528ae9507ab34fb8a19fe5fd90fde1\" name=\"a7a528ae9507ab34fb8a19fe5fd90fde1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7a528ae9507ab34fb8a19fe5fd90fde1\">&#9670;&#160;</a></span>Socket() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.Socket.Socket </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>scheme</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sendTimeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"#a533161073904d1f02ea89edef79cfee7\">DefaultSendTimeout</a></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A new socket with server connection and adapter options. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">scheme</td><td>The protocol scheme. Must be \"ws\" or \"wss\".</td></tr>\n    <tr><td class=\"paramname\">host</td><td>The host address of the server.</td></tr>\n    <tr><td class=\"paramname\">port</td><td>The port number of the server.</td></tr>\n    <tr><td class=\"paramname\">adapter</td><td>The adapter for use with the socket.</td></tr>\n    <tr><td class=\"paramname\">sendTimeoutSec</td><td>The maximum time allowed for a message to be sent.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ae9fa18dcb3d306d29c7dc97a8e64687a\" name=\"ae9fa18dcb3d306d29c7dc97a8e64687a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae9fa18dcb3d306d29c7dc97a8e64687a\">&#9670;&#160;</a></span>AcceptPartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.AcceptPartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presence</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Accept a party member's request to join the party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The party ID to accept the join request for.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to accept as a party member. </td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"aed1cb5c5784d1fd08bf5e63ab270a848\" name=\"aed1cb5c5784d1fd08bf5e63ab270a848\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aed1cb5c5784d1fd08bf5e63ab270a848\">&#9670;&#160;</a></span>AddMatchmakerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> &gt; Nakama.Socket.AddMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;*&quot;</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>minCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">2</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">8</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stringProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, double &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numericProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>countMultiple</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join the matchmaker pool and search for opponents on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">query</td><td>The matchmaker query to search for opponents.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>The minimum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>A set of key/value properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>A set of key/value numeric properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a matchmaker ticket object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a5ed1f27ccf52792a55363ce3273e22de\" name=\"a5ed1f27ccf52792a55363ce3273e22de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ed1f27ccf52792a55363ce3273e22de\">&#9670;&#160;</a></span>AddMatchmakerPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt; Nakama.Socket.AddMatchmakerPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>minCount</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stringProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, double &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numericProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>countMultiple</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Begin matchmaking as a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Filter query used to identify suitable users.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>Minimum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>Maximum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>String properties.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>Numeric properties.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a party matchmaker ticket object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a5d033f1ff9973aa3e53a5675c91d108e\" name=\"a5d033f1ff9973aa3e53a5675c91d108e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5d033f1ff9973aa3e53a5675c91d108e\">&#9670;&#160;</a></span>CloseAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.CloseAsync </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Close the socket connection to the server.<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a56e29efdc1831754a70b889a08588237\" name=\"a56e29efdc1831754a70b889a08588237\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a56e29efdc1831754a70b889a08588237\">&#9670;&#160;</a></span>ClosePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.ClosePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>End a party, kicking all party members and closing it.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The ID of the party.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a11620a9e6706ddaf48d260d56c7cdcaa\" name=\"a11620a9e6706ddaf48d260d56c7cdcaa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a11620a9e6706ddaf48d260d56c7cdcaa\">&#9670;&#160;</a></span>ConnectAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>appearOnline</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>connectTimeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"#ae902438fa7e36bfa60a9c7c062218216\">DefaultConnectTimeout</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;en&quot;</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">appearOnline</td><td>If the user who appear online to other users.</td></tr>\n    <tr><td class=\"paramname\">connectTimeout</td><td>The time allowed for the socket connection to be established.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag of the user on the connected socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a62f9170d0c155670b7fb57d7de9884a6\" name=\"a62f9170d0c155670b7fb57d7de9884a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62f9170d0c155670b7fb57d7de9884a6\">&#9670;&#160;</a></span>CreateMatchAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.Socket.CreateMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a multiplayer match on the server.<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a1374f5d0081d33b17a6bda84978f069d\" name=\"a1374f5d0081d33b17a6bda84978f069d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1374f5d0081d33b17a6bda84978f069d\">&#9670;&#160;</a></span>CreatePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt; Nakama.Socket.CreatePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxSize</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">open</td><td>Whether the party will require join requests to be approved by the party leader.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>Whether the party should be hidden from client listing.</td></tr>\n    <tr><td class=\"paramname\">maxSize</td><td>Maximum number of party members.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>An optional label to set for party listing.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"ad6180b6f74a9adfdbc53b1c19c63efa5\" name=\"ad6180b6f74a9adfdbc53b1c19c63efa5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad6180b6f74a9adfdbc53b1c19c63efa5\">&#9670;&#160;</a></span>FollowUsersAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt; Nakama.Socket.FollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>users</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Subscribe to one or more users for their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a1f567b12eb7a0d498edb3bcea9518338\" name=\"a1f567b12eb7a0d498edb3bcea9518338\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1f567b12eb7a0d498edb3bcea9518338\">&#9670;&#160;</a></span>FollowUsersAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt; Nakama.Socket.FollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userIDs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subscribe to one or more users for their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of users.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a05a1bfe0921f27da4243fc6e829aa28d\" name=\"a05a1bfe0921f27da4243fc6e829aa28d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a05a1bfe0921f27da4243fc6e829aa28d\">&#9670;&#160;</a></span>From() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a> Nakama.Socket.From </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>client</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Build a socket from a client object. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">client</td><td>A client object.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A new socket with the connection settings from the client.</dd></dl>\n\n</div>\n</div>\n<a id=\"ac4201f5bdda381252451e4aef465b498\" name=\"ac4201f5bdda381252451e4aef465b498\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac4201f5bdda381252451e4aef465b498\">&#9670;&#160;</a></span>From() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a> Nakama.Socket.From </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>client</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Build a socket from a client object and socket adapter. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">client</td><td>A client object.</td></tr>\n    <tr><td class=\"paramname\">adapter</td><td>The socket adapter to use with the connection.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A new socket with connection settings from the client.</dd></dl>\n\n</div>\n</div>\n<a id=\"ad20754e8420f8adbf838a2c57b4f6fd4\" name=\"ad20754e8420f8adbf838a2c57b4f6fd4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad20754e8420f8adbf838a2c57b4f6fd4\">&#9670;&#160;</a></span>JoinChatAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> &gt; Nakama.Socket.JoinChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>target</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">ChannelType</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>type</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persistence</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">target</td><td>The target channel to join.</td></tr>\n    <tr><td class=\"paramname\">type</td><td>The type of channel to join.</td></tr>\n    <tr><td class=\"paramname\">persistence</td><td>If chat messages should be stored.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>If the current user should be hidden on the channel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a chat channel object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a2fe4966a0ad40291bafe2d4b3fc69c80\" name=\"a2fe4966a0ad40291bafe2d4b3fc69c80\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2fe4966a0ad40291bafe2d4b3fc69c80\">&#9670;&#160;</a></span>JoinMatchAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.Socket.JoinMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>matched</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a multiplayer match with the matchmaker matched object.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matched</td><td>A matchmaker matched object.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a6d9068f06c70a089a1bd4c25b61802cb\" name=\"a6d9068f06c70a089a1bd4c25b61802cb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6d9068f06c70a089a1bd4c25b61802cb\">&#9670;&#160;</a></span>JoinMatchAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.Socket.JoinMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a multiplayer match by ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match to attempt to join.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>An optional set of key-value metadata pairs to be passed to the match handler.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a57b7ff03c3588dcd4ff1f255f013d519\" name=\"a57b7ff03c3588dcd4ff1f255f013d519\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a57b7ff03c3588dcd4ff1f255f013d519\">&#9670;&#160;</a></span>JoinPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.JoinPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Join a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a2e174430fb895e329fab4c6bde3b93a7\" name=\"a2e174430fb895e329fab4c6bde3b93a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2e174430fb895e329fab4c6bde3b93a7\">&#9670;&#160;</a></span>LeaveChatAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.LeaveChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a8350140a21c191ea84617135fef4082e\" name=\"a8350140a21c191ea84617135fef4082e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8350140a21c191ea84617135fef4082e\">&#9670;&#160;</a></span>LeaveChatAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.LeaveChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Leave a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"abcd300eb623ef096f446bfb11b6de0dd\" name=\"abcd300eb623ef096f446bfb11b6de0dd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abcd300eb623ef096f446bfb11b6de0dd\">&#9670;&#160;</a></span>LeaveMatchAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.LeaveMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>match</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">match</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"acc15b0880cb30f2c5afc3318c76a4db6\" name=\"acc15b0880cb30f2c5afc3318c76a4db6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc15b0880cb30f2c5afc3318c76a4db6\">&#9670;&#160;</a></span>LeaveMatchAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.LeaveMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Leave a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a261e11e3f7828ec4854957c766c036cb\" name=\"a261e11e3f7828ec4854957c766c036cb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a261e11e3f7828ec4854957c766c036cb\">&#9670;&#160;</a></span>LeavePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.LeavePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Leave the party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"ab0ae67833a8133ef069312fcdaecbe48\" name=\"ab0ae67833a8133ef069312fcdaecbe48\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0ae67833a8133ef069312fcdaecbe48\">&#9670;&#160;</a></span>ListPartyJoinRequestsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt; Nakama.Socket.ListPartyJoinRequestsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Request a list of pending join requests for a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of all party join requests.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"add01eba7310dbba3a01ecbefb132ade0\" name=\"add01eba7310dbba3a01ecbefb132ade0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#add01eba7310dbba3a01ecbefb132ade0\">&#9670;&#160;</a></span>PromotePartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.PromotePartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyMember</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Promote a new party leader.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">partyMember</td><td>The presence of an existing party member to promote as the new leader.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an announcement of a new party leader.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"aa167fc7e9cae1b65a7f0585431fc3daf\" name=\"aa167fc7e9cae1b65a7f0585431fc3daf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa167fc7e9cae1b65a7f0585431fc3daf\">&#9670;&#160;</a></span>RemoveChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.RemoveChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Remove a chat message from a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a34eef836c0c7f1707c5ffdd9a07f248e\" name=\"a34eef836c0c7f1707c5ffdd9a07f248e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a34eef836c0c7f1707c5ffdd9a07f248e\">&#9670;&#160;</a></span>RemoveChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.RemoveChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Remove a chat message from a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"aa49d9456a9a1ab735f7f5f1106f56827\" name=\"aa49d9456a9a1ab735f7f5f1106f56827\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa49d9456a9a1ab735f7f5f1106f56827\">&#9670;&#160;</a></span>RemoveMatchmakerAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.RemoveMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave the matchmaker pool with the ticket.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a8afad86c4eedab3e40b5f7069b170f72\" name=\"a8afad86c4eedab3e40b5f7069b170f72\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8afad86c4eedab3e40b5f7069b170f72\">&#9670;&#160;</a></span>RemoveMatchmakerAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.RemoveMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Leave the matchmaker pool with the ticket contents.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The contents of the ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a7047d31f96d51a71879219df0d510dd3\" name=\"a7047d31f96d51a71879219df0d510dd3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7047d31f96d51a71879219df0d510dd3\">&#9670;&#160;</a></span>RemoveMatchmakerPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.RemoveMatchmakerPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cancel a party matchmaking process using a ticket.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">ticket</td><td>The ticket to cancel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a35dcc5e4b9135bffd54793b42fb9b4e1\" name=\"a35dcc5e4b9135bffd54793b42fb9b4e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35dcc5e4b9135bffd54793b42fb9b4e1\">&#9670;&#160;</a></span>RemovePartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.RemovePartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presence</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Kick a party member, or decline a request to join.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to remove/reject from.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to remove or reject.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a30717efa7340511c87fc7e4babe99f80\" name=\"a30717efa7340511c87fc7e4babe99f80\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a30717efa7340511c87fc7e4babe99f80\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Socket.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>funcId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Execute an RPC function to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload sent to the server from the byte buffer.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a01a6c34d95185413168cf645e7e8943f\" name=\"a01a6c34d95185413168cf645e7e8943f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a01a6c34d95185413168cf645e7e8943f\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.Socket.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>funcId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Execute an RPC function to the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload to send to the server.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a4b674ce28156f9bec04915fefca0286a\" name=\"a4b674ce28156f9bec04915fefca0286a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b674ce28156f9bec04915fefca0286a\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>An operation code for the input.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>The input data to send from the byte buffer.</td></tr>\n    <tr><td class=\"paramname\">presences</td><td>The presences in the match who should receive the input.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"af98298e1a187ca977c9dcf63c738dc2c\" name=\"af98298e1a187ca977c9dcf63c738dc2c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af98298e1a187ca977c9dcf63c738dc2c\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server./// When no presences are supplied the new match state will be sent to all presences.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a3e990dd6a05b4949d2800a6c8c91b935\" name=\"a3e990dd6a05b4949d2800a6c8c91b935\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3e990dd6a05b4949d2800a6c8c91b935\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server./// When no presences are supplied the new match state will be sent to all presences.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a8b3b14eceedee8d96186d5bf234d820c\" name=\"a8b3b14eceedee8d96186d5bf234d820c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b3b14eceedee8d96186d5bf234d820c\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>The input data to send from the byte buffer, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a2208d5d13196fbf4f40e3131eb224d47\" name=\"a2208d5d13196fbf4f40e3131eb224d47\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2208d5d13196fbf4f40e3131eb224d47\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"aaade8d235e868a54af041e54b216af9d\" name=\"aaade8d235e868a54af041e54b216af9d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaade8d235e868a54af041e54b216af9d\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a3f20c76d13d14d9f7b3e82555815d39d\" name=\"a3f20c76d13d14d9f7b3e82555815d39d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3f20c76d13d14d9f7b3e82555815d39d\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.Socket.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a69d7b68ed48c79402440a90101981eec\" name=\"a69d7b68ed48c79402440a90101981eec\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a69d7b68ed48c79402440a90101981eec\">&#9670;&#160;</a></span>UnfollowUsersAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.UnfollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>users</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unfollow one or more users from their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a3834aed45938e02964a4f29adcb51986\" name=\"a3834aed45938e02964a4f29adcb51986\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3834aed45938e02964a4f29adcb51986\">&#9670;&#160;</a></span>UnfollowUsersAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.UnfollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userIDs</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unfollow one or more users from their status updates.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of the users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a3c3fbea58ee3a2f6e3d3885ca79ded9b\" name=\"a3c3fbea58ee3a2f6e3d3885ca79ded9b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">&#9670;&#160;</a></span>UpdateChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.UpdateChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update a chat message on a chat channel in the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"adcc67413fe0ddd3aa5125290680151cf\" name=\"adcc67413fe0ddd3aa5125290680151cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adcc67413fe0ddd3aa5125290680151cf\">&#9670;&#160;</a></span>UpdateChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.UpdateChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update a chat message on a chat channel in the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a4ef44e17bdfac9f72f0bec033321b22a\" name=\"a4ef44e17bdfac9f72f0bec033321b22a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4ef44e17bdfac9f72f0bec033321b22a\">&#9670;&#160;</a></span>UpdatePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt; Nakama.Socket.UpdatePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update party label and optionally whether it is open or closed. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The Party ID.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>Whether the party is open or closed.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>Whether the party should be hidden from client listing.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>The new custom label to set to the party.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd></dd></dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a869d3761f21ba7a2578f005a6690f707\" name=\"a869d3761f21ba7a2578f005a6690f707\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a869d3761f21ba7a2578f005a6690f707\">&#9670;&#160;</a></span>UpdateStatusAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Socket.UpdateStatusAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>status</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update the status for the current user online.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">status</td><td>The new status for the user.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a6cb398d1815a5a14d0e98dbe726a45dc\" name=\"a6cb398d1815a5a14d0e98dbe726a45dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6cb398d1815a5a14d0e98dbe726a45dc\">&#9670;&#160;</a></span>WriteChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.WriteChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a chat message to a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a36c7765ff46d9f1fa8d3d9114311d772\" name=\"a36c7765ff46d9f1fa8d3d9114311d772\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a36c7765ff46d9f1fa8d3d9114311d772\">&#9670;&#160;</a></span>WriteChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.Socket.WriteChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send a chat message to a chat channel on the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-variable-members\" id=\"doc-variable-members\"></a><h2 id=\"header-doc-variable-members\" class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"ae902438fa7e36bfa60a9c7c062218216\" name=\"ae902438fa7e36bfa60a9c7c062218216\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae902438fa7e36bfa60a9c7c062218216\">&#9670;&#160;</a></span>DefaultConnectTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int Nakama.Socket.DefaultConnectTimeout = 30</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default timeout for when the socket connects. </p>\n\n</div>\n</div>\n<a id=\"a533161073904d1f02ea89edef79cfee7\" name=\"a533161073904d1f02ea89edef79cfee7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a533161073904d1f02ea89edef79cfee7\">&#9670;&#160;</a></span>DefaultSendTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int Nakama.Socket.DefaultSendTimeout = 10</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default timeout for when the socket sends a message. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3487edbd9dd5dfa7f5a47c485c506639\" name=\"a3487edbd9dd5dfa7f5a47c485c506639\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3487edbd9dd5dfa7f5a47c485c506639\">&#9670;&#160;</a></span>IsConnected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Socket.IsConnected</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connected. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a1319b640499d302aa32dc6d4b6373195\" name=\"a1319b640499d302aa32dc6d4b6373195\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1319b640499d302aa32dc6d4b6373195\">&#9670;&#160;</a></span>IsConnecting</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Socket.IsConnecting</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connecting. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\">Nakama.ISocket</a>.</p>\n\n</div>\n</div>\n<a id=\"a49b31620c26b5c3bcb73395c6e43e7e7\" name=\"a49b31620c26b5c3bcb73395c6e43e7e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a49b31620c26b5c3bcb73395c6e43e7e7\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.Socket.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the socket. </p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a300991e0a08a180f811dd86cc81756f2\" name=\"a300991e0a08a180f811dd86cc81756f2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a300991e0a08a180f811dd86cc81756f2\">&#9670;&#160;</a></span>Closed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.Socket.Closed</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a96b11a256b14b2f940d74ce55c6bcfac\" name=\"a96b11a256b14b2f940d74ce55c6bcfac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a96b11a256b14b2f940d74ce55c6bcfac\">&#9670;&#160;</a></span>Connected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.Socket.Connected</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a2fc741ef8ec0c967409927269fe17b2d\" name=\"a2fc741ef8ec0c967409927269fe17b2d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2fc741ef8ec0c967409927269fe17b2d\">&#9670;&#160;</a></span>ReceivedChannelMessage</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a>&gt; Nakama.Socket.ReceivedChannelMessage</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a7df1f68cfed0dbc80c151d9fc9146436\" name=\"a7df1f68cfed0dbc80c151d9fc9146436\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7df1f68cfed0dbc80c151d9fc9146436\">&#9670;&#160;</a></span>ReceivedChannelPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a>&gt; Nakama.Socket.ReceivedChannelPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a1d55fb80f035773813b9c20836fd7d4b\" name=\"a1d55fb80f035773813b9c20836fd7d4b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1d55fb80f035773813b9c20836fd7d4b\">&#9670;&#160;</a></span>ReceivedError</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;Exception&gt; Nakama.Socket.ReceivedError</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a58bda7f53b946b4aeea917fb410d5b53\" name=\"a58bda7f53b946b4aeea917fb410d5b53\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a58bda7f53b946b4aeea917fb410d5b53\">&#9670;&#160;</a></span>ReceivedMatchmakerMatched</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a>&gt; Nakama.Socket.ReceivedMatchmakerMatched</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"aa994986e8223a436057a51123b53c138\" name=\"aa994986e8223a436057a51123b53c138\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa994986e8223a436057a51123b53c138\">&#9670;&#160;</a></span>ReceivedMatchPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a>&gt; Nakama.Socket.ReceivedMatchPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a2126823bf94305bc690de717c204ddc8\" name=\"a2126823bf94305bc690de717c204ddc8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2126823bf94305bc690de717c204ddc8\">&#9670;&#160;</a></span>ReceivedMatchState</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a>&gt; Nakama.Socket.ReceivedMatchState</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"ae852000e396b907fe3427275e20a438a\" name=\"ae852000e396b907fe3427275e20a438a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae852000e396b907fe3427275e20a438a\">&#9670;&#160;</a></span>ReceivedNotification</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a>&gt; Nakama.Socket.ReceivedNotification</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"ae0aea1347e564c5b4e05808f8b4f7c7b\" name=\"ae0aea1347e564c5b4e05808f8b4f7c7b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae0aea1347e564c5b4e05808f8b4f7c7b\">&#9670;&#160;</a></span>ReceivedParty</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a>&gt; Nakama.Socket.ReceivedParty</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a1c7b6705495d0d792ea206c2c3ec60db\" name=\"a1c7b6705495d0d792ea206c2c3ec60db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1c7b6705495d0d792ea206c2c3ec60db\">&#9670;&#160;</a></span>ReceivedPartyClose</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a>&gt; Nakama.Socket.ReceivedPartyClose</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"af68d467390d65c70387cdb4a81f07b05\" name=\"af68d467390d65c70387cdb4a81f07b05\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af68d467390d65c70387cdb4a81f07b05\">&#9670;&#160;</a></span>ReceivedPartyData</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a>&gt; Nakama.Socket.ReceivedPartyData</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a5e3f748ba1eb18860832bf62c820bcd6\" name=\"a5e3f748ba1eb18860832bf62c820bcd6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5e3f748ba1eb18860832bf62c820bcd6\">&#9670;&#160;</a></span>ReceivedPartyJoinRequest</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a>&gt; Nakama.Socket.ReceivedPartyJoinRequest</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a65997479fd70edd6a4c343d00413ca53\" name=\"a65997479fd70edd6a4c343d00413ca53\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a65997479fd70edd6a4c343d00413ca53\">&#9670;&#160;</a></span>ReceivedPartyLeader</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a>&gt; Nakama.Socket.ReceivedPartyLeader</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a3d974d278adc00819b18a946f07d467e\" name=\"a3d974d278adc00819b18a946f07d467e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3d974d278adc00819b18a946f07d467e\">&#9670;&#160;</a></span>ReceivedPartyMatchmakerTicket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a>&gt; Nakama.Socket.ReceivedPartyMatchmakerTicket</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a7efe921c019734677c663fadd61abd10\" name=\"a7efe921c019734677c663fadd61abd10\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7efe921c019734677c663fadd61abd10\">&#9670;&#160;</a></span>ReceivedPartyPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a>&gt; Nakama.Socket.ReceivedPartyPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a0d55c55027d6793198c512a035b3d33f\" name=\"a0d55c55027d6793198c512a035b3d33f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d55c55027d6793198c512a035b3d33f\">&#9670;&#160;</a></span>ReceivedPartyUpdate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a>&gt; Nakama.Socket.ReceivedPartyUpdate</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"aafb682456f9e2f2f6786c7a604068579\" name=\"aafb682456f9e2f2f6786c7a604068579\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aafb682456f9e2f2f6786c7a604068579\">&#9670;&#160;</a></span>ReceivedStatusPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a>&gt; Nakama.Socket.ReceivedStatusPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a8f87e235201537ea096e9f7644fcbb53\" name=\"a8f87e235201537ea096e9f7644fcbb53\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8f87e235201537ea096e9f7644fcbb53\">&#9670;&#160;</a></span>ReceivedStreamPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a>&gt; Nakama.Socket.ReceivedStreamPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"ab74f9b37e9a85409f5c742c1f7472df8\" name=\"ab74f9b37e9a85409f5c742c1f7472df8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab74f9b37e9a85409f5c742c1f7472df8\">&#9670;&#160;</a></span>ReceivedStreamState</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a>&gt; Nakama.Socket.ReceivedStreamState</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_socket_8cs.html\">Socket.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_socket.html\">Socket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_socket.js",
    "content": "var class_nakama_1_1_socket =\n[\n    [ \"Socket\", \"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\", null ],\n    [ \"Socket\", \"class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7\", null ],\n    [ \"Socket\", \"class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1\", null ],\n    [ \"AcceptPartyMemberAsync\", \"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\", null ],\n    [ \"AddMatchmakerAsync\", \"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\", null ],\n    [ \"AddMatchmakerPartyAsync\", \"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\", null ],\n    [ \"CloseAsync\", \"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\", null ],\n    [ \"ClosePartyAsync\", \"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\", null ],\n    [ \"CreateMatchAsync\", \"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\", null ],\n    [ \"CreatePartyAsync\", \"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\", null ],\n    [ \"FollowUsersAsync\", \"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\", null ],\n    [ \"FollowUsersAsync\", \"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\", null ],\n    [ \"JoinChatAsync\", \"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\", null ],\n    [ \"JoinMatchAsync\", \"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\", null ],\n    [ \"JoinMatchAsync\", \"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\", null ],\n    [ \"JoinPartyAsync\", \"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\", null ],\n    [ \"LeaveChatAsync\", \"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\", null ],\n    [ \"LeaveChatAsync\", \"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\", null ],\n    [ \"LeaveMatchAsync\", \"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\", null ],\n    [ \"LeaveMatchAsync\", \"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\", null ],\n    [ \"LeavePartyAsync\", \"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\", null ],\n    [ \"ListPartyJoinRequestsAsync\", \"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\", null ],\n    [ \"PromotePartyMemberAsync\", \"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\", null ],\n    [ \"RemoveChatMessageAsync\", \"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\", null ],\n    [ \"RemoveChatMessageAsync\", \"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\", null ],\n    [ \"RemoveMatchmakerAsync\", \"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\", null ],\n    [ \"RemoveMatchmakerAsync\", \"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\", null ],\n    [ \"RemoveMatchmakerPartyAsync\", \"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\", null ],\n    [ \"RemovePartyMemberAsync\", \"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\", null ],\n    [ \"RpcAsync\", \"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\", null ],\n    [ \"SendMatchStateAsync\", \"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\", null ],\n    [ \"SendMatchStateAsync\", \"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\", null ],\n    [ \"SendMatchStateAsync\", \"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\", null ],\n    [ \"SendPartyDataAsync\", \"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\", null ],\n    [ \"SendPartyDataAsync\", \"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\", null ],\n    [ \"SendPartyDataAsync\", \"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\", null ],\n    [ \"ToString\", \"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\", null ],\n    [ \"UnfollowUsersAsync\", \"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\", null ],\n    [ \"UnfollowUsersAsync\", \"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\", null ],\n    [ \"UpdateChatMessageAsync\", \"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\", null ],\n    [ \"UpdateChatMessageAsync\", \"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\", null ],\n    [ \"UpdatePartyAsync\", \"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\", null ],\n    [ \"UpdateStatusAsync\", \"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\", null ],\n    [ \"WriteChatMessageAsync\", \"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\", null ],\n    [ \"WriteChatMessageAsync\", \"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\", null ],\n    [ \"IsConnected\", \"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\", null ],\n    [ \"IsConnecting\", \"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\", null ],\n    [ \"Logger\", \"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\", null ],\n    [ \"Closed\", \"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\", null ],\n    [ \"Connected\", \"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\", null ],\n    [ \"ReceivedChannelMessage\", \"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\", null ],\n    [ \"ReceivedChannelPresence\", \"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\", null ],\n    [ \"ReceivedError\", \"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\", null ],\n    [ \"ReceivedMatchmakerMatched\", \"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\", null ],\n    [ \"ReceivedMatchPresence\", \"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\", null ],\n    [ \"ReceivedMatchState\", \"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\", null ],\n    [ \"ReceivedNotification\", \"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\", null ],\n    [ \"ReceivedParty\", \"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\", null ],\n    [ \"ReceivedPartyClose\", \"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\", null ],\n    [ \"ReceivedPartyData\", \"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\", null ],\n    [ \"ReceivedPartyJoinRequest\", \"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\", null ],\n    [ \"ReceivedPartyLeader\", \"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\", null ],\n    [ \"ReceivedPartyMatchmakerTicket\", \"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\", null ],\n    [ \"ReceivedPartyPresence\", \"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\", null ],\n    [ \"ReceivedPartyUpdate\", \"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\", null ],\n    [ \"ReceivedStatusPresence\", \"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\", null ],\n    [ \"ReceivedStreamPresence\", \"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\", null ],\n    [ \"ReceivedStreamState\", \"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_storage_object_id-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_storage_object_id.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.StorageObjectId Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">Nakama.StorageObjectId</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_storage_object_id.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.StorageObjectId Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_storage_object_id.html','','class_nakama_1_1_storage_object_id-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.StorageObjectId Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An identifier for a storage object.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.StorageObjectId:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_storage_object_id.png\" usemap=\"#Nakama_2EStorageObjectId_map\" alt=\"\"/>\n  <map id=\"Nakama_2EStorageObjectId_map\" name=\"Nakama_2EStorageObjectId_map\">\n<area href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\" title=\"Storage objects to get.\" alt=\"Nakama.IApiReadStorageObjectId\" shape=\"rect\" coords=\"0,0,210,24\"/>\n<area href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\" title=\"Storage objects to delete.\" alt=\"Nakama.IApiDeleteStorageObjectId\" shape=\"rect\" coords=\"220,0,430,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a97002e9e8415e9ba6c778f03b5c803f4\" id=\"r_a97002e9e8415e9ba6c778f03b5c803f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a97002e9e8415e9ba6c778f03b5c803f4\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1beb57b56e9b6b1f078391803e95fa95\" id=\"r_a1beb57b56e9b6b1f078391803e95fa95\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1beb57b56e9b6b1f078391803e95fa95\">Collection</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a1beb57b56e9b6b1f078391803e95fa95\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:a4243d96cb3a1cf50a4f5a3cf790d7a1b\" id=\"r_a4243d96cb3a1cf50a4f5a3cf790d7a1b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Key</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a4243d96cb3a1cf50a4f5a3cf790d7a1b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:a16f5f70d638e02ef1a003ed4ae0f0bd6\" id=\"r_a16f5f70d638e02ef1a003ed4ae0f0bd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a16f5f70d638e02ef1a003ed4ae0f0bd6\">Version</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a16f5f70d638e02ef1a003ed4ae0f0bd6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n<tr class=\"memitem:a02e8a3b9a07d74c4230d7836304463e6\" id=\"r_a02e8a3b9a07d74c4230d7836304463e6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a02e8a3b9a07d74c4230d7836304463e6\">UserId</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a02e8a3b9a07d74c4230d7836304463e6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user owner of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An identifier for a storage object. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a97002e9e8415e9ba6c778f03b5c803f4\" name=\"a97002e9e8415e9ba6c778f03b5c803f4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a97002e9e8415e9ba6c778f03b5c803f4\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.StorageObjectId.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1beb57b56e9b6b1f078391803e95fa95\" name=\"a1beb57b56e9b6b1f078391803e95fa95\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1beb57b56e9b6b1f078391803e95fa95\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.StorageObjectId.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\">Nakama.IApiReadStorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"a4243d96cb3a1cf50a4f5a3cf790d7a1b\" name=\"a4243d96cb3a1cf50a4f5a3cf790d7a1b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.StorageObjectId.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\">Nakama.IApiReadStorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"a02e8a3b9a07d74c4230d7836304463e6\" name=\"a02e8a3b9a07d74c4230d7836304463e6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02e8a3b9a07d74c4230d7836304463e6\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.StorageObjectId.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user owner of the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\">Nakama.IApiReadStorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"a16f5f70d638e02ef1a003ed4ae0f0bd6\" name=\"a16f5f70d638e02ef1a003ed4ae0f0bd6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16f5f70d638e02ef1a003ed4ae0f0bd6\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.StorageObjectId.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\">Nakama.IApiDeleteStorageObjectId</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_storage_object_id_8cs.html\">StorageObjectId.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_storage_object_id.js",
    "content": "var class_nakama_1_1_storage_object_id =\n[\n    [ \"ToString\", \"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\", null ],\n    [ \"Collection\", \"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\", null ],\n    [ \"Key\", \"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\", null ],\n    [ \"UserId\", \"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\", null ],\n    [ \"Version\", \"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_authenticate_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.AuthenticateTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>AuthenticateTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldAuthenticateCustomId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldAuthenticateDeviceAndSaveUsername</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldAuthenticateDeviceId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldAuthenticateEmail</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotAuthenticateApple</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotAuthenticateFacebook</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotAuthenticateGameCenter</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotAuthenticateGoogle</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotAuthenticateSteam</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">Nakama.Tests.Api.AuthenticateTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.AuthenticateTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.AuthenticateTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a41962a8c9df56ae8591abfbcfb84c3a3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a41962a8c9df56ae8591abfbcfb84c3a3\" name=\"a41962a8c9df56ae8591abfbcfb84c3a3\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldAuthenticateCustomId</b> ()</td></tr>\n<tr class=\"separator:a41962a8c9df56ae8591abfbcfb84c3a3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a121d259a54635ecbed4967e9b66cb58a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a121d259a54635ecbed4967e9b66cb58a\" name=\"a121d259a54635ecbed4967e9b66cb58a\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldAuthenticateDeviceId</b> ()</td></tr>\n<tr class=\"separator:a121d259a54635ecbed4967e9b66cb58a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7cd524ab66b07b4739c52bff5ad85596\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7cd524ab66b07b4739c52bff5ad85596\" name=\"a7cd524ab66b07b4739c52bff5ad85596\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldAuthenticateDeviceAndSaveUsername</b> ()</td></tr>\n<tr class=\"separator:a7cd524ab66b07b4739c52bff5ad85596\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a794c5d9d43f8232d5fde9debdf7686c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a794c5d9d43f8232d5fde9debdf7686c3\" name=\"a794c5d9d43f8232d5fde9debdf7686c3\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldAuthenticateEmail</b> ()</td></tr>\n<tr class=\"separator:a794c5d9d43f8232d5fde9debdf7686c3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4fb178729ae771e86296bf1771ec9877\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4fb178729ae771e86296bf1771ec9877\" name=\"a4fb178729ae771e86296bf1771ec9877\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotAuthenticateFacebook</b> ()</td></tr>\n<tr class=\"separator:a4fb178729ae771e86296bf1771ec9877\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8c8a75cf0f241677d81c5c94942fb3a4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a8c8a75cf0f241677d81c5c94942fb3a4\" name=\"a8c8a75cf0f241677d81c5c94942fb3a4\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotAuthenticateGameCenter</b> ()</td></tr>\n<tr class=\"separator:a8c8a75cf0f241677d81c5c94942fb3a4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8b6c516a4da49a1554df56f43b1a5a78\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a8b6c516a4da49a1554df56f43b1a5a78\" name=\"a8b6c516a4da49a1554df56f43b1a5a78\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotAuthenticateGoogle</b> ()</td></tr>\n<tr class=\"separator:a8b6c516a4da49a1554df56f43b1a5a78\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abd5c05c9b05bf9aab03ef1cdc60cdfe6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abd5c05c9b05bf9aab03ef1cdc60cdfe6\" name=\"abd5c05c9b05bf9aab03ef1cdc60cdfe6\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotAuthenticateSteam</b> ()</td></tr>\n<tr class=\"separator:abd5c05c9b05bf9aab03ef1cdc60cdfe6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5e81391332dc899edd2d4cf555f82320\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5e81391332dc899edd2d4cf555f82320\" name=\"a5e81391332dc899edd2d4cf555f82320\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotAuthenticateApple</b> ()</td></tr>\n<tr class=\"separator:a5e81391332dc899edd2d4cf555f82320\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/AuthenticateTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">AuthenticateTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_group_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_group_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.GroupTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>GroupTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldBanUsers</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateGroup</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateGroupDefault</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldDeleteGroup</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldDeleteGroupInvalid</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldListGroups</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldListGroupsCursor</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldListGroupsFilterTwo</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldListGroupsNameFilter</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotCreateGroup</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotDeleteGroupNotSuperAdmin</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldPromoteAndDemoteUsers</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">Nakama.Tests.Api.GroupTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_group_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.GroupTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_group_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.GroupTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a961a5fafda0101da1970438a15202073\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a961a5fafda0101da1970438a15202073\" name=\"a961a5fafda0101da1970438a15202073\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateGroup</b> ()</td></tr>\n<tr class=\"separator:a961a5fafda0101da1970438a15202073\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a69267be15c9827879d3cd99cd5f762ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a69267be15c9827879d3cd99cd5f762ce\" name=\"a69267be15c9827879d3cd99cd5f762ce\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateGroupDefault</b> ()</td></tr>\n<tr class=\"separator:a69267be15c9827879d3cd99cd5f762ce\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab20f14fbc96b0c6e5c8037a607f2f181\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab20f14fbc96b0c6e5c8037a607f2f181\" name=\"ab20f14fbc96b0c6e5c8037a607f2f181\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotCreateGroup</b> ()</td></tr>\n<tr class=\"separator:ab20f14fbc96b0c6e5c8037a607f2f181\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a90a13c1648c008ff1481045cd68340f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a90a13c1648c008ff1481045cd68340f4\" name=\"a90a13c1648c008ff1481045cd68340f4\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListGroups</b> ()</td></tr>\n<tr class=\"separator:a90a13c1648c008ff1481045cd68340f4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a684c5a29f00d5ec34314afdc6c5294da\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a684c5a29f00d5ec34314afdc6c5294da\" name=\"a684c5a29f00d5ec34314afdc6c5294da\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListGroupsNameFilter</b> ()</td></tr>\n<tr class=\"separator:a684c5a29f00d5ec34314afdc6c5294da\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a449f7244b1d732ed72eeadf29323df0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a449f7244b1d732ed72eeadf29323df0a\" name=\"a449f7244b1d732ed72eeadf29323df0a\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListGroupsFilterTwo</b> ()</td></tr>\n<tr class=\"separator:a449f7244b1d732ed72eeadf29323df0a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abdd3eee2ef0f84c31b8ce67a4160f939\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abdd3eee2ef0f84c31b8ce67a4160f939\" name=\"abdd3eee2ef0f84c31b8ce67a4160f939\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListGroupsCursor</b> ()</td></tr>\n<tr class=\"separator:abdd3eee2ef0f84c31b8ce67a4160f939\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af3e717220d44f0bfc292e69177f5a1d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af3e717220d44f0bfc292e69177f5a1d4\" name=\"af3e717220d44f0bfc292e69177f5a1d4\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteGroup</b> ()</td></tr>\n<tr class=\"separator:af3e717220d44f0bfc292e69177f5a1d4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a456de88b1d17c5db5c17ae2f3b810cda\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a456de88b1d17c5db5c17ae2f3b810cda\" name=\"a456de88b1d17c5db5c17ae2f3b810cda\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteGroupInvalid</b> ()</td></tr>\n<tr class=\"separator:a456de88b1d17c5db5c17ae2f3b810cda\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8c65eb49e5ebac6e503810b485824d7d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a8c65eb49e5ebac6e503810b485824d7d\" name=\"a8c65eb49e5ebac6e503810b485824d7d\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotDeleteGroupNotSuperAdmin</b> ()</td></tr>\n<tr class=\"separator:a8c65eb49e5ebac6e503810b485824d7d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aaf9c3b7579460f07b3ec710d2b83bed4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aaf9c3b7579460f07b3ec710d2b83bed4\" name=\"aaf9c3b7579460f07b3ec710d2b83bed4\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldPromoteAndDemoteUsers</b> ()</td></tr>\n<tr class=\"separator:aaf9c3b7579460f07b3ec710d2b83bed4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2ebd7264caa24fed9db3148a153e24a8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a2ebd7264caa24fed9db3148a153e24a8\" name=\"a2ebd7264caa24fed9db3148a153e24a8\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldBanUsers</b> ()</td></tr>\n<tr class=\"separator:a2ebd7264caa24fed9db3148a153e24a8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/GroupTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">GroupTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_http_error_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.HttpErrorTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>BadGoRpcReturnsErrorMessageAndEmptyDict</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>BadGoStorageRpcReturnsErrorMessageAndEmptyDict</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>BadLuaRpcReturnsErrorMessageAndDict</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>HttpErrorTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">Nakama.Tests.Api.HttpErrorTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.HttpErrorTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.HttpErrorTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a07d076d4e0e05086b23303b1a0d953f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a07d076d4e0e05086b23303b1a0d953f7\" name=\"a07d076d4e0e05086b23303b1a0d953f7\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>BadLuaRpcReturnsErrorMessageAndDict</b> ()</td></tr>\n<tr class=\"separator:a07d076d4e0e05086b23303b1a0d953f7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a292b87cddb5142d22eea91d73193f101\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a292b87cddb5142d22eea91d73193f101\" name=\"a292b87cddb5142d22eea91d73193f101\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>BadGoRpcReturnsErrorMessageAndEmptyDict</b> ()</td></tr>\n<tr class=\"separator:a292b87cddb5142d22eea91d73193f101\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aad101dc7ae4fa72d53516f09c4ea6f74\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aad101dc7ae4fa72d53516f09c4ea6f74\" name=\"aad101dc7ae4fa72d53516f09c4ea6f74\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>BadGoStorageRpcReturnsErrorMessageAndEmptyDict</b> ()</td></tr>\n<tr class=\"separator:aad101dc7ae4fa72d53516f09c4ea6f74\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/HttpErrorTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">HttpErrorTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LeaderboardAroundOwnerTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>_client</b> (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"><span class=\"mlabel\">protected</span></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>_leaderboardId</b> (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"><span class=\"mlabel\">protected</span></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>DisposeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>InitializeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>LeaderboardTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>NoRecords</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>NotEnoughRecordsForLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>OddLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>OneRecordOneLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>OwnerInBack</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>OwnerInFront</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>OwnerInMiddle</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>OwnerNearBack</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>OwnerNearFront</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecord</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecordNotExists</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecordNotFound</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldListLeaderboardRecordsEmpty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldListLeaderboardRecordsWithOwnerId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldWriteLeaderboardRecord</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ThreeRecordsThreeLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ThreeRecordsTwoLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TwoRecordsTwoLimit</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">Nakama.Tests.Api.LeaderboardAroundOwnerTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.LeaderboardAroundOwnerTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LeaderboardAroundOwnerTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Api.LeaderboardAroundOwnerTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.png\" usemap=\"#Nakama.Tests.Api.LeaderboardAroundOwnerTest_map\" alt=\"\"/>\n  <map id=\"Nakama.Tests.Api.LeaderboardAroundOwnerTest_map\" name=\"Nakama.Tests.Api.LeaderboardAroundOwnerTest_map\">\n<area href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\" alt=\"Nakama.Tests.Api.LeaderboardTest\" shape=\"rect\" coords=\"0,56,293,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a41372ec3387fcc40bd6efb8733cbf9e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a41372ec3387fcc40bd6efb8733cbf9e0\" name=\"a41372ec3387fcc40bd6efb8733cbf9e0\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OwnerInFront</b> ()</td></tr>\n<tr class=\"separator:a41372ec3387fcc40bd6efb8733cbf9e0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae3ce5ee251b92309a0a7c173034ce537\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae3ce5ee251b92309a0a7c173034ce537\" name=\"ae3ce5ee251b92309a0a7c173034ce537\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OwnerInBack</b> ()</td></tr>\n<tr class=\"separator:ae3ce5ee251b92309a0a7c173034ce537\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae1ee42f9248802e690fe94065491b625\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae1ee42f9248802e690fe94065491b625\" name=\"ae1ee42f9248802e690fe94065491b625\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OwnerNearFront</b> ()</td></tr>\n<tr class=\"separator:ae1ee42f9248802e690fe94065491b625\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af52352fb5938e18e25a8ca8c3b59f672\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af52352fb5938e18e25a8ca8c3b59f672\" name=\"af52352fb5938e18e25a8ca8c3b59f672\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OwnerNearBack</b> ()</td></tr>\n<tr class=\"separator:af52352fb5938e18e25a8ca8c3b59f672\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae997ec60c9446a55b305e39f6662c008\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae997ec60c9446a55b305e39f6662c008\" name=\"ae997ec60c9446a55b305e39f6662c008\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OwnerInMiddle</b> ()</td></tr>\n<tr class=\"separator:ae997ec60c9446a55b305e39f6662c008\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9a279d1da914c70cd86f1cbeea398b06\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9a279d1da914c70cd86f1cbeea398b06\" name=\"a9a279d1da914c70cd86f1cbeea398b06\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NotEnoughRecordsForLimit</b> ()</td></tr>\n<tr class=\"separator:a9a279d1da914c70cd86f1cbeea398b06\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afc9150d8462b48e304e55bf8bd84361a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"afc9150d8462b48e304e55bf8bd84361a\" name=\"afc9150d8462b48e304e55bf8bd84361a\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OddLimit</b> ()</td></tr>\n<tr class=\"separator:afc9150d8462b48e304e55bf8bd84361a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac4bf4df69857cfd89a2f7a945a9ca483\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac4bf4df69857cfd89a2f7a945a9ca483\" name=\"ac4bf4df69857cfd89a2f7a945a9ca483\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NoRecords</b> ()</td></tr>\n<tr class=\"separator:ac4bf4df69857cfd89a2f7a945a9ca483\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1ff46d95e70ebe8519779f043a1a2c04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a1ff46d95e70ebe8519779f043a1a2c04\" name=\"a1ff46d95e70ebe8519779f043a1a2c04\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>OneRecordOneLimit</b> ()</td></tr>\n<tr class=\"separator:a1ff46d95e70ebe8519779f043a1a2c04\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a20da41ac24c3b7a824e0861642bfcd67\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a20da41ac24c3b7a824e0861642bfcd67\" name=\"a20da41ac24c3b7a824e0861642bfcd67\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TwoRecordsTwoLimit</b> ()</td></tr>\n<tr class=\"separator:a20da41ac24c3b7a824e0861642bfcd67\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afbcd10ece0f06956929378b721540175\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"afbcd10ece0f06956929378b721540175\" name=\"afbcd10ece0f06956929378b721540175\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ThreeRecordsTwoLimit</b> ()</td></tr>\n<tr class=\"separator:afbcd10ece0f06956929378b721540175\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0e11f1fc1c182d89e14c39a3fa6e9b9b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0e11f1fc1c182d89e14c39a3fa6e9b9b\" name=\"a0e11f1fc1c182d89e14c39a3fa6e9b9b\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ThreeRecordsThreeLimit</b> ()</td></tr>\n<tr class=\"separator:a0e11f1fc1c182d89e14c39a3fa6e9b9b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"inherit_header pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td colspan=\"2\" onclick=\"javascript:toggleInherit('pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test')\"><img src=\"closed.png\" alt=\"-\"/>&#160;Public Member Functions inherited from <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td></tr>\n<tr class=\"memitem:ababe770453ae800d02f0b373a17bafdc inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ababe770453ae800d02f0b373a17bafdc\" name=\"ababe770453ae800d02f0b373a17bafdc\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldWriteLeaderboardRecord</b> ()</td></tr>\n<tr class=\"separator:ababe770453ae800d02f0b373a17bafdc inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a61bcea07d16b8f2bf9c7ed79ac520b68 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a61bcea07d16b8f2bf9c7ed79ac520b68\" name=\"a61bcea07d16b8f2bf9c7ed79ac520b68\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListLeaderboardRecordsWithOwnerId</b> ()</td></tr>\n<tr class=\"separator:a61bcea07d16b8f2bf9c7ed79ac520b68 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a78983986078de9fc14cdf33f97267882 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a78983986078de9fc14cdf33f97267882\" name=\"a78983986078de9fc14cdf33f97267882\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListLeaderboardRecordsEmpty</b> ()</td></tr>\n<tr class=\"separator:a78983986078de9fc14cdf33f97267882 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abf9af23fd2f8ac3e1fb1577999a6da93 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abf9af23fd2f8ac3e1fb1577999a6da93\" name=\"abf9af23fd2f8ac3e1fb1577999a6da93\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecord</b> ()</td></tr>\n<tr class=\"separator:abf9af23fd2f8ac3e1fb1577999a6da93 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abd23ac785a36dd302e7b864d81088d12 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abd23ac785a36dd302e7b864d81088d12\" name=\"abd23ac785a36dd302e7b864d81088d12\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecordNotFound</b> ()</td></tr>\n<tr class=\"separator:abd23ac785a36dd302e7b864d81088d12 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a38a63471d3654b66582e2420e31e1952 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a38a63471d3654b66582e2420e31e1952\" name=\"a38a63471d3654b66582e2420e31e1952\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecordNotExists</b> ()</td></tr>\n<tr class=\"separator:a38a63471d3654b66582e2420e31e1952 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac5d7e7821e91777c393b2f61a7dd2cc8 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac5d7e7821e91777c393b2f61a7dd2cc8\" name=\"ac5d7e7821e91777c393b2f61a7dd2cc8\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>InitializeAsync</b> ()</td></tr>\n<tr class=\"separator:ac5d7e7821e91777c393b2f61a7dd2cc8 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7cfeaa464a847798487b68383ac338e2 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7cfeaa464a847798487b68383ac338e2\" name=\"a7cfeaa464a847798487b68383ac338e2\"></a>\nTask&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>DisposeAsync</b> ()</td></tr>\n<tr class=\"separator:a7cfeaa464a847798487b68383ac338e2 inherit pub_methods_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"inherited\" name=\"inherited\"></a>\nAdditional Inherited Members</h2></td></tr>\n<tr class=\"inherit_header pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td colspan=\"2\" onclick=\"javascript:toggleInherit('pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test')\"><img src=\"closed.png\" alt=\"-\"/>&#160;Protected Attributes inherited from <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td></tr>\n<tr class=\"memitem:a6078166e38f735cdf46db47a6ab521d1 inherit pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6078166e38f735cdf46db47a6ab521d1\" name=\"a6078166e38f735cdf46db47a6ab521d1\"></a>\n<a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>_client</b></td></tr>\n<tr class=\"separator:a6078166e38f735cdf46db47a6ab521d1 inherit pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4369c6ef1220f8d46f48053f27397d90 inherit pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4369c6ef1220f8d46f48053f27397d90\" name=\"a4369c6ef1220f8d46f48053f27397d90\"></a>\nstring&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>_leaderboardId</b></td></tr>\n<tr class=\"separator:a4369c6ef1220f8d46f48053f27397d90 inherit pro_attribs_class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/LeaderboardAroundOwnerTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">LeaderboardAroundOwnerTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LeaderboardTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>_client</b> (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"><span class=\"mlabel\">protected</span></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>_leaderboardId</b> (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"><span class=\"mlabel\">protected</span></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>DisposeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>InitializeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>LeaderboardTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecord</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecordNotExists</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldDeleteLeaderboardRecordNotFound</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldListLeaderboardRecordsEmpty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldListLeaderboardRecordsWithOwnerId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldWriteLeaderboardRecord</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">Nakama.Tests.Api.LeaderboardTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.LeaderboardTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pro-attribs\">Protected Attributes</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LeaderboardTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Api.LeaderboardTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.png\" usemap=\"#Nakama.Tests.Api.LeaderboardTest_map\" alt=\"\"/>\n  <map id=\"Nakama.Tests.Api.LeaderboardTest_map\" name=\"Nakama.Tests.Api.LeaderboardTest_map\">\n<area href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\" alt=\"Nakama.Tests.Api.LeaderboardAroundOwnerTest\" shape=\"rect\" coords=\"0,112,293,136\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ababe770453ae800d02f0b373a17bafdc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ababe770453ae800d02f0b373a17bafdc\" name=\"ababe770453ae800d02f0b373a17bafdc\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldWriteLeaderboardRecord</b> ()</td></tr>\n<tr class=\"separator:ababe770453ae800d02f0b373a17bafdc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a61bcea07d16b8f2bf9c7ed79ac520b68\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a61bcea07d16b8f2bf9c7ed79ac520b68\" name=\"a61bcea07d16b8f2bf9c7ed79ac520b68\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListLeaderboardRecordsWithOwnerId</b> ()</td></tr>\n<tr class=\"separator:a61bcea07d16b8f2bf9c7ed79ac520b68\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a78983986078de9fc14cdf33f97267882\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a78983986078de9fc14cdf33f97267882\" name=\"a78983986078de9fc14cdf33f97267882\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldListLeaderboardRecordsEmpty</b> ()</td></tr>\n<tr class=\"separator:a78983986078de9fc14cdf33f97267882\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abf9af23fd2f8ac3e1fb1577999a6da93\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abf9af23fd2f8ac3e1fb1577999a6da93\" name=\"abf9af23fd2f8ac3e1fb1577999a6da93\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecord</b> ()</td></tr>\n<tr class=\"separator:abf9af23fd2f8ac3e1fb1577999a6da93\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abd23ac785a36dd302e7b864d81088d12\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abd23ac785a36dd302e7b864d81088d12\" name=\"abd23ac785a36dd302e7b864d81088d12\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecordNotFound</b> ()</td></tr>\n<tr class=\"separator:abd23ac785a36dd302e7b864d81088d12\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a38a63471d3654b66582e2420e31e1952\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a38a63471d3654b66582e2420e31e1952\" name=\"a38a63471d3654b66582e2420e31e1952\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldDeleteLeaderboardRecordNotExists</b> ()</td></tr>\n<tr class=\"separator:a38a63471d3654b66582e2420e31e1952\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac5d7e7821e91777c393b2f61a7dd2cc8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac5d7e7821e91777c393b2f61a7dd2cc8\" name=\"ac5d7e7821e91777c393b2f61a7dd2cc8\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>InitializeAsync</b> ()</td></tr>\n<tr class=\"separator:ac5d7e7821e91777c393b2f61a7dd2cc8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7cfeaa464a847798487b68383ac338e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7cfeaa464a847798487b68383ac338e2\" name=\"a7cfeaa464a847798487b68383ac338e2\"></a>\nTask&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>DisposeAsync</b> ()</td></tr>\n<tr class=\"separator:a7cfeaa464a847798487b68383ac338e2\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pro-attribs\" name=\"pro-attribs\"></a>\nProtected Attributes</h2></td></tr>\n<tr class=\"memitem:a6078166e38f735cdf46db47a6ab521d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6078166e38f735cdf46db47a6ab521d1\" name=\"a6078166e38f735cdf46db47a6ab521d1\"></a>\n<a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>_client</b></td></tr>\n<tr class=\"separator:a6078166e38f735cdf46db47a6ab521d1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4369c6ef1220f8d46f48053f27397d90\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4369c6ef1220f8d46f48053f27397d90\" name=\"a4369c6ef1220f8d46f48053f27397d90\"></a>\nstring&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>_leaderboardId</b></td></tr>\n<tr class=\"separator:a4369c6ef1220f8d46f48053f27397d90\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/LeaderboardTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">LeaderboardTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LinkUnlinkTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>LinkUnlinkTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldLinkCustomId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldLinkCustomIdFieldEmpty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldLinkCustomIdSame</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldLinkDeviceId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldLinkDeviceIdSame</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldLinkEmail</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldLinkEmailSame</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotLinkApple</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotLinkCustomIdInuse</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotLinkDeviceIdInuse</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotLinkEmailInuse</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotLinkFacebook</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotLinkGameCenter</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotLinkGameCenterBadInput</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotLinkGoogle</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotLinkSteam</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkApple</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotUnlinkCustomId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkCustomIdNotOwned</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotUnlinkDeviceId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkDeviceIdNotOwned</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotUnlinkEmail</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkEmailNotOwned</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotUnlinkFacebook</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkGameCenterBadInput</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotUnlinkGoogle</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotUnlinkSteam</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldUnlinkCustomId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldUnlinkDeviceId</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldUnlinkEmail</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">Nakama.Tests.Api.LinkUnlinkTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.LinkUnlinkTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.LinkUnlinkTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7ddbf24b69d735b748fdcdaa04b7a449\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7ddbf24b69d735b748fdcdaa04b7a449\" name=\"a7ddbf24b69d735b748fdcdaa04b7a449\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkCustomId</b> ()</td></tr>\n<tr class=\"separator:a7ddbf24b69d735b748fdcdaa04b7a449\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a662663959eb7a27f8e6b405ac000bea2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a662663959eb7a27f8e6b405ac000bea2\" name=\"a662663959eb7a27f8e6b405ac000bea2\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkCustomIdSame</b> ()</td></tr>\n<tr class=\"separator:a662663959eb7a27f8e6b405ac000bea2\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad94c42de92c940f818c9e235e7d6deab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ad94c42de92c940f818c9e235e7d6deab\" name=\"ad94c42de92c940f818c9e235e7d6deab\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkCustomIdFieldEmpty</b> ()</td></tr>\n<tr class=\"separator:ad94c42de92c940f818c9e235e7d6deab\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac4fade7261f1a3ad94967a8f0d262c96\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac4fade7261f1a3ad94967a8f0d262c96\" name=\"ac4fade7261f1a3ad94967a8f0d262c96\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldUnlinkCustomId</b> ()</td></tr>\n<tr class=\"separator:ac4fade7261f1a3ad94967a8f0d262c96\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab134483f26ddc63685b33b5c3bd21890\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab134483f26ddc63685b33b5c3bd21890\" name=\"ab134483f26ddc63685b33b5c3bd21890\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkCustomIdInuse</b> ()</td></tr>\n<tr class=\"separator:ab134483f26ddc63685b33b5c3bd21890\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a626486026b0f4f5135449e829c8a6dbc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a626486026b0f4f5135449e829c8a6dbc\" name=\"a626486026b0f4f5135449e829c8a6dbc\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkCustomId</b> ()</td></tr>\n<tr class=\"separator:a626486026b0f4f5135449e829c8a6dbc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a384d481d7c8bbb09790a00e295915058\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a384d481d7c8bbb09790a00e295915058\" name=\"a384d481d7c8bbb09790a00e295915058\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkCustomIdNotOwned</b> ()</td></tr>\n<tr class=\"separator:a384d481d7c8bbb09790a00e295915058\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af178e5ffbb09f7c151368a75d9315c03\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af178e5ffbb09f7c151368a75d9315c03\" name=\"af178e5ffbb09f7c151368a75d9315c03\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkDeviceId</b> ()</td></tr>\n<tr class=\"separator:af178e5ffbb09f7c151368a75d9315c03\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae74e8346a1df9ba76440fe5827f7a5fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae74e8346a1df9ba76440fe5827f7a5fb\" name=\"ae74e8346a1df9ba76440fe5827f7a5fb\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkDeviceIdSame</b> ()</td></tr>\n<tr class=\"separator:ae74e8346a1df9ba76440fe5827f7a5fb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0ef44983640348f02226bc04457ea43f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0ef44983640348f02226bc04457ea43f\" name=\"a0ef44983640348f02226bc04457ea43f\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkDeviceIdInuse</b> ()</td></tr>\n<tr class=\"separator:a0ef44983640348f02226bc04457ea43f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a52fe0cd76ed65c73b2abb293039ff623\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a52fe0cd76ed65c73b2abb293039ff623\" name=\"a52fe0cd76ed65c73b2abb293039ff623\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldUnlinkDeviceId</b> ()</td></tr>\n<tr class=\"separator:a52fe0cd76ed65c73b2abb293039ff623\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad9aae162f53d9c80f0d774228742a89c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ad9aae162f53d9c80f0d774228742a89c\" name=\"ad9aae162f53d9c80f0d774228742a89c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkDeviceId</b> ()</td></tr>\n<tr class=\"separator:ad9aae162f53d9c80f0d774228742a89c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2860b5ec157967f3489a5f6f1f3af13c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a2860b5ec157967f3489a5f6f1f3af13c\" name=\"a2860b5ec157967f3489a5f6f1f3af13c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkDeviceIdNotOwned</b> ()</td></tr>\n<tr class=\"separator:a2860b5ec157967f3489a5f6f1f3af13c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab55714894dce9cc05f054ab35b8edc8f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab55714894dce9cc05f054ab35b8edc8f\" name=\"ab55714894dce9cc05f054ab35b8edc8f\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkEmail</b> ()</td></tr>\n<tr class=\"separator:ab55714894dce9cc05f054ab35b8edc8f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a45a0d11da5367c3b8909746eca12f5a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a45a0d11da5367c3b8909746eca12f5a6\" name=\"a45a0d11da5367c3b8909746eca12f5a6\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldLinkEmailSame</b> ()</td></tr>\n<tr class=\"separator:a45a0d11da5367c3b8909746eca12f5a6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4e8cbb575a8f330ae6889fd0004071fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4e8cbb575a8f330ae6889fd0004071fc\" name=\"a4e8cbb575a8f330ae6889fd0004071fc\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkEmailInuse</b> ()</td></tr>\n<tr class=\"separator:a4e8cbb575a8f330ae6889fd0004071fc\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a922c533a6e2fd3f79ff0600b68bb5d08\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a922c533a6e2fd3f79ff0600b68bb5d08\" name=\"a922c533a6e2fd3f79ff0600b68bb5d08\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldUnlinkEmail</b> ()</td></tr>\n<tr class=\"separator:a922c533a6e2fd3f79ff0600b68bb5d08\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a780c75b70cf48952b795992017eed9d7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a780c75b70cf48952b795992017eed9d7\" name=\"a780c75b70cf48952b795992017eed9d7\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkEmail</b> ()</td></tr>\n<tr class=\"separator:a780c75b70cf48952b795992017eed9d7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abf20e8657ec97276d952869780a2f676\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abf20e8657ec97276d952869780a2f676\" name=\"abf20e8657ec97276d952869780a2f676\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkEmailNotOwned</b> ()</td></tr>\n<tr class=\"separator:abf20e8657ec97276d952869780a2f676\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a98824e26d88909d9758de05bdef38042\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a98824e26d88909d9758de05bdef38042\" name=\"a98824e26d88909d9758de05bdef38042\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkFacebook</b> ()</td></tr>\n<tr class=\"separator:a98824e26d88909d9758de05bdef38042\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a02c95fc215ab02fca592ccb3bd0a1499\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a02c95fc215ab02fca592ccb3bd0a1499\" name=\"a02c95fc215ab02fca592ccb3bd0a1499\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkFacebook</b> ()</td></tr>\n<tr class=\"separator:a02c95fc215ab02fca592ccb3bd0a1499\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa410f04e96d18f9ce0c923e2e9c862a3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aa410f04e96d18f9ce0c923e2e9c862a3\" name=\"aa410f04e96d18f9ce0c923e2e9c862a3\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkGameCenter</b> ()</td></tr>\n<tr class=\"separator:aa410f04e96d18f9ce0c923e2e9c862a3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3882973c072feed1a0fb12aaa9bb43e9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a3882973c072feed1a0fb12aaa9bb43e9\" name=\"a3882973c072feed1a0fb12aaa9bb43e9\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkGameCenterBadInput</b> ()</td></tr>\n<tr class=\"separator:a3882973c072feed1a0fb12aaa9bb43e9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a942ea4f9ed07c3e39d9d5daacaf55708\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a942ea4f9ed07c3e39d9d5daacaf55708\" name=\"a942ea4f9ed07c3e39d9d5daacaf55708\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkGameCenterBadInput</b> ()</td></tr>\n<tr class=\"separator:a942ea4f9ed07c3e39d9d5daacaf55708\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a627733ef2a680664e1f984f8f31e6157\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a627733ef2a680664e1f984f8f31e6157\" name=\"a627733ef2a680664e1f984f8f31e6157\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkGoogle</b> ()</td></tr>\n<tr class=\"separator:a627733ef2a680664e1f984f8f31e6157\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a14d807a73029bcc3245e519828510f14\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a14d807a73029bcc3245e519828510f14\" name=\"a14d807a73029bcc3245e519828510f14\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkGoogle</b> ()</td></tr>\n<tr class=\"separator:a14d807a73029bcc3245e519828510f14\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9b57615fb153ec7068bd22b440284f9e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9b57615fb153ec7068bd22b440284f9e\" name=\"a9b57615fb153ec7068bd22b440284f9e\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkSteam</b> ()</td></tr>\n<tr class=\"separator:a9b57615fb153ec7068bd22b440284f9e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9fb125baa2dda6a23fb0ab6c8e578970\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9fb125baa2dda6a23fb0ab6c8e578970\" name=\"a9fb125baa2dda6a23fb0ab6c8e578970\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkSteam</b> ()</td></tr>\n<tr class=\"separator:a9fb125baa2dda6a23fb0ab6c8e578970\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7545a967f4169bad39d379111bb94ad9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7545a967f4169bad39d379111bb94ad9\" name=\"a7545a967f4169bad39d379111bb94ad9\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotLinkApple</b> ()</td></tr>\n<tr class=\"separator:a7545a967f4169bad39d379111bb94ad9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a107c39f06a106014681812d8ef6d2eb4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a107c39f06a106014681812d8ef6d2eb4\" name=\"a107c39f06a106014681812d8ef6d2eb4\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotUnlinkApple</b> ()</td></tr>\n<tr class=\"separator:a107c39f06a106014681812d8ef6d2eb4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/LinkUnlinkTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">LinkUnlinkTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_rpc_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.RpcTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RpcTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldRpcGet</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldRpcGetRoundtrip</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldRpcRoundtrip</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldRpcWithoutSession</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">Nakama.Tests.Api.RpcTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api.RpcTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api.RpcTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:acb6fe69b3c860b0af014ba0c1bb075d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"acb6fe69b3c860b0af014ba0c1bb075d6\" name=\"acb6fe69b3c860b0af014ba0c1bb075d6\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldRpcRoundtrip</b> ()</td></tr>\n<tr class=\"separator:acb6fe69b3c860b0af014ba0c1bb075d6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a14001422d14b22a383910f7977506272\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a14001422d14b22a383910f7977506272\" name=\"a14001422d14b22a383910f7977506272\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldRpcGet</b> ()</td></tr>\n<tr class=\"separator:a14001422d14b22a383910f7977506272\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae3bf11712d61ec917eb77561c8c80ec5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae3bf11712d61ec917eb77561c8c80ec5\" name=\"ae3bf11712d61ec917eb77561c8c80ec5\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldRpcGetRoundtrip</b> ()</td></tr>\n<tr class=\"separator:ae3bf11712d61ec917eb77561c8c80ec5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a039fd36c30816616b52aa2ad88f982a3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a039fd36c30816616b52aa2ad88f982a3\" name=\"a039fd36c30816616b52aa2ad88f982a3\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldRpcWithoutSession</b> ()</td></tr>\n<tr class=\"separator:a039fd36c30816616b52aa2ad88f982a3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/RpcTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">RpcTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_awaited_socket_task_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_awaited_socket_task_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.AwaitedSocketTaskTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>AwaitedSocketTaskTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>Dispose</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>Socket_AwaitedTasks_AreCanceled</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>Socket_AwaitedTasksAfterDisconnect_ThrowException</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">Nakama.Tests.AwaitedSocketTaskTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_awaited_socket_task_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.AwaitedSocketTaskTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_awaited_socket_task_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.AwaitedSocketTaskTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.AwaitedSocketTaskTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aca029b0bf1e7273053ba77afa00bc72c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aca029b0bf1e7273053ba77afa00bc72c\" name=\"aca029b0bf1e7273053ba77afa00bc72c\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Dispose</b> ()</td></tr>\n<tr class=\"separator:aca029b0bf1e7273053ba77afa00bc72c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a81d154916d9ab83b136436f8cca93055\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a81d154916d9ab83b136436f8cca93055\" name=\"a81d154916d9ab83b136436f8cca93055\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Socket_AwaitedTasks_AreCanceled</b> ()</td></tr>\n<tr class=\"separator:a81d154916d9ab83b136436f8cca93055\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a495df63a94fcd2d631250af9b00c019e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a495df63a94fcd2d631250af9b00c019e\" name=\"a495df63a94fcd2d631250af9b00c019e\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Socket_AwaitedTasksAfterDisconnect_ThrowException</b> ()</td></tr>\n<tr class=\"separator:a495df63a94fcd2d631250af9b00c019e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/AwaitedSocketTaskTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">AwaitedSocketTaskTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_cancel_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_cancel_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.CancelTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">Nakama.Tests.CancelTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestBasicCancel</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">Nakama.Tests.CancelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">Nakama.Tests.CancelTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestCancelDuringBackoff</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">Nakama.Tests.CancelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">Nakama.Tests.CancelTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_cancel_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.CancelTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_cancel_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_cancel_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.CancelTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a9069d7b931bba9dce93157b5b95f62eb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9069d7b931bba9dce93157b5b95f62eb\" name=\"a9069d7b931bba9dce93157b5b95f62eb\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestBasicCancel</b> ()</td></tr>\n<tr class=\"separator:a9069d7b931bba9dce93157b5b95f62eb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a78fe144197ef65d573ab7337ce4c64ed\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a78fe144197ef65d573ab7337ce4c64ed\" name=\"a78fe144197ef65d573ab7337ce4c64ed\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestCancelDuringBackoff</b> ()</td></tr>\n<tr class=\"separator:a78fe144197ef65d573ab7337ce4c64ed\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/CancelTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">CancelTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_retry_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_retry_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.RetryTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RetryConfiguration_Delay_ExpectedDelays</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>RetryConfiguration_Delay_ExpectedExponentialTimes</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RetryConfiguration_FiveRetries_RetriesExactlyFiveTimes</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>RetryConfiguration_NonTransientError_Throws</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RetryConfiguration_NoRetries_ThrowsBaseApiResponseException</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>RetryConfiguration_NullConfiguration_DoesNotThrowNullRef</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RetryConfiguration_OneRetries_RetriesExactlyOnce</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>RetryConfiguration_OverrideSet_OverridesGlobal</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>RetryConfiguration_PastMaxRetries_ThrowsTaskCancelledException</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>RetryConfiguration_ZeroRetries_RetriesZeroTimes</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TransientHttpAdapter_ServerDefault_CreatesSession</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">Nakama.Tests.RetryTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_retry_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.RetryTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_retry_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_retry_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.RetryTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a92179ec8453cc7663a3c72c1bae51863\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a92179ec8453cc7663a3c72c1bae51863\" name=\"a92179ec8453cc7663a3c72c1bae51863\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TransientHttpAdapter_ServerDefault_CreatesSession</b> ()</td></tr>\n<tr class=\"separator:a92179ec8453cc7663a3c72c1bae51863\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a11f000c4c2d0ae0571ae481fc9d28d9a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a11f000c4c2d0ae0571ae481fc9d28d9a\" name=\"a11f000c4c2d0ae0571ae481fc9d28d9a\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_OneRetries_RetriesExactlyOnce</b> ()</td></tr>\n<tr class=\"separator:a11f000c4c2d0ae0571ae481fc9d28d9a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae31053355f23cbcec6c2838365d37d9c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae31053355f23cbcec6c2838365d37d9c\" name=\"ae31053355f23cbcec6c2838365d37d9c\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_FiveRetries_RetriesExactlyFiveTimes</b> ()</td></tr>\n<tr class=\"separator:ae31053355f23cbcec6c2838365d37d9c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af9554edf238231fcdf58419c477109f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af9554edf238231fcdf58419c477109f1\" name=\"af9554edf238231fcdf58419c477109f1\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_PastMaxRetries_ThrowsTaskCancelledException</b> ()</td></tr>\n<tr class=\"separator:af9554edf238231fcdf58419c477109f1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a46c8f57c1bc985522c500ec5773f9928\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a46c8f57c1bc985522c500ec5773f9928\" name=\"a46c8f57c1bc985522c500ec5773f9928\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_ZeroRetries_RetriesZeroTimes</b> ()</td></tr>\n<tr class=\"separator:a46c8f57c1bc985522c500ec5773f9928\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7046effe98e3e614f43320d4bafdd381\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7046effe98e3e614f43320d4bafdd381\" name=\"a7046effe98e3e614f43320d4bafdd381\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_OverrideSet_OverridesGlobal</b> ()</td></tr>\n<tr class=\"separator:a7046effe98e3e614f43320d4bafdd381\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aae9c6d185360cde7e7c99e91844da339\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aae9c6d185360cde7e7c99e91844da339\" name=\"aae9c6d185360cde7e7c99e91844da339\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_Delay_ExpectedExponentialTimes</b> ()</td></tr>\n<tr class=\"separator:aae9c6d185360cde7e7c99e91844da339\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abb81f48da3f556abed5dbe9f28c9808c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abb81f48da3f556abed5dbe9f28c9808c\" name=\"abb81f48da3f556abed5dbe9f28c9808c\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_Delay_ExpectedDelays</b> ()</td></tr>\n<tr class=\"separator:abb81f48da3f556abed5dbe9f28c9808c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7de13045faf1d589d84e465e5fcf812a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7de13045faf1d589d84e465e5fcf812a\" name=\"a7de13045faf1d589d84e465e5fcf812a\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_NullConfiguration_DoesNotThrowNullRef</b> ()</td></tr>\n<tr class=\"separator:a7de13045faf1d589d84e465e5fcf812a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a58bfc427e04f817090b71e373c512cd5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a58bfc427e04f817090b71e373c512cd5\" name=\"a58bfc427e04f817090b71e373c512cd5\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_NoRetries_ThrowsBaseApiResponseException</b> ()</td></tr>\n<tr class=\"separator:a58bfc427e04f817090b71e373c512cd5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae45d5b696372b447ef10461db1774546\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae45d5b696372b447ef10461db1774546\" name=\"ae45d5b696372b447ef10461db1774546\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryConfiguration_NonTransientError_Throws</b> ()</td></tr>\n<tr class=\"separator:ae45d5b696372b447ef10461db1774546\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/RetryTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">RetryTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_session_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_session_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.SessionTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>GetRefreshToken_RefreshTokenField_FromAuthenticate</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>GetUserId_UserIdField_NotNull</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>GetUsername_UsernameField_NotNull</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>GetVariables_VariablesField_Empty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>GetVariables_VariablesField_FromAuthenticate</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>GetVariables_VariablesField_Values</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>IsExpired_ExpiredField_True</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>IsRefreshExpired_RefreshExpiredField_True</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>Refresh_MetadataVar_DoesNotThrow</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>Restore_AuthTokenEmptyString_Null</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>Restore_RefreshTokenNull_Valid</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>SessionLogout_RefreshTokenField_Disabled</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">Nakama.Tests.SessionTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_session_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.SessionTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_session_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_session_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.SessionTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:acbe948dd1fdde3f01f4869a008fb7745\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"acbe948dd1fdde3f01f4869a008fb7745\" name=\"acbe948dd1fdde3f01f4869a008fb7745\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetVariables_VariablesField_Empty</b> ()</td></tr>\n<tr class=\"separator:acbe948dd1fdde3f01f4869a008fb7745\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a41ba42361ae0f8b23aece19a0c092e8d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a41ba42361ae0f8b23aece19a0c092e8d\" name=\"a41ba42361ae0f8b23aece19a0c092e8d\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetVariables_VariablesField_Values</b> ()</td></tr>\n<tr class=\"separator:a41ba42361ae0f8b23aece19a0c092e8d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a17c387e6dbeaf79f2a56ea624d1eb9b6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a17c387e6dbeaf79f2a56ea624d1eb9b6\" name=\"a17c387e6dbeaf79f2a56ea624d1eb9b6\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetVariables_VariablesField_FromAuthenticate</b> ()</td></tr>\n<tr class=\"separator:a17c387e6dbeaf79f2a56ea624d1eb9b6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4bce9ab2895ce8ac04560d7924d32047\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4bce9ab2895ce8ac04560d7924d32047\" name=\"a4bce9ab2895ce8ac04560d7924d32047\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetRefreshToken_RefreshTokenField_FromAuthenticate</b> ()</td></tr>\n<tr class=\"separator:a4bce9ab2895ce8ac04560d7924d32047\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a10dab09885d1c99f8825fbdae4d707b0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a10dab09885d1c99f8825fbdae4d707b0\" name=\"a10dab09885d1c99f8825fbdae4d707b0\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>SessionLogout_RefreshTokenField_Disabled</b> ()</td></tr>\n<tr class=\"separator:a10dab09885d1c99f8825fbdae4d707b0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa6c36fa8ba614db0d14190b97fc2f12d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aa6c36fa8ba614db0d14190b97fc2f12d\" name=\"aa6c36fa8ba614db0d14190b97fc2f12d\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetUsername_UsernameField_NotNull</b> ()</td></tr>\n<tr class=\"separator:aa6c36fa8ba614db0d14190b97fc2f12d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a50ed1dafbb0de79522b61823b123673d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a50ed1dafbb0de79522b61823b123673d\" name=\"a50ed1dafbb0de79522b61823b123673d\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GetUserId_UserIdField_NotNull</b> ()</td></tr>\n<tr class=\"separator:a50ed1dafbb0de79522b61823b123673d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a744491ab3034ce142de2302a88ce4a7e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a744491ab3034ce142de2302a88ce4a7e\" name=\"a744491ab3034ce142de2302a88ce4a7e\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>IsExpired_ExpiredField_True</b> ()</td></tr>\n<tr class=\"separator:a744491ab3034ce142de2302a88ce4a7e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:abce261f1b8fd5a19c1875245134103d3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abce261f1b8fd5a19c1875245134103d3\" name=\"abce261f1b8fd5a19c1875245134103d3\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>IsRefreshExpired_RefreshExpiredField_True</b> ()</td></tr>\n<tr class=\"separator:abce261f1b8fd5a19c1875245134103d3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0cf54b8dc575f19ec306c12db3cf8d5f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0cf54b8dc575f19ec306c12db3cf8d5f\" name=\"a0cf54b8dc575f19ec306c12db3cf8d5f\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Refresh_MetadataVar_DoesNotThrow</b> ()</td></tr>\n<tr class=\"separator:a0cf54b8dc575f19ec306c12db3cf8d5f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab92013743b3d34b81840778158dd10c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab92013743b3d34b81840778158dd10c6\" name=\"ab92013743b3d34b81840778158dd10c6\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Restore_AuthTokenEmptyString_Null</b> ()</td></tr>\n<tr class=\"separator:ab92013743b3d34b81840778158dd10c6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a611f7282fb502c10f81573b21a5e53a4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a611f7282fb502c10f81573b21a5e53a4\" name=\"a611f7282fb502c10f81573b21a5e53a4\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Restore_RefreshTokenNull_Valid</b> ()</td></tr>\n<tr class=\"separator:a611f7282fb502c10f81573b21a5e53a4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/SessionTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">SessionTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketChannelTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateRoomChannel</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldSendMessageDirectChannel</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldSendMessageRoomChannel</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketChannelTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">Nakama.Tests.Socket.WebSocketChannelTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketChannelTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketChannelTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Socket.WebSocketChannelTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a23cc427b3057020ec0b1f8414202cd70\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a23cc427b3057020ec0b1f8414202cd70\" name=\"a23cc427b3057020ec0b1f8414202cd70\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateRoomChannel</b> ()</td></tr>\n<tr class=\"separator:a23cc427b3057020ec0b1f8414202cd70\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9b06aebdfadf8d3988ecfddbbc84b30c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9b06aebdfadf8d3988ecfddbbc84b30c\" name=\"a9b06aebdfadf8d3988ecfddbbc84b30c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldSendMessageRoomChannel</b> ()</td></tr>\n<tr class=\"separator:a9b06aebdfadf8d3988ecfddbbc84b30c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4122350b9061f3608684a2fe5e3b9745\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4122350b9061f3608684a2fe5e3b9745\" name=\"a4122350b9061f3608684a2fe5e3b9745\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldSendMessageDirectChannel</b> ()</td></tr>\n<tr class=\"separator:a4122350b9061f3608684a2fe5e3b9745\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketChannelTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">WebSocketChannelTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketMatchTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>EachClientShouldReceiveTwoPresences</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateMatch</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateMatchAndLeave</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateMatchAndSecondUserJoin</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateMatchAndSendState</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateMatchWithName</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldJoinMatchWithName</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldThrowSocketExceptionWhenSendingMatchDataAfterClosingSocket</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>WebSocketMatchTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">Nakama.Tests.Socket.WebSocketMatchTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketMatchTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketMatchTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Socket.WebSocketMatchTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ab86170a9b4815a13e5a468e00da90cb7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab86170a9b4815a13e5a468e00da90cb7\" name=\"ab86170a9b4815a13e5a468e00da90cb7\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateMatch</b> ()</td></tr>\n<tr class=\"separator:ab86170a9b4815a13e5a468e00da90cb7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6bc132faf25315dd4fe5c4e00985eb18\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6bc132faf25315dd4fe5c4e00985eb18\" name=\"a6bc132faf25315dd4fe5c4e00985eb18\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateMatchWithName</b> ()</td></tr>\n<tr class=\"separator:a6bc132faf25315dd4fe5c4e00985eb18\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac5240d4f4f96710c26752b80fb43372b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac5240d4f4f96710c26752b80fb43372b\" name=\"ac5240d4f4f96710c26752b80fb43372b\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldJoinMatchWithName</b> ()</td></tr>\n<tr class=\"separator:ac5240d4f4f96710c26752b80fb43372b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af66fc46aac3400014fb31ae6edf0cc4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af66fc46aac3400014fb31ae6edf0cc4d\" name=\"af66fc46aac3400014fb31ae6edf0cc4d\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateMatchAndSecondUserJoin</b> ()</td></tr>\n<tr class=\"separator:af66fc46aac3400014fb31ae6edf0cc4d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aedb4312ba2244bfc749f83e95490539c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aedb4312ba2244bfc749f83e95490539c\" name=\"aedb4312ba2244bfc749f83e95490539c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateMatchAndLeave</b> ()</td></tr>\n<tr class=\"separator:aedb4312ba2244bfc749f83e95490539c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5e4de620aa10f1a5f45fda57a95a2164\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5e4de620aa10f1a5f45fda57a95a2164\" name=\"a5e4de620aa10f1a5f45fda57a95a2164\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateMatchAndSendState</b> ()</td></tr>\n<tr class=\"separator:a5e4de620aa10f1a5f45fda57a95a2164\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aa73608847abf98d66bffd840168ee5ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aa73608847abf98d66bffd840168ee5ba\" name=\"aa73608847abf98d66bffd840168ee5ba\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>EachClientShouldReceiveTwoPresences</b> ()</td></tr>\n<tr class=\"separator:aa73608847abf98d66bffd840168ee5ba\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a757547999628d46e1eccacfa4930f18b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a757547999628d46e1eccacfa4930f18b\" name=\"a757547999628d46e1eccacfa4930f18b\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldThrowSocketExceptionWhenSendingMatchDataAfterClosingSocket</b> ()</td></tr>\n<tr class=\"separator:a757547999628d46e1eccacfa4930f18b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketMatchTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">WebSocketMatchTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketMatchmakerTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCompleteMatchmaker</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCompleteMatchmakerAsymmetricQuery</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCompleteMatchmakerSymmetricQueryMidSize</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldJoinAndLeaveMatchmaker</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldJoinMatchmaker</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldMatchPartiesWithPlayers</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldNotMatchPartiesWithACombinedAmountOfPlayersAboveMaxCount</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketMatchmakerTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">Nakama.Tests.Socket.WebSocketMatchmakerTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketMatchmakerTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketMatchmakerTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Socket.WebSocketMatchmakerTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a1161cf101784dbc3a8bc6d0421c5ece2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a1161cf101784dbc3a8bc6d0421c5ece2\" name=\"a1161cf101784dbc3a8bc6d0421c5ece2\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldJoinMatchmaker</b> ()</td></tr>\n<tr class=\"separator:a1161cf101784dbc3a8bc6d0421c5ece2\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af1507efa4ade4f5f83d45e71bf692a81\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af1507efa4ade4f5f83d45e71bf692a81\" name=\"af1507efa4ade4f5f83d45e71bf692a81\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldJoinAndLeaveMatchmaker</b> ()</td></tr>\n<tr class=\"separator:af1507efa4ade4f5f83d45e71bf692a81\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7b507ddfa4e6356fa4b3d800bfacb5ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7b507ddfa4e6356fa4b3d800bfacb5ce\" name=\"a7b507ddfa4e6356fa4b3d800bfacb5ce\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCompleteMatchmaker</b> ()</td></tr>\n<tr class=\"separator:a7b507ddfa4e6356fa4b3d800bfacb5ce\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a053f2beb77d05bde26479600e33b8e2c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a053f2beb77d05bde26479600e33b8e2c\" name=\"a053f2beb77d05bde26479600e33b8e2c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotMatchPartiesWithACombinedAmountOfPlayersAboveMaxCount</b> ()</td></tr>\n<tr class=\"separator:a053f2beb77d05bde26479600e33b8e2c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aca0b1639e52f62d509f485794fcfdab8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aca0b1639e52f62d509f485794fcfdab8\" name=\"aca0b1639e52f62d509f485794fcfdab8\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldMatchPartiesWithPlayers</b> ()</td></tr>\n<tr class=\"separator:aca0b1639e52f62d509f485794fcfdab8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8202d70ee5793f3fd864dc959cb3b674\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a8202d70ee5793f3fd864dc959cb3b674\" name=\"a8202d70ee5793f3fd864dc959cb3b674\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCompleteMatchmakerAsymmetricQuery</b> ()</td></tr>\n<tr class=\"separator:a8202d70ee5793f3fd864dc959cb3b674\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aebbadb8a10d3957ade2974acf96ab011\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aebbadb8a10d3957ade2974acf96ab011\" name=\"aebbadb8a10d3957ade2974acf96ab011\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCompleteMatchmakerSymmetricQueryMidSize</b> ()</td></tr>\n<tr class=\"separator:aebbadb8a10d3957ade2974acf96ab011\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketMatchmakerTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">WebSocketMatchmakerTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketNotificationTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">Nakama.Tests.Socket.WebSocketNotificationTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldReceiveNotification</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">Nakama.Tests.Socket.WebSocketNotificationTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">Nakama.Tests.Socket.WebSocketNotificationTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketNotificationTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">Nakama.Tests.Socket.WebSocketNotificationTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">Nakama.Tests.Socket.WebSocketNotificationTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketNotificationTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketNotificationTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Socket.WebSocketNotificationTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a5d82dc88e90e696a1e082efdcf50edce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5d82dc88e90e696a1e082efdcf50edce\" name=\"a5d82dc88e90e696a1e082efdcf50edce\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldReceiveNotification</b> ()</td></tr>\n<tr class=\"separator:a5d82dc88e90e696a1e082efdcf50edce\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketNotificationTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">WebSocketNotificationTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketPartyTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>LeaderAndMembersShouldReceiveTicket</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>LeaderShouldBeInInitialPresences</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>PresencesInitializedWithConcurrentJoins</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldAddAndRemovePartyFromMatchmaker</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldBootThenClose</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateParty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldJoinClosedParty</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldNotJoinPastMaxSize</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldPromoteMember</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldReceiveJoinEvent</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldSendAndReceivePartyData</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketPartyTest</b>(ITestOutputHelper testOutputHelper) (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">Nakama.Tests.Socket.WebSocketPartyTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketPartyTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketPartyTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a90b1bbd498f5dace2e9afa82264fc5f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a90b1bbd498f5dace2e9afa82264fc5f4\" name=\"a90b1bbd498f5dace2e9afa82264fc5f4\"></a>\n&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketPartyTest</b> (ITestOutputHelper testOutputHelper)</td></tr>\n<tr class=\"separator:a90b1bbd498f5dace2e9afa82264fc5f4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a4cc02beef4b41817ee4bad4c69994609\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a4cc02beef4b41817ee4bad4c69994609\" name=\"a4cc02beef4b41817ee4bad4c69994609\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateParty</b> ()</td></tr>\n<tr class=\"separator:a4cc02beef4b41817ee4bad4c69994609\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af15ae1c092a6040931297877a09b5087\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af15ae1c092a6040931297877a09b5087\" name=\"af15ae1c092a6040931297877a09b5087\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldReceiveJoinEvent</b> ()</td></tr>\n<tr class=\"separator:af15ae1c092a6040931297877a09b5087\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a640de400f1a6d87ccf13b9395ed62aaf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a640de400f1a6d87ccf13b9395ed62aaf\" name=\"a640de400f1a6d87ccf13b9395ed62aaf\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldAddAndRemovePartyFromMatchmaker</b> ()</td></tr>\n<tr class=\"separator:a640de400f1a6d87ccf13b9395ed62aaf\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0fcf1cf85ec1f1de75b1233549b09fd4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0fcf1cf85ec1f1de75b1233549b09fd4\" name=\"a0fcf1cf85ec1f1de75b1233549b09fd4\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldPromoteMember</b> ()</td></tr>\n<tr class=\"separator:a0fcf1cf85ec1f1de75b1233549b09fd4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9e8564b91c82304a85a29f6e4e187c19\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9e8564b91c82304a85a29f6e4e187c19\" name=\"a9e8564b91c82304a85a29f6e4e187c19\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldSendAndReceivePartyData</b> ()</td></tr>\n<tr class=\"separator:a9e8564b91c82304a85a29f6e4e187c19\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5bdbf4c4eec65b83dde0f73543021832\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5bdbf4c4eec65b83dde0f73543021832\" name=\"a5bdbf4c4eec65b83dde0f73543021832\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldJoinClosedParty</b> ()</td></tr>\n<tr class=\"separator:a5bdbf4c4eec65b83dde0f73543021832\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a463882300d481c912785378f8babd95d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a463882300d481c912785378f8babd95d\" name=\"a463882300d481c912785378f8babd95d\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldNotJoinPastMaxSize</b> ()</td></tr>\n<tr class=\"separator:a463882300d481c912785378f8babd95d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a8b4d26ca0da8902ce7ba314f287f8aac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a8b4d26ca0da8902ce7ba314f287f8aac\" name=\"a8b4d26ca0da8902ce7ba314f287f8aac\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>LeaderShouldBeInInitialPresences</b> ()</td></tr>\n<tr class=\"separator:a8b4d26ca0da8902ce7ba314f287f8aac\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a72b726cd361cbb1383b3e55e3d7ae26f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a72b726cd361cbb1383b3e55e3d7ae26f\" name=\"a72b726cd361cbb1383b3e55e3d7ae26f\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PresencesInitializedWithConcurrentJoins</b> ()</td></tr>\n<tr class=\"separator:a72b726cd361cbb1383b3e55e3d7ae26f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a068960875d4fb102e53283e04844b7c7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a068960875d4fb102e53283e04844b7c7\" name=\"a068960875d4fb102e53283e04844b7c7\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldBootThenClose</b> ()</td></tr>\n<tr class=\"separator:a068960875d4fb102e53283e04844b7c7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a38b2be77adda6f9155b6568dd534f7db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a38b2be77adda6f9155b6568dd534f7db\" name=\"a38b2be77adda6f9155b6568dd534f7db\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>LeaderAndMembersShouldReceiveTicket</b> ()</td></tr>\n<tr class=\"separator:a38b2be77adda6f9155b6568dd534f7db\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketPartyTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">WebSocketPartyTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketRpcTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>DisposeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>InitializeAsync</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldSendRpcRoundtrip</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketRpcTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">Nakama.Tests.Socket.WebSocketRpcTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketRpcTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketRpcTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.Socket.WebSocketRpcTest:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ae08ca64050fa448816f2cf80bbf9a82b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae08ca64050fa448816f2cf80bbf9a82b\" name=\"ae08ca64050fa448816f2cf80bbf9a82b\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldSendRpcRoundtrip</b> ()</td></tr>\n<tr class=\"separator:ae08ca64050fa448816f2cf80bbf9a82b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad0e4a3cc503e58f85f76c7e6d1cc7499\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ad0e4a3cc503e58f85f76c7e6d1cc7499\" name=\"ad0e4a3cc503e58f85f76c7e6d1cc7499\"></a>\nTask&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>InitializeAsync</b> ()</td></tr>\n<tr class=\"separator:ad0e4a3cc503e58f85f76c7e6d1cc7499\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a75e1821c5dfb2da6e8005eef876f0ac6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a75e1821c5dfb2da6e8005eef876f0ac6\" name=\"a75e1821c5dfb2da6e8005eef876f0ac6\"></a>\nTask&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>DisposeAsync</b> ()</td></tr>\n<tr class=\"separator:a75e1821c5dfb2da6e8005eef876f0ac6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketRpcTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">WebSocketRpcTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ClosingBeforeConnecting</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>LongLivedSocketLifecycle</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>MultipleConnectAttemptsDoesNotThrowException</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateSocket</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateSocketAndConnect</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>ShouldCreateSocketAndDisconnect</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ShouldCreateSocketAndDisconnectSilent</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>SocketDetectsLossOfInternet</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>WebSocketTest</b>(ITestOutputHelper testOutputHelper) (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">Nakama.Tests.Socket.WebSocketTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:add74af894b56512c9ef29e0bf54a1b14\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"add74af894b56512c9ef29e0bf54a1b14\" name=\"add74af894b56512c9ef29e0bf54a1b14\"></a>\n&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketTest</b> (ITestOutputHelper testOutputHelper)</td></tr>\n<tr class=\"separator:add74af894b56512c9ef29e0bf54a1b14\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:adb22482a7056ad975f099348d147de8e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"adb22482a7056ad975f099348d147de8e\" name=\"adb22482a7056ad975f099348d147de8e\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateSocket</b> ()</td></tr>\n<tr class=\"separator:adb22482a7056ad975f099348d147de8e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af0df80f1eece38c91b19ec7cc47072e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af0df80f1eece38c91b19ec7cc47072e0\" name=\"af0df80f1eece38c91b19ec7cc47072e0\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateSocketAndConnect</b> ()</td></tr>\n<tr class=\"separator:af0df80f1eece38c91b19ec7cc47072e0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae98ecc548b67baa72c998f02b96bb393\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae98ecc548b67baa72c998f02b96bb393\" name=\"ae98ecc548b67baa72c998f02b96bb393\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateSocketAndDisconnect</b> ()</td></tr>\n<tr class=\"separator:ae98ecc548b67baa72c998f02b96bb393\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:afe391b5496be66fe4ddf8987678e5acb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"afe391b5496be66fe4ddf8987678e5acb\" name=\"afe391b5496be66fe4ddf8987678e5acb\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ShouldCreateSocketAndDisconnectSilent</b> ()</td></tr>\n<tr class=\"separator:afe391b5496be66fe4ddf8987678e5acb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a538601a755e64f9fa75d9ca949303c48\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a538601a755e64f9fa75d9ca949303c48\" name=\"a538601a755e64f9fa75d9ca949303c48\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MultipleConnectAttemptsDoesNotThrowException</b> ()</td></tr>\n<tr class=\"separator:a538601a755e64f9fa75d9ca949303c48\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a228a8b0fed2e9febd2938b40aef107ef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a228a8b0fed2e9febd2938b40aef107ef\" name=\"a228a8b0fed2e9febd2938b40aef107ef\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ClosingBeforeConnecting</b> ()</td></tr>\n<tr class=\"separator:a228a8b0fed2e9febd2938b40aef107ef\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab3c1d3fc10ff36f924273ce19c9674a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab3c1d3fc10ff36f924273ce19c9674a6\" name=\"ab3c1d3fc10ff36f924273ce19c9674a6\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>LongLivedSocketLifecycle</b> ()</td></tr>\n<tr class=\"separator:ab3c1d3fc10ff36f924273ce19c9674a6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5a6ed47aab2963268d4292c7277f852b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5a6ed47aab2963268d4292c7277f852b\" name=\"a5a6ed47aab2963268d4292c7277f852b\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>SocketDetectsLossOfInternet</b> ()</td></tr>\n<tr class=\"separator:a5a6ed47aab2963268d4292c7277f852b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">WebSocketTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketUserStatusTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FollowUsers_NoUsers_AnotherUser</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FollowUsers_NoUsers_AnotherUserByUsername</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FollowUsers_NoUsers_FollowedSelf</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FollowUsers_NoUsers_UserJoinsAndLeaves</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FollowUsers_TwoSessions_HasTwoStatuses</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FollowUsers_TwoUsers_ThirdUserFollowsBoth</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestFollowMassiveNumberOfUsers</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestFollowNonExistentUser</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestRepeatedOnlineOffline</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestUnfollowSelf</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestUserDoesNotReceiveUpdatedAfterUnfollow</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestUserFollowSameUserTwice</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>UpdateStatus_NoStatus_HasStatus</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>WebSocketUserStatusTest</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">Nakama.Tests.Socket.WebSocketUserStatusTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket.WebSocketUserStatusTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket.WebSocketUserStatusTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a0217c48dafe5438312c9f537b24ea0bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0217c48dafe5438312c9f537b24ea0bb\" name=\"a0217c48dafe5438312c9f537b24ea0bb\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_NoUsers_AnotherUser</b> ()</td></tr>\n<tr class=\"separator:a0217c48dafe5438312c9f537b24ea0bb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a29002e9558301acad24d74fe86021da4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a29002e9558301acad24d74fe86021da4\" name=\"a29002e9558301acad24d74fe86021da4\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_NoUsers_AnotherUserByUsername</b> ()</td></tr>\n<tr class=\"separator:a29002e9558301acad24d74fe86021da4\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2322041b194de0b5a3b9752cca101850\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a2322041b194de0b5a3b9752cca101850\" name=\"a2322041b194de0b5a3b9752cca101850\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_NoUsers_FollowedSelf</b> ()</td></tr>\n<tr class=\"separator:a2322041b194de0b5a3b9752cca101850\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a02ab3c719c061e016ff692d872283e87\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a02ab3c719c061e016ff692d872283e87\" name=\"a02ab3c719c061e016ff692d872283e87\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_NoUsers_UserJoinsAndLeaves</b> ()</td></tr>\n<tr class=\"separator:a02ab3c719c061e016ff692d872283e87\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a1088c429993fc7201156771bdb69ff00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a1088c429993fc7201156771bdb69ff00\" name=\"a1088c429993fc7201156771bdb69ff00\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_TwoSessions_HasTwoStatuses</b> ()</td></tr>\n<tr class=\"separator:a1088c429993fc7201156771bdb69ff00\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2b47e40031c06378c077aa8af137f88b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a2b47e40031c06378c077aa8af137f88b\" name=\"a2b47e40031c06378c077aa8af137f88b\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FollowUsers_TwoUsers_ThirdUserFollowsBoth</b> ()</td></tr>\n<tr class=\"separator:a2b47e40031c06378c077aa8af137f88b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af74a3010912805a37a99e3b8401463da\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"af74a3010912805a37a99e3b8401463da\" name=\"af74a3010912805a37a99e3b8401463da\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>UpdateStatus_NoStatus_HasStatus</b> ()</td></tr>\n<tr class=\"separator:af74a3010912805a37a99e3b8401463da\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a2b0c8e35af4ce11ed1668a66aee8bf25\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a2b0c8e35af4ce11ed1668a66aee8bf25\" name=\"a2b0c8e35af4ce11ed1668a66aee8bf25\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestFollowMassiveNumberOfUsers</b> ()</td></tr>\n<tr class=\"separator:a2b0c8e35af4ce11ed1668a66aee8bf25\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a73c8ff5380184eec893307e4cd36b290\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a73c8ff5380184eec893307e4cd36b290\" name=\"a73c8ff5380184eec893307e4cd36b290\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestUserDoesNotReceiveUpdatedAfterUnfollow</b> ()</td></tr>\n<tr class=\"separator:a73c8ff5380184eec893307e4cd36b290\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a071655059953b9103f62d91470332d7f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a071655059953b9103f62d91470332d7f\" name=\"a071655059953b9103f62d91470332d7f\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestUserFollowSameUserTwice</b> ()</td></tr>\n<tr class=\"separator:a071655059953b9103f62d91470332d7f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a20edac4c2fcd1d7820a7f956ed06fbd7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a20edac4c2fcd1d7820a7f956ed06fbd7\" name=\"a20edac4c2fcd1d7820a7f956ed06fbd7\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestUnfollowSelf</b> ()</td></tr>\n<tr class=\"separator:a20edac4c2fcd1d7820a7f956ed06fbd7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6b90cf78d0f7e3d59fe8bd6d45e18f9d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6b90cf78d0f7e3d59fe8bd6d45e18f9d\" name=\"a6b90cf78d0f7e3d59fe8bd6d45e18f9d\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestFollowNonExistentUser</b> ()</td></tr>\n<tr class=\"separator:a6b90cf78d0f7e3d59fe8bd6d45e18f9d\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae2e82241bd02194aefbd2bfda9017e70\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ae2e82241bd02194aefbd2bfda9017e70\" name=\"ae2e82241bd02194aefbd2bfda9017e70\"></a>\nasync void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestRepeatedOnlineOffline</b> ()</td></tr>\n<tr class=\"separator:ae2e82241bd02194aefbd2bfda9017e70\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/Socket/WebSocketUserStatusTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">WebSocketUserStatusTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_stdout_logger-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_stdout_logger.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.StdoutLogger Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">Nakama.Tests.StdoutLogger</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ad0c8e568fb1c1fb0e4eafc56562a5f66\">DebugFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">Nakama.Tests.StdoutLogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ae240b447f299b3b8fe95a6ef51944aa9\">ErrorFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">Nakama.Tests.StdoutLogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ac6813139553ee876d74d08f30b8630fb\">InfoFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">Nakama.Tests.StdoutLogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#a750b6801ba33ffde12ada265f433b1a8\">WarnFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">Nakama.Tests.StdoutLogger</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_stdout_logger.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.StdoutLogger Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_stdout_logger.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_stdout_logger-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.StdoutLogger Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.StdoutLogger:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_stdout_logger.png\" usemap=\"#Nakama.Tests.StdoutLogger_map\" alt=\"\"/>\n  <map id=\"Nakama.Tests.StdoutLogger_map\" name=\"Nakama.Tests.StdoutLogger_map\">\n<area href=\"interface_nakama_1_1_i_logger.html\" title=\"A simple logger to write log messages to an output sink.\" alt=\"Nakama.ILogger\" shape=\"rect\" coords=\"0,0,169,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ad0c8e568fb1c1fb0e4eafc56562a5f66\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ad0c8e568fb1c1fb0e4eafc56562a5f66\">DebugFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:ad0c8e568fb1c1fb0e4eafc56562a5f66\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the DEBUG level.   <a href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ad0c8e568fb1c1fb0e4eafc56562a5f66\">More...</a><br /></td></tr>\n<tr class=\"separator:ad0c8e568fb1c1fb0e4eafc56562a5f66\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae240b447f299b3b8fe95a6ef51944aa9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ae240b447f299b3b8fe95a6ef51944aa9\">ErrorFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:ae240b447f299b3b8fe95a6ef51944aa9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the ERROR level.   <a href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ae240b447f299b3b8fe95a6ef51944aa9\">More...</a><br /></td></tr>\n<tr class=\"separator:ae240b447f299b3b8fe95a6ef51944aa9\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ac6813139553ee876d74d08f30b8630fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ac6813139553ee876d74d08f30b8630fb\">InfoFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:ac6813139553ee876d74d08f30b8630fb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the INFO level.   <a href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#ac6813139553ee876d74d08f30b8630fb\">More...</a><br /></td></tr>\n<tr class=\"separator:ac6813139553ee876d74d08f30b8630fb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a750b6801ba33ffde12ada265f433b1a8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#a750b6801ba33ffde12ada265f433b1a8\">WarnFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a750b6801ba33ffde12ada265f433b1a8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the WARN level.   <a href=\"class_nakama_1_1_tests_1_1_stdout_logger.html#a750b6801ba33ffde12ada265f433b1a8\">More...</a><br /></td></tr>\n<tr class=\"separator:a750b6801ba33ffde12ada265f433b1a8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7b8a076d052336b4bc965caba104d091\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">DebugFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a7b8a076d052336b4bc965caba104d091\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the DEBUG level.   <a href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">More...</a><br /></td></tr>\n<tr class=\"separator:a7b8a076d052336b4bc965caba104d091\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a7a32d0f6eadfce1dcdcd1884767978e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">ErrorFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a7a32d0f6eadfce1dcdcd1884767978e8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the ERROR level.   <a href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">More...</a><br /></td></tr>\n<tr class=\"separator:a7a32d0f6eadfce1dcdcd1884767978e8\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a04590700134fcc96228f9595c09cc901\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">InfoFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a04590700134fcc96228f9595c09cc901\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the INFO level.   <a href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">More...</a><br /></td></tr>\n<tr class=\"separator:a04590700134fcc96228f9595c09cc901\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aea853b29e33993f4fbfe55ff9413e7c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">WarnFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:aea853b29e33993f4fbfe55ff9413e7c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the WARN level.   <a href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">More...</a><br /></td></tr>\n<tr class=\"separator:aea853b29e33993f4fbfe55ff9413e7c3\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<h2 class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ad0c8e568fb1c1fb0e4eafc56562a5f66\" name=\"ad0c8e568fb1c1fb0e4eafc56562a5f66\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0c8e568fb1c1fb0e4eafc56562a5f66\">&#9670;&#160;</a></span>DebugFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Tests.StdoutLogger.DebugFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string&#160;</td>\n          <td class=\"paramname\"><em>format</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]&#160;</td>\n          <td class=\"paramname\"><em>args</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the DEBUG level.  </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">Nakama.ILogger</a>.</p>\n\n</div>\n</div>\n<a id=\"ae240b447f299b3b8fe95a6ef51944aa9\" name=\"ae240b447f299b3b8fe95a6ef51944aa9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae240b447f299b3b8fe95a6ef51944aa9\">&#9670;&#160;</a></span>ErrorFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Tests.StdoutLogger.ErrorFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string&#160;</td>\n          <td class=\"paramname\"><em>format</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]&#160;</td>\n          <td class=\"paramname\"><em>args</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the ERROR level.  </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">Nakama.ILogger</a>.</p>\n\n</div>\n</div>\n<a id=\"ac6813139553ee876d74d08f30b8630fb\" name=\"ac6813139553ee876d74d08f30b8630fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac6813139553ee876d74d08f30b8630fb\">&#9670;&#160;</a></span>InfoFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Tests.StdoutLogger.InfoFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string&#160;</td>\n          <td class=\"paramname\"><em>format</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]&#160;</td>\n          <td class=\"paramname\"><em>args</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the INFO level.  </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">Nakama.ILogger</a>.</p>\n\n</div>\n</div>\n<a id=\"a750b6801ba33ffde12ada265f433b1a8\" name=\"a750b6801ba33ffde12ada265f433b1a8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a750b6801ba33ffde12ada265f433b1a8\">&#9670;&#160;</a></span>WarnFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.Tests.StdoutLogger.WarnFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string&#160;</td>\n          <td class=\"paramname\"><em>format</em>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]&#160;</td>\n          <td class=\"paramname\"><em>args</em>&#160;</td>\n        </tr>\n        <tr>\n          <td></td>\n          <td>)</td>\n          <td></td><td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the WARN level.  </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">Nakama.ILogger</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/StdoutLogger.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">StdoutLogger</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_stdout_logger.js",
    "content": "var class_nakama_1_1_tests_1_1_stdout_logger =\n[\n    [ \"DebugFormat\", \"class_nakama_1_1_tests_1_1_stdout_logger.html#ad0c8e568fb1c1fb0e4eafc56562a5f66\", null ],\n    [ \"ErrorFormat\", \"class_nakama_1_1_tests_1_1_stdout_logger.html#ae240b447f299b3b8fe95a6ef51944aa9\", null ],\n    [ \"InfoFormat\", \"class_nakama_1_1_tests_1_1_stdout_logger.html#ac6813139553ee876d74d08f30b8630fb\", null ],\n    [ \"WarnFormat\", \"class_nakama_1_1_tests_1_1_stdout_logger.html#a750b6801ba33ffde12ada265f433b1a8\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_tiny_json_parser_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_tiny_json_parser_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.TinyJsonParserTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FromJson_JsonInput_NumberToString</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FromJson_JsonInput_ParseBool</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FromJson_JsonInput_Parsed</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FromJson_JsonInput_ParsedTwice</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FromJson_JsonInput_ParseSingleQuotesAsString</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FromJson_JsonInput_ParseSingleQuotesAsStringInArray</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>FromJson_JsonInput_SingleDigitNumberToString</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>FromJson_JsonInput_StringToString</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>ToJson_LongToUnquotedJson</b>() (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">Nakama.Tests.TinyJsonParserTest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_tiny_json_parser_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.TinyJsonParserTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_tiny_json_parser_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.TinyJsonParserTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ab49b182f46fec05aaca82d64580981bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab49b182f46fec05aaca82d64580981bb\" name=\"ab49b182f46fec05aaca82d64580981bb\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_Parsed</b> ()</td></tr>\n<tr class=\"separator:ab49b182f46fec05aaca82d64580981bb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6716ab771f2a8590651049e97d34435e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6716ab771f2a8590651049e97d34435e\" name=\"a6716ab771f2a8590651049e97d34435e\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_NumberToString</b> ()</td></tr>\n<tr class=\"separator:a6716ab771f2a8590651049e97d34435e\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a53096b95c48e9d4465e9318d9b99eb5f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a53096b95c48e9d4465e9318d9b99eb5f\" name=\"a53096b95c48e9d4465e9318d9b99eb5f\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_SingleDigitNumberToString</b> ()</td></tr>\n<tr class=\"separator:a53096b95c48e9d4465e9318d9b99eb5f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a5bcedaa09702c0b454d6eaa84550330f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a5bcedaa09702c0b454d6eaa84550330f\" name=\"a5bcedaa09702c0b454d6eaa84550330f\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_StringToString</b> ()</td></tr>\n<tr class=\"separator:a5bcedaa09702c0b454d6eaa84550330f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:acb306cc7ed6c728a6b602cc718f7a4e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"acb306cc7ed6c728a6b602cc718f7a4e0\" name=\"acb306cc7ed6c728a6b602cc718f7a4e0\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ToJson_LongToUnquotedJson</b> ()</td></tr>\n<tr class=\"separator:acb306cc7ed6c728a6b602cc718f7a4e0\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a3f99e3082b0c9ef619f7886938c23e8f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a3f99e3082b0c9ef619f7886938c23e8f\" name=\"a3f99e3082b0c9ef619f7886938c23e8f\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_ParsedTwice</b> ()</td></tr>\n<tr class=\"separator:a3f99e3082b0c9ef619f7886938c23e8f\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a85a009a63cb991d43f61d46908caf7e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a85a009a63cb991d43f61d46908caf7e7\" name=\"a85a009a63cb991d43f61d46908caf7e7\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_ParseSingleQuotesAsString</b> ()</td></tr>\n<tr class=\"separator:a85a009a63cb991d43f61d46908caf7e7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a296da821a9efea5ca09ae9ff059d8f82\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a296da821a9efea5ca09ae9ff059d8f82\" name=\"a296da821a9efea5ca09ae9ff059d8f82\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_ParseSingleQuotesAsStringInArray</b> ()</td></tr>\n<tr class=\"separator:a296da821a9efea5ca09ae9ff059d8f82\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a04459293f694dfe4500b77f7bd2ce623\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a04459293f694dfe4500b77f7bd2ce623\" name=\"a04459293f694dfe4500b77f7bd2ce623\"></a>\nvoid&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FromJson_JsonInput_ParseBool</b> ()</td></tr>\n<tr class=\"separator:a04459293f694dfe4500b77f7bd2ce623\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/TinyJsonParserTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">TinyJsonParserTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_transient_exception_http_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.TransientExceptionHttpAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#a13fdded7b12cc20e46b433fbe4e808f6\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TransientExceptionDelegate</b> (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TransientExceptionHttpAdapter</b>(TransientAdapterResponseType[] sendSchedule) (defined in <a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">Nakama.Tests.TransientExceptionHttpAdapter</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.TransientExceptionHttpAdapter Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#properties\">Properties</a> &#124;\n<a href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.TransientExceptionHttpAdapter Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which throws transient/retryable exceptions whenever a request is made.   \n <a href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Tests.TransientExceptionHttpAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.png\" usemap=\"#Nakama.Tests.TransientExceptionHttpAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama.Tests.TransientExceptionHttpAdapter_map\" name=\"Nakama.Tests.TransientExceptionHttpAdapter_map\">\n<area href=\"interface_nakama_1_1_i_http_adapter.html\" title=\"An adapter which implements the HTTP protocol.\" alt=\"Nakama.IHttpAdapter\" shape=\"rect\" coords=\"0,0,268,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ac12f6c9693463ebd79367fb40115cfb7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac12f6c9693463ebd79367fb40115cfb7\" name=\"ac12f6c9693463ebd79367fb40115cfb7\"></a>\n&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TransientExceptionHttpAdapter</b> (TransientAdapterResponseType[] sendSchedule)</td></tr>\n<tr class=\"separator:ac12f6c9693463ebd79367fb40115cfb7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:af4eea04aef9ed0ccf2ee990bcb294b53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">SendAsync</a> (string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeoutSec=3, CancellationToken? userCancelToken=null)</td></tr>\n<tr class=\"memdesc:af4eea04aef9ed0ccf2ee990bcb294b53\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a HTTP request.   <a href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">More...</a><br /></td></tr>\n<tr class=\"separator:af4eea04aef9ed0ccf2ee990bcb294b53\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a13fdded7b12cc20e46b433fbe4e808f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#a13fdded7b12cc20e46b433fbe4e808f6\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a13fdded7b12cc20e46b433fbe4e808f6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.   <a href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#a13fdded7b12cc20e46b433fbe4e808f6\">More...</a><br /></td></tr>\n<tr class=\"separator:a13fdded7b12cc20e46b433fbe4e808f6\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ae63ff427be934b23c6836273b60b3d9a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#ae63ff427be934b23c6836273b60b3d9a\">TransientExceptionDelegate</a><code> [get]</code></td></tr>\n<tr class=\"separator:ae63ff427be934b23c6836273b60b3d9a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"inherit_header properties_interface_nakama_1_1_i_http_adapter\"><td colspan=\"2\" onclick=\"javascript:toggleInherit('properties_interface_nakama_1_1_i_http_adapter')\"><img src=\"closed.png\" alt=\"-\"/>&#160;Properties inherited from <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td></tr>\n<tr class=\"memitem:a276f20c0cdbc85177ace2cc336579cf8 inherit properties_interface_nakama_1_1_i_http_adapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a276f20c0cdbc85177ace2cc336579cf8\" name=\"a276f20c0cdbc85177ace2cc336579cf8\"></a>\nTransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TransientExceptionDelegate</b><code> [get]</code></td></tr>\n<tr class=\"separator:a276f20c0cdbc85177ace2cc336579cf8 inherit properties_interface_nakama_1_1_i_http_adapter\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ad0514214ba7fce3b8c0697d70874ff1e inherit properties_interface_nakama_1_1_i_http_adapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ad0514214ba7fce3b8c0697d70874ff1e inherit properties_interface_nakama_1_1_i_http_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.   <a href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">More...</a><br /></td></tr>\n<tr class=\"separator:ad0514214ba7fce3b8c0697d70874ff1e inherit properties_interface_nakama_1_1_i_http_adapter\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p >An adapter which throws transient/retryable exceptions whenever a request is made.  </p>\n</div><h2 class=\"groupheader\">Property Documentation</h2>\n<a id=\"a13fdded7b12cc20e46b433fbe4e808f6\" name=\"a13fdded7b12cc20e46b433fbe4e808f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a13fdded7b12cc20e46b433fbe4e808f6\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.Tests.TransientExceptionHttpAdapter.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">get</span><span class=\"mlabel\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the adapter.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Nakama.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ae63ff427be934b23c6836273b60b3d9a\" name=\"ae63ff427be934b23c6836273b60b3d9a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae63ff427be934b23c6836273b60b3d9a\">&#9670;&#160;</a></span>TransientExceptionDelegate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TransientExceptionDelegate Nakama.Tests.TransientExceptionHttpAdapter.TransientExceptionDelegate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Nakama.Tests/TransientExceptionHttpAdapter.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">TransientExceptionHttpAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_tests_1_1_transient_exception_http_adapter.js",
    "content": "var class_nakama_1_1_tests_1_1_transient_exception_http_adapter =\n[\n    [ \"Logger\", \"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#a13fdded7b12cc20e46b433fbe4e808f6\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_web_socket_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WebSocketAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\">CloseAsync</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\">Closed</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\">ConnectAsync</a>(Uri uri, int timeout)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\">Connected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\">IsConnected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\">IsConnecting</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\">Received</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\">ReceivedError</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\">SendAsync</a>(ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\">WebSocketAdapter</a>(int keepAliveIntervalSec=KeepAliveIntervalSec, int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize, ILogger logger=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e\">WebSocketAdapter</a>(WebSocketClientOptions options, int sendTimeoutSec, int maxMessageReadSize, ILogger logger)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">Nakama.WebSocketAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.WebSocketAdapter Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_web_socket_adapter.html','','class_nakama_1_1_web_socket_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WebSocketAdapter Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.WebSocketAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_web_socket_adapter.png\" usemap=\"#Nakama_2EWebSocketAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama_2EWebSocketAdapter_map\" name=\"Nakama_2EWebSocketAdapter_map\">\n<area href=\"interface_nakama_1_1_i_socket_adapter.html\" title=\"An adapter which implements a socket with a protocol supported by Nakama.\" alt=\"Nakama.ISocketAdapter\" shape=\"rect\" coords=\"0,0,169,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:abb3f830ffb2dbb9ea5d394916eb93fdc\" id=\"r_abb3f830ffb2dbb9ea5d394916eb93fdc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb3f830ffb2dbb9ea5d394916eb93fdc\">WebSocketAdapter</a> (int keepAliveIntervalSec=KeepAliveIntervalSec, int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize, <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> logger=null)</td></tr>\n<tr class=\"memitem:ae1f7b96091445409691e5a5acb44040e\" id=\"r_ae1f7b96091445409691e5a5acb44040e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae1f7b96091445409691e5a5acb44040e\">WebSocketAdapter</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> options, int sendTimeoutSec, int maxMessageReadSize, <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> logger)</td></tr>\n<tr class=\"memitem:a8116b06e25e735a83f9f109fc15a7e3a\" id=\"r_a8116b06e25e735a83f9f109fc15a7e3a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8116b06e25e735a83f9f109fc15a7e3a\">CloseAsync</a> ()</td></tr>\n<tr class=\"memdesc:a8116b06e25e735a83f9f109fc15a7e3a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Close the socket with an asynchronous operation.  <br /></td></tr>\n<tr class=\"memitem:a3097564c6c6ff6ff8945d0def0d4c1e0\" id=\"r_a3097564c6c6ff6ff8945d0def0d4c1e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3097564c6c6ff6ff8945d0def0d4c1e0\">ConnectAsync</a> (Uri uri, int timeout)</td></tr>\n<tr class=\"memdesc:a3097564c6c6ff6ff8945d0def0d4c1e0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The URI of the server.</td></tr>\n    <tr><td class=\"paramname\">timeout</td><td>The timeout for the connect attempt on the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad3a05cb8ff2ece38c4b40b36b96710e4\" id=\"r_ad3a05cb8ff2ece38c4b40b36b96710e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad3a05cb8ff2ece38c4b40b36b96710e4\">SendAsync</a> (ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad3a05cb8ff2ece38c4b40b36b96710e4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">buffer</td><td>The buffer with the message to send.</td></tr>\n    <tr><td class=\"paramname\">reliable</td><td>If the message should be sent reliably (will be ignored by some protocols).</td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>A cancellation token used to propagate when the operation should be canceled.</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac91f2ff65f7450ecb11574922989d457\" id=\"r_ac91f2ff65f7450ecb11574922989d457\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac91f2ff65f7450ecb11574922989d457\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af4d122fde2ef8ca67f3a05533f2b23d3\" id=\"r_af4d122fde2ef8ca67f3a05533f2b23d3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4d122fde2ef8ca67f3a05533f2b23d3\">IsConnected</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af4d122fde2ef8ca67f3a05533f2b23d3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the WebSocket is connected.  <br /></td></tr>\n<tr class=\"memitem:a57bbc818963586e72fc39f7dbbe28ad8\" id=\"r_a57bbc818963586e72fc39f7dbbe28ad8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a57bbc818963586e72fc39f7dbbe28ad8\">IsConnecting</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a57bbc818963586e72fc39f7dbbe28ad8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the WebSocket is connecting.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:af8d0fc4d17f63c187397e777c10ecb7a\" id=\"r_af8d0fc4d17f63c187397e777c10ecb7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af8d0fc4d17f63c187397e777c10ecb7a\">Connected</a></td></tr>\n<tr class=\"memitem:a2266ef4818b6ed5d211d056a66b7c21b\" id=\"r_a2266ef4818b6ed5d211d056a66b7c21b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2266ef4818b6ed5d211d056a66b7c21b\">Closed</a></td></tr>\n<tr class=\"memitem:a9b94af8c8f2bd785e67e01ab521e1fb5\" id=\"r_a9b94af8c8f2bd785e67e01ab521e1fb5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9b94af8c8f2bd785e67e01ab521e1fb5\">ReceivedError</a></td></tr>\n<tr class=\"memitem:a81ef85e5dae12ff8168055a0594e8c76\" id=\"r_a81ef85e5dae12ff8168055a0594e8c76\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; ArraySegment&lt; byte &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a81ef85e5dae12ff8168055a0594e8c76\">Received</a></td></tr>\n<tr class=\"inherit_header events_interface_nakama_1_1_i_socket_adapter\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_nakama_1_1_i_socket_adapter')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td></tr>\n<tr class=\"memitem:a130b25217829edc3307fb83d665eacea inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a130b25217829edc3307fb83d665eacea\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\">Connected</a></td></tr>\n<tr class=\"memdesc:a130b25217829edc3307fb83d665eacea inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a711266e5d8ab7fe8ca6feb1c70a79679 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a711266e5d8ab7fe8ca6feb1c70a79679\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\">Closed</a></td></tr>\n<tr class=\"memdesc:a711266e5d8ab7fe8ca6feb1c70a79679 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is disconnected.  <br /></td></tr>\n<tr class=\"memitem:a60e05f18eda93116edb329193b7c20a6 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a60e05f18eda93116edb329193b7c20a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\">ReceivedError</a></td></tr>\n<tr class=\"memdesc:a60e05f18eda93116edb329193b7c20a6 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket has an error when connected.  <br /></td></tr>\n<tr class=\"memitem:a0c9baa386c7cba1edc6bf1d6765fc008 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a0c9baa386c7cba1edc6bf1d6765fc008\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; ArraySegment&lt; byte &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\">Received</a></td></tr>\n<tr class=\"memdesc:a0c9baa386c7cba1edc6bf1d6765fc008 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket receives a message.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"abb3f830ffb2dbb9ea5d394916eb93fdc\" name=\"abb3f830ffb2dbb9ea5d394916eb93fdc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb3f830ffb2dbb9ea5d394916eb93fdc\">&#9670;&#160;</a></span>WebSocketAdapter() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.WebSocketAdapter.WebSocketAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>keepAliveIntervalSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">KeepAliveIntervalSec</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sendTimeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">SendTimeoutSec</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxMessageReadSize</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">MaxMessageReadSize</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>logger</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae1f7b96091445409691e5a5acb44040e\" name=\"ae1f7b96091445409691e5a5acb44040e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae1f7b96091445409691e5a5acb44040e\">&#9670;&#160;</a></span>WebSocketAdapter() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.WebSocketAdapter.WebSocketAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sendTimeoutSec</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxMessageReadSize</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>logger</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a8116b06e25e735a83f9f109fc15a7e3a\" name=\"a8116b06e25e735a83f9f109fc15a7e3a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8116b06e25e735a83f9f109fc15a7e3a\">&#9670;&#160;</a></span>CloseAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.WebSocketAdapter.CloseAsync </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Close the socket with an asynchronous operation. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a3097564c6c6ff6ff8945d0def0d4c1e0\" name=\"a3097564c6c6ff6ff8945d0def0d4c1e0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3097564c6c6ff6ff8945d0def0d4c1e0\">&#9670;&#160;</a></span>ConnectAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.WebSocketAdapter.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeout</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The URI of the server.</td></tr>\n    <tr><td class=\"paramname\">timeout</td><td>The timeout for the connect attempt on the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ad3a05cb8ff2ece38c4b40b36b96710e4\" name=\"ad3a05cb8ff2ece38c4b40b36b96710e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad3a05cb8ff2ece38c4b40b36b96710e4\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.WebSocketAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reliable</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send data to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">buffer</td><td>The buffer with the message to send.</td></tr>\n    <tr><td class=\"paramname\">reliable</td><td>If the message should be sent reliably (will be ignored by some protocols).</td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>A cancellation token used to propagate when the operation should be canceled.</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ac91f2ff65f7450ecb11574922989d457\" name=\"ac91f2ff65f7450ecb11574922989d457\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac91f2ff65f7450ecb11574922989d457\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.WebSocketAdapter.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af4d122fde2ef8ca67f3a05533f2b23d3\" name=\"af4d122fde2ef8ca67f3a05533f2b23d3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4d122fde2ef8ca67f3a05533f2b23d3\">&#9670;&#160;</a></span>IsConnected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.WebSocketAdapter.IsConnected</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the WebSocket is connected. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a57bbc818963586e72fc39f7dbbe28ad8\" name=\"a57bbc818963586e72fc39f7dbbe28ad8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a57bbc818963586e72fc39f7dbbe28ad8\">&#9670;&#160;</a></span>IsConnecting</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.WebSocketAdapter.IsConnecting</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the WebSocket is connecting. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a2266ef4818b6ed5d211d056a66b7c21b\" name=\"a2266ef4818b6ed5d211d056a66b7c21b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2266ef4818b6ed5d211d056a66b7c21b\">&#9670;&#160;</a></span>Closed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.WebSocketAdapter.Closed</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"af8d0fc4d17f63c187397e777c10ecb7a\" name=\"af8d0fc4d17f63c187397e777c10ecb7a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af8d0fc4d17f63c187397e777c10ecb7a\">&#9670;&#160;</a></span>Connected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.WebSocketAdapter.Connected</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a81ef85e5dae12ff8168055a0594e8c76\" name=\"a81ef85e5dae12ff8168055a0594e8c76\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a81ef85e5dae12ff8168055a0594e8c76\">&#9670;&#160;</a></span>Received</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;ArraySegment&lt;byte&gt; &gt; Nakama.WebSocketAdapter.Received</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a9b94af8c8f2bd785e67e01ab521e1fb5\" name=\"a9b94af8c8f2bd785e67e01ab521e1fb5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9b94af8c8f2bd785e67e01ab521e1fb5\">&#9670;&#160;</a></span>ReceivedError</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;Exception&gt; Nakama.WebSocketAdapter.ReceivedError</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_adapter_8cs.html\">WebSocketAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_web_socket_adapter.html\">WebSocketAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_adapter.js",
    "content": "var class_nakama_1_1_web_socket_adapter =\n[\n    [ \"WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\", null ],\n    [ \"WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e\", null ],\n    [ \"CloseAsync\", \"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\", null ],\n    [ \"SendAsync\", \"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\", null ],\n    [ \"ToString\", \"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\", null ],\n    [ \"IsConnected\", \"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\", null ],\n    [ \"IsConnecting\", \"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\", null ],\n    [ \"Closed\", \"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\", null ],\n    [ \"Connected\", \"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\", null ],\n    [ \"Received\", \"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\", null ],\n    [ \"ReceivedError\", \"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_stdlib_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_web_socket_stdlib_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WebSocketStdlibAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\">CloseAsync</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\">Closed</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\">ConnectAsync</a>(Uri uri, int timeout)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\">Connected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\">IsConnected</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\">IsConnecting</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\">Received</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\">ReceivedError</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\">SendAsync</a>(ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\">WebSocketStdlibAdapter</a>(int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b\">WebSocketStdlibAdapter</a>(ClientWebSocket webSocket)</td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_stdlib_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.WebSocketStdlibAdapter Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_web_socket_stdlib_adapter.html','','class_nakama_1_1_web_socket_stdlib_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WebSocketStdlibAdapter Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.WebSocketStdlibAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_web_socket_stdlib_adapter.png\" usemap=\"#Nakama_2EWebSocketStdlibAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama_2EWebSocketStdlibAdapter_map\" name=\"Nakama_2EWebSocketStdlibAdapter_map\">\n<area href=\"interface_nakama_1_1_i_socket_adapter.html\" title=\"An adapter which implements a socket with a protocol supported by Nakama.\" alt=\"Nakama.ISocketAdapter\" shape=\"rect\" coords=\"0,0,200,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a22ffb61a97bc21b86fa177a5025ebac7\" id=\"r_a22ffb61a97bc21b86fa177a5025ebac7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a22ffb61a97bc21b86fa177a5025ebac7\">WebSocketStdlibAdapter</a> (int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize)</td></tr>\n<tr class=\"memitem:a0d9779f96e2101f63852fe232e38c98b\" id=\"r_a0d9779f96e2101f63852fe232e38c98b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d9779f96e2101f63852fe232e38c98b\">WebSocketStdlibAdapter</a> (ClientWebSocket webSocket)</td></tr>\n<tr class=\"memitem:afa4ce22a1f21cc76441a555bd3f193e8\" id=\"r_afa4ce22a1f21cc76441a555bd3f193e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afa4ce22a1f21cc76441a555bd3f193e8\">CloseAsync</a> ()</td></tr>\n<tr class=\"memdesc:afa4ce22a1f21cc76441a555bd3f193e8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Close the socket with an asynchronous operation.  <br /></td></tr>\n<tr class=\"memitem:ae94a4c3b78f1d523257950553bea085a\" id=\"r_ae94a4c3b78f1d523257950553bea085a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae94a4c3b78f1d523257950553bea085a\">ConnectAsync</a> (Uri uri, int timeout)</td></tr>\n<tr class=\"memdesc:ae94a4c3b78f1d523257950553bea085a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The URI of the server.</td></tr>\n    <tr><td class=\"paramname\">timeout</td><td>The timeout for the connect attempt on the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n<tr class=\"memitem:a3c809f05d8a713f2e04882e40306c64f\" id=\"r_a3c809f05d8a713f2e04882e40306c64f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3c809f05d8a713f2e04882e40306c64f\">SendAsync</a> (ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3c809f05d8a713f2e04882e40306c64f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">buffer</td><td>The buffer with the message to send.</td></tr>\n    <tr><td class=\"paramname\">reliable</td><td>If the message should be sent reliably (will be ignored by some protocols).</td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>A cancellation token used to propagate when the operation should be canceled.</td></tr>\n  </table>\n  </dd>\n</dl>\n  <br /></td></tr>\n<tr class=\"memitem:a499684d8c92a1bdf65e40663d9f327d7\" id=\"r_a499684d8c92a1bdf65e40663d9f327d7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a499684d8c92a1bdf65e40663d9f327d7\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7ab428776e53ddbac27832f238ab1ced\" id=\"r_a7ab428776e53ddbac27832f238ab1ced\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7ab428776e53ddbac27832f238ab1ced\">IsConnected</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7ab428776e53ddbac27832f238ab1ced\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the WebSocket is connected.  <br /></td></tr>\n<tr class=\"memitem:ac7cf95d952a33d4ab00c5ef610a8de74\" id=\"r_ac7cf95d952a33d4ab00c5ef610a8de74\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7cf95d952a33d4ab00c5ef610a8de74\">IsConnecting</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac7cf95d952a33d4ab00c5ef610a8de74\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the WebSocket is connecting.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a64c972fdb7ba486e19bcd0671dec5409\" id=\"r_a64c972fdb7ba486e19bcd0671dec5409\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a64c972fdb7ba486e19bcd0671dec5409\">Connected</a></td></tr>\n<tr class=\"memitem:ab79baa0d1f5fafec41b04c42308fe2e3\" id=\"r_ab79baa0d1f5fafec41b04c42308fe2e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab79baa0d1f5fafec41b04c42308fe2e3\">Closed</a></td></tr>\n<tr class=\"memitem:a4a219fe7e294787d2cb6bd0307057bed\" id=\"r_a4a219fe7e294787d2cb6bd0307057bed\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4a219fe7e294787d2cb6bd0307057bed\">ReceivedError</a></td></tr>\n<tr class=\"memitem:a00d89be74b84ba97c9c327d61fc22845\" id=\"r_a00d89be74b84ba97c9c327d61fc22845\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; ArraySegment&lt; byte &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a00d89be74b84ba97c9c327d61fc22845\">Received</a></td></tr>\n<tr class=\"inherit_header events_interface_nakama_1_1_i_socket_adapter\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_nakama_1_1_i_socket_adapter')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td></tr>\n<tr class=\"memitem:a130b25217829edc3307fb83d665eacea inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a130b25217829edc3307fb83d665eacea\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\">Connected</a></td></tr>\n<tr class=\"memdesc:a130b25217829edc3307fb83d665eacea inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a711266e5d8ab7fe8ca6feb1c70a79679 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a711266e5d8ab7fe8ca6feb1c70a79679\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\">Closed</a></td></tr>\n<tr class=\"memdesc:a711266e5d8ab7fe8ca6feb1c70a79679 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is disconnected.  <br /></td></tr>\n<tr class=\"memitem:a60e05f18eda93116edb329193b7c20a6 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a60e05f18eda93116edb329193b7c20a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\">ReceivedError</a></td></tr>\n<tr class=\"memdesc:a60e05f18eda93116edb329193b7c20a6 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket has an error when connected.  <br /></td></tr>\n<tr class=\"memitem:a0c9baa386c7cba1edc6bf1d6765fc008 inherit events_interface_nakama_1_1_i_socket_adapter\" id=\"r_a0c9baa386c7cba1edc6bf1d6765fc008\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; ArraySegment&lt; byte &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\">Received</a></td></tr>\n<tr class=\"memdesc:a0c9baa386c7cba1edc6bf1d6765fc008 inherit events_interface_nakama_1_1_i_socket_adapter\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket receives a message.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a22ffb61a97bc21b86fa177a5025ebac7\" name=\"a22ffb61a97bc21b86fa177a5025ebac7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a22ffb61a97bc21b86fa177a5025ebac7\">&#9670;&#160;</a></span>WebSocketStdlibAdapter() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>sendTimeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">SendTimeoutSec</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxMessageReadSize</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">MaxMessageReadSize</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0d9779f96e2101f63852fe232e38c98b\" name=\"a0d9779f96e2101f63852fe232e38c98b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d9779f96e2101f63852fe232e38c98b\">&#9670;&#160;</a></span>WebSocketStdlibAdapter() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\">ClientWebSocket</td>          <td class=\"paramname\"><span class=\"paramname\"><em>webSocket</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"afa4ce22a1f21cc76441a555bd3f193e8\" name=\"afa4ce22a1f21cc76441a555bd3f193e8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa4ce22a1f21cc76441a555bd3f193e8\">&#9670;&#160;</a></span>CloseAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.WebSocketStdlibAdapter.CloseAsync </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Close the socket with an asynchronous operation. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ae94a4c3b78f1d523257950553bea085a\" name=\"ae94a4c3b78f1d523257950553bea085a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae94a4c3b78f1d523257950553bea085a\">&#9670;&#160;</a></span>ConnectAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Nakama.WebSocketStdlibAdapter.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeout</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Connect to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The URI of the server.</td></tr>\n    <tr><td class=\"paramname\">timeout</td><td>The timeout for the connect attempt on the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a3c809f05d8a713f2e04882e40306c64f\" name=\"a3c809f05d8a713f2e04882e40306c64f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c809f05d8a713f2e04882e40306c64f\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.WebSocketStdlibAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reliable</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send data to the server with an asynchronous operation.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">buffer</td><td>The buffer with the message to send.</td></tr>\n    <tr><td class=\"paramname\">reliable</td><td>If the message should be sent reliably (will be ignored by some protocols).</td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>A cancellation token used to propagate when the operation should be canceled.</td></tr>\n  </table>\n  </dd>\n</dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a499684d8c92a1bdf65e40663d9f327d7\" name=\"a499684d8c92a1bdf65e40663d9f327d7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a499684d8c92a1bdf65e40663d9f327d7\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Nakama.WebSocketStdlibAdapter.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7ab428776e53ddbac27832f238ab1ced\" name=\"a7ab428776e53ddbac27832f238ab1ced\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7ab428776e53ddbac27832f238ab1ced\">&#9670;&#160;</a></span>IsConnected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.WebSocketStdlibAdapter.IsConnected</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the WebSocket is connected. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ac7cf95d952a33d4ab00c5ef610a8de74\" name=\"ac7cf95d952a33d4ab00c5ef610a8de74\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7cf95d952a33d4ab00c5ef610a8de74\">&#9670;&#160;</a></span>IsConnecting</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.WebSocketStdlibAdapter.IsConnecting</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the WebSocket is connecting. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\">Nakama.ISocketAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"ab79baa0d1f5fafec41b04c42308fe2e3\" name=\"ab79baa0d1f5fafec41b04c42308fe2e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab79baa0d1f5fafec41b04c42308fe2e3\">&#9670;&#160;</a></span>Closed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.WebSocketStdlibAdapter.Closed</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a64c972fdb7ba486e19bcd0671dec5409\" name=\"a64c972fdb7ba486e19bcd0671dec5409\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a64c972fdb7ba486e19bcd0671dec5409\">&#9670;&#160;</a></span>Connected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.WebSocketStdlibAdapter.Connected</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a00d89be74b84ba97c9c327d61fc22845\" name=\"a00d89be74b84ba97c9c327d61fc22845\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a00d89be74b84ba97c9c327d61fc22845\">&#9670;&#160;</a></span>Received</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;ArraySegment&lt;byte&gt; &gt; Nakama.WebSocketStdlibAdapter.Received</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<a id=\"a4a219fe7e294787d2cb6bd0307057bed\" name=\"a4a219fe7e294787d2cb6bd0307057bed\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a219fe7e294787d2cb6bd0307057bed\">&#9670;&#160;</a></span>ReceivedError</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;Exception&gt; Nakama.WebSocketStdlibAdapter.ReceivedError</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_web_socket_stdlib_adapter_8cs.html\">WebSocketStdlibAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">WebSocketStdlibAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_web_socket_stdlib_adapter.js",
    "content": "var class_nakama_1_1_web_socket_stdlib_adapter =\n[\n    [ \"WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\", null ],\n    [ \"WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b\", null ],\n    [ \"CloseAsync\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\", null ],\n    [ \"ConnectAsync\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\", null ],\n    [ \"SendAsync\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\", null ],\n    [ \"ToString\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\", null ],\n    [ \"IsConnected\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\", null ],\n    [ \"IsConnecting\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\", null ],\n    [ \"Closed\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\", null ],\n    [ \"Connected\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\", null ],\n    [ \"Received\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\", null ],\n    [ \"ReceivedError\", \"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\", null ]\n];"
  },
  {
    "path": "docs/html/class_nakama_1_1_write_storage_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_write_storage_object.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WriteStorageObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\">PermissionRead</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\">PermissionWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">Nakama.WriteStorageObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_write_storage_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.WriteStorageObject Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_nakama_1_1_write_storage_object.html','','class_nakama_1_1_write_storage_object-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.WriteStorageObject Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p> \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.WriteStorageObject:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_nakama_1_1_write_storage_object.png\" usemap=\"#Nakama_2EWriteStorageObject_map\" alt=\"\"/>\n  <map id=\"Nakama_2EWriteStorageObject_map\" name=\"Nakama_2EWriteStorageObject_map\">\n<area href=\"interface_nakama_1_1_i_api_write_storage_object.html\" title=\"The object to store.\" alt=\"Nakama.IApiWriteStorageObject\" shape=\"rect\" coords=\"0,0,193,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac0d5b4bd2a8e8b6f6f35acb29fe799b3\" id=\"r_ac0d5b4bd2a8e8b6f6f35acb29fe799b3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">Collection</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ac0d5b4bd2a8e8b6f6f35acb29fe799b3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection to store the object.  <br /></td></tr>\n<tr class=\"memitem:a3cad528f534a95f3bfae4c4db48cb7a1\" id=\"r_a3cad528f534a95f3bfae4c4db48cb7a1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3cad528f534a95f3bfae4c4db48cb7a1\">Key</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a3cad528f534a95f3bfae4c4db48cb7a1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key for the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:a8da5054f8a07031a14ed7c9b20e1b0ed\" id=\"r_a8da5054f8a07031a14ed7c9b20e1b0ed\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8da5054f8a07031a14ed7c9b20e1b0ed\">PermissionRead</a> = 1<code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a8da5054f8a07031a14ed7c9b20e1b0ed\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The read access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:ac3a29f29170b78edd7e45b7c539fe811\" id=\"r_ac3a29f29170b78edd7e45b7c539fe811\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3a29f29170b78edd7e45b7c539fe811\">PermissionWrite</a> = 1<code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ac3a29f29170b78edd7e45b7c539fe811\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The write access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:a8957c485fd56e513c1e17b47a22f9026\" id=\"r_a8957c485fd56e513c1e17b47a22f9026\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8957c485fd56e513c1e17b47a22f9026\">Value</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a8957c485fd56e513c1e17b47a22f9026\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The value of the object.  <br /></td></tr>\n<tr class=\"memitem:a16000a938ed162fde6b9aa50675e61e2\" id=\"r_a16000a938ed162fde6b9aa50675e61e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a16000a938ed162fde6b9aa50675e61e2\">Version</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a16000a938ed162fde6b9aa50675e61e2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object to check. Possible values are: [\"\", \"*\", \"#hash#\"]. if-match and if-none-match.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"></div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac0d5b4bd2a8e8b6f6f35acb29fe799b3\" name=\"ac0d5b4bd2a8e8b6f6f35acb29fe799b3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.WriteStorageObject.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection to store the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a3cad528f534a95f3bfae4c4db48cb7a1\" name=\"a3cad528f534a95f3bfae4c4db48cb7a1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3cad528f534a95f3bfae4c4db48cb7a1\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.WriteStorageObject.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key for the object within the collection. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a8da5054f8a07031a14ed7c9b20e1b0ed\" name=\"a8da5054f8a07031a14ed7c9b20e1b0ed\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8da5054f8a07031a14ed7c9b20e1b0ed\">&#9670;&#160;</a></span>PermissionRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.WriteStorageObject.PermissionRead = 1</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The read access permissions for the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"ac3a29f29170b78edd7e45b7c539fe811\" name=\"ac3a29f29170b78edd7e45b7c539fe811\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3a29f29170b78edd7e45b7c539fe811\">&#9670;&#160;</a></span>PermissionWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.WriteStorageObject.PermissionWrite = 1</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The write access permissions for the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a8957c485fd56e513c1e17b47a22f9026\" name=\"a8957c485fd56e513c1e17b47a22f9026\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8957c485fd56e513c1e17b47a22f9026\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.WriteStorageObject.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The value of the object. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a16000a938ed162fde6b9aa50675e61e2\" name=\"a16000a938ed162fde6b9aa50675e61e2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16000a938ed162fde6b9aa50675e61e2\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.WriteStorageObject.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object to check. Possible values are: [\"\", \"*\", \"#hash#\"]. if-match and if-none-match. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\">Nakama.IApiWriteStorageObject</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_write_storage_object_8cs.html\">WriteStorageObject.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"class_nakama_1_1_write_storage_object.html\">WriteStorageObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_nakama_1_1_write_storage_object.js",
    "content": "var class_nakama_1_1_write_storage_object =\n[\n    [ \"Collection\", \"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\", null ],\n    [ \"Key\", \"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\", null ],\n    [ \"PermissionRead\", \"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\", null ],\n    [ \"PermissionWrite\", \"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\", null ],\n    [ \"Value\", \"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\", null ],\n    [ \"Version\", \"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_api_response_exception-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_api_response_exception.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ApiResponseException Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\">ApiResponseException</a>(long statusCode, string content, int grpcCode)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926\">ApiResponseException</a>(string message, Exception e)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df\">ApiResponseException</a>(string content)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\">GrpcStatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\">StatusCode</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">Satori.ApiResponseException</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_api_response_exception.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.ApiResponseException Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_api_response_exception.html','','class_satori_1_1_api_response_exception-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ApiResponseException Class Reference<span class=\"mlabels\"><span class=\"mlabel sealed\">sealed</span></span></div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An exception generated for <code>HttpResponse</code> objects don't return a success status.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.ApiResponseException:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_satori_1_1_api_response_exception.png\" alt=\"\"/>\n </div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7dff8536db4f58609912a614892fd936\" id=\"r_a7dff8536db4f58609912a614892fd936\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7dff8536db4f58609912a614892fd936\">ApiResponseException</a> (long statusCode, string content, int grpcCode)</td></tr>\n<tr class=\"memitem:ae1355f7662390b58fa0b6ba5c9666926\" id=\"r_ae1355f7662390b58fa0b6ba5c9666926\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae1355f7662390b58fa0b6ba5c9666926\">ApiResponseException</a> (string message, Exception e)</td></tr>\n<tr class=\"memitem:add8410b006b9f8688943eb865bed21df\" id=\"r_add8410b006b9f8688943eb865bed21df\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#add8410b006b9f8688943eb865bed21df\">ApiResponseException</a> (string content)</td></tr>\n<tr class=\"memitem:a28bbbfe3b8dce84d5982886ca3d98cc1\" id=\"r_a28bbbfe3b8dce84d5982886ca3d98cc1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28bbbfe3b8dce84d5982886ca3d98cc1\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af56ef69f0c3f973ef9a9c5695d3d911f\" id=\"r_af56ef69f0c3f973ef9a9c5695d3d911f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af56ef69f0c3f973ef9a9c5695d3d911f\">StatusCode</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a009bc0a50d29f68dd7bc839e7c667042\" id=\"r_a009bc0a50d29f68dd7bc839e7c667042\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a009bc0a50d29f68dd7bc839e7c667042\">GrpcStatusCode</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An exception generated for <code>HttpResponse</code> objects don't return a success status. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"a7dff8536db4f58609912a614892fd936\" name=\"a7dff8536db4f58609912a614892fd936\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7dff8536db4f58609912a614892fd936\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>statusCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>grpcCode</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae1355f7662390b58fa0b6ba5c9666926\" name=\"ae1355f7662390b58fa0b6ba5c9666926\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae1355f7662390b58fa0b6ba5c9666926\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>message</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"add8410b006b9f8688943eb865bed21df\" name=\"add8410b006b9f8688943eb865bed21df\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#add8410b006b9f8688943eb865bed21df\">&#9670;&#160;</a></span>ApiResponseException() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.ApiResponseException.ApiResponseException </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a28bbbfe3b8dce84d5982886ca3d98cc1\" name=\"a28bbbfe3b8dce84d5982886ca3d98cc1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28bbbfe3b8dce84d5982886ca3d98cc1\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Satori.ApiResponseException.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a009bc0a50d29f68dd7bc839e7c667042\" name=\"a009bc0a50d29f68dd7bc839e7c667042\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a009bc0a50d29f68dd7bc839e7c667042\">&#9670;&#160;</a></span>GrpcStatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.ApiResponseException.GrpcStatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"af56ef69f0c3f973ef9a9c5695d3d911f\" name=\"af56ef69f0c3f973ef9a9c5695d3d911f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af56ef69f0c3f973ef9a9c5695d3d911f\">&#9670;&#160;</a></span>StatusCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.ApiResponseException.StatusCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_api_response_exception.html\">ApiResponseException</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_api_response_exception.js",
    "content": "var class_satori_1_1_api_response_exception =\n[\n    [ \"ApiResponseException\", \"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\", null ],\n    [ \"ApiResponseException\", \"class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926\", null ],\n    [ \"ApiResponseException\", \"class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df\", null ],\n    [ \"ToString\", \"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\", null ],\n    [ \"GrpcStatusCode\", \"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\", null ],\n    [ \"StatusCode\", \"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_client-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_client.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Client Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\">ApiKey</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\">AuthenticateAsync</a>(string id, Dictionary&lt; string, string &gt; defaultProperties=default, Dictionary&lt; string, string &gt; customProperties=default, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\">AuthenticateLogoutAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\">AutoRefreshSession</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\">Client</a>(string scheme, string host, int port, string apiKey)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d\">Client</a>(string scheme, string host, int port, string apiKey, IHttpAdapter adapter, bool autoRefreshSession=true)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0\">DefaultExpiredTimeSpan</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de\">DefaultTimeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\">DeleteIdentityAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\">DeleteMessageAsync</a>(ISession session, string id, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\">EventAsync</a>(ISession session, Event @event, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\">EventsAsync</a>(ISession session, IEnumerable&lt; Event &gt; events, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\">GetAllExperimentsAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\">GetExperimentsAsync</a>(ISession session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\">GetFlagAsync</a>(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\">GetFlagAsync</a>(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\">GetFlagDefaultAsync</a>(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\">GetFlagDefaultAsync</a>(string name, string defaultValue, CancellationToken? cancellationToken=default)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\">GetFlagOverridesAsync</a>(ISession session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\">GetFlagsAsync</a>(ISession session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\">GetFlagsDefaultAsync</a>(IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\">GetLiveEventsAsync</a>(ISession session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\">GetMessageListAsync</a>(ISession session, int limit=1, bool forward=true, string cursor=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\">GlobalRetryConfiguration</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\">Host</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\">IdentifyAsync</a>(ISession session, string id, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\">ListPropertiesAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\">Port</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\">ReceivedSessionUpdated</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\">Scheme</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\">SessionRefreshAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\">Timeout</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\">UpdateMessageAsync</a>(ISession session, string id, string consumeTime, string readTime, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\">UpdatePropertiesAsync</a>(ISession session, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, bool recompute=false, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Satori.Client</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_client.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.Client Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_client.html','','class_satori_1_1_client-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Client Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p> \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.Client:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_satori_1_1_client.png\" usemap=\"#Satori_2EClient_map\" alt=\"\"/>\n  <map id=\"Satori_2EClient_map\" name=\"Satori_2EClient_map\">\n<area href=\"interface_satori_1_1_i_client.html\" title=\"A client for the API in Satori server.\" alt=\"Satori.IClient\" shape=\"rect\" coords=\"0,0,84,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ad4a1744be01088948fd4724253720a84\" id=\"r_ad4a1744be01088948fd4724253720a84\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad4a1744be01088948fd4724253720a84\">Client</a> (string scheme, string host, int port, string apiKey)</td></tr>\n<tr class=\"memitem:a52592e348df73a0d8776b7620666607d\" id=\"r_a52592e348df73a0d8776b7620666607d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a52592e348df73a0d8776b7620666607d\">Client</a> (string scheme, string host, int port, string apiKey, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a> adapter, bool autoRefreshSession=true)</td></tr>\n<tr class=\"memitem:a48fe3ab83de7e5a0b70d45e939a93f57\" id=\"r_a48fe3ab83de7e5a0b70d45e939a93f57\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a48fe3ab83de7e5a0b70d45e939a93f57\">AuthenticateAsync</a> (string id, Dictionary&lt; string, string &gt; defaultProperties=default, Dictionary&lt; string, string &gt; customProperties=default, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a48fe3ab83de7e5a0b70d45e939a93f57\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>An optional user id.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>Optional default properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>Optional custom properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a927be3e3f8d4ddba36221d6c42310a02\" id=\"r_a927be3e3f8d4ddba36221d6c42310a02\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a927be3e3f8d4ddba36221d6c42310a02\">AuthenticateLogoutAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a927be3e3f8d4ddba36221d6c42310a02\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ab20d4e928588c8fb1af338df608c19fc\" id=\"r_ab20d4e928588c8fb1af338df608c19fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab20d4e928588c8fb1af338df608c19fc\">EventAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> @event, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ab20d4e928588c8fb1af338df608c19fc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send an event for this session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">event</td><td>The event to send.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a149dcbf99ccba5480af6e18f1afea7d1\" id=\"r_a149dcbf99ccba5480af6e18f1afea7d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a149dcbf99ccba5480af6e18f1afea7d1\">EventsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> &gt; events, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a149dcbf99ccba5480af6e18f1afea7d1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a batch of events for this session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">events</td><td>The batch of events which will be sent.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afc8e1cdbda848d4b777304a4e5f2702b\" id=\"r_afc8e1cdbda848d4b777304a4e5f2702b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc8e1cdbda848d4b777304a4e5f2702b\">GetAllExperimentsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:afc8e1cdbda848d4b777304a4e5f2702b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all experiments data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac7f477d78e8497af5bfe02826106d42a\" id=\"r_ac7f477d78e8497af5bfe02826106d42a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7f477d78e8497af5bfe02826106d42a\">GetExperimentsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ac7f477d78e8497af5bfe02826106d42a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get specific experiments data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Experiment names.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a5a77e3939bae7e22c1a8f6d7f8bfb787\" id=\"r_a5a77e3939bae7e22c1a8f6d7f8bfb787\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5a77e3939bae7e22c1a8f6d7f8bfb787\">GetFlagAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string name, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a5a77e3939bae7e22c1a8f6d7f8bfb787\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single flag for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single feature flag.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2b05b22f9f9071f6c26614a13997c536\" id=\"r_a2b05b22f9f9071f6c26614a13997c536\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2b05b22f9f9071f6c26614a13997c536\">GetFlagAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string name, string defaultValue, CancellationToken? cancellationToken=default)</td></tr>\n<tr class=\"memdesc:a2b05b22f9f9071f6c26614a13997c536\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single flag for this identity.Unlike <code>GetFlags(ISession,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unavailable.   <br /></td></tr>\n<tr class=\"memitem:a3790964df626d23ed923aff09c3218f3\" id=\"r_a3790964df626d23ed923aff09c3218f3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3790964df626d23ed923aff09c3218f3\">GetFlagDefaultAsync</a> (string name, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a3790964df626d23ed923aff09c3218f3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single default flag for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single default feature flag.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ac1070241851b6656fc6cd217828d3ab4\" id=\"r_ac1070241851b6656fc6cd217828d3ab4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac1070241851b6656fc6cd217828d3ab4\">GetFlagDefaultAsync</a> (string name, string defaultValue, CancellationToken? cancellationToken=default)</td></tr>\n<tr class=\"memdesc:ac1070241851b6656fc6cd217828d3ab4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single default flag for this identity.Unlike <code>GetFlagDefaultAsync(string,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unreachable.   <br /></td></tr>\n<tr class=\"memitem:abb91421131325ba25dc20ec46f4872a4\" id=\"r_abb91421131325ba25dc20ec46f4872a4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb91421131325ba25dc20ec46f4872a4\">GetFlagsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:abb91421131325ba25dc20ec46f4872a4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List all available flags for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all flags available to this identity.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad6fb7297a85f8de0384e05e6ed2c4d23\" id=\"r_ad6fb7297a85f8de0384e05e6ed2c4d23\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad6fb7297a85f8de0384e05e6ed2c4d23\">GetFlagsDefaultAsync</a> (IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ad6fb7297a85f8de0384e05e6ed2c4d23\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List all available default flags.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all available default flags.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a0a5e33ee32443091f0744d85115b885b\" id=\"r_a0a5e33ee32443091f0744d85115b885b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0a5e33ee32443091f0744d85115b885b\">IdentifyAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a0a5e33ee32443091f0744d85115b885b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Identify a session with a new ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. </td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom event properties.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the new session for the user.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afa20e4e8cbb6b6de8a1614463551ce2d\" id=\"r_afa20e4e8cbb6b6de8a1614463551ce2d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afa20e4e8cbb6b6de8a1614463551ce2d\">GetLiveEventsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:afa20e4e8cbb6b6de8a1614463551ce2d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List available live events.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a6cadb57f6fb58c64fd78b6a195c5e8e6\" id=\"r_a6cadb57f6fb58c64fd78b6a195c5e8e6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6cadb57f6fb58c64fd78b6a195c5e8e6\">ListPropertiesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a6cadb57f6fb58c64fd78b6a195c5e8e6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List properties associated with this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a4b9afaf4d361d1991cf74a01f1163d64\" id=\"r_a4b9afaf4d361d1991cf74a01f1163d64\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4b9afaf4d361d1991cf74a01f1163d64\">SessionRefreshAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a4b9afaf4d361d1991cf74a01f1163d64\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh a user's session using a refresh token retrieved from a previous authentication request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a2a198da8925ebba18f6d90ada234c69b\" id=\"r_a2a198da8925ebba18f6d90ada234c69b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2a198da8925ebba18f6d90ada234c69b\">UpdatePropertiesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, bool recompute=false, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a2a198da8925ebba18f6d90ada234c69b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update properties associated with this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties to update.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom properties to update.</td></tr>\n    <tr><td class=\"paramname\">recompute</td><td>Whether or not to recompute the user's audience membership immediately after property update.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a0e011ac391e342ec74ed6de30a4151f6\" id=\"r_a0e011ac391e342ec74ed6de30a4151f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0e011ac391e342ec74ed6de30a4151f6\">DeleteIdentityAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a0e011ac391e342ec74ed6de30a4151f6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the caller's identity and associated data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a8df44a521ff1587a924d6263cb1c37aa\" id=\"r_a8df44a521ff1587a924d6263cb1c37aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8df44a521ff1587a924d6263cb1c37aa\">GetMessageListAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, int limit=1, bool forward=true, string cursor=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a8df44a521ff1587a924d6263cb1c37aa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all the messages for an identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>Max number of messages to return. Between 1 and 100.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>True if listing should be older messages to newer, false if reverse.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A pagination cursor, if any.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list of messages.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aac785b841cecfc38b3b5c5a8c097bdd7\" id=\"r_aac785b841cecfc38b3b5c5a8c097bdd7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aac785b841cecfc38b3b5c5a8c097bdd7\">UpdateMessageAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, string consumeTime, string readTime, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:aac785b841cecfc38b3b5c5a8c097bdd7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status of a message.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The message's unique identifier.</td></tr>\n    <tr><td class=\"paramname\">consumeTime</td><td>The time the message was consumed by the identity.</td></tr>\n    <tr><td class=\"paramname\">readTime</td><td>The time the message was read at the client.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:afabdd3165dd3c625765fa6a953234747\" id=\"r_afabdd3165dd3c625765fa6a953234747\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afabdd3165dd3c625765fa6a953234747\">DeleteMessageAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:afabdd3165dd3c625765fa6a953234747\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a scheduled message.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The identifier of the message.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:aa8f193f06a9b3c6f63a78e2becf05e5d\" id=\"r_aa8f193f06a9b3c6f63a78e2becf05e5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa8f193f06a9b3c6f63a78e2becf05e5d\">GetFlagOverridesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:aa8f193f06a9b3c6f63a78e2becf05e5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all available flags and their value overrides for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list all available flags and their value overrides for this identity.</dd></dl>\n  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-attribs\" class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:a836edc3382ac9e74a5d460d74d1e38a0\" id=\"r_a836edc3382ac9e74a5d460d74d1e38a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static TimeSpan&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a836edc3382ac9e74a5d460d74d1e38a0\">DefaultExpiredTimeSpan</a> = TimeSpan.FromMinutes(5)</td></tr>\n<tr class=\"memdesc:a836edc3382ac9e74a5d460d74d1e38a0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default expired timespan used to check session lifetime.  <br /></td></tr>\n<tr class=\"memitem:a1b8575bc43602e11fa892861735014de\" id=\"r_a1b8575bc43602e11fa892861735014de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">const int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b8575bc43602e11fa892861735014de\">DefaultTimeout</a> = 15</td></tr>\n<tr class=\"memdesc:a1b8575bc43602e11fa892861735014de\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The default timeout of the server.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6a3b18b2c87e5235ecc6558bae414f35\" id=\"r_a6a3b18b2c87e5235ecc6558bae414f35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6a3b18b2c87e5235ecc6558bae414f35\">ApiKey</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6a3b18b2c87e5235ecc6558bae414f35\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key used to authenticate with the server without a session.  <br /></td></tr>\n<tr class=\"memitem:a1fc4e5a73077533d8671e64686528d1a\" id=\"r_a1fc4e5a73077533d8671e64686528d1a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1fc4e5a73077533d8671e64686528d1a\">AutoRefreshSession</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1fc4e5a73077533d8671e64686528d1a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the session should be refreshed with an active refresh token.  <br /></td></tr>\n<tr class=\"memitem:a5e8abc7f99f37fd106c2dcb4af99abac\" id=\"r_a5e8abc7f99f37fd106c2dcb4af99abac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5e8abc7f99f37fd106c2dcb4af99abac\">GlobalRetryConfiguration</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a5e8abc7f99f37fd106c2dcb4af99abac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The global retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>.  <br /></td></tr>\n<tr class=\"memitem:a7e2d5442493469d57009038a05752561\" id=\"r_a7e2d5442493469d57009038a05752561\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7e2d5442493469d57009038a05752561\">Host</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7e2d5442493469d57009038a05752561\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The host address of the server.  <br /></td></tr>\n<tr class=\"memitem:a76decfd57c04250e3ac3d98cf0106d8b\" id=\"r_a76decfd57c04250e3ac3d98cf0106d8b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a76decfd57c04250e3ac3d98cf0106d8b\">Port</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a76decfd57c04250e3ac3d98cf0106d8b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The port number of the server.  <br /></td></tr>\n<tr class=\"memitem:a7a5062ffa65ca4882f75dc6da7bff858\" id=\"r_a7a5062ffa65ca4882f75dc6da7bff858\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7a5062ffa65ca4882f75dc6da7bff858\">Scheme</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7a5062ffa65ca4882f75dc6da7bff858\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".  <br /></td></tr>\n<tr class=\"memitem:a92d087e7452bccafc3148dbab3dac12c\" id=\"r_a92d087e7452bccafc3148dbab3dac12c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a92d087e7452bccafc3148dbab3dac12c\">Timeout</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a92d087e7452bccafc3148dbab3dac12c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Set the timeout in seconds on requests sent to the server.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:ae9a328a8cf234ecc9e8ef811f4cb05b9\" id=\"r_ae9a328a8cf234ecc9e8ef811f4cb05b9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae9a328a8cf234ecc9e8ef811f4cb05b9\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"inherit_header events_interface_satori_1_1_i_client\"><td colspan=\"2\" onclick=\"javascript:dynsection.toggleInherit('events_interface_satori_1_1_i_client')\"><span class=\"dynarrow\"><span class=\"arrowhead closed\"></span></span>Events inherited from <a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td></tr>\n<tr class=\"memitem:af0bb8217badaf363744c5b982d6d4f0b inherit events_interface_satori_1_1_i_client\" id=\"r_af0bb8217badaf363744c5b982d6d4f0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"memdesc:af0bb8217badaf363744c5b982d6d4f0b inherit events_interface_satori_1_1_i_client\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new session after the current one has expired.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"></div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ad4a1744be01088948fd4724253720a84\" name=\"ad4a1744be01088948fd4724253720a84\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad4a1744be01088948fd4724253720a84\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>scheme</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiKey</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a52592e348df73a0d8776b7620666607d\" name=\"a52592e348df73a0d8776b7620666607d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a52592e348df73a0d8776b7620666607d\">&#9670;&#160;</a></span>Client() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.Client.Client </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>scheme</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>host</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>port</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>adapter</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>autoRefreshSession</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a48fe3ab83de7e5a0b70d45e939a93f57\" name=\"a48fe3ab83de7e5a0b70d45e939a93f57\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a48fe3ab83de7e5a0b70d45e939a93f57\">&#9670;&#160;</a></span>AuthenticateAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.Client.AuthenticateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate against the server.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>An optional user id.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>Optional default properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>Optional custom properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a927be3e3f8d4ddba36221d6c42310a02\" name=\"a927be3e3f8d4ddba36221d6c42310a02\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a927be3e3f8d4ddba36221d6c42310a02\">&#9670;&#160;</a></span>AuthenticateLogoutAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.Client.AuthenticateLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a0e011ac391e342ec74ed6de30a4151f6\" name=\"a0e011ac391e342ec74ed6de30a4151f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0e011ac391e342ec74ed6de30a4151f6\">&#9670;&#160;</a></span>DeleteIdentityAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.DeleteIdentityAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete the caller's identity and associated data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afabdd3165dd3c625765fa6a953234747\" name=\"afabdd3165dd3c625765fa6a953234747\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afabdd3165dd3c625765fa6a953234747\">&#9670;&#160;</a></span>DeleteMessageAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.DeleteMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Delete a scheduled message.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The identifier of the message.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ab20d4e928588c8fb1af338df608c19fc\" name=\"ab20d4e928588c8fb1af338df608c19fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab20d4e928588c8fb1af338df608c19fc\">&#9670;&#160;</a></span>EventAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.EventAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> @</td>          <td class=\"paramname\"><span class=\"paramname\"><em>event</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send an event for this session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">event</td><td>The event to send.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a149dcbf99ccba5480af6e18f1afea7d1\" name=\"a149dcbf99ccba5480af6e18f1afea7d1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a149dcbf99ccba5480af6e18f1afea7d1\">&#9670;&#160;</a></span>EventsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.EventsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>events</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send a batch of events for this session.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">events</td><td>The batch of events which will be sent.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afc8e1cdbda848d4b777304a4e5f2702b\" name=\"afc8e1cdbda848d4b777304a4e5f2702b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc8e1cdbda848d4b777304a4e5f2702b\">&#9670;&#160;</a></span>GetAllExperimentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt; Satori.Client.GetAllExperimentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get all experiments data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac7f477d78e8497af5bfe02826106d42a\" name=\"ac7f477d78e8497af5bfe02826106d42a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7f477d78e8497af5bfe02826106d42a\">&#9670;&#160;</a></span>GetExperimentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt; Satori.Client.GetExperimentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get specific experiments data.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Experiment names.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a5a77e3939bae7e22c1a8f6d7f8bfb787\" name=\"a5a77e3939bae7e22c1a8f6d7f8bfb787\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5a77e3939bae7e22c1a8f6d7f8bfb787\">&#9670;&#160;</a></span>GetFlagAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.Client.GetFlagAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get a single flag for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single feature flag.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a2b05b22f9f9071f6c26614a13997c536\" name=\"a2b05b22f9f9071f6c26614a13997c536\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2b05b22f9f9071f6c26614a13997c536\">&#9670;&#160;</a></span>GetFlagAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.Client.GetFlagAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultValue</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get a single flag for this identity.Unlike <code>GetFlags(ISession,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unavailable.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a3790964df626d23ed923aff09c3218f3\" name=\"a3790964df626d23ed923aff09c3218f3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3790964df626d23ed923aff09c3218f3\">&#9670;&#160;</a></span>GetFlagDefaultAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.Client.GetFlagDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get a single default flag for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single default feature flag.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ac1070241851b6656fc6cd217828d3ab4\" name=\"ac1070241851b6656fc6cd217828d3ab4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac1070241851b6656fc6cd217828d3ab4\">&#9670;&#160;</a></span>GetFlagDefaultAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.Client.GetFlagDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultValue</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get a single default flag for this identity.Unlike <code>GetFlagDefaultAsync(string,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unreachable.  </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aa8f193f06a9b3c6f63a78e2becf05e5d\" name=\"aa8f193f06a9b3c6f63a78e2becf05e5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa8f193f06a9b3c6f63a78e2becf05e5d\">&#9670;&#160;</a></span>GetFlagOverridesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a> &gt; Satori.Client.GetFlagOverridesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get all available flags and their value overrides for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list all available flags and their value overrides for this identity.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"abb91421131325ba25dc20ec46f4872a4\" name=\"abb91421131325ba25dc20ec46f4872a4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb91421131325ba25dc20ec46f4872a4\">&#9670;&#160;</a></span>GetFlagsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt; Satori.Client.GetFlagsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List all available flags for this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all flags available to this identity.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"ad6fb7297a85f8de0384e05e6ed2c4d23\" name=\"ad6fb7297a85f8de0384e05e6ed2c4d23\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad6fb7297a85f8de0384e05e6ed2c4d23\">&#9670;&#160;</a></span>GetFlagsDefaultAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt; Satori.Client.GetFlagsDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List all available default flags.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all available default flags.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"afa20e4e8cbb6b6de8a1614463551ce2d\" name=\"afa20e4e8cbb6b6de8a1614463551ce2d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa20e4e8cbb6b6de8a1614463551ce2d\">&#9670;&#160;</a></span>GetLiveEventsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a> &gt; Satori.Client.GetLiveEventsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List available live events.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a8df44a521ff1587a924d6263cb1c37aa\" name=\"a8df44a521ff1587a924d6263cb1c37aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8df44a521ff1587a924d6263cb1c37aa\">&#9670;&#160;</a></span>GetMessageListAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a> &gt; Satori.Client.GetMessageListAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Get all the messages for an identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>Max number of messages to return. Between 1 and 100.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>True if listing should be older messages to newer, false if reverse.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A pagination cursor, if any.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list of messages.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a0a5e33ee32443091f0744d85115b885b\" name=\"a0a5e33ee32443091f0744d85115b885b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0a5e33ee32443091f0744d85115b885b\">&#9670;&#160;</a></span>IdentifyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.Client.IdentifyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Identify a session with a new ID.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. </td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom event properties.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the new session for the user.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a6cadb57f6fb58c64fd78b6a195c5e8e6\" name=\"a6cadb57f6fb58c64fd78b6a195c5e8e6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6cadb57f6fb58c64fd78b6a195c5e8e6\">&#9670;&#160;</a></span>ListPropertiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> &gt; Satori.Client.ListPropertiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List properties associated with this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a4b9afaf4d361d1991cf74a01f1163d64\" name=\"a4b9afaf4d361d1991cf74a01f1163d64\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b9afaf4d361d1991cf74a01f1163d64\">&#9670;&#160;</a></span>SessionRefreshAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.Client.SessionRefreshAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh a user's session using a refresh token retrieved from a previous authentication request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"aac785b841cecfc38b3b5c5a8c097bdd7\" name=\"aac785b841cecfc38b3b5c5a8c097bdd7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aac785b841cecfc38b3b5c5a8c097bdd7\">&#9670;&#160;</a></span>UpdateMessageAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.UpdateMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>consumeTime</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>readTime</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update the status of a message.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The message's unique identifier.</td></tr>\n    <tr><td class=\"paramname\">consumeTime</td><td>The time the message was consumed by the identity.</td></tr>\n    <tr><td class=\"paramname\">readTime</td><td>The time the message was read at the client.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a2a198da8925ebba18f6d90ada234c69b\" name=\"a2a198da8925ebba18f6d90ada234c69b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2a198da8925ebba18f6d90ada234c69b\">&#9670;&#160;</a></span>UpdatePropertiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task Satori.Client.UpdatePropertiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>recompute</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Update properties associated with this identity.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties to update.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom properties to update.</td></tr>\n    <tr><td class=\"paramname\">recompute</td><td>Whether or not to recompute the user's audience membership immediately after property update.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-variable-members\" id=\"doc-variable-members\"></a><h2 id=\"header-doc-variable-members\" class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"a836edc3382ac9e74a5d460d74d1e38a0\" name=\"a836edc3382ac9e74a5d460d74d1e38a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a836edc3382ac9e74a5d460d74d1e38a0\">&#9670;&#160;</a></span>DefaultExpiredTimeSpan</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TimeSpan Satori.Client.DefaultExpiredTimeSpan = TimeSpan.FromMinutes(5)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default expired timespan used to check session lifetime. </p>\n\n</div>\n</div>\n<a id=\"a1b8575bc43602e11fa892861735014de\" name=\"a1b8575bc43602e11fa892861735014de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b8575bc43602e11fa892861735014de\">&#9670;&#160;</a></span>DefaultTimeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">const int Satori.Client.DefaultTimeout = 15</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The default timeout of the server. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6a3b18b2c87e5235ecc6558bae414f35\" name=\"a6a3b18b2c87e5235ecc6558bae414f35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6a3b18b2c87e5235ecc6558bae414f35\">&#9670;&#160;</a></span>ApiKey</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Client.ApiKey</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key used to authenticate with the server without a session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a1fc4e5a73077533d8671e64686528d1a\" name=\"a1fc4e5a73077533d8671e64686528d1a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1fc4e5a73077533d8671e64686528d1a\">&#9670;&#160;</a></span>AutoRefreshSession</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.Client.AutoRefreshSession</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the session should be refreshed with an active refresh token. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a5e8abc7f99f37fd106c2dcb4af99abac\" name=\"a5e8abc7f99f37fd106c2dcb4af99abac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5e8abc7f99f37fd106c2dcb4af99abac\">&#9670;&#160;</a></span>GlobalRetryConfiguration</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> Satori.Client.GlobalRetryConfiguration</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n<b>Initial value:</b><div class=\"fragment\"><div class=\"line\">= <span class=\"keyword\">new</span> <a class=\"code hl_class\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a>(</div>\n<div class=\"line\">            baseDelayMs: 500,</div>\n<div class=\"line\">            jitter: RetryJitter.FullJitter,</div>\n<div class=\"line\">            listener: <span class=\"keyword\">null</span>,</div>\n<div class=\"line\">            maxRetries: 4)</div>\n<div class=\"ttc\" id=\"aclass_nakama_1_1_retry_configuration_html\"><div class=\"ttname\"><a href=\"class_nakama_1_1_retry_configuration.html\">Nakama.RetryConfiguration</a></div><div class=\"ttdoc\">A configuration for controlling retriable requests.</div><div class=\"ttdef\"><b>Definition</b> Nakama/RetryConfiguration.cs:30</div></div>\n</div><!-- fragment -->\n<p>The global retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a7e2d5442493469d57009038a05752561\" name=\"a7e2d5442493469d57009038a05752561\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7e2d5442493469d57009038a05752561\">&#9670;&#160;</a></span>Host</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Client.Host</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The host address of the server. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a76decfd57c04250e3ac3d98cf0106d8b\" name=\"a76decfd57c04250e3ac3d98cf0106d8b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a76decfd57c04250e3ac3d98cf0106d8b\">&#9670;&#160;</a></span>Port</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.Client.Port</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The port number of the server. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a7a5062ffa65ca4882f75dc6da7bff858\" name=\"a7a5062ffa65ca4882f75dc6da7bff858\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7a5062ffa65ca4882f75dc6da7bff858\">&#9670;&#160;</a></span>Scheme</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Client.Scheme</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The protocol scheme used to connect with the server. Must be either \"http\" or \"https\". </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a id=\"a92d087e7452bccafc3148dbab3dac12c\" name=\"a92d087e7452bccafc3148dbab3dac12c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a92d087e7452bccafc3148dbab3dac12c\">&#9670;&#160;</a></span>Timeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.Client.Timeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Set the timeout in seconds on requests sent to the server. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\">Satori.IClient</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"ae9a328a8cf234ecc9e8ef811f4cb05b9\" name=\"ae9a328a8cf234ecc9e8ef811f4cb05b9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae9a328a8cf234ecc9e8ef811f4cb05b9\">&#9670;&#160;</a></span>ReceivedSessionUpdated</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a>&gt; Satori.Client.ReceivedSessionUpdated</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p></p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_client_8cs.html\">Satori/Client.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_client.html\">Client</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_client.js",
    "content": "var class_satori_1_1_client =\n[\n    [ \"Client\", \"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\", null ],\n    [ \"Client\", \"class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d\", null ],\n    [ \"AuthenticateAsync\", \"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\", null ],\n    [ \"AuthenticateLogoutAsync\", \"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\", null ],\n    [ \"DeleteIdentityAsync\", \"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\", null ],\n    [ \"DeleteMessageAsync\", \"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\", null ],\n    [ \"EventAsync\", \"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\", null ],\n    [ \"EventsAsync\", \"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\", null ],\n    [ \"GetAllExperimentsAsync\", \"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\", null ],\n    [ \"GetExperimentsAsync\", \"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\", null ],\n    [ \"GetFlagAsync\", \"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\", null ],\n    [ \"GetFlagAsync\", \"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\", null ],\n    [ \"GetFlagDefaultAsync\", \"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\", null ],\n    [ \"GetFlagDefaultAsync\", \"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\", null ],\n    [ \"GetFlagOverridesAsync\", \"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\", null ],\n    [ \"GetFlagsAsync\", \"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\", null ],\n    [ \"GetFlagsDefaultAsync\", \"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\", null ],\n    [ \"GetLiveEventsAsync\", \"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\", null ],\n    [ \"GetMessageListAsync\", \"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\", null ],\n    [ \"IdentifyAsync\", \"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\", null ],\n    [ \"ListPropertiesAsync\", \"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\", null ],\n    [ \"SessionRefreshAsync\", \"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\", null ],\n    [ \"UpdateMessageAsync\", \"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\", null ],\n    [ \"UpdatePropertiesAsync\", \"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\", null ],\n    [ \"ApiKey\", \"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\", null ],\n    [ \"AutoRefreshSession\", \"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\", null ],\n    [ \"GlobalRetryConfiguration\", \"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\", null ],\n    [ \"Host\", \"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\", null ],\n    [ \"Port\", \"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\", null ],\n    [ \"Scheme\", \"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\", null ],\n    [ \"Timeout\", \"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\", null ],\n    [ \"ReceivedSessionUpdated\", \"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Event Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\">Event</a>(string name, DateTime timestamp, string value=null, Dictionary&lt; string, string &gt; metadata=null, string id=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\">Timestamp</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Satori.Event</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.Event Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_event.html','','class_satori_1_1_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Event Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An event to be published to the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ae52296874234666607b8115b243beb60\" id=\"r_ae52296874234666607b8115b243beb60\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae52296874234666607b8115b243beb60\">Event</a> (string name, DateTime timestamp, string value=null, Dictionary&lt; string, string &gt; metadata=null, string id=null)</td></tr>\n<tr class=\"memdesc:ae52296874234666607b8115b243beb60\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The event constructor.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aa85c546929734196994af9feb4e5836f\" id=\"r_aa85c546929734196994af9feb4e5836f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa85c546929734196994af9feb4e5836f\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa85c546929734196994af9feb4e5836f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the event.  <br /></td></tr>\n<tr class=\"memitem:a73d5b866bb7792202a0559384af0da36\" id=\"r_a73d5b866bb7792202a0559384af0da36\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">DateTime&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a73d5b866bb7792202a0559384af0da36\">Timestamp</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a73d5b866bb7792202a0559384af0da36\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time when the event was triggered.  <br /></td></tr>\n<tr class=\"memitem:ae67aa2eea397d195534f8c618d092ca6\" id=\"r_ae67aa2eea397d195534f8c618d092ca6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae67aa2eea397d195534f8c618d092ca6\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae67aa2eea397d195534f8c618d092ca6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional value.  <br /></td></tr>\n<tr class=\"memitem:af36bf65cd20cb4f02b11b27bcc63d873\" id=\"r_af36bf65cd20cb4f02b11b27bcc63d873\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Dictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af36bf65cd20cb4f02b11b27bcc63d873\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af36bf65cd20cb4f02b11b27bcc63d873\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> metadata, if any.  <br /></td></tr>\n<tr class=\"memitem:a6c15ddba3ae789be6f20bd33ba6c276d\" id=\"r_a6c15ddba3ae789be6f20bd33ba6c276d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6c15ddba3ae789be6f20bd33ba6c276d\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6c15ddba3ae789be6f20bd33ba6c276d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An event to be published to the server. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ae52296874234666607b8115b243beb60\" name=\"ae52296874234666607b8115b243beb60\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae52296874234666607b8115b243beb60\">&#9670;&#160;</a></span>Event()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.Event.Event </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>value</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The event constructor. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">name</td><td>The <a class=\"el\" href=\"#aa85c546929734196994af9feb4e5836f\" title=\"The name of the event.\">Event.Name</a></td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The <a class=\"el\" href=\"#a73d5b866bb7792202a0559384af0da36\" title=\"The time when the event was triggered.\">Event.Timestamp</a></td></tr>\n    <tr><td class=\"paramname\">value</td><td>The <a class=\"el\" href=\"#ae67aa2eea397d195534f8c618d092ca6\" title=\"Optional value.\">Event.Value</a></td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The <a class=\"el\" href=\"#af36bf65cd20cb4f02b11b27bcc63d873\" title=\"Event metadata, if any.\">Event.Metadata</a></td></tr>\n    <tr><td class=\"paramname\">id</td><td>The <a class=\"el\" href=\"#a6c15ddba3ae789be6f20bd33ba6c276d\" title=\"Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios....\">Event.Id</a></td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6c15ddba3ae789be6f20bd33ba6c276d\" name=\"a6c15ddba3ae789be6f20bd33ba6c276d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6c15ddba3ae789be6f20bd33ba6c276d\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Event.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier. </p>\n\n</div>\n</div>\n<a id=\"af36bf65cd20cb4f02b11b27bcc63d873\" name=\"af36bf65cd20cb4f02b11b27bcc63d873\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af36bf65cd20cb4f02b11b27bcc63d873\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Dictionary&lt;string, string&gt; Satori.Event.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> metadata, if any. </p>\n\n</div>\n</div>\n<a id=\"aa85c546929734196994af9feb4e5836f\" name=\"aa85c546929734196994af9feb4e5836f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa85c546929734196994af9feb4e5836f\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Event.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the event. </p>\n\n</div>\n</div>\n<a id=\"a73d5b866bb7792202a0559384af0da36\" name=\"a73d5b866bb7792202a0559384af0da36\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a73d5b866bb7792202a0559384af0da36\">&#9670;&#160;</a></span>Timestamp</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">DateTime Satori.Event.Timestamp</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time when the event was triggered. </p>\n\n</div>\n</div>\n<a id=\"ae67aa2eea397d195534f8c618d092ca6\" name=\"ae67aa2eea397d195534f8c618d092ca6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae67aa2eea397d195534f8c618d092ca6\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Event.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_event_8cs.html\">Event.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_event.html\">Event</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_event.js",
    "content": "var class_satori_1_1_event =\n[\n    [ \"Event\", \"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\", null ],\n    [ \"Id\", \"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\", null ],\n    [ \"Metadata\", \"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\", null ],\n    [ \"Name\", \"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\", null ],\n    [ \"Timestamp\", \"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\", null ],\n    [ \"Value\", \"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_http_request_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_http_request_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.HttpRequestAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\">HttpRequestAdapter</a>(HttpClient httpClient)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b\">IsTransientException</a>(Exception e)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\">SendAsync</a>(string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeout, CancellationToken? userCancelToken)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\">TransientExceptionDelegate</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd\">WithGzip</a>(bool decompression=false, bool compression=false)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">Satori.HttpRequestAdapter</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_http_request_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.HttpRequestAdapter Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_http_request_adapter.html','','class_satori_1_1_http_request_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.HttpRequestAdapter Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>HTTP Request adapter which uses the .NET HttpClient to send requests.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.HttpRequestAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_satori_1_1_http_request_adapter.png\" usemap=\"#Satori_2EHttpRequestAdapter_map\" alt=\"\"/>\n  <map id=\"Satori_2EHttpRequestAdapter_map\" name=\"Satori_2EHttpRequestAdapter_map\">\n<area href=\"interface_satori_1_1_i_http_adapter.html\" title=\"An adapter which implements the HTTP protocol.\" alt=\"Satori.IHttpAdapter\" shape=\"rect\" coords=\"0,0,160,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aa9a3b7b022a3e716af4ca62bb7e972ef\" id=\"r_aa9a3b7b022a3e716af4ca62bb7e972ef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa9a3b7b022a3e716af4ca62bb7e972ef\">HttpRequestAdapter</a> (HttpClient httpClient)</td></tr>\n<tr class=\"memitem:a68c34ab8213a4658b431c1d28646dc9a\" id=\"r_a68c34ab8213a4658b431c1d28646dc9a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">async Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a68c34ab8213a4658b431c1d28646dc9a\">SendAsync</a> (string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeout, CancellationToken? userCancelToken)</td></tr>\n<tr class=\"memdesc:a68c34ab8213a4658b431c1d28646dc9a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a HTTP request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:a625d2031f4142607a1b5a4c7054e77fd\" id=\"r_a625d2031f4142607a1b5a4c7054e77fd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a625d2031f4142607a1b5a4c7054e77fd\">WithGzip</a> (bool decompression=false, bool compression=false)</td></tr>\n<tr class=\"memdesc:a625d2031f4142607a1b5a4c7054e77fd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A new HTTP adapter with configuration for gzip support in the underlying HTTP client.  <br /></td></tr>\n<tr class=\"memitem:a648ff0ef63ce62ba8621d3921f3edc4b\" id=\"r_a648ff0ef63ce62ba8621d3921f3edc4b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a648ff0ef63ce62ba8621d3921f3edc4b\">IsTransientException</a> (Exception e)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6736d4ab9046b2b991c1a0e7260f8def\" id=\"r_a6736d4ab9046b2b991c1a0e7260f8def\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6736d4ab9046b2b991c1a0e7260f8def\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a6736d4ab9046b2b991c1a0e7260f8def\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.  <br /></td></tr>\n<tr class=\"memitem:a546f98fc502df23332f3cfce7101d1e3\" id=\"r_a546f98fc502df23332f3cfce7101d1e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a546f98fc502df23332f3cfce7101d1e3\">TransientExceptionDelegate</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a546f98fc502df23332f3cfce7101d1e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.e., is 'transient').  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>HTTP Request adapter which uses the .NET HttpClient to send requests. </p>\n<p>Accept header is always set as 'application/json'. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"aa9a3b7b022a3e716af4ca62bb7e972ef\" name=\"aa9a3b7b022a3e716af4ca62bb7e972ef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa9a3b7b022a3e716af4ca62bb7e972ef\">&#9670;&#160;</a></span>HttpRequestAdapter()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.HttpRequestAdapter.HttpRequestAdapter </td>\n          <td>(</td>\n          <td class=\"paramtype\">HttpClient</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpClient</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a648ff0ef63ce62ba8621d3921f3edc4b\" name=\"a648ff0ef63ce62ba8621d3921f3edc4b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a648ff0ef63ce62ba8621d3921f3edc4b\">&#9670;&#160;</a></span>IsTransientException()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.HttpRequestAdapter.IsTransientException </td>\n          <td>(</td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a68c34ab8213a4658b431c1d28646dc9a\" name=\"a68c34ab8213a4658b431c1d28646dc9a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a68c34ab8213a4658b431c1d28646dc9a\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">async Task&lt; string &gt; Satori.HttpRequestAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>method</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>headers</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>body</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeout</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userCancelToken</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Send a HTTP request.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\">Satori.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a625d2031f4142607a1b5a4c7054e77fd\" name=\"a625d2031f4142607a1b5a4c7054e77fd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a625d2031f4142607a1b5a4c7054e77fd\">&#9670;&#160;</a></span>WithGzip()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a> Satori.HttpRequestAdapter.WithGzip </td>\n          <td>(</td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>decompression</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>compression</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A new HTTP adapter with configuration for gzip support in the underlying HTTP client. </p>\n<p>NOTE Decompression does not work with Mono AOT on Android. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">decompression</td><td>If automatic decompression should be enabled with the HTTP adapter.</td></tr>\n    <tr><td class=\"paramname\">compression</td><td>If automatic compression should be enabled with the HTTP adapter.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A new HTTP adapter.</dd></dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6736d4ab9046b2b991c1a0e7260f8def\" name=\"a6736d4ab9046b2b991c1a0e7260f8def\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6736d4ab9046b2b991c1a0e7260f8def\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a> Satori.HttpRequestAdapter.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the adapter. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\">Satori.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a546f98fc502df23332f3cfce7101d1e3\" name=\"a546f98fc502df23332f3cfce7101d1e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a546f98fc502df23332f3cfce7101d1e3\">&#9670;&#160;</a></span>TransientExceptionDelegate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TransientExceptionDelegate Satori.HttpRequestAdapter.TransientExceptionDelegate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.e., is 'transient'). </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\">Satori.IHttpAdapter</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_http_request_adapter_8cs.html\">Satori/HttpRequestAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_http_request_adapter.html\">HttpRequestAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_http_request_adapter.js",
    "content": "var class_satori_1_1_http_request_adapter =\n[\n    [ \"HttpRequestAdapter\", \"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\", null ],\n    [ \"SendAsync\", \"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\", null ],\n    [ \"Logger\", \"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\", null ],\n    [ \"TransientExceptionDelegate\", \"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_retry-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_retry.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Retry Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_retry.html\">Satori.Retry</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\">ExponentialBackoff</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry.html\">Satori.Retry</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\">JitterBackoff</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry.html\">Satori.Retry</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_retry.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.Retry Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_retry.html','','class_satori_1_1_retry-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Retry Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents a single retry attempt.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad4d3be08eaffeb4b597310f273d14a27\" id=\"r_ad4d3be08eaffeb4b597310f273d14a27\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad4d3be08eaffeb4b597310f273d14a27\">ExponentialBackoff</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad4d3be08eaffeb4b597310f273d14a27\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm.  <br /></td></tr>\n<tr class=\"memitem:a1e6c5e26d211897ada389e3763d1f974\" id=\"r_a1e6c5e26d211897ada389e3763d1f974\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1e6c5e26d211897ada389e3763d1f974\">JitterBackoff</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1e6c5e26d211897ada389e3763d1f974\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The delay (milliseconds) in the request retry attributable to the jitter algorithm.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents a single retry attempt. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad4d3be08eaffeb4b597310f273d14a27\" name=\"ad4d3be08eaffeb4b597310f273d14a27\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad4d3be08eaffeb4b597310f273d14a27\">&#9670;&#160;</a></span>ExponentialBackoff</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.Retry.ExponentialBackoff</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm. </p>\n\n</div>\n</div>\n<a id=\"a1e6c5e26d211897ada389e3763d1f974\" name=\"a1e6c5e26d211897ada389e3763d1f974\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1e6c5e26d211897ada389e3763d1f974\">&#9670;&#160;</a></span>JitterBackoff</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.Retry.JitterBackoff</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The delay (milliseconds) in the request retry attributable to the jitter algorithm. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_retry_8cs.html\">Satori/Retry.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_retry.html\">Retry</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_retry.js",
    "content": "var class_satori_1_1_retry =\n[\n    [ \"ExponentialBackoff\", \"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\", null ],\n    [ \"JitterBackoff\", \"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_retry_configuration-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_retry_configuration.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.RetryConfiguration Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\">BaseDelayMs</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\">Jitter</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\">MaxAttempts</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\">RetryConfiguration</a>(int baseDelayMs, int maxRetries)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f\">RetryConfiguration</a>(int baseDelayMs, int maxRetries, RetryListener listener)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190\">RetryConfiguration</a>(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">Satori.RetryConfiguration</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_retry_configuration.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.RetryConfiguration Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_retry_configuration.html','','class_satori_1_1_retry_configuration-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.RetryConfiguration Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A configuration for controlling retriable requests.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ad2372802b5f35ccc27fd8d8f07f3ca58\" id=\"r_ad2372802b5f35ccc27fd8d8f07f3ca58\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad2372802b5f35ccc27fd8d8f07f3ca58\">RetryConfiguration</a> (int baseDelayMs, int maxRetries)</td></tr>\n<tr class=\"memdesc:ad2372802b5f35ccc27fd8d8f07f3ca58\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n<tr class=\"memitem:a181f493e3d50a4babcf15b61ac5e2a6f\" id=\"r_a181f493e3d50a4babcf15b61ac5e2a6f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a181f493e3d50a4babcf15b61ac5e2a6f\">RetryConfiguration</a> (int baseDelayMs, int maxRetries, <a class=\"el\" href=\"#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a> listener)</td></tr>\n<tr class=\"memdesc:a181f493e3d50a4babcf15b61ac5e2a6f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n<tr class=\"memitem:a6dab6831bce21807fe5bbcac28afa190\" id=\"r_a6dab6831bce21807fe5bbcac28afa190\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6dab6831bce21807fe5bbcac28afa190\">RetryConfiguration</a> (int baseDelayMs, int maxRetries, <a class=\"el\" href=\"#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a> listener, <a class=\"el\" href=\"#ad0bf8ad4a4048c8cf71290b887833f0a\">Jitter</a> jitter)</td></tr>\n<tr class=\"memdesc:a6dab6831bce21807fe5bbcac28afa190\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new retry configuration.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3fa2a5ab77e81b6b42732f8cdac7cd78\" id=\"r_a3fa2a5ab77e81b6b42732f8cdac7cd78\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3fa2a5ab77e81b6b42732f8cdac7cd78\">BaseDelayMs</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3fa2a5ab77e81b6b42732f8cdac7cd78\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The base delay (milliseconds) used to calculate the time before making another request attempt. This base will be raised to N, where N is the number of retry attempts.  <br /></td></tr>\n<tr class=\"memitem:ad0bf8ad4a4048c8cf71290b887833f0a\" id=\"r_ad0bf8ad4a4048c8cf71290b887833f0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Jitter&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad0bf8ad4a4048c8cf71290b887833f0a\">Jitter</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad0bf8ad4a4048c8cf71290b887833f0a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The jitter algorithm used to apply randomness to the retry delay. Defaults to RetryJitter.FullJitter  <br /></td></tr>\n<tr class=\"memitem:a01011c48d058287c35d0a5cbe8252599\" id=\"r_a01011c48d058287c35d0a5cbe8252599\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a01011c48d058287c35d0a5cbe8252599\">MaxAttempts</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a01011c48d058287c35d0a5cbe8252599\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of attempts to make before cancelling the request task.  <br /></td></tr>\n<tr class=\"memitem:a6e9b52a25e468eac475af70a00352e5a\" id=\"r_a6e9b52a25e468eac475af70a00352e5a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">RetryListener&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6e9b52a25e468eac475af70a00352e5a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A callback that is invoked before a new retry attempt is made.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A configuration for controlling retriable requests. </p>\n<p><a class=\"el\" href=\"class_satori_1_1_retry.html\" title=\"Represents a single retry attempt.\">Retry</a> configurations can be assigned to the <a class=\"el\" href=\"interface_satori_1_1_i_client.html\" title=\"A client for the API in Satori server.\">IClient</a> on a request-by-request basis via the see &lt;cref=\"RequestConfiguration\"/&gt; parameter.</p>\n<p><a class=\"el\" href=\"class_satori_1_1_retry.html\" title=\"Represents a single retry attempt.\">Retry</a> configurations can also be assigned on a global basis using <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\" title=\"The global retry configuration. See RetryConfiguration.\">IClient.GlobalRetryConfiguration</a>. Configurations passed via the see &lt;cref=\"RequestConfiguraiton\"/&gt; parameter take precedence over the global configuration. </p>\n</div><a name=\"doc-constructors\" id=\"doc-constructors\"></a><h2 id=\"header-doc-constructors\" class=\"groupheader\">Constructor &amp; Destructor Documentation</h2>\n<a id=\"ad2372802b5f35ccc27fd8d8f07f3ca58\" name=\"ad2372802b5f35ccc27fd8d8f07f3ca58\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad2372802b5f35ccc27fd8d8f07f3ca58\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a181f493e3d50a4babcf15b61ac5e2a6f\" name=\"a181f493e3d50a4babcf15b61ac5e2a6f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a181f493e3d50a4babcf15b61ac5e2a6f\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>listener</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n    <tr><td class=\"paramname\">listener</td><td>A callback that is invoked before a new retry attempt is made.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a6dab6831bce21807fe5bbcac28afa190\" name=\"a6dab6831bce21807fe5bbcac28afa190\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6dab6831bce21807fe5bbcac28afa190\">&#9670;&#160;</a></span>RetryConfiguration() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Satori.RetryConfiguration.RetryConfiguration </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>baseDelayMs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxRetries</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#a6e9b52a25e468eac475af70a00352e5a\">RetryListener</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>listener</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"#ad0bf8ad4a4048c8cf71290b887833f0a\">Jitter</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>jitter</em></span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Create a new retry configuration. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">baseDelayMs</td><td>The base delay (milliseconds) used to calculate the time before making another request attempt.</td></tr>\n    <tr><td class=\"paramname\">maxRetries</td><td>The maximum number of attempts to make before cancelling the request task.</td></tr>\n    <tr><td class=\"paramname\">listener</td><td>A callback that is invoked before a new retry attempt is made.</td></tr>\n    <tr><td class=\"paramname\">jitter</td><td>The jitter algorithm used to apply randomness to the retry delay.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3fa2a5ab77e81b6b42732f8cdac7cd78\" name=\"a3fa2a5ab77e81b6b42732f8cdac7cd78\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3fa2a5ab77e81b6b42732f8cdac7cd78\">&#9670;&#160;</a></span>BaseDelayMs</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.RetryConfiguration.BaseDelayMs</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The base delay (milliseconds) used to calculate the time before making another request attempt. This base will be raised to N, where N is the number of retry attempts. </p>\n\n</div>\n</div>\n<a id=\"ad0bf8ad4a4048c8cf71290b887833f0a\" name=\"ad0bf8ad4a4048c8cf71290b887833f0a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0bf8ad4a4048c8cf71290b887833f0a\">&#9670;&#160;</a></span>Jitter</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Jitter Satori.RetryConfiguration.Jitter</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The jitter algorithm used to apply randomness to the retry delay. Defaults to RetryJitter.FullJitter </p>\n\n</div>\n</div>\n<a id=\"a01011c48d058287c35d0a5cbe8252599\" name=\"a01011c48d058287c35d0a5cbe8252599\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a01011c48d058287c35d0a5cbe8252599\">&#9670;&#160;</a></span>MaxAttempts</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.RetryConfiguration.MaxAttempts</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of attempts to make before cancelling the request task. </p>\n\n</div>\n</div>\n<a id=\"a6e9b52a25e468eac475af70a00352e5a\" name=\"a6e9b52a25e468eac475af70a00352e5a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6e9b52a25e468eac475af70a00352e5a\">&#9670;&#160;</a></span>RetryListener</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">RetryListener Satori.RetryConfiguration.RetryListener</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A callback that is invoked before a new retry attempt is made. </p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_retry_configuration_8cs.html\">Satori/RetryConfiguration.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_retry_configuration.js",
    "content": "var class_satori_1_1_retry_configuration =\n[\n    [ \"RetryConfiguration\", \"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\", null ],\n    [ \"RetryConfiguration\", \"class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f\", null ],\n    [ \"RetryConfiguration\", \"class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190\", null ],\n    [ \"BaseDelayMs\", \"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\", null ],\n    [ \"Jitter\", \"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\", null ],\n    [ \"MaxAttempts\", \"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\", null ],\n    [ \"RetryListener\", \"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Session Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\">AuthToken</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4\">Epoch</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\">ExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\">HasExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\">HasRefreshExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\">IdentityId</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\">IsExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\">IsRefreshExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\">RefreshExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed\">Restore</a>(string authToken, string refreshToken=null)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span><span class=\"mlabel\">static</span></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\">ToString</a>()</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Satori.Session</a></td><td class=\"entry\"><span class=\"mlabel\">inline</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.Session Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('class_satori_1_1_session.html','','class_satori_1_1_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Session Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p> \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.Session:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"class_satori_1_1_session.png\" usemap=\"#Satori_2ESession_map\" alt=\"\"/>\n  <map id=\"Satori_2ESession_map\" name=\"Satori_2ESession_map\">\n<area href=\"interface_satori_1_1_i_session.html\" title=\"A session authenticated for a user with Satori server.\" alt=\"Satori.ISession\" shape=\"rect\" coords=\"0,0,96,24\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ac0337cc38b9a04e5d812a8b87720e407\" id=\"r_ac0337cc38b9a04e5d812a8b87720e407\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0337cc38b9a04e5d812a8b87720e407\">HasExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:ac0337cc38b9a04e5d812a8b87720e407\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check the session has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:a4a4cc7d98de34718e385241eaa9984fe\" id=\"r_a4a4cc7d98de34718e385241eaa9984fe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4a4cc7d98de34718e385241eaa9984fe\">HasRefreshExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:a4a4cc7d98de34718e385241eaa9984fe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check if the refresh token has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n  <br /></td></tr>\n<tr class=\"memitem:ad241a4da8f93b528fff4c0f3e080165c\" id=\"r_ad241a4da8f93b528fff4c0f3e080165c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">override string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad241a4da8f93b528fff4c0f3e080165c\">ToString</a> ()</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-methods\" class=\"groupheader\"><a id=\"pub-static-methods\" name=\"pub-static-methods\"></a>\nStatic Public Member Functions</h2></td></tr>\n<tr class=\"memitem:a83ba1f658c8d31b3b0307e3807ef36ed\" id=\"r_a83ba1f658c8d31b3b0307e3807ef36ed\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a83ba1f658c8d31b3b0307e3807ef36ed\">Restore</a> (string authToken, string refreshToken=null)</td></tr>\n<tr class=\"memdesc:a83ba1f658c8d31b3b0307e3807ef36ed\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Restore a session from the auth token.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-static-attribs\" class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:afe8a0d13004ba3878b400d2d4eaf90c4\" id=\"r_afe8a0d13004ba3878b400d2d4eaf90c4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">static readonly DateTime&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe8a0d13004ba3878b400d2d4eaf90c4\">Epoch</a> = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:afdc7cdcad28bc4c95c1b6244f9b208bf\" id=\"r_afdc7cdcad28bc4c95c1b6244f9b208bf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afdc7cdcad28bc4c95c1b6244f9b208bf\">AuthToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afdc7cdcad28bc4c95c1b6244f9b208bf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The authorization token used to construct this session.  <br /></td></tr>\n<tr class=\"memitem:a2a70cae3816609b06eaf29f728cce6c0\" id=\"r_a2a70cae3816609b06eaf29f728cce6c0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2a70cae3816609b06eaf29f728cce6c0\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2a70cae3816609b06eaf29f728cce6c0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session was created.  <br /></td></tr>\n<tr class=\"memitem:afe0f9228873dbd047a024b16e45d368e\" id=\"r_afe0f9228873dbd047a024b16e45d368e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe0f9228873dbd047a024b16e45d368e\">ExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afe0f9228873dbd047a024b16e45d368e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session will expire.  <br /></td></tr>\n<tr class=\"memitem:aa933c455425edfd02a68c52e2ea52135\" id=\"r_aa933c455425edfd02a68c52e2ea52135\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa933c455425edfd02a68c52e2ea52135\">IsExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa933c455425edfd02a68c52e2ea52135\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the session has expired.  <br /></td></tr>\n<tr class=\"memitem:a6467393cfe6d024d0a3526f0ee29eec9\" id=\"r_a6467393cfe6d024d0a3526f0ee29eec9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6467393cfe6d024d0a3526f0ee29eec9\">IsRefreshExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6467393cfe6d024d0a3526f0ee29eec9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the refresh token has expired.  <br /></td></tr>\n<tr class=\"memitem:aa3ff3bfb4404d71172a2fcb323632f9e\" id=\"r_aa3ff3bfb4404d71172a2fcb323632f9e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa3ff3bfb4404d71172a2fcb323632f9e\">RefreshExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa3ff3bfb4404d71172a2fcb323632f9e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when the refresh token will expire.  <br /></td></tr>\n<tr class=\"memitem:a6de405afc91032a2c328ae863decc122\" id=\"r_a6de405afc91032a2c328ae863decc122\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6de405afc91032a2c328ae863decc122\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6de405afc91032a2c328ae863decc122\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token that can be used for session token renewal.  <br /></td></tr>\n<tr class=\"memitem:a17977d09db716a100515246046689acb\" id=\"r_a17977d09db716a100515246046689acb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a17977d09db716a100515246046689acb\">IdentityId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a17977d09db716a100515246046689acb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the user who owns this session.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"></div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ac0337cc38b9a04e5d812a8b87720e407\" name=\"ac0337cc38b9a04e5d812a8b87720e407\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0337cc38b9a04e5d812a8b87720e407\">&#9670;&#160;</a></span>HasExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.Session.HasExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Check the session has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a4a4cc7d98de34718e385241eaa9984fe\" name=\"a4a4cc7d98de34718e385241eaa9984fe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a4cc7d98de34718e385241eaa9984fe\">&#9670;&#160;</a></span>HasRefreshExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.Session.HasRefreshExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Check if the refresh token has expired against the offset time.<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a83ba1f658c8d31b3b0307e3807ef36ed\" name=\"a83ba1f658c8d31b3b0307e3807ef36ed\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a83ba1f658c8d31b3b0307e3807ef36ed\">&#9670;&#160;</a></span>Restore()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> Satori.Session.Restore </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>refreshToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Restore a session from the auth token. </p>\n<p>A <code>null</code> or empty authentication token will return null. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to restore as a session.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token for the session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A session.</dd></dl>\n\n</div>\n</div>\n<a id=\"ad241a4da8f93b528fff4c0f3e080165c\" name=\"ad241a4da8f93b528fff4c0f3e080165c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad241a4da8f93b528fff4c0f3e080165c\">&#9670;&#160;</a></span>ToString()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">override string Satori.Session.ToString </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel inline\">inline</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-variable-members\" id=\"doc-variable-members\"></a><h2 id=\"header-doc-variable-members\" class=\"groupheader\">Member Data Documentation</h2>\n<a id=\"afe8a0d13004ba3878b400d2d4eaf90c4\" name=\"afe8a0d13004ba3878b400d2d4eaf90c4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe8a0d13004ba3878b400d2d4eaf90c4\">&#9670;&#160;</a></span>Epoch</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">readonly DateTime Satori.Session.Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel static\">static</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"afdc7cdcad28bc4c95c1b6244f9b208bf\" name=\"afdc7cdcad28bc4c95c1b6244f9b208bf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afdc7cdcad28bc4c95c1b6244f9b208bf\">&#9670;&#160;</a></span>AuthToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Session.AuthToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The authorization token used to construct this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a2a70cae3816609b06eaf29f728cce6c0\" name=\"a2a70cae3816609b06eaf29f728cce6c0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2a70cae3816609b06eaf29f728cce6c0\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.Session.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session was created. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"afe0f9228873dbd047a024b16e45d368e\" name=\"afe0f9228873dbd047a024b16e45d368e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe0f9228873dbd047a024b16e45d368e\">&#9670;&#160;</a></span>ExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.Session.ExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session will expire. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a17977d09db716a100515246046689acb\" name=\"a17977d09db716a100515246046689acb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17977d09db716a100515246046689acb\">&#9670;&#160;</a></span>IdentityId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Session.IdentityId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the user who owns this session. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"aa933c455425edfd02a68c52e2ea52135\" name=\"aa933c455425edfd02a68c52e2ea52135\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa933c455425edfd02a68c52e2ea52135\">&#9670;&#160;</a></span>IsExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.Session.IsExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the session has expired. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a6467393cfe6d024d0a3526f0ee29eec9\" name=\"a6467393cfe6d024d0a3526f0ee29eec9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6467393cfe6d024d0a3526f0ee29eec9\">&#9670;&#160;</a></span>IsRefreshExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.Session.IsRefreshExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the refresh token has expired. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"aa3ff3bfb4404d71172a2fcb323632f9e\" name=\"aa3ff3bfb4404d71172a2fcb323632f9e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa3ff3bfb4404d71172a2fcb323632f9e\">&#9670;&#160;</a></span>RefreshExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.Session.RefreshExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when the refresh token will expire. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<a id=\"a6de405afc91032a2c328ae863decc122\" name=\"a6de405afc91032a2c328ae863decc122\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6de405afc91032a2c328ae863decc122\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.Session.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token that can be used for session token renewal. </p>\n\n<p>Implements <a class=\"el\" href=\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\">Satori.ISession</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_session_8cs.html\">Satori/Session.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"class_satori_1_1_session.html\">Session</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_session.js",
    "content": "var class_satori_1_1_session =\n[\n    [ \"HasExpired\", \"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\", null ],\n    [ \"HasRefreshExpired\", \"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\", null ],\n    [ \"ToString\", \"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\", null ],\n    [ \"AuthToken\", \"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\", null ],\n    [ \"CreateTime\", \"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\", null ],\n    [ \"ExpireTime\", \"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\", null ],\n    [ \"IdentityId\", \"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\", null ],\n    [ \"IsExpired\", \"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\", null ],\n    [ \"IsRefreshExpired\", \"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\", null ],\n    [ \"RefreshExpireTime\", \"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\", null ],\n    [ \"RefreshToken\", \"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\", null ]\n];"
  },
  {
    "path": "docs/html/class_satori_1_1_tests_1_1_client_test-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_satori_1_1_tests_1_1_client_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Tests.ClientTest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestAuthenticateAndLogout</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestGetExperiments</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestGetFlags</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestGetFlagsDefault</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TestGetLiveEvent</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>TestSendEvents</b>() (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>TimeoutMilliseconds</b> (defined in <a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a>)</td><td class=\"entry\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">Satori.Tests.ClientTest</a></td><td class=\"entry\"><span class=\"mlabel\">static</span></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/class_satori_1_1_tests_1_1_client_test.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Satori.Tests.ClientTest Class Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('class_satori_1_1_tests_1_1_client_test.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#pub-methods\">Public Member Functions</a> &#124;\n<a href=\"#pub-static-attribs\">Static Public Attributes</a> &#124;\n<a href=\"class_satori_1_1_tests_1_1_client_test-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Satori.Tests.ClientTest Class Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7c35c7c5dca1c319617183a7217abc34\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a7c35c7c5dca1c319617183a7217abc34\" name=\"a7c35c7c5dca1c319617183a7217abc34\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestAuthenticateAndLogout</b> ()</td></tr>\n<tr class=\"separator:a7c35c7c5dca1c319617183a7217abc34\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a0226abf2b807a9b25a9a779ec867163c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a0226abf2b807a9b25a9a779ec867163c\" name=\"a0226abf2b807a9b25a9a779ec867163c\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestGetExperiments</b> ()</td></tr>\n<tr class=\"separator:a0226abf2b807a9b25a9a779ec867163c\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a929b685acf5fc25ea841abcec3b6dc53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a929b685acf5fc25ea841abcec3b6dc53\" name=\"a929b685acf5fc25ea841abcec3b6dc53\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestGetFlags</b> ()</td></tr>\n<tr class=\"separator:a929b685acf5fc25ea841abcec3b6dc53\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a6e4169b9483ca4faaead263307dc7ff7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a6e4169b9483ca4faaead263307dc7ff7\" name=\"a6e4169b9483ca4faaead263307dc7ff7\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestGetFlagsDefault</b> ()</td></tr>\n<tr class=\"separator:a6e4169b9483ca4faaead263307dc7ff7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:a9b827eb88d646adb0ea167d0a8f67b7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"a9b827eb88d646adb0ea167d0a8f67b7a\" name=\"a9b827eb88d646adb0ea167d0a8f67b7a\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestSendEvents</b> ()</td></tr>\n<tr class=\"separator:a9b827eb88d646adb0ea167d0a8f67b7a\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:aec28e8b1ee57efb4e4bd7ec31382efe1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"aec28e8b1ee57efb4e4bd7ec31382efe1\" name=\"aec28e8b1ee57efb4e4bd7ec31382efe1\"></a>\nasync Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestGetLiveEvent</b> ()</td></tr>\n<tr class=\"separator:aec28e8b1ee57efb4e4bd7ec31382efe1\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"pub-static-attribs\" name=\"pub-static-attribs\"></a>\nStatic Public Attributes</h2></td></tr>\n<tr class=\"memitem:acc5e004188358d9f3efac96c2f38cd0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"acc5e004188358d9f3efac96c2f38cd0b\" name=\"acc5e004188358d9f3efac96c2f38cd0b\"></a>\nconst int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TimeoutMilliseconds</b> = 5000</td></tr>\n<tr class=\"separator:acc5e004188358d9f3efac96c2f38cd0b\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this class was generated from the following file:<ul>\n<li>Satori.Tests/ClientTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_satori_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">ClientTest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/classes.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Index</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('classes.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Class Index</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"qindex\"><a class=\"qindex\" href=\"#letter_A\">A</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_B\">B</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_C\">C</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_E\">E</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_H\">H</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_I\">I</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_P\">P</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_R\">R</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_S\">S</a>&#160;|&#160;<a class=\"qindex\" href=\"#letter_W\">W</a></div>\n<div class=\"classindex\">\n<dl class=\"classindex even\">\n<dt class=\"alphachar\"><a id=\"letter_A\" name=\"letter_A\">A</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">ApiResponseException</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">ApiResponseException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">ApiResponseException</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd></dl>\n<dl class=\"classindex odd\">\n<dt class=\"alphachar\"><a id=\"letter_B\" name=\"letter_B\">B</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd></dl>\n<dl class=\"classindex even\">\n<dt class=\"alphachar\"><a id=\"letter_C\" name=\"letter_C\">C</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_client.html\">Client</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd></dl>\n<dl class=\"classindex odd\">\n<dt class=\"alphachar\"><a id=\"letter_E\" name=\"letter_E\">E</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">EntityTooLargeException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd></dl>\n<dl class=\"classindex even\">\n<dt class=\"alphachar\"><a id=\"letter_H\" name=\"letter_H\">H</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">HttpHelper</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">HttpRequestAdapter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">HttpRequestAdapter</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd></dl>\n<dl class=\"classindex odd\">\n<dt class=\"alphachar\"><a id=\"letter_I\" name=\"letter_I\">I</a></dt>\n<dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">IApiAccountApple</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">IApiAccountCustom</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">IApiAccountDevice</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">IApiAccountDevice</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">IApiAccountEmail</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">IApiAccountFacebook</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">IApiAccountFacebookInstantGame</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">IApiAccountGameCenter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">IApiAccountGoogle</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">IApiAccountSteam</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">IApiAuthenticateLogoutRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">IApiAuthenticateRefreshRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">IApiAuthenticateRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">IApiChannelMessage</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">IApiCreateGroupRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">IApiDeleteStorageObjectId</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">IApiDeleteStorageObjectsRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">IApiEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">IApiEvent</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\">IApiEventRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">IApiExperiment</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">IApiFlagOverride</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">IApiFlagOverrideValue</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">IApiFriend</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">IApiFriendList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">IApiFriendsOfFriendsList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">IApiIdentifyRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">IApiLinkSteamRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">IApiListSubscriptionsRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">IApiLiveEvent</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">IApiMatch</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">IApiMatchmakerCompletionStats</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">IApiMatchmakerStats</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">IApiMessage</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">IApiNotification</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">IApiParty</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">IApiReadStorageObjectsRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">IApiSession</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">IApiSession</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">IApiSessionLogoutRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">IApiSessionRefreshRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">IApiTournament</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">IApiUpdateAccountRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">IApiUpdateGroupRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">IApiUpdateMessageRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">IApiUpdatePropertiesRequest</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">IApiValidatedPurchase</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">IApiValidatePurchaseAppleRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">IApiValidatePurchaseFacebookInstantRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">IApiValidatePurchaseGoogleRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">IApiValidatePurchaseHuaweiRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">IApiValidateSubscriptionAppleRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">IApiValidateSubscriptionGoogleRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">IApiWriteStorageObjectsRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">IBufferPool</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">IClient</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">IConfigWarning</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">IConsoleAccountExport</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">IConsoleAuthenticateRequest</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">IConsoleConfig</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">IConsoleConsoleSession</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">IConsoleStatusList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">IConsoleStorageList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">IConsoleUnlinkDeviceRequest</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">IConsoleUserList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">IConsoleWalletLedgerList</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">IConsoleWriteStorageObjectRequest</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">IFlagValueChangeReason</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">IFriendsOfFriendsListFriendOfFriend</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">IGroupUserListGroupUser</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">INakamaconsoleAccount</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">INakamaconsoleUpdateAccountRequest</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">InvalidHttpResponseCodeException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">IPingPongManager</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">IProtobufAny</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">IProtobufAny</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">IProtobufAny</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">IRpcStatus</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">IRpcStatus</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">IRuntimeError</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">IStatusListStatus</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a> (<a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Nakama.Console</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">IWebSocketClientFactory</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">IWebSocketServerFactory</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">IWriteTournamentRecordRequestTournamentRecordWrite</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd></dl>\n<dl class=\"classindex even\">\n<dt class=\"alphachar\"><a id=\"letter_P\" name=\"letter_P\">P</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">PingPongManager</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\">BufferPool.PublicBufferMemoryStream</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd></dl>\n<dl class=\"classindex odd\">\n<dt class=\"alphachar\"><a id=\"letter_R\" name=\"letter_R\">R</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd></dl>\n<dl class=\"classindex even\">\n<dt class=\"alphachar\"><a id=\"letter_S\" name=\"letter_S\">S</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">SecWebSocketKeyMissingException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">ServerListenerSocketException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_session.html\">Session</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_satori_1_1_session.html\">Session</a> (<a class=\"el\" href=\"namespace_satori.html\">Satori</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Socket</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd></dl>\n<dl class=\"classindex odd\">\n<dt class=\"alphachar\"><a id=\"letter_W\" name=\"letter_W\">W</a></dt>\n<dd><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">WebSocketAdapter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">WebSocketBufferOverflowException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">WebSocketClientFactory</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">WebSocketHandshakeFailedException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">WebSocketServerFactory</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">Nakama.Ninja.WebSockets</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">WebSocketStdlibAdapter</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">WebSocketVersionNotSupportedException</a> (<a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Nakama.Ninja.WebSockets.Exceptions</a>)</dd><dd><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">WriteStorageObject</a> (<a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>)</dd></dl>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/clipboard.js",
    "content": "/**\n\nThe code below is based on the Doxygen Awesome project, see\nhttps://github.com/jothepro/doxygen-awesome-css\n\nMIT License\n\nCopyright (c) 2021 - 2022 jothepro\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n*/\n\nlet clipboard_title = \"Copy to clipboard\"\nlet clipboard_icon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill=\"#888\" d=\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\"/></svg>`\nlet clipboard_successIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"/></svg>`\nlet clipboard_successDuration = 1000\n\n$(function() {\n  if(navigator.clipboard) {\n    const fragments = document.getElementsByClassName(\"fragment\")\n    for(const fragment of fragments) {\n      const clipboard_div = document.createElement(\"div\")\n      clipboard_div.classList.add(\"clipboard\")\n      clipboard_div.innerHTML = clipboard_icon\n      clipboard_div.title = clipboard_title\n      $(clipboard_div).click(function() {\n        const content = this.parentNode.cloneNode(true)\n        // filter out line number and folded fragments from file listings\n        content.querySelectorAll(\".lineno, .ttc, .foldclosed\").forEach((node) => { node.remove() })\n        let text = content.textContent\n        // remove trailing newlines and trailing spaces from empty lines\n        text = text.replace(/^\\s*\\n/gm,'\\n').replace(/\\n*$/,'')\n        navigator.clipboard.writeText(text);\n        this.classList.add(\"success\")\n        this.innerHTML = clipboard_successIcon\n        window.setTimeout(() => { // switch back to normal icon after timeout\n            this.classList.remove(\"success\")\n            this.innerHTML = clipboard_icon\n        }, clipboard_successDuration);\n      })\n      fragment.insertBefore(clipboard_div, fragment.firstChild)\n    }\n  }\n})\n"
  },
  {
    "path": "docs/html/cookie.js",
    "content": "/*!\n Cookie helper functions\n Copyright (c) 2023 Dimitri van Heesch\n Released under MIT license.\n*/\nlet Cookie = {\n  cookie_namespace: 'doxygen_',\n\n  readSetting(cookie,defVal) {\n    if (window.chrome) {\n      const val = localStorage.getItem(this.cookie_namespace+cookie) ||\n                  sessionStorage.getItem(this.cookie_namespace+cookie);\n      if (val) return val;\n    } else {\n      let myCookie = this.cookie_namespace+cookie+\"=\";\n      if (document.cookie) {\n        const index = document.cookie.indexOf(myCookie);\n        if (index != -1) {\n          const valStart = index + myCookie.length;\n          let valEnd = document.cookie.indexOf(\";\", valStart);\n          if (valEnd == -1) {\n            valEnd = document.cookie.length;\n          }\n          return document.cookie.substring(valStart, valEnd);\n        }\n      }\n    }\n    return defVal;\n  },\n\n  writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete\n    if (window.chrome) {\n      if (days==0) {\n        sessionStorage.setItem(this.cookie_namespace+cookie,val);\n      } else {\n        localStorage.setItem(this.cookie_namespace+cookie,val);\n      }\n    } else {\n      let date = new Date();\n      date.setTime(date.getTime()+(days*24*60*60*1000));\n      const expiration = days!=0 ? \"expires=\"+date.toGMTString()+\";\" : \"\";\n      document.cookie = this.cookie_namespace + cookie + \"=\" +\n                        val + \"; SameSite=Lax;\" + expiration + \"path=/\";\n    }\n  },\n\n  eraseSetting(cookie) {\n    if (window.chrome) {\n      if (localStorage.getItem(this.cookie_namespace+cookie)) {\n        localStorage.removeItem(this.cookie_namespace+cookie);\n      } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) {\n        sessionStorage.removeItem(this.cookie_namespace+cookie);\n      }\n    } else {\n      this.writeSetting(cookie,'',-1);\n    }\n  },\n}\n"
  },
  {
    "path": "docs/html/dir_00db1776877a30bd47a3324e3b896815.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Ninja.WebSockets Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_00db1776877a30bd47a3324e3b896815.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Ninja.WebSockets Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:Exceptions\" id=\"r_Exceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></td></tr>\n<tr class=\"memitem:Internal\" id=\"r_Internal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:BufferPool_2Ecs\" id=\"r_BufferPool_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_buffer_pool_8cs.html\">BufferPool.cs</a></td></tr>\n<tr class=\"memitem:HttpHelper_2Ecs\" id=\"r_HttpHelper_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_http_helper_8cs.html\">HttpHelper.cs</a></td></tr>\n<tr class=\"memitem:IBufferPool_2Ecs\" id=\"r_IBufferPool_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_buffer_pool_8cs.html\">IBufferPool.cs</a></td></tr>\n<tr class=\"memitem:IPingPongManager_2Ecs\" id=\"r_IPingPongManager_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_ping_pong_manager_8cs.html\">IPingPongManager.cs</a></td></tr>\n<tr class=\"memitem:IWebSocketClientFactory_2Ecs\" id=\"r_IWebSocketClientFactory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_web_socket_client_factory_8cs.html\">IWebSocketClientFactory.cs</a></td></tr>\n<tr class=\"memitem:IWebSocketServerFactory_2Ecs\" id=\"r_IWebSocketServerFactory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_web_socket_server_factory_8cs.html\">IWebSocketServerFactory.cs</a></td></tr>\n<tr class=\"memitem:PingPongManager_2Ecs\" id=\"r_PingPongManager_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_ping_pong_manager_8cs.html\">PingPongManager.cs</a></td></tr>\n<tr class=\"memitem:PongEventArgs_2Ecs\" id=\"r_PongEventArgs_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_pong_event_args_8cs.html\">PongEventArgs.cs</a></td></tr>\n<tr class=\"memitem:WebSocketClientFactory_2Ecs\" id=\"r_WebSocketClientFactory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_client_factory_8cs.html\">WebSocketClientFactory.cs</a></td></tr>\n<tr class=\"memitem:WebSocketClientOptions_2Ecs\" id=\"r_WebSocketClientOptions_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_client_options_8cs.html\">WebSocketClientOptions.cs</a></td></tr>\n<tr class=\"memitem:WebSocketHttpContext_2Ecs\" id=\"r_WebSocketHttpContext_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_http_context_8cs.html\">WebSocketHttpContext.cs</a></td></tr>\n<tr class=\"memitem:WebSocketServerFactory_2Ecs\" id=\"r_WebSocketServerFactory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_server_factory_8cs.html\">WebSocketServerFactory.cs</a></td></tr>\n<tr class=\"memitem:WebSocketServerOptions_2Ecs\" id=\"r_WebSocketServerOptions_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_server_options_8cs.html\">WebSocketServerOptions.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_00db1776877a30bd47a3324e3b896815.js",
    "content": "var dir_00db1776877a30bd47a3324e3b896815 =\n[\n    [ \"Exceptions\", \"dir_1c3008a3c461c137d9f062e2a28e5366.html\", \"dir_1c3008a3c461c137d9f062e2a28e5366\" ],\n    [ \"Internal\", \"dir_ca7d207afbe6ec834644d82c9da0e27f.html\", \"dir_ca7d207afbe6ec834644d82c9da0e27f\" ],\n    [ \"BufferPool.cs\", \"_buffer_pool_8cs.html\", \"_buffer_pool_8cs\" ],\n    [ \"HttpHelper.cs\", \"_http_helper_8cs.html\", \"_http_helper_8cs\" ],\n    [ \"IBufferPool.cs\", \"_i_buffer_pool_8cs.html\", \"_i_buffer_pool_8cs\" ],\n    [ \"IPingPongManager.cs\", \"_i_ping_pong_manager_8cs.html\", \"_i_ping_pong_manager_8cs\" ],\n    [ \"IWebSocketClientFactory.cs\", \"_i_web_socket_client_factory_8cs.html\", \"_i_web_socket_client_factory_8cs\" ],\n    [ \"IWebSocketServerFactory.cs\", \"_i_web_socket_server_factory_8cs.html\", \"_i_web_socket_server_factory_8cs\" ],\n    [ \"PingPongManager.cs\", \"_ping_pong_manager_8cs.html\", \"_ping_pong_manager_8cs\" ],\n    [ \"PongEventArgs.cs\", \"_pong_event_args_8cs.html\", \"_pong_event_args_8cs\" ],\n    [ \"WebSocketClientFactory.cs\", \"_web_socket_client_factory_8cs.html\", \"_web_socket_client_factory_8cs\" ],\n    [ \"WebSocketClientOptions.cs\", \"_web_socket_client_options_8cs.html\", \"_web_socket_client_options_8cs\" ],\n    [ \"WebSocketHttpContext.cs\", \"_web_socket_http_context_8cs.html\", \"_web_socket_http_context_8cs\" ],\n    [ \"WebSocketServerFactory.cs\", \"_web_socket_server_factory_8cs.html\", \"_web_socket_server_factory_8cs\" ],\n    [ \"WebSocketServerOptions.cs\", \"_web_socket_server_options_8cs.html\", \"_web_socket_server_options_8cs\" ]\n];"
  },
  {
    "path": "docs/html/dir_0255d041b3ce7964bcd7b11954959c22.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: codegen Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_0255d041b3ce7964bcd7b11954959c22.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">codegen Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_0255d041b3ce7964bcd7b11954959c22.html\">codegen</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_0385b7cc93c13096276fd0475bf94138.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: TinyJson Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_0385b7cc93c13096276fd0475bf94138.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">TinyJson Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:JsonParser_2Ecs\" id=\"r_JsonParser_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_tiny_json_2_json_parser_8cs.html\">JsonParser.cs</a></td></tr>\n<tr class=\"memitem:JsonWriter_2Ecs\" id=\"r_JsonWriter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_tiny_json_2_json_writer_8cs.html\">JsonWriter.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_0385b7cc93c13096276fd0475bf94138.js",
    "content": "var dir_0385b7cc93c13096276fd0475bf94138 =\n[\n    [ \"JsonParser.cs\", \"_nakama_2_tiny_json_2_json_parser_8cs.html\", null ],\n    [ \"JsonWriter.cs\", \"_nakama_2_tiny_json_2_json_writer_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_07d4e60c212e220cb70fd11bc65ff95e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: TinyJson Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.1.1</span>\n   </div>\n   <div id=\"projectbrief\">.NET client for Nakama server written in C</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.2 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search\",'Search','.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_07d4e60c212e220cb70fd11bc65ff95e.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">TinyJson Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_json_parser_8cs.html\">JsonParser.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_json_writer_8cs.html\">JsonWriter.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_07d4e60c212e220cb70fd11bc65ff95e.html\">TinyJson</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.2 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_0a71ed179ba9d4357fa1a0aa4e188f77.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_0a71ed179ba9d4357fa1a0aa4e188f77.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:Debug\" id=\"r_Debug\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></td></tr>\n<tr class=\"memitem:Release\" id=\"r_Release\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_0a71ed179ba9d4357fa1a0aa4e188f77.js",
    "content": "var dir_0a71ed179ba9d4357fa1a0aa4e188f77 =\n[\n    [ \"Debug\", \"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\", \"dir_c7fa37d54586c2d4e1bdb0bf9742bd86\" ],\n    [ \"Release\", \"dir_93c065d202f1b2ae4be97868117427d8.html\", \"dir_93c065d202f1b2ae4be97868117427d8\" ]\n];"
  },
  {
    "path": "docs/html/dir_0acaa047c55e3bbc2ca6716743379b50.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/obj/Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_0acaa047c55e3bbc2ca6716743379b50.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_94394ac86fa77e96e8d4c3af72ed61db.html\">net6.0</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_82823cd98c87c4bb1483bb7f879dfe68.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0acaa047c55e3bbc2ca6716743379b50.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_104e9d364d598921197c06c38fc2275c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: examples/Nakama.Examples/obj/Debug/netcoreapp5.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_104e9d364d598921197c06c38fc2275c.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netcoreapp5.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_d28a4824dc47e487b107a5db32ef43c4.html\">examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_cde5b50139b2efdd71913c8f6e2f5b92.html\">Nakama.Examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_e8b3846043ed55e70c4740c96c71631d.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_a159881d357f96df4223872fd74cca14.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_104e9d364d598921197c06c38fc2275c.html\">netcoreapp5.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_1c3008a3c461c137d9f062e2a28e5366.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Exceptions Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_1c3008a3c461c137d9f062e2a28e5366.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Exceptions Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:EntityTooLargeException_2Ecs\" id=\"r_EntityTooLargeException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_entity_too_large_exception_8cs.html\">EntityTooLargeException.cs</a></td></tr>\n<tr class=\"memitem:InvalidHttpResponseCodeException_2Ecs\" id=\"r_InvalidHttpResponseCodeException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_invalid_http_response_code_exception_8cs.html\">InvalidHttpResponseCodeException.cs</a></td></tr>\n<tr class=\"memitem:SecWebSocketKeyMissingException_2Ecs\" id=\"r_SecWebSocketKeyMissingException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_sec_web_socket_key_missing_exception_8cs.html\">SecWebSocketKeyMissingException.cs</a></td></tr>\n<tr class=\"memitem:ServerListenerSocketException_2Ecs\" id=\"r_ServerListenerSocketException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_server_listener_socket_exception_8cs.html\">ServerListenerSocketException.cs</a></td></tr>\n<tr class=\"memitem:WebSocketBufferOverflowException_2Ecs\" id=\"r_WebSocketBufferOverflowException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_buffer_overflow_exception_8cs.html\">WebSocketBufferOverflowException.cs</a></td></tr>\n<tr class=\"memitem:WebSocketHandshakeFailedException_2Ecs\" id=\"r_WebSocketHandshakeFailedException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_handshake_failed_exception_8cs.html\">WebSocketHandshakeFailedException.cs</a></td></tr>\n<tr class=\"memitem:WebSocketVersionNotSupportedException_2Ecs\" id=\"r_WebSocketVersionNotSupportedException_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_version_not_supported_exception_8cs.html\">WebSocketVersionNotSupportedException.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\">Exceptions</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_1c3008a3c461c137d9f062e2a28e5366.js",
    "content": "var dir_1c3008a3c461c137d9f062e2a28e5366 =\n[\n    [ \"EntityTooLargeException.cs\", \"_entity_too_large_exception_8cs.html\", \"_entity_too_large_exception_8cs\" ],\n    [ \"InvalidHttpResponseCodeException.cs\", \"_invalid_http_response_code_exception_8cs.html\", \"_invalid_http_response_code_exception_8cs\" ],\n    [ \"SecWebSocketKeyMissingException.cs\", \"_sec_web_socket_key_missing_exception_8cs.html\", \"_sec_web_socket_key_missing_exception_8cs\" ],\n    [ \"ServerListenerSocketException.cs\", \"_server_listener_socket_exception_8cs.html\", \"_server_listener_socket_exception_8cs\" ],\n    [ \"WebSocketBufferOverflowException.cs\", \"_web_socket_buffer_overflow_exception_8cs.html\", \"_web_socket_buffer_overflow_exception_8cs\" ],\n    [ \"WebSocketHandshakeFailedException.cs\", \"_web_socket_handshake_failed_exception_8cs.html\", \"_web_socket_handshake_failed_exception_8cs\" ],\n    [ \"WebSocketVersionNotSupportedException.cs\", \"_web_socket_version_not_supported_exception_8cs.html\", \"_web_socket_version_not_supported_exception_8cs\" ]\n];"
  },
  {
    "path": "docs/html/dir_2024f50217af71df819eb31c540cc957.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: net46 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_2024f50217af71df819eb31c540cc957.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2net46_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_2024f50217af71df819eb31c540cc957.html\">net46</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_2024f50217af71df819eb31c540cc957.js",
    "content": "var dir_2024f50217af71df819eb31c540cc957 =\n[\n    [ \".NETFramework,Version=v4.6.AssemblyAttributes.cs\", \"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_debug_2net46_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_223f41b9d4a3aed2d0cd2a771bf2b672.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src/Nakama Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_223f41b9d4a3aed2d0cd2a771bf2b672.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_29bd9dc1cd33dca2d02be697ebc424d5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.1 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_29bd9dc1cd33dca2d02be697ebc424d5.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.1 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\">netstandard2.1</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_29bd9dc1cd33dca2d02be697ebc424d5.js",
    "content": "var dir_29bd9dc1cd33dca2d02be697ebc424d5 =\n[\n    [ \".NETStandard,Version=v2.1.AssemblyAttributes.cs\", \"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_2c78f4ea1566149e6f1239d9a2bbc92d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_2c78f4ea1566149e6f1239d9a2bbc92d.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:net46\" id=\"r_net46\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></td></tr>\n<tr class=\"memitem:netstandard2_2E0\" id=\"r_netstandard2_2E0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></td></tr>\n<tr class=\"memitem:netstandard2_2E1\" id=\"r_netstandard2_2E1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\">netstandard2.1</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_2c78f4ea1566149e6f1239d9a2bbc92d.js",
    "content": "var dir_2c78f4ea1566149e6f1239d9a2bbc92d =\n[\n    [ \"net46\", \"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\", \"dir_dbdb02b1c6a463d71690e5d1f101f3be\" ],\n    [ \"netstandard2.0\", \"dir_c0ea682cca75c87761dacf1668992820.html\", \"dir_c0ea682cca75c87761dacf1668992820\" ],\n    [ \"netstandard2.1\", \"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\", \"dir_4aba2f75ac06c997db6dcdd45b346bfc\" ]\n];"
  },
  {
    "path": "docs/html/dir_3771c35781cb72be820bcf0859828876.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/Socket Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_3771c35781cb72be820bcf0859828876.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Socket Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_3771c35781cb72be820bcf0859828876.html\">Socket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_40821ca9aa8b0024c09c9271c75bfc8d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Exceptions Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.1.1</span>\n   </div>\n   <div id=\"projectbrief\">.NET client for Nakama server written in C</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.2 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search\",'Search','.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_40821ca9aa8b0024c09c9271c75bfc8d.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Exceptions Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_entity_too_large_exception_8cs.html\">EntityTooLargeException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_invalid_http_response_code_exception_8cs.html\">InvalidHttpResponseCodeException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_sec_web_socket_key_missing_exception_8cs.html\">SecWebSocketKeyMissingException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_server_listener_socket_exception_8cs.html\">ServerListenerSocketException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_buffer_overflow_exception_8cs.html\">WebSocketBufferOverflowException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_handshake_failed_exception_8cs.html\">WebSocketHandshakeFailedException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_version_not_supported_exception_8cs.html\">WebSocketVersionNotSupportedException.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_81ad01bee8ed91a16e2e56d92ae48530.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_40821ca9aa8b0024c09c9271c75bfc8d.html\">Exceptions</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.2 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_4aba2f75ac06c997db6dcdd45b346bfc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.1 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_4aba2f75ac06c997db6dcdd45b346bfc.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.1 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\">netstandard2.1</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_4aba2f75ac06c997db6dcdd45b346bfc.js",
    "content": "var dir_4aba2f75ac06c997db6dcdd45b346bfc =\n[\n    [ \".NETStandard,Version=v2.1.AssemblyAttributes.cs\", \"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_4d6966d1911ef40af05228884f817f01.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Satori.Tests Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_4d6966d1911ef40af05228884f817f01.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.Tests Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_4d6966d1911ef40af05228884f817f01.html\">Satori.Tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_509efb472faf656a1f9c1c002f3dfbd0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: tests/Nakama.Tests/obj/Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_509efb472faf656a1f9c1c002f3dfbd0.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_79e598b17822ac3218a31651fbd84230.html\">netcoreapp6.0</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_59425e443f801f1f2fd8bbe4959a3ccf.html\">tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_f82b846bb6a413b95a3fa0edffb6464f.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_7b1b4a986f21cd07a017e6cd0f74eec4.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_509efb472faf656a1f9c1c002f3dfbd0.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_59425e443f801f1f2fd8bbe4959a3ccf.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: tests Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_59425e443f801f1f2fd8bbe4959a3ccf.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">tests Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_59425e443f801f1f2fd8bbe4959a3ccf.html\">tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5986fb63ee1c250c22ec7255d2796bed.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Release Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_5986fb63ee1c250c22ec7255d2796bed.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:net46\" id=\"r_net46\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\">net46</a></td></tr>\n<tr class=\"memitem:netstandard2_2E0\" id=\"r_netstandard2_2E0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_d0af3520e52159625e5c54b0a0666246.html\">netstandard2.0</a></td></tr>\n<tr class=\"memitem:netstandard2_2E1\" id=\"r_netstandard2_2E1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\">netstandard2.1</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5986fb63ee1c250c22ec7255d2796bed.js",
    "content": "var dir_5986fb63ee1c250c22ec7255d2796bed =\n[\n    [ \"net46\", \"dir_6c5dd7babc86647cb00b5f49e0afc051.html\", \"dir_6c5dd7babc86647cb00b5f49e0afc051\" ],\n    [ \"netstandard2.0\", \"dir_d0af3520e52159625e5c54b0a0666246.html\", \"dir_d0af3520e52159625e5c54b0a0666246\" ],\n    [ \"netstandard2.1\", \"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\", \"dir_29bd9dc1cd33dca2d02be697ebc424d5\" ]\n];"
  },
  {
    "path": "docs/html/dir_5a43296f26836228c3ddbf8578e994aa.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.1 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_5a43296f26836228c3ddbf8578e994aa.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.1 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\">netstandard2.1</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5a43296f26836228c3ddbf8578e994aa.js",
    "content": "var dir_5a43296f26836228c3ddbf8578e994aa =\n[\n    [ \".NETStandard,Version=v2.1.AssemblyAttributes.cs\", \"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_5c537d2b32ff2d13d00336fbe6131750.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.1 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_5c537d2b32ff2d13d00336fbe6131750.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.1 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E1_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\">netstandard2.1</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5c537d2b32ff2d13d00336fbe6131750.js",
    "content": "var dir_5c537d2b32ff2d13d00336fbe6131750 =\n[\n    [ \".NETStandard,Version=v2.1.AssemblyAttributes.cs\", \"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_5d1450713377add98c1180fe0eb2f9ae.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Console Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_5d1450713377add98c1180fe0eb2f9ae.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Console Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:ConsoleClient_2Egen_2Ecs\" id=\"r_ConsoleClient_2Egen_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_5d1450713377add98c1180fe0eb2f9ae.html\">Console</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5d1450713377add98c1180fe0eb2f9ae.js",
    "content": "var dir_5d1450713377add98c1180fe0eb2f9ae =\n[\n    [ \"ConsoleClient.gen.cs\", \"_console_client_8gen_8cs.html\", \"_console_client_8gen_8cs\" ]\n];"
  },
  {
    "path": "docs/html/dir_5eb17383be0272b71916d4988c97ae3c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_5eb17383be0272b71916d4988c97ae3c.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\">netstandard2.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_5eb17383be0272b71916d4988c97ae3c.js",
    "content": "var dir_5eb17383be0272b71916d4988c97ae3c =\n[\n    [ \".NETStandard,Version=v2.0.AssemblyAttributes.cs\", \"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_64302e4ed8e680c5e7832e1b7ea09baa.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_64302e4ed8e680c5e7832e1b7ea09baa.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:Console\" id=\"r_Console\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_5d1450713377add98c1180fe0eb2f9ae.html\">Console</a></td></tr>\n<tr class=\"memitem:Ninja_2EWebSockets\" id=\"r_Ninja_2EWebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></td></tr>\n<tr class=\"memitem:obj\" id=\"r_obj\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></td></tr>\n<tr class=\"memitem:TinyJson\" id=\"r_TinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_0385b7cc93c13096276fd0475bf94138.html\">TinyJson</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:ApiClient_2Egen_2Ecs\" id=\"r_ApiClient_2Egen_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">ApiClient.gen.cs</a></td></tr>\n<tr class=\"memitem:ChannelJoinMessage_2Ecs\" id=\"r_ChannelJoinMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_channel_join_message_8cs.html\">ChannelJoinMessage.cs</a></td></tr>\n<tr class=\"memitem:ChannelLeaveMessage_2Ecs\" id=\"r_ChannelLeaveMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_channel_leave_message_8cs.html\">ChannelLeaveMessage.cs</a></td></tr>\n<tr class=\"memitem:ChannelRemoveMessage_2Ecs\" id=\"r_ChannelRemoveMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_channel_remove_message_8cs.html\">ChannelRemoveMessage.cs</a></td></tr>\n<tr class=\"memitem:ChannelSendMessage_2Ecs\" id=\"r_ChannelSendMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_channel_send_message_8cs.html\">ChannelSendMessage.cs</a></td></tr>\n<tr class=\"memitem:ChannelUpdateMessage_2Ecs\" id=\"r_ChannelUpdateMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_channel_update_message_8cs.html\">ChannelUpdateMessage.cs</a></td></tr>\n<tr class=\"memitem:Client_2Ecs\" id=\"r_Client_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_client_8cs.html\">Client.cs</a></td></tr>\n<tr class=\"memitem:GZipHttpClientHandler_2Ecs\" id=\"r_GZipHttpClientHandler_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_g_zip_http_client_handler_8cs.html\">GZipHttpClientHandler.cs</a></td></tr>\n<tr class=\"memitem:HttpRequestAdapter_2Ecs\" id=\"r_HttpRequestAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_http_request_adapter_8cs.html\">HttpRequestAdapter.cs</a></td></tr>\n<tr class=\"memitem:IChannel_2Ecs\" id=\"r_IChannel_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_channel_8cs.html\">IChannel.cs</a></td></tr>\n<tr class=\"memitem:IChannelMessageAck_2Ecs\" id=\"r_IChannelMessageAck_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_channel_message_ack_8cs.html\">IChannelMessageAck.cs</a></td></tr>\n<tr class=\"memitem:IChannelPresenceEvent_2Ecs\" id=\"r_IChannelPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_channel_presence_event_8cs.html\">IChannelPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:IClient_2Ecs\" id=\"r_IClient_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_i_client_8cs.html\">IClient.cs</a></td></tr>\n<tr class=\"memitem:IHttpAdapter_2Ecs\" id=\"r_IHttpAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_i_http_adapter_8cs.html\">IHttpAdapter.cs</a></td></tr>\n<tr class=\"memitem:IHttpAdapterUtil_2Ecs\" id=\"r_IHttpAdapterUtil_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_i_http_adapter_util_8cs.html\">IHttpAdapterUtil.cs</a></td></tr>\n<tr class=\"memitem:ILogger_2Ecs\" id=\"r_ILogger_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_i_logger_8cs.html\">ILogger.cs</a></td></tr>\n<tr class=\"memitem:IMatch_2Ecs\" id=\"r_IMatch_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_match_8cs.html\">IMatch.cs</a></td></tr>\n<tr class=\"memitem:IMatchmakerMatched_2Ecs\" id=\"r_IMatchmakerMatched_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_matchmaker_matched_8cs.html\">IMatchmakerMatched.cs</a></td></tr>\n<tr class=\"memitem:IMatchmakerTicket_2Ecs\" id=\"r_IMatchmakerTicket_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_matchmaker_ticket_8cs.html\">IMatchmakerTicket.cs</a></td></tr>\n<tr class=\"memitem:IMatchPresenceEvent_2Ecs\" id=\"r_IMatchPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_match_presence_event_8cs.html\">IMatchPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:IMatchState_2Ecs\" id=\"r_IMatchState_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_match_state_8cs.html\">IMatchState.cs</a></td></tr>\n<tr class=\"memitem:IParty_2Ecs\" id=\"r_IParty_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_8cs.html\">IParty.cs</a></td></tr>\n<tr class=\"memitem:IPartyClose_2Ecs\" id=\"r_IPartyClose_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_close_8cs.html\">IPartyClose.cs</a></td></tr>\n<tr class=\"memitem:IPartyData_2Ecs\" id=\"r_IPartyData_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_data_8cs.html\">IPartyData.cs</a></td></tr>\n<tr class=\"memitem:IPartyJoinRequest_2Ecs\" id=\"r_IPartyJoinRequest_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_join_request_8cs.html\">IPartyJoinRequest.cs</a></td></tr>\n<tr class=\"memitem:IPartyLeader_2Ecs\" id=\"r_IPartyLeader_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_leader_8cs.html\">IPartyLeader.cs</a></td></tr>\n<tr class=\"memitem:IPartyMatchmakerTicket_2Ecs\" id=\"r_IPartyMatchmakerTicket_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_matchmaker_ticket_8cs.html\">IPartyMatchmakerTicket.cs</a></td></tr>\n<tr class=\"memitem:IPartyPresenceEvent_2Ecs\" id=\"r_IPartyPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_presence_event_8cs.html\">IPartyPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:IPartyUpdate_2Ecs\" id=\"r_IPartyUpdate_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_party_update_8cs.html\">IPartyUpdate.cs</a></td></tr>\n<tr class=\"memitem:ISession_2Ecs\" id=\"r_ISession_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_i_session_8cs.html\">ISession.cs</a></td></tr>\n<tr class=\"memitem:ISocket_2Ecs\" id=\"r_ISocket_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_socket_8cs.html\">ISocket.cs</a></td></tr>\n<tr class=\"memitem:ISocketAdapter_2Ecs\" id=\"r_ISocketAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_socket_adapter_8cs.html\">ISocketAdapter.cs</a></td></tr>\n<tr class=\"memitem:IStatus_2Ecs\" id=\"r_IStatus_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_status_8cs.html\">IStatus.cs</a></td></tr>\n<tr class=\"memitem:IStatusPresenceEvent_2Ecs\" id=\"r_IStatusPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_status_presence_event_8cs.html\">IStatusPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:IStreamPresenceEvent_2Ecs\" id=\"r_IStreamPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_stream_presence_event_8cs.html\">IStreamPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:IUserPresence_2Ecs\" id=\"r_IUserPresence_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_user_presence_8cs.html\">IUserPresence.cs</a></td></tr>\n<tr class=\"memitem:MatchCreateMessage_2Ecs\" id=\"r_MatchCreateMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_match_create_message_8cs.html\">MatchCreateMessage.cs</a></td></tr>\n<tr class=\"memitem:MatchJoinMessage_2Ecs\" id=\"r_MatchJoinMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_match_join_message_8cs.html\">MatchJoinMessage.cs</a></td></tr>\n<tr class=\"memitem:MatchLeaveMessage_2Ecs\" id=\"r_MatchLeaveMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_match_leave_message_8cs.html\">MatchLeaveMessage.cs</a></td></tr>\n<tr class=\"memitem:MatchmakerAddMessage_2Ecs\" id=\"r_MatchmakerAddMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_matchmaker_add_message_8cs.html\">MatchmakerAddMessage.cs</a></td></tr>\n<tr class=\"memitem:MatchmakerRemoveMessage_2Ecs\" id=\"r_MatchmakerRemoveMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_matchmaker_remove_message_8cs.html\">MatchmakerRemoveMessage.cs</a></td></tr>\n<tr class=\"memitem:MatchSendMessage_2Ecs\" id=\"r_MatchSendMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_match_send_message_8cs.html\">MatchSendMessage.cs</a></td></tr>\n<tr class=\"memitem:NullLogger_2Ecs\" id=\"r_NullLogger_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_null_logger_8cs.html\">NullLogger.cs</a></td></tr>\n<tr class=\"memitem:Party_2Ecs\" id=\"r_Party_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_8cs.html\">Party.cs</a></td></tr>\n<tr class=\"memitem:PartyAccept_2Ecs\" id=\"r_PartyAccept_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_accept_8cs.html\">PartyAccept.cs</a></td></tr>\n<tr class=\"memitem:PartyClose_2Ecs\" id=\"r_PartyClose_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_close_8cs.html\">PartyClose.cs</a></td></tr>\n<tr class=\"memitem:PartyCreate_2Ecs\" id=\"r_PartyCreate_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_create_8cs.html\">PartyCreate.cs</a></td></tr>\n<tr class=\"memitem:PartyData_2Ecs\" id=\"r_PartyData_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_data_8cs.html\">PartyData.cs</a></td></tr>\n<tr class=\"memitem:PartyDataSend_2Ecs\" id=\"r_PartyDataSend_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_data_send_8cs.html\">PartyDataSend.cs</a></td></tr>\n<tr class=\"memitem:PartyJoin_2Ecs\" id=\"r_PartyJoin_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_join_8cs.html\">PartyJoin.cs</a></td></tr>\n<tr class=\"memitem:PartyJoinRequest_2Ecs\" id=\"r_PartyJoinRequest_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_join_request_8cs.html\">PartyJoinRequest.cs</a></td></tr>\n<tr class=\"memitem:PartyJoinRequestList_2Ecs\" id=\"r_PartyJoinRequestList_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_join_request_list_8cs.html\">PartyJoinRequestList.cs</a></td></tr>\n<tr class=\"memitem:PartyLeader_2Ecs\" id=\"r_PartyLeader_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_leader_8cs.html\">PartyLeader.cs</a></td></tr>\n<tr class=\"memitem:PartyLeave_2Ecs\" id=\"r_PartyLeave_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_leave_8cs.html\">PartyLeave.cs</a></td></tr>\n<tr class=\"memitem:PartyMatchmakerAdd_2Ecs\" id=\"r_PartyMatchmakerAdd_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_matchmaker_add_8cs.html\">PartyMatchmakerAdd.cs</a></td></tr>\n<tr class=\"memitem:PartyMatchmakerRemove_2Ecs\" id=\"r_PartyMatchmakerRemove_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_matchmaker_remove_8cs.html\">PartyMatchmakerRemove.cs</a></td></tr>\n<tr class=\"memitem:PartyMatchmakerTicket_2Ecs\" id=\"r_PartyMatchmakerTicket_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_matchmaker_ticket_8cs.html\">PartyMatchmakerTicket.cs</a></td></tr>\n<tr class=\"memitem:PartyMemberRemove_2Ecs\" id=\"r_PartyMemberRemove_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_member_remove_8cs.html\">PartyMemberRemove.cs</a></td></tr>\n<tr class=\"memitem:PartyPresenceEvent_2Ecs\" id=\"r_PartyPresenceEvent_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_presence_event_8cs.html\">PartyPresenceEvent.cs</a></td></tr>\n<tr class=\"memitem:PartyPromote_2Ecs\" id=\"r_PartyPromote_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_promote_8cs.html\">PartyPromote.cs</a></td></tr>\n<tr class=\"memitem:PartyUpdate_2Ecs\" id=\"r_PartyUpdate_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_party_update_8cs.html\">PartyUpdate.cs</a></td></tr>\n<tr class=\"memitem:PresenceUtil_2Ecs\" id=\"r_PresenceUtil_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_presence_util_8cs.html\">PresenceUtil.cs</a></td></tr>\n<tr class=\"memitem:PreserveAttribute_2Ecs\" id=\"r_PreserveAttribute_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_preserve_attribute_8cs.html\">PreserveAttribute.cs</a></td></tr>\n<tr class=\"memitem:Retry_2Ecs\" id=\"r_Retry_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_8cs.html\">Retry.cs</a></td></tr>\n<tr class=\"memitem:RetryConfiguration_2Ecs\" id=\"r_RetryConfiguration_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_configuration_8cs.html\">RetryConfiguration.cs</a></td></tr>\n<tr class=\"memitem:RetryHistory_2Ecs\" id=\"r_RetryHistory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_history_8cs.html\">RetryHistory.cs</a></td></tr>\n<tr class=\"memitem:RetryInvoker_2Ecs\" id=\"r_RetryInvoker_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_invoker_8cs.html\">RetryInvoker.cs</a></td></tr>\n<tr class=\"memitem:RetryJitter_2Ecs\" id=\"r_RetryJitter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_jitter_8cs.html\">RetryJitter.cs</a></td></tr>\n<tr class=\"memitem:RetryListener_2Ecs\" id=\"r_RetryListener_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_retry_listener_8cs.html\">RetryListener.cs</a></td></tr>\n<tr class=\"memitem:Session_2Ecs\" id=\"r_Session_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_session_8cs.html\">Session.cs</a></td></tr>\n<tr class=\"memitem:Socket_2Ecs\" id=\"r_Socket_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_socket_8cs.html\">Socket.cs</a></td></tr>\n<tr class=\"memitem:StatusFollowMessage_2Ecs\" id=\"r_StatusFollowMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_status_follow_message_8cs.html\">StatusFollowMessage.cs</a></td></tr>\n<tr class=\"memitem:StatusUnfollowMessage_2Ecs\" id=\"r_StatusUnfollowMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_status_unfollow_message_8cs.html\">StatusUnfollowMessage.cs</a></td></tr>\n<tr class=\"memitem:StatusUpdateMessage_2Ecs\" id=\"r_StatusUpdateMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_status_update_message_8cs.html\">StatusUpdateMessage.cs</a></td></tr>\n<tr class=\"memitem:StorageObjectId_2Ecs\" id=\"r_StorageObjectId_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_storage_object_id_8cs.html\">StorageObjectId.cs</a></td></tr>\n<tr class=\"memitem:TransientExceptionDelegate_2Ecs\" id=\"r_TransientExceptionDelegate_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2_transient_exception_delegate_8cs.html\">TransientExceptionDelegate.cs</a></td></tr>\n<tr class=\"memitem:WebSocketAdapter_2Ecs\" id=\"r_WebSocketAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_adapter_8cs.html\">WebSocketAdapter.cs</a></td></tr>\n<tr class=\"memitem:WebSocketErrorMessage_2Ecs\" id=\"r_WebSocketErrorMessage_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_error_message_8cs.html\">WebSocketErrorMessage.cs</a></td></tr>\n<tr class=\"memitem:WebSocketMessageEnvelope_2Ecs\" id=\"r_WebSocketMessageEnvelope_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_message_envelope_8cs.html\">WebSocketMessageEnvelope.cs</a></td></tr>\n<tr class=\"memitem:WebSocketStdlibAdapter_2Ecs\" id=\"r_WebSocketStdlibAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_stdlib_adapter_8cs.html\">WebSocketStdlibAdapter.cs</a></td></tr>\n<tr class=\"memitem:WriteStorageObject_2Ecs\" id=\"r_WriteStorageObject_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_write_storage_object_8cs.html\">WriteStorageObject.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_64302e4ed8e680c5e7832e1b7ea09baa.js",
    "content": "var dir_64302e4ed8e680c5e7832e1b7ea09baa =\n[\n    [ \"Console\", \"dir_5d1450713377add98c1180fe0eb2f9ae.html\", \"dir_5d1450713377add98c1180fe0eb2f9ae\" ],\n    [ \"Ninja.WebSockets\", \"dir_00db1776877a30bd47a3324e3b896815.html\", \"dir_00db1776877a30bd47a3324e3b896815\" ],\n    [ \"obj\", \"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\", \"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c\" ],\n    [ \"TinyJson\", \"dir_0385b7cc93c13096276fd0475bf94138.html\", \"dir_0385b7cc93c13096276fd0475bf94138\" ],\n    [ \"ApiClient.gen.cs\", \"_nakama_2_api_client_8gen_8cs.html\", \"_nakama_2_api_client_8gen_8cs\" ],\n    [ \"ChannelJoinMessage.cs\", \"_channel_join_message_8cs.html\", \"_channel_join_message_8cs\" ],\n    [ \"ChannelLeaveMessage.cs\", \"_channel_leave_message_8cs.html\", null ],\n    [ \"ChannelRemoveMessage.cs\", \"_channel_remove_message_8cs.html\", null ],\n    [ \"ChannelSendMessage.cs\", \"_channel_send_message_8cs.html\", null ],\n    [ \"ChannelUpdateMessage.cs\", \"_channel_update_message_8cs.html\", null ],\n    [ \"Client.cs\", \"_nakama_2_client_8cs.html\", \"_nakama_2_client_8cs\" ],\n    [ \"GZipHttpClientHandler.cs\", \"_nakama_2_g_zip_http_client_handler_8cs.html\", null ],\n    [ \"HttpRequestAdapter.cs\", \"_nakama_2_http_request_adapter_8cs.html\", \"_nakama_2_http_request_adapter_8cs\" ],\n    [ \"IChannel.cs\", \"_i_channel_8cs.html\", \"_i_channel_8cs\" ],\n    [ \"IChannelMessageAck.cs\", \"_i_channel_message_ack_8cs.html\", \"_i_channel_message_ack_8cs\" ],\n    [ \"IChannelPresenceEvent.cs\", \"_i_channel_presence_event_8cs.html\", \"_i_channel_presence_event_8cs\" ],\n    [ \"IClient.cs\", \"_nakama_2_i_client_8cs.html\", \"_nakama_2_i_client_8cs\" ],\n    [ \"IHttpAdapter.cs\", \"_nakama_2_i_http_adapter_8cs.html\", \"_nakama_2_i_http_adapter_8cs\" ],\n    [ \"IHttpAdapterUtil.cs\", \"_nakama_2_i_http_adapter_util_8cs.html\", null ],\n    [ \"ILogger.cs\", \"_nakama_2_i_logger_8cs.html\", \"_nakama_2_i_logger_8cs\" ],\n    [ \"IMatch.cs\", \"_i_match_8cs.html\", \"_i_match_8cs\" ],\n    [ \"IMatchmakerMatched.cs\", \"_i_matchmaker_matched_8cs.html\", \"_i_matchmaker_matched_8cs\" ],\n    [ \"IMatchmakerTicket.cs\", \"_i_matchmaker_ticket_8cs.html\", \"_i_matchmaker_ticket_8cs\" ],\n    [ \"IMatchPresenceEvent.cs\", \"_i_match_presence_event_8cs.html\", \"_i_match_presence_event_8cs\" ],\n    [ \"IMatchState.cs\", \"_i_match_state_8cs.html\", \"_i_match_state_8cs\" ],\n    [ \"IParty.cs\", \"_i_party_8cs.html\", \"_i_party_8cs\" ],\n    [ \"IPartyClose.cs\", \"_i_party_close_8cs.html\", \"_i_party_close_8cs\" ],\n    [ \"IPartyData.cs\", \"_i_party_data_8cs.html\", \"_i_party_data_8cs\" ],\n    [ \"IPartyJoinRequest.cs\", \"_i_party_join_request_8cs.html\", \"_i_party_join_request_8cs\" ],\n    [ \"IPartyLeader.cs\", \"_i_party_leader_8cs.html\", \"_i_party_leader_8cs\" ],\n    [ \"IPartyMatchmakerTicket.cs\", \"_i_party_matchmaker_ticket_8cs.html\", \"_i_party_matchmaker_ticket_8cs\" ],\n    [ \"IPartyPresenceEvent.cs\", \"_i_party_presence_event_8cs.html\", \"_i_party_presence_event_8cs\" ],\n    [ \"IPartyUpdate.cs\", \"_i_party_update_8cs.html\", \"_i_party_update_8cs\" ],\n    [ \"ISession.cs\", \"_nakama_2_i_session_8cs.html\", \"_nakama_2_i_session_8cs\" ],\n    [ \"ISocket.cs\", \"_i_socket_8cs.html\", \"_i_socket_8cs\" ],\n    [ \"ISocketAdapter.cs\", \"_i_socket_adapter_8cs.html\", \"_i_socket_adapter_8cs\" ],\n    [ \"IStatus.cs\", \"_i_status_8cs.html\", \"_i_status_8cs\" ],\n    [ \"IStatusPresenceEvent.cs\", \"_i_status_presence_event_8cs.html\", \"_i_status_presence_event_8cs\" ],\n    [ \"IStreamPresenceEvent.cs\", \"_i_stream_presence_event_8cs.html\", \"_i_stream_presence_event_8cs\" ],\n    [ \"IUserPresence.cs\", \"_i_user_presence_8cs.html\", \"_i_user_presence_8cs\" ],\n    [ \"MatchCreateMessage.cs\", \"_match_create_message_8cs.html\", null ],\n    [ \"MatchJoinMessage.cs\", \"_match_join_message_8cs.html\", null ],\n    [ \"MatchLeaveMessage.cs\", \"_match_leave_message_8cs.html\", null ],\n    [ \"MatchmakerAddMessage.cs\", \"_matchmaker_add_message_8cs.html\", null ],\n    [ \"MatchmakerRemoveMessage.cs\", \"_matchmaker_remove_message_8cs.html\", null ],\n    [ \"MatchSendMessage.cs\", \"_match_send_message_8cs.html\", null ],\n    [ \"NullLogger.cs\", \"_null_logger_8cs.html\", null ],\n    [ \"Party.cs\", \"_party_8cs.html\", null ],\n    [ \"PartyAccept.cs\", \"_party_accept_8cs.html\", null ],\n    [ \"PartyClose.cs\", \"_party_close_8cs.html\", null ],\n    [ \"PartyCreate.cs\", \"_party_create_8cs.html\", null ],\n    [ \"PartyData.cs\", \"_party_data_8cs.html\", null ],\n    [ \"PartyDataSend.cs\", \"_party_data_send_8cs.html\", null ],\n    [ \"PartyJoin.cs\", \"_party_join_8cs.html\", null ],\n    [ \"PartyJoinRequest.cs\", \"_party_join_request_8cs.html\", null ],\n    [ \"PartyJoinRequestList.cs\", \"_party_join_request_list_8cs.html\", null ],\n    [ \"PartyLeader.cs\", \"_party_leader_8cs.html\", null ],\n    [ \"PartyLeave.cs\", \"_party_leave_8cs.html\", null ],\n    [ \"PartyMatchmakerAdd.cs\", \"_party_matchmaker_add_8cs.html\", null ],\n    [ \"PartyMatchmakerRemove.cs\", \"_party_matchmaker_remove_8cs.html\", null ],\n    [ \"PartyMatchmakerTicket.cs\", \"_party_matchmaker_ticket_8cs.html\", null ],\n    [ \"PartyMemberRemove.cs\", \"_party_member_remove_8cs.html\", null ],\n    [ \"PartyPresenceEvent.cs\", \"_party_presence_event_8cs.html\", null ],\n    [ \"PartyPromote.cs\", \"_party_promote_8cs.html\", null ],\n    [ \"PartyUpdate.cs\", \"_party_update_8cs.html\", null ],\n    [ \"PresenceUtil.cs\", \"_presence_util_8cs.html\", null ],\n    [ \"PreserveAttribute.cs\", \"_nakama_2_preserve_attribute_8cs.html\", null ],\n    [ \"Retry.cs\", \"_nakama_2_retry_8cs.html\", \"_nakama_2_retry_8cs\" ],\n    [ \"RetryConfiguration.cs\", \"_nakama_2_retry_configuration_8cs.html\", \"_nakama_2_retry_configuration_8cs\" ],\n    [ \"RetryHistory.cs\", \"_nakama_2_retry_history_8cs.html\", null ],\n    [ \"RetryInvoker.cs\", \"_nakama_2_retry_invoker_8cs.html\", null ],\n    [ \"RetryJitter.cs\", \"_nakama_2_retry_jitter_8cs.html\", \"_nakama_2_retry_jitter_8cs\" ],\n    [ \"RetryListener.cs\", \"_nakama_2_retry_listener_8cs.html\", \"_nakama_2_retry_listener_8cs\" ],\n    [ \"Session.cs\", \"_nakama_2_session_8cs.html\", \"_nakama_2_session_8cs\" ],\n    [ \"Socket.cs\", \"_socket_8cs.html\", \"_socket_8cs\" ],\n    [ \"StatusFollowMessage.cs\", \"_status_follow_message_8cs.html\", null ],\n    [ \"StatusUnfollowMessage.cs\", \"_status_unfollow_message_8cs.html\", null ],\n    [ \"StatusUpdateMessage.cs\", \"_status_update_message_8cs.html\", null ],\n    [ \"StorageObjectId.cs\", \"_storage_object_id_8cs.html\", \"_storage_object_id_8cs\" ],\n    [ \"TransientExceptionDelegate.cs\", \"_nakama_2_transient_exception_delegate_8cs.html\", \"_nakama_2_transient_exception_delegate_8cs\" ],\n    [ \"WebSocketAdapter.cs\", \"_web_socket_adapter_8cs.html\", \"_web_socket_adapter_8cs\" ],\n    [ \"WebSocketErrorMessage.cs\", \"_web_socket_error_message_8cs.html\", null ],\n    [ \"WebSocketMessageEnvelope.cs\", \"_web_socket_message_envelope_8cs.html\", null ],\n    [ \"WebSocketStdlibAdapter.cs\", \"_web_socket_stdlib_adapter_8cs.html\", \"_web_socket_stdlib_adapter_8cs\" ],\n    [ \"WriteStorageObject.cs\", \"_write_storage_object_8cs.html\", \"_write_storage_object_8cs\" ]\n];"
  },
  {
    "path": "docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">src Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_6c5dd7babc86647cb00b5f49e0afc051.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: net46 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_6c5dd7babc86647cb00b5f49e0afc051.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2net46_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\">net46</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_6c5dd7babc86647cb00b5f49e0afc051.js",
    "content": "var dir_6c5dd7babc86647cb00b5f49e0afc051 =\n[\n    [ \".NETFramework,Version=v4.6.AssemblyAttributes.cs\", \"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_release_2net46_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_717cf8a47ded45e56c3041f98a9ca441.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Internal Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.1.1</span>\n   </div>\n   <div id=\"projectbrief\">.NET client for Nakama server written in C</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.2 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search\",'Search','.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_717cf8a47ded45e56c3041f98a9ca441.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Internal Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_binary_reader_writer_8cs.html\">BinaryReaderWriter.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_8cs.html\">WebSocketFrame.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_common_8cs.html\">WebSocketFrameCommon.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_reader_8cs.html\">WebSocketFrameReader.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_writer_8cs.html\">WebSocketFrameWriter.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_implementation_8cs.html\">WebSocketImplementation.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_op_code_8cs.html\">WebSocketOpCode.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_81ad01bee8ed91a16e2e56d92ae48530.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_717cf8a47ded45e56c3041f98a9ca441.html\">Internal</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.2 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_75202c243db9baf385df0aac94b0acc0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: net46 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_75202c243db9baf385df0aac94b0acc0.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2net46_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_75202c243db9baf385df0aac94b0acc0.html\">net46</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_75202c243db9baf385df0aac94b0acc0.js",
    "content": "var dir_75202c243db9baf385df0aac94b0acc0 =\n[\n    [ \".NETFramework,Version=v4.6.AssemblyAttributes.cs\", \"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_release_2net46_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_79e598b17822ac3218a31651fbd84230.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: tests/Nakama.Tests/obj/Debug/netcoreapp6.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_79e598b17822ac3218a31651fbd84230.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netcoreapp6.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_59425e443f801f1f2fd8bbe4959a3ccf.html\">tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_f82b846bb6a413b95a3fa0edffb6464f.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_7b1b4a986f21cd07a017e6cd0f74eec4.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_509efb472faf656a1f9c1c002f3dfbd0.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_79e598b17822ac3218a31651fbd84230.html\">netcoreapp6.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_7a595d23279f99f2e5346245557e8271.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_7a595d23279f99f2e5346245557e8271.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Satori_2EAssemblyInfo_2Ecs\" id=\"r_Satori_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_7a595d23279f99f2e5346245557e8271.html\">netstandard2.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_7a595d23279f99f2e5346245557e8271.js",
    "content": "var dir_7a595d23279f99f2e5346245557e8271 =\n[\n    [ \".NETStandard,Version=v2.0.AssemblyAttributes.cs\", \"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\", null ],\n    [ \"Satori.AssemblyInfo.cs\", \"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_7b1b4a986f21cd07a017e6cd0f74eec4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: tests/Nakama.Tests/obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_7b1b4a986f21cd07a017e6cd0f74eec4.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_59425e443f801f1f2fd8bbe4959a3ccf.html\">tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_f82b846bb6a413b95a3fa0edffb6464f.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_7b1b4a986f21cd07a017e6cd0f74eec4.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_81ad01bee8ed91a16e2e56d92ae48530.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Ninja.WebSockets Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.1.1</span>\n   </div>\n   <div id=\"projectbrief\">.NET client for Nakama server written in C</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.2 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search\",'Search','.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_81ad01bee8ed91a16e2e56d92ae48530.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Ninja.WebSockets Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_40821ca9aa8b0024c09c9271c75bfc8d.html\">Exceptions</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_717cf8a47ded45e56c3041f98a9ca441.html\">Internal</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_buffer_pool_8cs.html\">BufferPool.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_http_helper_8cs.html\">HttpHelper.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_buffer_pool_8cs.html\">IBufferPool.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_ping_pong_manager_8cs.html\">IPingPongManager.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_web_socket_client_factory_8cs.html\">IWebSocketClientFactory.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_i_web_socket_server_factory_8cs.html\">IWebSocketServerFactory.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_ping_pong_manager_8cs.html\">PingPongManager.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_pong_event_args_8cs.html\">PongEventArgs.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_client_factory_8cs.html\">WebSocketClientFactory.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_client_options_8cs.html\">WebSocketClientOptions.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_http_context_8cs.html\">WebSocketHttpContext.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_server_factory_8cs.html\">WebSocketServerFactory.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">file &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_server_options_8cs.html\">WebSocketServerOptions.cs</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_81ad01bee8ed91a16e2e56d92ae48530.html\">Ninja.WebSockets</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.2 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_82823cd98c87c4bb1483bb7f879dfe68.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_82823cd98c87c4bb1483bb7f879dfe68.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_82823cd98c87c4bb1483bb7f879dfe68.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:Debug\" id=\"r_Debug\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></td></tr>\n<tr class=\"memitem:Release\" id=\"r_Release\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.js",
    "content": "var dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c =\n[\n    [ \"Debug\", \"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\", \"dir_2c78f4ea1566149e6f1239d9a2bbc92d\" ],\n    [ \"Release\", \"dir_5986fb63ee1c250c22ec7255d2796bed.html\", \"dir_5986fb63ee1c250c22ec7255d2796bed\" ]\n];"
  },
  {
    "path": "docs/html/dir_93c065d202f1b2ae4be97868117427d8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Release Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_93c065d202f1b2ae4be97868117427d8.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:net46\" id=\"r_net46\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_75202c243db9baf385df0aac94b0acc0.html\">net46</a></td></tr>\n<tr class=\"memitem:netstandard2_2E0\" id=\"r_netstandard2_2E0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_7a595d23279f99f2e5346245557e8271.html\">netstandard2.0</a></td></tr>\n<tr class=\"memitem:netstandard2_2E1\" id=\"r_netstandard2_2E1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\">netstandard2.1</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\">Release</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_93c065d202f1b2ae4be97868117427d8.js",
    "content": "var dir_93c065d202f1b2ae4be97868117427d8 =\n[\n    [ \"net46\", \"dir_75202c243db9baf385df0aac94b0acc0.html\", \"dir_75202c243db9baf385df0aac94b0acc0\" ],\n    [ \"netstandard2.0\", \"dir_7a595d23279f99f2e5346245557e8271.html\", \"dir_7a595d23279f99f2e5346245557e8271\" ],\n    [ \"netstandard2.1\", \"dir_5c537d2b32ff2d13d00336fbe6131750.html\", \"dir_5c537d2b32ff2d13d00336fbe6131750\" ]\n];"
  },
  {
    "path": "docs/html/dir_94394ac86fa77e96e8d4c3af72ed61db.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/obj/Debug/net6.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_94394ac86fa77e96e8d4c3af72ed61db.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net6.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_82823cd98c87c4bb1483bb7f879dfe68.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0acaa047c55e3bbc2ca6716743379b50.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_94394ac86fa77e96e8d4c3af72ed61db.html\">net6.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src/Nakama/obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_a159881d357f96df4223872fd74cca14.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: examples/Nakama.Examples/obj/Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_a159881d357f96df4223872fd74cca14.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_104e9d364d598921197c06c38fc2275c.html\">netcoreapp5.0</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_d28a4824dc47e487b107a5db32ef43c4.html\">examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_cde5b50139b2efdd71913c8f6e2f5b92.html\">Nakama.Examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_e8b3846043ed55e70c4740c96c71631d.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_a159881d357f96df4223872fd74cca14.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_aa00dbe797bd24fe05814e1a03a446ba.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/obj/Release/net6.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_aa00dbe797bd24fe05814e1a03a446ba.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net6.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_82823cd98c87c4bb1483bb7f879dfe68.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_e55adf3e55c0cf2ab15afcf2abaa2799.html\">Release</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_aa00dbe797bd24fe05814e1a03a446ba.html\">net6.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_b668d86527323370c4668cb8bf07410d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src/Nakama/obj/Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_b668d86527323370c4668cb8bf07410d.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_cbab373848d17bb13c8f8154bda6a142.html\">net46</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_f5a6105ca7ea82175c57b6cc08e28f9f.html\">netstandard2.0</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b668d86527323370c4668cb8bf07410d.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_ba769f4416b2c074a28c6130af43e345.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_ba769f4416b2c074a28c6130af43e345.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:obj\" id=\"r_obj\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></td></tr>\n<tr class=\"memitem:TinyJson\" id=\"r_TinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\">TinyJson</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:ApiClient_2Egen_2Ecs\" id=\"r_ApiClient_2Egen_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">ApiClient.gen.cs</a></td></tr>\n<tr class=\"memitem:Client_2Ecs\" id=\"r_Client_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_client_8cs.html\">Client.cs</a></td></tr>\n<tr class=\"memitem:Event_2Ecs\" id=\"r_Event_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_event_8cs.html\">Event.cs</a></td></tr>\n<tr class=\"memitem:GZipHttpClientHandler_2Ecs\" id=\"r_GZipHttpClientHandler_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_g_zip_http_client_handler_8cs.html\">GZipHttpClientHandler.cs</a></td></tr>\n<tr class=\"memitem:HttpRequestAdapter_2Ecs\" id=\"r_HttpRequestAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_http_request_adapter_8cs.html\">HttpRequestAdapter.cs</a></td></tr>\n<tr class=\"memitem:IClient_2Ecs\" id=\"r_IClient_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_i_client_8cs.html\">IClient.cs</a></td></tr>\n<tr class=\"memitem:IHttpAdapter_2Ecs\" id=\"r_IHttpAdapter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_i_http_adapter_8cs.html\">IHttpAdapter.cs</a></td></tr>\n<tr class=\"memitem:IHttpAdapterUtil_2Ecs\" id=\"r_IHttpAdapterUtil_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_i_http_adapter_util_8cs.html\">IHttpAdapterUtil.cs</a></td></tr>\n<tr class=\"memitem:ILogger_2Ecs\" id=\"r_ILogger_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_i_logger_8cs.html\">ILogger.cs</a></td></tr>\n<tr class=\"memitem:ISession_2Ecs\" id=\"r_ISession_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_i_session_8cs.html\">ISession.cs</a></td></tr>\n<tr class=\"memitem:PreserveAttribute_2Ecs\" id=\"r_PreserveAttribute_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_preserve_attribute_8cs.html\">PreserveAttribute.cs</a></td></tr>\n<tr class=\"memitem:Retry_2Ecs\" id=\"r_Retry_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_8cs.html\">Retry.cs</a></td></tr>\n<tr class=\"memitem:RetryConfiguration_2Ecs\" id=\"r_RetryConfiguration_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_configuration_8cs.html\">RetryConfiguration.cs</a></td></tr>\n<tr class=\"memitem:RetryHistory_2Ecs\" id=\"r_RetryHistory_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_history_8cs.html\">RetryHistory.cs</a></td></tr>\n<tr class=\"memitem:RetryInvoker_2Ecs\" id=\"r_RetryInvoker_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_invoker_8cs.html\">RetryInvoker.cs</a></td></tr>\n<tr class=\"memitem:RetryJitter_2Ecs\" id=\"r_RetryJitter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_jitter_8cs.html\">RetryJitter.cs</a></td></tr>\n<tr class=\"memitem:RetryListener_2Ecs\" id=\"r_RetryListener_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_retry_listener_8cs.html\">RetryListener.cs</a></td></tr>\n<tr class=\"memitem:Session_2Ecs\" id=\"r_Session_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_session_8cs.html\">Session.cs</a></td></tr>\n<tr class=\"memitem:TransientExceptionDelegate_2Ecs\" id=\"r_TransientExceptionDelegate_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_transient_exception_delegate_8cs.html\">TransientExceptionDelegate.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_ba769f4416b2c074a28c6130af43e345.js",
    "content": "var dir_ba769f4416b2c074a28c6130af43e345 =\n[\n    [ \"obj\", \"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\", \"dir_0a71ed179ba9d4357fa1a0aa4e188f77\" ],\n    [ \"TinyJson\", \"dir_ec82c3f1a2edb4d01443ada27de98406.html\", \"dir_ec82c3f1a2edb4d01443ada27de98406\" ],\n    [ \"ApiClient.gen.cs\", \"_satori_2_api_client_8gen_8cs.html\", \"_satori_2_api_client_8gen_8cs\" ],\n    [ \"Client.cs\", \"_satori_2_client_8cs.html\", \"_satori_2_client_8cs\" ],\n    [ \"Event.cs\", \"_event_8cs.html\", \"_event_8cs\" ],\n    [ \"GZipHttpClientHandler.cs\", \"_satori_2_g_zip_http_client_handler_8cs.html\", null ],\n    [ \"HttpRequestAdapter.cs\", \"_satori_2_http_request_adapter_8cs.html\", \"_satori_2_http_request_adapter_8cs\" ],\n    [ \"IClient.cs\", \"_satori_2_i_client_8cs.html\", \"_satori_2_i_client_8cs\" ],\n    [ \"IHttpAdapter.cs\", \"_satori_2_i_http_adapter_8cs.html\", \"_satori_2_i_http_adapter_8cs\" ],\n    [ \"IHttpAdapterUtil.cs\", \"_satori_2_i_http_adapter_util_8cs.html\", null ],\n    [ \"ILogger.cs\", \"_satori_2_i_logger_8cs.html\", \"_satori_2_i_logger_8cs\" ],\n    [ \"ISession.cs\", \"_satori_2_i_session_8cs.html\", \"_satori_2_i_session_8cs\" ],\n    [ \"PreserveAttribute.cs\", \"_satori_2_preserve_attribute_8cs.html\", null ],\n    [ \"Retry.cs\", \"_satori_2_retry_8cs.html\", \"_satori_2_retry_8cs\" ],\n    [ \"RetryConfiguration.cs\", \"_satori_2_retry_configuration_8cs.html\", \"_satori_2_retry_configuration_8cs\" ],\n    [ \"RetryHistory.cs\", \"_satori_2_retry_history_8cs.html\", null ],\n    [ \"RetryInvoker.cs\", \"_satori_2_retry_invoker_8cs.html\", null ],\n    [ \"RetryJitter.cs\", \"_satori_2_retry_jitter_8cs.html\", \"_satori_2_retry_jitter_8cs\" ],\n    [ \"RetryListener.cs\", \"_satori_2_retry_listener_8cs.html\", \"_satori_2_retry_listener_8cs\" ],\n    [ \"Session.cs\", \"_satori_2_session_8cs.html\", \"_satori_2_session_8cs\" ],\n    [ \"TransientExceptionDelegate.cs\", \"_satori_2_transient_exception_delegate_8cs.html\", \"_satori_2_transient_exception_delegate_8cs\" ]\n];"
  },
  {
    "path": "docs/html/dir_c0ea682cca75c87761dacf1668992820.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_c0ea682cca75c87761dacf1668992820.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_c0ea682cca75c87761dacf1668992820.js",
    "content": "var dir_c0ea682cca75c87761dacf1668992820 =\n[\n    [ \".NETStandard,Version=v2.0.AssemblyAttributes.cs\", \"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Debug Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Debug Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-subdirs\" class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:net46\" id=\"r_net46\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_2024f50217af71df819eb31c540cc957.html\">net46</a></td></tr>\n<tr class=\"memitem:netstandard2_2E0\" id=\"r_netstandard2_2E0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\">netstandard2.0</a></td></tr>\n<tr class=\"memitem:netstandard2_2E1\" id=\"r_netstandard2_2E1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"iconfolder\"><div class=\"folder-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\">netstandard2.1</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_c7fa37d54586c2d4e1bdb0bf9742bd86.js",
    "content": "var dir_c7fa37d54586c2d4e1bdb0bf9742bd86 =\n[\n    [ \"net46\", \"dir_2024f50217af71df819eb31c540cc957.html\", \"dir_2024f50217af71df819eb31c540cc957\" ],\n    [ \"netstandard2.0\", \"dir_5eb17383be0272b71916d4988c97ae3c.html\", \"dir_5eb17383be0272b71916d4988c97ae3c\" ],\n    [ \"netstandard2.1\", \"dir_5a43296f26836228c3ddbf8578e994aa.html\", \"dir_5a43296f26836228c3ddbf8578e994aa\" ]\n];"
  },
  {
    "path": "docs/html/dir_ca7d207afbe6ec834644d82c9da0e27f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Internal Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_ca7d207afbe6ec834644d82c9da0e27f.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Internal Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:BinaryReaderWriter_2Ecs\" id=\"r_BinaryReaderWriter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_binary_reader_writer_8cs.html\">BinaryReaderWriter.cs</a></td></tr>\n<tr class=\"memitem:WebSocketFrame_2Ecs\" id=\"r_WebSocketFrame_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_8cs.html\">WebSocketFrame.cs</a></td></tr>\n<tr class=\"memitem:WebSocketFrameCommon_2Ecs\" id=\"r_WebSocketFrameCommon_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_common_8cs.html\">WebSocketFrameCommon.cs</a></td></tr>\n<tr class=\"memitem:WebSocketFrameReader_2Ecs\" id=\"r_WebSocketFrameReader_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_reader_8cs.html\">WebSocketFrameReader.cs</a></td></tr>\n<tr class=\"memitem:WebSocketFrameWriter_2Ecs\" id=\"r_WebSocketFrameWriter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_frame_writer_8cs.html\">WebSocketFrameWriter.cs</a></td></tr>\n<tr class=\"memitem:WebSocketImplementation_2Ecs\" id=\"r_WebSocketImplementation_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_implementation_8cs.html\">WebSocketImplementation.cs</a></td></tr>\n<tr class=\"memitem:WebSocketOpCode_2Ecs\" id=\"r_WebSocketOpCode_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_op_code_8cs.html\">WebSocketOpCode.cs</a></td></tr>\n<tr class=\"memitem:WebSocketReadCursor_2Ecs\" id=\"r_WebSocketReadCursor_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_web_socket_read_cursor_8cs.html\">WebSocketReadCursor.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_00db1776877a30bd47a3324e3b896815.html\">Ninja.WebSockets</a></li><li class=\"navelem\"><a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\">Internal</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_ca7d207afbe6ec834644d82c9da0e27f.js",
    "content": "var dir_ca7d207afbe6ec834644d82c9da0e27f =\n[\n    [ \"BinaryReaderWriter.cs\", \"_binary_reader_writer_8cs.html\", null ],\n    [ \"WebSocketFrame.cs\", \"_web_socket_frame_8cs.html\", null ],\n    [ \"WebSocketFrameCommon.cs\", \"_web_socket_frame_common_8cs.html\", null ],\n    [ \"WebSocketFrameReader.cs\", \"_web_socket_frame_reader_8cs.html\", null ],\n    [ \"WebSocketFrameWriter.cs\", \"_web_socket_frame_writer_8cs.html\", null ],\n    [ \"WebSocketImplementation.cs\", \"_web_socket_implementation_8cs.html\", null ],\n    [ \"WebSocketOpCode.cs\", \"_web_socket_op_code_8cs.html\", null ],\n    [ \"WebSocketReadCursor.cs\", \"_web_socket_read_cursor_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_cbab373848d17bb13c8f8154bda6a142.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src/Nakama/obj/Debug/net46 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_cbab373848d17bb13c8f8154bda6a142.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b668d86527323370c4668cb8bf07410d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_cbab373848d17bb13c8f8154bda6a142.html\">net46</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_cde5b50139b2efdd71913c8f6e2f5b92.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: examples/Nakama.Examples Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_cde5b50139b2efdd71913c8f6e2f5b92.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Examples Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_d28a4824dc47e487b107a5db32ef43c4.html\">examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_cde5b50139b2efdd71913c8f6e2f5b92.html\">Nakama.Examples</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_d0af3520e52159625e5c54b0a0666246.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: netstandard2.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_d0af3520e52159625e5c54b0a0666246.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETStandard_2CVersion_3Dv2_2E0_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\">Release</a></li><li class=\"navelem\"><a href=\"dir_d0af3520e52159625e5c54b0a0666246.html\">netstandard2.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_d0af3520e52159625e5c54b0a0666246.js",
    "content": "var dir_d0af3520e52159625e5c54b0a0666246 =\n[\n    [ \".NETStandard,Version=v2.0.AssemblyAttributes.cs\", \"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_d28a4824dc47e487b107a5db32ef43c4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: examples Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_d28a4824dc47e487b107a5db32ef43c4.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">examples Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_d28a4824dc47e487b107a5db32ef43c4.html\">examples</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_dbdb02b1c6a463d71690e5d1f101f3be.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: net46 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_dbdb02b1c6a463d71690e5d1f101f3be.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:_2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\" id=\"r__2ENETFramework_2CVersion_3Dv4_2E6_2EAssemblyAttributes_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td></tr>\n<tr class=\"memitem:Nakama_2EAssemblyInfo_2Ecs\" id=\"r_Nakama_2EAssemblyInfo_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_debug_2net46_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_dbdb02b1c6a463d71690e5d1f101f3be.js",
    "content": "var dir_dbdb02b1c6a463d71690e5d1f101f3be =\n[\n    [ \".NETFramework,Version=v4.6.AssemblyAttributes.cs\", \"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\", null ],\n    [ \"Nakama.AssemblyInfo.cs\", \"_debug_2net46_2_nakama_8_assembly_info_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_e0a5a45ea46034a62177509fd4cc477b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_e0a5a45ea46034a62177509fd4cc477b.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_3771c35781cb72be820bcf0859828876.html\">Socket</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_e55adf3e55c0cf2ab15afcf2abaa2799.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests/obj/Release Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_e55adf3e55c0cf2ab15afcf2abaa2799.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"subdirs\" name=\"subdirs\"></a>\nDirectories</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">directory &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"dir_aa00dbe797bd24fe05814e1a03a446ba.html\">net6.0</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_e0a5a45ea46034a62177509fd4cc477b.html\">Nakama.Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_82823cd98c87c4bb1483bb7f879dfe68.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_e55adf3e55c0cf2ab15afcf2abaa2799.html\">Release</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_e8b3846043ed55e70c4740c96c71631d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: examples/Nakama.Examples/obj Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_e8b3846043ed55e70c4740c96c71631d.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">obj Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_d28a4824dc47e487b107a5db32ef43c4.html\">examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_cde5b50139b2efdd71913c8f6e2f5b92.html\">Nakama.Examples</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_e8b3846043ed55e70c4740c96c71631d.html\">obj</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_ec82c3f1a2edb4d01443ada27de98406.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: TinyJson Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('dir_ec82c3f1a2edb4d01443ada27de98406.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">TinyJson Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-files\" class=\"groupheader\"><a id=\"files\" name=\"files\"></a>\nFiles</h2></td></tr>\n<tr class=\"memitem:JsonParser_2Ecs\" id=\"r_JsonParser_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_tiny_json_2_json_parser_8cs.html\">JsonParser.cs</a></td></tr>\n<tr class=\"memitem:JsonWriter_2Ecs\" id=\"r_JsonWriter_2Ecs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><span class=\"icondoc\"><div class=\"doc-icon\"></div></span>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"_satori_2_tiny_json_2_json_writer_8cs.html\">JsonWriter.cs</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\">TinyJson</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_ec82c3f1a2edb4d01443ada27de98406.js",
    "content": "var dir_ec82c3f1a2edb4d01443ada27de98406 =\n[\n    [ \"JsonParser.cs\", \"_satori_2_tiny_json_2_json_parser_8cs.html\", null ],\n    [ \"JsonWriter.cs\", \"_satori_2_tiny_json_2_json_writer_8cs.html\", null ]\n];"
  },
  {
    "path": "docs/html/dir_f5a6105ca7ea82175c57b6cc08e28f9f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: src/Nakama/obj/Debug/netstandard2.0 Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_f5a6105ca7ea82175c57b6cc08e28f9f.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0 Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_68267d1309a1af8e8297ef4c3efbcdba.html\">src</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_223f41b9d4a3aed2d0cd2a771bf2b672.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_9ded64b83b3f5b23c7937ebd8f5ce2f1.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_b668d86527323370c4668cb8bf07410d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_f5a6105ca7ea82175c57b6cc08e28f9f.html\">netstandard2.0</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dir_f82b846bb6a413b95a3fa0edffb6464f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: tests/Nakama.Tests Directory Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('dir_f82b846bb6a413b95a3fa0edffb6464f.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests Directory Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_59425e443f801f1f2fd8bbe4959a3ccf.html\">tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_f82b846bb6a413b95a3fa0edffb6464f.html\">Nakama.Tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/doxygen.css",
    "content": "/* The standard CSS for doxygen 1.14.0*/\n\nhtml {\n/* page base colors */\n--page-background-color: white;\n--page-foreground-color: black;\n--page-link-color: #3D578C;\n--page-visited-link-color: #3D578C;\n--page-external-link-color: #334975;\n\n/* index */\n--index-odd-item-bg-color: #F8F9FC;\n--index-even-item-bg-color: white;\n--index-header-color: black;\n--index-separator-color: #A0A0A0;\n\n/* header */\n--header-background-color: #F9FAFC;\n--header-separator-color: #C4CFE5;\n--group-header-separator-color: #D9E0EE;\n--group-header-color: #354C7B;\n--inherit-header-color: gray;\n\n--footer-foreground-color: #2A3D61;\n--footer-logo-width: 75px;\n--citation-label-color: #334975;\n--glow-color: cyan;\n\n--title-background-color: white;\n--title-separator-color: #C4CFE5;\n--directory-separator-color: #9CAFD4;\n--separator-color: #4A6AAA;\n\n--blockquote-background-color: #F7F8FB;\n--blockquote-border-color: #9CAFD4;\n\n--scrollbar-thumb-color: #C4CFE5;\n--scrollbar-background-color: #F9FAFC;\n\n--icon-background-color: #728DC1;\n--icon-foreground-color: white;\n/*\n--icon-doc-image: url('doc.svg');\n--icon-folder-open-image: url('folderopen.svg');\n--icon-folder-closed-image: url('folderclosed.svg');*/\n--icon-folder-open-fill-color: #C4CFE5;\n--icon-folder-fill-color: #D8DFEE;\n--icon-folder-border-color: #4665A2;\n--icon-doc-fill-color: #D8DFEE;\n--icon-doc-border-color: #4665A2;\n\n/* brief member declaration list */\n--memdecl-background-color: #F9FAFC;\n--memdecl-separator-color: #DEE4F0;\n--memdecl-foreground-color: #555;\n--memdecl-template-color: #4665A2;\n--memdecl-border-color: #D5DDEC;\n\n/* detailed member list */\n--memdef-border-color: #A8B8D9;\n--memdef-title-background-color: #E2E8F2;\n--memdef-proto-background-color: #EEF1F7;\n--memdef-proto-text-color: #253555;\n--memdef-doc-background-color: white;\n--memdef-param-name-color: #602020;\n--memdef-template-color: #4665A2;\n\n/* tables */\n--table-cell-border-color: #2D4068;\n--table-header-background-color: #374F7F;\n--table-header-foreground-color: #FFFFFF;\n\n/* labels */\n--label-background-color: #728DC1;\n--label-left-top-border-color: #5373B4;\n--label-right-bottom-border-color: #C4CFE5;\n--label-foreground-color: white;\n\n/** navigation bar/tree/menu */\n--nav-background-color: #F9FAFC;\n--nav-foreground-color: #364D7C;\n--nav-border-color: #C4CFE5;\n--nav-breadcrumb-separator-color: #C4CFE5;\n--nav-breadcrumb-active-bg: #EEF1F7;\n--nav-breadcrumb-color: #354C7B;\n--nav-breadcrumb-border-color: #E1E7F2;\n--nav-splitbar-bg-color: #DCE2EF;\n--nav-splitbar-handle-color: #9CAFD4;\n--nav-font-size-level1: 13px;\n--nav-font-size-level2: 10px;\n--nav-font-size-level3: 9px;\n--nav-text-normal-color: #283A5D;\n--nav-text-hover-color: white;\n--nav-text-active-color: white;\n--nav-menu-button-color: #364D7C;\n--nav-menu-background-color: white;\n--nav-menu-foreground-color: #555555;\n--nav-menu-active-bg: #DCE2EF;\n--nav-menu-active-color: #9CAFD4;\n--nav-menu-toggle-color: rgba(255, 255, 255, 0.5);\n--nav-arrow-color: #B6C4DF;\n--nav-arrow-selected-color: #90A5CE;\n\n/* sync icon */\n--sync-icon-border-color: #C4CFE5;\n--sync-icon-background-color: #F9FAFC;\n--sync-icon-selected-background-color: #EEF1F7;\n--sync-icon-color: #C4CFE5;\n--sync-icon-selected-color: #6884BD;\n\n/* table of contents */\n--toc-background-color: #F4F6FA;\n--toc-border-color: #D8DFEE;\n--toc-header-color: #4665A2;\n--toc-down-arrow-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px' fill='grey'><text x='0' y='5' font-size='10'>&%238595;</text></svg>\");\n\n/** search field */\n--search-background-color: white;\n--search-foreground-color: #909090;\n--search-active-color: black;\n--search-filter-background-color: rgba(255,255,255,.7);\n--search-filter-backdrop-filter: blur(4px);\n--search-filter-foreground-color: black;\n--search-filter-border-color: rgba(150,150,150,.4);\n--search-filter-highlight-text-color: white;\n--search-filter-highlight-bg-color: #3D578C;\n--search-results-foreground-color: #425E97;\n--search-results-background-color: rgba(255,255,255,.8);\n--search-results-backdrop-filter: blur(4px);\n--search-results-border-color: rgba(150,150,150,.4);\n--search-box-border-color: #B6C4DF;\n--search-close-icon-bg-color: #A0A0A0;\n--search-close-icon-fg-color: white;\n\n/** code fragments */\n--code-keyword-color: #008000;\n--code-type-keyword-color: #604020;\n--code-flow-keyword-color: #E08000;\n--code-comment-color: #800000;\n--code-preprocessor-color: #806020;\n--code-string-literal-color: #002080;\n--code-char-literal-color: #008080;\n--code-xml-cdata-color: black;\n--code-vhdl-digit-color: #FF00FF;\n--code-vhdl-char-color: #000000;\n--code-vhdl-keyword-color: #700070;\n--code-vhdl-logic-color: #FF0000;\n--code-link-color: #4665A2;\n--code-external-link-color: #4665A2;\n--fragment-foreground-color: black;\n--fragment-background-color: #FBFCFD;\n--fragment-border-color: #C4CFE5;\n--fragment-lineno-border-color: #00FF00;\n--fragment-lineno-background-color: #E8E8E8;\n--fragment-lineno-foreground-color: black;\n--fragment-lineno-link-fg-color: #4665A2;\n--fragment-lineno-link-bg-color: #D8D8D8;\n--fragment-lineno-link-hover-fg-color: #4665A2;\n--fragment-lineno-link-hover-bg-color: #C8C8C8;\n--fragment-copy-ok-color: #2EC82E;\n--tooltip-foreground-color: black;\n--tooltip-background-color: rgba(255,255,255,0.8);\n--tooltip-arrow-background-color: white;\n--tooltip-border-color: rgba(150,150,150,0.7);\n--tooltip-backdrop-filter: blur(3px);\n--tooltip-doc-color: grey;\n--tooltip-declaration-color: #006318;\n--tooltip-link-color: #4665A2;\n--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25);\n--fold-line-color: #808080;\n\n/** font-family */\n--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";\n--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;\n--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;\n--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";\n--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;\n--font-family-search: Arial,Verdana,sans-serif;\n--font-family-icon: Arial,Helvetica;\n--font-family-tooltip: Roboto,sans-serif;\n\n/** special sections */\n--warning-color-bg: #f8d1cc;\n--warning-color-hl: #b61825;\n--warning-color-text: #75070f;\n--note-color-bg: #faf3d8;\n--note-color-hl: #f3a600;\n--note-color-text: #5f4204;\n--todo-color-bg: #e4f3ff;\n--todo-color-hl: #1879C4;\n--todo-color-text: #274a5c;\n--test-color-bg: #e8e8ff;\n--test-color-hl: #3939C4;\n--test-color-text: #1a1a5c;\n--deprecated-color-bg: #ecf0f3;\n--deprecated-color-hl: #5b6269;\n--deprecated-color-text: #43454a;\n--bug-color-bg: #e4dafd;\n--bug-color-hl: #5b2bdd;\n--bug-color-text: #2a0d72;\n--invariant-color-bg: #d8f1e3;\n--invariant-color-hl: #44b86f;\n--invariant-color-text: #265532;\n}\n\n@media (prefers-color-scheme: dark) {\n  html:not(.dark-mode) {\n    color-scheme: dark;\n\n/* page base colors */\n--page-background-color: black;\n--page-foreground-color: #C9D1D9;\n--page-link-color: #90A5CE;\n--page-visited-link-color: #90A5CE;\n--page-external-link-color: #A3B4D7;\n\n/* index */\n--index-odd-item-bg-color: #0B101A;\n--index-even-item-bg-color: black;\n--index-header-color: #C4CFE5;\n--index-separator-color: #334975;\n\n/* header */\n--header-background-color: #070B11;\n--header-separator-color: #141C2E;\n--group-header-separator-color: #1D2A43;\n--group-header-color: #90A5CE;\n--inherit-header-color: #A0A0A0;\n\n--footer-foreground-color: #5B7AB7;\n--footer-logo-width: 60px;\n--citation-label-color: #90A5CE;\n--glow-color: cyan;\n\n--title-background-color: #090D16;\n--title-separator-color: #212F4B;\n--directory-separator-color: #283A5D;\n--separator-color: #283A5D;\n\n--blockquote-background-color: #101826;\n--blockquote-border-color: #283A5D;\n\n--scrollbar-thumb-color: #2C3F65;\n--scrollbar-background-color: #070B11;\n\n--icon-background-color: #334975;\n--icon-foreground-color: #C4CFE5;\n--icon-folder-open-fill-color: #4665A2;\n--icon-folder-fill-color: #5373B4;\n--icon-folder-border-color: #C4CFE5;\n--icon-doc-fill-color: #6884BD;\n--icon-doc-border-color: #C4CFE5;\n\n/* brief member declaration list */\n--memdecl-background-color: #0B101A;\n--memdecl-separator-color: #2C3F65;\n--memdecl-foreground-color: #BBB;\n--memdecl-template-color: #7C95C6;\n--memdecl-border-color: #233250;\n\n/* detailed member list */\n--memdef-border-color: #233250;\n--memdef-title-background-color: #1B2840;\n--memdef-proto-background-color: #19243A;\n--memdef-proto-text-color: #9DB0D4;\n--memdef-doc-background-color: black;\n--memdef-param-name-color: #D28757;\n--memdef-template-color: #7C95C6;\n\n/* tables */\n--table-cell-border-color: #283A5D;\n--table-header-background-color: #283A5D;\n--table-header-foreground-color: #C4CFE5;\n\n/* labels */\n--label-background-color: #354C7B;\n--label-left-top-border-color: #4665A2;\n--label-right-bottom-border-color: #283A5D;\n--label-foreground-color: #CCCCCC;\n\n/** navigation bar/tree/menu */\n--nav-background-color: #101826;\n--nav-foreground-color: #364D7C;\n--nav-border-color: #212F4B;\n--nav-breadcrumb-separator-color: #212F4B;\n--nav-breadcrumb-active-bg: #1D2A43;\n--nav-breadcrumb-color: #90A5CE;\n--nav-breadcrumb-border-color: #2A3D61;\n--nav-splitbar-bg-color: #283A5D;\n--nav-splitbar-handle-color: #4665A2;\n--nav-font-size-level1: 13px;\n--nav-font-size-level2: 10px;\n--nav-font-size-level3: 9px;\n--nav-text-normal-color: #B6C4DF;\n--nav-text-hover-color: #DCE2EF;\n--nav-text-active-color: #DCE2EF;\n--nav-menu-button-color: #B6C4DF;\n--nav-menu-background-color: #05070C;\n--nav-menu-foreground-color: #BBBBBB;\n--nav-menu-active-bg: #1D2A43;\n--nav-menu-active-color: #C9D3E7;\n--nav-menu-toggle-color: rgba(255, 255, 255, 0.2);\n--nav-arrow-color: #4665A2;\n--nav-arrow-selected-color: #6884BD;\n\n/* sync icon */\n--sync-icon-border-color: #212F4B;\n--sync-icon-background-color: #101826;\n--sync-icon-selected-background-color: #1D2A43;\n--sync-icon-color: #4665A2;\n--sync-icon-selected-color: #5373B4;\n\n/* table of contents */\n--toc-background-color: #151E30;\n--toc-border-color: #202E4A;\n--toc-header-color: #A3B4D7;\n--toc-down-arrow-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px'><text x='0' y='5' font-size='10' fill='grey'>&%238595;</text></svg>\");\n\n/** search field */\n--search-background-color: black;\n--search-foreground-color: #C5C5C5;\n--search-active-color: #F5F5F5;\n--search-filter-background-color: #101826;\n--search-filter-foreground-color: #90A5CE;\n--search-filter-backdrop-filter: none;\n--search-filter-border-color: #7C95C6;\n--search-filter-highlight-text-color: #BCC9E2;\n--search-filter-highlight-bg-color: #283A5D;\n--search-results-background-color: black;\n--search-results-foreground-color: #90A5CE;\n--search-results-backdrop-filter: none;\n--search-results-border-color: #334975;\n--search-box-border-color: #334975;\n--search-close-icon-bg-color: #909090;\n--search-close-icon-fg-color: black;\n\n/** code fragments */\n--code-keyword-color: #CC99CD;\n--code-type-keyword-color: #AB99CD;\n--code-flow-keyword-color: #E08000;\n--code-comment-color: #717790;\n--code-preprocessor-color: #65CABE;\n--code-string-literal-color: #7EC699;\n--code-char-literal-color: #00E0F0;\n--code-xml-cdata-color: #C9D1D9;\n--code-vhdl-digit-color: #FF00FF;\n--code-vhdl-char-color: #C0C0C0;\n--code-vhdl-keyword-color: #CF53C9;\n--code-vhdl-logic-color: #FF0000;\n--code-link-color: #79C0FF;\n--code-external-link-color: #79C0FF;\n--fragment-foreground-color: #C9D1D9;\n--fragment-background-color: #090D16;\n--fragment-border-color: #30363D;\n--fragment-lineno-border-color: #30363D;\n--fragment-lineno-background-color: black;\n--fragment-lineno-foreground-color: #6E7681;\n--fragment-lineno-link-fg-color: #6E7681;\n--fragment-lineno-link-bg-color: #303030;\n--fragment-lineno-link-hover-fg-color: #8E96A1;\n--fragment-lineno-link-hover-bg-color: #505050;\n--fragment-copy-ok-color: #0EA80E;\n--tooltip-foreground-color: #C9D1D9;\n--tooltip-background-color: #202020;\n--tooltip-arrow-background-color: #202020;\n--tooltip-backdrop-filter: none;\n--tooltip-border-color: #C9D1D9;\n--tooltip-doc-color: #D9E1E9;\n--tooltip-declaration-color: #20C348;\n--tooltip-link-color: #79C0FF;\n--tooltip-shadow: none;\n--fold-line-color: #808080;\n\n/** font-family */\n--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";\n--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;\n--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;\n--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\";\n--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;\n--font-family-search: Arial,Verdana,sans-serif;\n--font-family-icon: Arial,Helvetica;\n--font-family-tooltip: Roboto,sans-serif;\n\n/** special sections */\n--warning-color-bg: #2e1917;\n--warning-color-hl: #ad2617;\n--warning-color-text: #f5b1aa;\n--note-color-bg: #3b2e04;\n--note-color-hl: #f1b602;\n--note-color-text: #ceb670;\n--todo-color-bg: #163750;\n--todo-color-hl: #1982D2;\n--todo-color-text: #dcf0fa;\n--test-color-bg: #121258;\n--test-color-hl: #4242cf;\n--test-color-text: #c0c0da;\n--deprecated-color-bg: #2e323b;\n--deprecated-color-hl: #738396;\n--deprecated-color-text: #abb0bd;\n--bug-color-bg: #2a2536;\n--bug-color-hl: #7661b3;\n--bug-color-text: #ae9ed6;\n--invariant-color-bg: #303a35;\n--invariant-color-hl: #76ce96;\n--invariant-color-text: #cceed5;\n}}\nbody {\n\tbackground-color: var(--page-background-color);\n\tcolor: var(--page-foreground-color);\n}\n\nbody, table, div, p, dl {\n\tfont-weight: 400;\n\tfont-size: 14px;\n\tfont-family: var(--font-family-normal);\n\tline-height: 22px;\n}\n\nbody.resizing {\n\tuser-select: none;\n\t-webkit-user-select: none;\n}\n\n#doc-content {\n\tscrollbar-width: thin;\n}\n\n/* @group Heading Levels */\n\n.title {\n\tfont-family: var(--font-family-normal);\n\tline-height: 28px;\n\tfont-size: 160%;\n\tfont-weight: 400;\n\tmargin: 10px 2px;\n}\n\nh1.groupheader {\n\tfont-size: 150%;\n}\n\nh2.groupheader {\n\tbox-shadow: 12px 0 var(--page-background-color),\n\t\t   -12px 0 var(--page-background-color),\n\t\t    12px 1px var(--group-header-separator-color),\n\t\t   -12px 1px var(--group-header-separator-color);\n\tcolor: var(--group-header-color);\n\tfont-size: 150%;\n\tfont-weight: normal;\n\tmargin-top: 1.75em;\n\tpadding-top: 8px;\n\tpadding-bottom: 4px;\n\twidth: 100%;\n}\n\ntd h2.groupheader {\n\tbox-shadow: 13px 0 var(--page-background-color),\n\t\t   -13px 0 var(--page-background-color),\n\t\t    13px 1px var(--group-header-separator-color),\n\t\t   -13px 1px var(--group-header-separator-color);\n}\n\nh3.groupheader {\n\tfont-size: 100%;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\t-webkit-transition: text-shadow 0.5s linear;\n\t-moz-transition: text-shadow 0.5s linear;\n\t-ms-transition: text-shadow 0.5s linear;\n\t-o-transition: text-shadow 0.5s linear;\n\ttransition: text-shadow 0.5s linear;\n\tmargin-right: 15px;\n}\n\nh1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {\n\ttext-shadow: 0 0 15px var(--glow-color);\n}\n\ndt {\n\tfont-weight: bold;\n}\n\np.startli, p.startdd {\n\tmargin-top: 2px;\n}\n\nth p.starttd, th p.intertd, th p.endtd {\n\tfont-size: 100%;\n\tfont-weight: 700;\n}\n\np.starttd {\n\tmargin-top: 0px;\n}\n\np.endli {\n\tmargin-bottom: 0px;\n}\n\np.enddd {\n\tmargin-bottom: 4px;\n}\n\np.endtd {\n\tmargin-bottom: 2px;\n}\n\np.interli {\n}\n\np.interdd {\n}\n\np.intertd {\n}\n\n/* @end */\n\ncaption {\n\tfont-weight: bold;\n}\n\nspan.legend {\n\tfont-size: 70%;\n\ttext-align: center;\n}\n\nh3.version {\n\tfont-size: 90%;\n\ttext-align: center;\n}\n\ndiv.navtab {\n\tmargin-right: 6px;\n\tpadding-right: 6px;\n\ttext-align: right;\n\tline-height: 110%;\n\tbackground-color: var(--nav-background-color);\n}\n\ndiv.navtab table {\n\tborder-spacing: 0;\n}\n\ntd.navtab {\n\tpadding-right: 6px;\n\tpadding-left: 6px;\n}\n\ntd.navtabHL {\n\tpadding-right: 6px;\n\tpadding-left: 6px;\n\tborder-radius: 0 6px 6px 0;\n\tbackground-color: var(--nav-menu-active-bg);\n}\n\ndiv.qindex{\n\ttext-align: center;\n\twidth: 100%;\n\tline-height: 140%;\n\tfont-size: 130%;\n\tcolor: var(--index-separator-color);\n}\n\n#main-menu a:focus {\n\toutline: auto;\n\tz-index: 10;\n\tposition: relative;\n}\n\ndt.alphachar{\n\tfont-size: 180%;\n\tfont-weight: bold;\n}\n\n.alphachar a{\n\tcolor: var(--index-header-color);\n}\n\n.alphachar a:hover, .alphachar a:visited{\n\ttext-decoration: none;\n}\n\n.classindex dl {\n\tpadding: 25px;\n\tcolumn-count:1\n}\n\n.classindex dd {\n\tdisplay:inline-block;\n\tmargin-left: 50px;\n\twidth: 90%;\n\tline-height: 1.15em;\n}\n\n.classindex dl.even {\n\tbackground-color: var(--index-even-item-bg-color);\n}\n\n.classindex dl.odd {\n\tbackground-color: var(--index-odd-item-bg-color);\n}\n\n@media(min-width: 1120px) {\n\t.classindex dl {\n\t\tcolumn-count:2\n\t}\n}\n\n@media(min-width: 1320px) {\n\t.classindex dl {\n\t\tcolumn-count:3\n\t}\n}\n\n\n/* @group Link Styling */\n\na {\n\tcolor: var(--page-link-color);\n\tfont-weight: normal;\n\ttext-decoration: none;\n}\n\n.contents a:visited {\n\tcolor: var(--page-visited-link-color);\n}\n\nspan.label a:hover {\n\ttext-decoration: none;\n\tbackground:   linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%);\n}\n\na.el {\n\tfont-weight: bold;\n}\n\na.elRef {\n}\n\na.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited {\n\tcolor: var(--page-link-color);\n}\n\na.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {\n\tcolor: var(--page-external-link-color);\n}\n\na.code.hl_class { /* style for links to class names in code snippets */ }\na.code.hl_struct { /* style for links to struct names in code snippets */ }\na.code.hl_union { /* style for links to union names in code snippets */ }\na.code.hl_interface { /* style for links to interface names in code snippets */ }\na.code.hl_protocol { /* style for links to protocol names in code snippets */ }\na.code.hl_category { /* style for links to category names in code snippets */ }\na.code.hl_exception { /* style for links to exception names in code snippets */ }\na.code.hl_service { /* style for links to service names in code snippets */ }\na.code.hl_singleton { /* style for links to singleton names in code snippets */ }\na.code.hl_concept { /* style for links to concept names in code snippets */ }\na.code.hl_namespace { /* style for links to namespace names in code snippets */ }\na.code.hl_package { /* style for links to package names in code snippets */ }\na.code.hl_define { /* style for links to macro names in code snippets */ }\na.code.hl_function { /* style for links to function names in code snippets */ }\na.code.hl_variable { /* style for links to variable names in code snippets */ }\na.code.hl_typedef { /* style for links to typedef names in code snippets */ }\na.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }\na.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }\na.code.hl_signal { /* style for links to Qt signal names in code snippets */ }\na.code.hl_slot { /* style for links to Qt slot names in code snippets */ }\na.code.hl_friend { /* style for links to friend names in code snippets */ }\na.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }\na.code.hl_property { /* style for links to property names in code snippets */ }\na.code.hl_event { /* style for links to event names in code snippets */ }\na.code.hl_sequence { /* style for links to sequence names in code snippets */ }\na.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }\n\n/* @end */\n\ndl.el {\n\tmargin-left: -1cm;\n}\n\nul.check {\n\tlist-style:none;\n\ttext-indent: -16px;\n\tpadding-left: 38px;\n}\nli.unchecked:before {\n\tcontent: \"\\2610\\A0\";\n}\nli.checked:before {\n\tcontent: \"\\2611\\A0\";\n}\n\nol {\n\ttext-indent: 0px;\n}\n\nul {\n\ttext-indent: 0px;\n\toverflow: visible;\n}\n\nul.multicol {\n\t-moz-column-gap: 1em;\n\t-webkit-column-gap: 1em;\n\tcolumn-gap: 1em;\n\t-moz-column-count: 3;\n\t-webkit-column-count: 3;\n\tcolumn-count: 3;\n\tlist-style-type: none;\n}\n\n#side-nav ul {\n\toverflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */\n}\n\n#main-nav ul {\n\toverflow: visible; /* reset ul rule for the navigation bar drop down lists */\n}\n\n.fragment {\n\ttext-align: left;\n\tdirection: ltr;\n\toverflow-x: auto;\n\toverflow-y: hidden;\n\tposition: relative;\n\tmin-height: 12px;\n\tmargin: 10px 0px;\n\tpadding: 10px 10px;\n\tborder: 1px solid var(--fragment-border-color);\n\tborder-radius: 4px;\n\tbackground-color: var(--fragment-background-color);\n\tcolor: var(--fragment-foreground-color);\n}\n\npre.fragment {\n\tword-wrap: break-word;\n\tfont-size:  10pt;\n\tline-height: 125%;\n\tfont-family: var(--font-family-monospace);\n}\n\nspan.tt {\n        white-space: pre;\n\tfont-family: var(--font-family-monospace);\n}\n\n.clipboard {\n\twidth: 24px;\n\theight: 24px;\n\tright: 5px;\n\ttop: 5px;\n\topacity: 0;\n\tposition: absolute;\n\tdisplay: inline;\n\toverflow: hidden;\n\tjustify-content: center;\n\talign-items: center;\n\tcursor: pointer;\n}\n\n.clipboard.success {\n\tborder: 1px solid var(--fragment-foreground-color);\n\tborder-radius: 4px;\n}\n\n.fragment:hover .clipboard, .clipboard.success {\n\topacity: .4;\n}\n\n.clipboard:hover, .clipboard.success {\n\topacity: 1 !important;\n}\n\n.clipboard:active:not([class~=success]) svg {\n\ttransform: scale(.91);\n}\n\n.clipboard.success svg {\n\tfill: var(--fragment-copy-ok-color);\n}\n\n.clipboard.success {\n\tborder-color: var(--fragment-copy-ok-color);\n}\n\ndiv.line {\n\tfont-family: var(--font-family-monospace);\n\tfont-size: 13px;\n\tmin-height: 13px;\n\tline-height: 1.2;\n\ttext-wrap: wrap; \n\tword-break: break-all;\n\twhite-space: -moz-pre-wrap; /* Moz */\n\twhite-space: -pre-wrap;     /* Opera 4-6 */\n\twhite-space: -o-pre-wrap;   /* Opera 7 */\n\twhite-space: pre-wrap;      /* CSS3  */\n\tword-wrap: break-word;      /* IE 5.5+ */\n\ttext-indent: -62px;\n\tpadding-left: 62px;\n\tpadding-bottom: 0px;\n\tmargin: 0px;\n\t-webkit-transition-property: background-color, box-shadow;\n\t-webkit-transition-duration: 0.5s;\n\t-moz-transition-property: background-color, box-shadow;\n\t-moz-transition-duration: 0.5s;\n\t-ms-transition-property: background-color, box-shadow;\n\t-ms-transition-duration: 0.5s;\n\t-o-transition-property: background-color, box-shadow;\n\t-o-transition-duration: 0.5s;\n\ttransition-property: background-color, box-shadow;\n\ttransition-duration: 0.5s;\n}\n\ndiv.line:after {\n\tcontent:\"\\000A\";\n\twhite-space: pre;\n}\n\ndiv.line.glow {\n\tbackground-color: var(--glow-color);\n\tbox-shadow: 0 0 10px var(--glow-color);\n}\n\nspan.fold {\n\tdisplay: inline-block;\n\twidth: 12px;\n\theight: 12px;\n\tmargin-left: 4px;\n\tmargin-right: 1px;\n}\n\nspan.foldnone {\n\tdisplay: inline-block;\n\tposition: relative;\n\tcursor: pointer;\n\tuser-select: none;\n}\n\nspan.fold.plus, span.fold.minus {\n\twidth: 10px;\n\theight: 10px;\n\tbackground-color: var(--fragment-background-color);\n\tposition: relative;\n\tborder: 1px solid var(--fold-line-color);\n\tmargin-right: 1px;\n}\n\nspan.fold.plus::before, span.fold.minus::before {\n\tcontent: '';\n\tposition: absolute;\n\tbackground-color: var(--fold-line-color);\n}\n\nspan.fold.plus::before {\n\twidth: 2px;\n\theight: 6px;\n\ttop: 2px;\n\tleft: 4px;\n}\n\nspan.fold.plus::after {\n\tcontent: '';\n\tposition: absolute;\n\twidth: 6px;\n\theight: 2px;\n\ttop: 4px;\n\tleft: 2px;\n\tbackground-color: var(--fold-line-color);\n}\n\nspan.fold.minus::before {\n\twidth: 6px;\n\theight: 2px;\n\ttop: 4px;\n\tleft: 2px;\n}\n\nspan.lineno {\n\tpadding-right: 4px;\n\tmargin-right: 9px;\n\ttext-align: right;\n\tborder-right: 2px solid var(--fragment-lineno-border-color);\n\tcolor: var(--fragment-lineno-foreground-color);\n\tbackground-color: var(--fragment-lineno-background-color);\n\twhite-space: pre;\n}\nspan.lineno a, span.lineno a:visited {\n\tcolor: var(--fragment-lineno-link-fg-color);\n\tbackground-color: var(--fragment-lineno-link-bg-color);\n}\n\nspan.lineno a:hover {\n\tcolor: var(--fragment-lineno-link-hover-fg-color);\n\tbackground-color: var(--fragment-lineno-link-hover-bg-color);\n}\n\n.lineno {\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\ndiv.classindex ul {\n\tlist-style: none;\n\tpadding-left: 0;\n}\n\ndiv.classindex span.ai {\n\tdisplay: inline-block;\n}\n\ndiv.groupHeader {\n\tbox-shadow: 13px 0 var(--page-background-color),\n\t           -13px 0 var(--page-background-color),\n\t            13px 1px var(--group-header-separator-color),\n\t           -13px 1px var(--group-header-separator-color);\n\tcolor: var(--group-header-color);\n\tfont-size: 110%;\n\tfont-weight: 500;\n\tmargin-left: 0px;\n\tmargin-top: 0em;\n\tmargin-bottom: 6px;\n\tpadding-top: 8px;\n\tpadding-bottom: 4px;\n}\n\ndiv.groupText {\n\tmargin-left: 16px;\n\tfont-style: italic;\n}\n\nbody {\n\tcolor: var(--page-foreground-color);\n\tmargin: 0;\n}\n\ndiv.contents {\n\tmargin-top: 10px;\n\tmargin-left: 12px;\n\tmargin-right: 12px;\n}\n\np.formulaDsp {\n\ttext-align: center;\n}\n\nimg.dark-mode-visible {\n\tdisplay: none;\n}\nimg.light-mode-visible {\n\tdisplay: none;\n}\n\nimg.formulaInl, img.inline {\n\tvertical-align: middle;\n}\n\ndiv.center {\n\ttext-align: center;\n\tmargin-top: 0px;\n\tmargin-bottom: 0px;\n\tpadding: 0px;\n}\n\ndiv.center img {\n\tborder: 0px;\n}\n\naddress.footer {\n\ttext-align: right;\n\tpadding-right: 12px;\n}\n\nimg.footer {\n\tborder: 0px;\n\tvertical-align: middle;\n\twidth: var(--footer-logo-width);\n}\n\n.compoundTemplParams {\n\tcolor: var(--memdecl-template-color);\n\tfont-size: 80%;\n\tline-height: 120%;\n}\n\n/* @group Code Colorization */\n\nspan.keyword {\n\tcolor: var(--code-keyword-color);\n}\n\nspan.keywordtype {\n\tcolor: var(--code-type-keyword-color);\n}\n\nspan.keywordflow {\n\tcolor: var(--code-flow-keyword-color);\n}\n\nspan.comment {\n\tcolor: var(--code-comment-color);\n}\n\nspan.preprocessor {\n\tcolor: var(--code-preprocessor-color);\n}\n\nspan.stringliteral {\n\tcolor: var(--code-string-literal-color);\n}\n\nspan.charliteral {\n\tcolor: var(--code-char-literal-color);\n}\n\nspan.xmlcdata {\n\tcolor: var(--code-xml-cdata-color);\n}\n\nspan.vhdldigit { \n\tcolor: var(--code-vhdl-digit-color);\n}\n\nspan.vhdlchar { \n\tcolor: var(--code-vhdl-char-color);\n}\n\nspan.vhdlkeyword { \n\tcolor: var(--code-vhdl-keyword-color);\n}\n\nspan.vhdllogic { \n\tcolor: var(--code-vhdl-logic-color);\n}\n\nblockquote {\n\tbackground-color: var(--blockquote-background-color);\n\tborder-left: 2px solid var(--blockquote-border-color);\n\tmargin: 0 24px 0 4px;\n\tpadding: 0 12px 0 16px;\n}\n\n/* @end */\n\ntd.tiny {\n\tfont-size: 75%;\n}\n\n.dirtab {\n\tpadding: 4px;\n\tborder-collapse: collapse;\n\tborder: 1px solid var(--table-cell-border-color);\n}\n\nth.dirtab {\n\tbackground-color: var(--table-header-background-color);\n\tcolor: var(--table-header-foreground-color);\n\tfont-weight: bold;\n}\n\nhr {\n\tborder: none;\n\tmargin-top: 16px;\n\tmargin-bottom: 16px;\n\theight: 1px;\n\tbox-shadow: 13px 0 var(--page-background-color),\n\t\t   -13px 0 var(--page-background-color),\n\t\t    13px 1px var(--group-header-separator-color),\n\t\t   -13px 1px var(--group-header-separator-color);\n}\n\nhr.footer {\n\theight: 1px;\n}\n\n/* @group Member Descriptions */\n\ntable.memberdecls {\n\tborder-spacing: 0px;\n\tpadding: 0px;\n}\n\n.memberdecls td, .fieldtable tr {\n\ttransition-property: background-color, box-shadow;\n\ttransition-duration: 0.5s;\n}\n\n.memberdecls td.glow, .fieldtable tr.glow {\n\tbackground-color: var(--glow-color);\n\tbox-shadow: 0 0 15px var(--glow-color);\n}\n\n.memberdecls tr[class^='memitem'] {\n\tfont-family: var(--font-family-monospace);\n}\n\n.mdescLeft, .mdescRight,\n.memItemLeft, .memItemRight {\n\tpadding-top: 2px;\n\tpadding-bottom: 2px;\n}\n\n.memTemplParams {\n\tpadding-left: 10px;\n\tpadding-top: 5px;\n}\n\n.memItemLeft, .memItemRight, .memTemplParams {\n\tbackground-color: var(--memdecl-background-color);\n}\n\n.mdescLeft, .mdescRight {\n\tpadding: 0px 8px 4px 8px;\n\tcolor: var(--memdecl-foreground-color);\n}\n\ntr[class^='memdesc'] {\n\tbox-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075);\n}\n\n.mdescLeft {\n\tborder-left: 1px solid var(--memdecl-border-color);\n\tborder-bottom: 1px solid var(--memdecl-border-color);\n}\n\n.mdescRight {\n\tborder-right: 1px solid var(--memdecl-border-color);\n\tborder-bottom: 1px solid var(--memdecl-border-color);\n}\n\n.memTemplParams {\n\tcolor: var(--memdecl-template-color);\n\twhite-space: nowrap;\n\tfont-size: 80%;\n\tborder-left: 1px solid var(--memdecl-border-color);\n\tborder-right: 1px solid var(--memdecl-border-color);\n}\n\ntd.ititle {\n\tborder: 1px solid var(--memdecl-border-color);\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tpadding-left: 10px;\n}\n\ntr:not(:first-child) > td.ititle {\n\tborder-top: 0;\n\tborder-radius: 0;\n}\n\n.memItemLeft {\n\twhite-space: nowrap;\n\tborder-left: 1px solid var(--memdecl-border-color);\n\tborder-bottom: 1px solid var(--memdecl-border-color);\n\tpadding-left: 10px;\n\ttransition: none;\n}\n\n.memItemRight {\n\twidth: 100%;\n\tborder-right: 1px solid var(--memdecl-border-color);\n\tborder-bottom: 1px solid var(--memdecl-border-color);\n\tpadding-right: 10px;\n\ttransition: none;\n}\n\ntr.heading        + tr[class^='memitem'] td.memItemLeft,\ntr.groupHeader    + tr[class^='memitem'] td.memItemLeft,\ntr.inherit_header + tr[class^='memitem'] td.memItemLeft {\n        border-top: 1px solid var(--memdecl-border-color);\n\tborder-top-left-radius: 4px;\n}\n\ntr.heading        + tr[class^='memitem'] td.memItemRight,\ntr.groupHeader    + tr[class^='memitem'] td.memItemRight,\ntr.inherit_header + tr[class^='memitem'] td.memItemRight {\n        border-top: 1px solid var(--memdecl-border-color);\n\tborder-top-right-radius: 4px;\n}\n\ntr.heading        + tr[class^='memitem'] td.memTemplParams,\ntr.heading        + tr td.ititle,\ntr.groupHeader    + tr[class^='memitem'] td.memTemplParams,\ntr.groupHeader    + tr td.ititle,\ntr.inherit_header + tr[class^='memitem'] td.memTemplParams {\n        border-top: 1px solid var(--memdecl-border-color);\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n}\n\ntable.memberdecls tr:last-child td.memItemLeft,\ntable.memberdecls tr:last-child td.mdescLeft,\ntable.memberdecls tr[class^='memitem']:has(+ tr.groupHeader)    td.memItemLeft,\ntable.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft,\ntable.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader)    td.mdescLeft,\ntable.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft {\n\tborder-bottom-left-radius: 4px;\n}\n\ntable.memberdecls tr:last-child td.memItemRight,\ntable.memberdecls tr:last-child td.mdescRight,\ntable.memberdecls tr[class^='memitem']:has(+ tr.groupHeader)    td.memItemRight,\ntable.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight,\ntable.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader)    td.mdescRight,\ntable.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight {\n\tborder-bottom-right-radius: 4px;\n}\n\ntr.template .memItemLeft, tr.template .memItemRight {\n\tborder-top: none;\n\tpadding-top: 0;\n}\n\n\n/* @end */\n\n/* @group Member Details */\n\n/* Styles for detailed member documentation */\n\n.memtitle {\n\tpadding: 8px;\n\tborder-top: 1px solid var(--memdef-border-color);\n\tborder-left: 1px solid var(--memdef-border-color);\n\tborder-right: 1px solid var(--memdef-border-color);\n\tborder-top-right-radius: 4px;\n\tborder-top-left-radius: 4px;\n\tmargin-bottom: -1px;\n\tbackground-color: var(--memdef-proto-background-color);\n\tline-height: 1.25;\n\tfont-family: var(--font-family-monospace);\n\tfont-weight: 500;\n\tfont-size: 16px;\n\tfloat:left;\n\tbox-shadow: 0 10px 0 -1px var(--memdef-proto-background-color),\n\t            0 2px 8px 0 rgba(0,0,0,.075);\n\tposition: relative;\n}\n\n.memtitle:after {\n\tcontent: '';\n\tdisplay: block;\n\tbackground: var(--memdef-proto-background-color);\n\theight: 10px;\n\tbottom: -10px;\n\tleft: 0px;\n\tright: -14px;\n\tposition: absolute;\n\tborder-top-right-radius: 6px;\n}\n\n.permalink\n{\n\tfont-family: var(--font-family-monospace);\n\tfont-weight: 500;\n\tline-height: 1.25;\n\tfont-size: 16px;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.memtemplate {\n\tfont-size: 80%;\n\tcolor: var(--memdef-template-color);\n\tfont-family: var(--font-family-monospace);\n\tfont-weight: normal;\n\tmargin-left: 9px;\n}\n\n.mempage {\n\twidth: 100%;\n}\n\n.memitem {\n\tpadding: 0;\n\tmargin-bottom: 10px;\n\tmargin-right: 5px;\n\tdisplay: table !important;\n\twidth: 100%;\n\tbox-shadow: 0 2px 8px 0 rgba(0,0,0,.075);\n\tborder-radius: 4px;\n}\n\n.memitem.glow {\n\tbox-shadow: 0 0 15px var(--glow-color);\n}\n\n.memname {\n\tfont-family: var(--font-family-monospace);\n\tfont-size: 13px;\n\tfont-weight: 400;\n\tmargin-left: 6px;\n}\n\n.memname td {\n\tvertical-align: bottom;\n}\n\n.memproto, dl.reflist dt {\n\tborder-top: 1px solid var(--memdef-border-color);\n\tborder-left: 1px solid var(--memdef-border-color);\n\tborder-right: 1px solid var(--memdef-border-color);\n\tpadding: 6px 0px 6px 0px;\n\tcolor: var(--memdef-proto-text-color);\n\tfont-weight: bold;\n\tbackground-color: var(--memdef-proto-background-color);\n\tborder-top-right-radius: 4px;\n\tborder-bottom: 1px solid var(--memdef-border-color);\n}\n\n.overload {\n\tfont-family: var(--font-family-monospace);\n\tfont-size: 65%;\n}\n\n.memdoc, dl.reflist dd {\n\tborder-bottom: 1px solid var(--memdef-border-color);\n\tborder-left: 1px solid var(--memdef-border-color);\n\tborder-right: 1px solid var(--memdef-border-color);\n\tpadding: 6px 10px 2px 10px;\n\tborder-top-width: 0;\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n}\n\ndl.reflist dt {\n\tpadding: 5px;\n}\n\ndl.reflist dd {\n\tmargin: 0px 0px 10px 0px;\n\tpadding: 5px;\n}\n\n.paramkey {\n\ttext-align: right;\n}\n\n.paramtype {\n\twhite-space: nowrap;\n\tpadding: 0px;\n\tpadding-bottom: 1px;\n}\n\n.paramname {\n\twhite-space: nowrap;\n\tpadding: 0px;\n\tpadding-bottom: 1px;\n\tmargin-left: 2px;\n}\n\n.paramname em {\n\tcolor: var(--memdef-param-name-color);\n\tfont-style: normal;\n\tmargin-right: 1px;\n}\n\n.paramname .paramdefval {\n\tfont-family: var(--font-family-monospace);\n}\n\n.params, .retval, .exception, .tparams {\n\tmargin-left: 0px;\n\tpadding-left: 0px;\n}\n\n.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {\n\tfont-weight: bold;\n\tvertical-align: top;\n}\n\n.params .paramtype, .tparams .paramtype {\n\tfont-style: italic;\n\tvertical-align: top;\n}\n\n.params .paramdir, .tparams .paramdir {\n\tfont-family: var(--font-family-monospace);\n\tvertical-align: top;\n}\n\ntable.mlabels {\n\tborder-spacing: 0px;\n}\n\ntd.mlabels-left {\n\twidth: 100%;\n\tpadding: 0px;\n}\n\ntd.mlabels-right {\n\tvertical-align: bottom;\n\tpadding: 0px;\n\twhite-space: nowrap;\n}\n\nspan.mlabels {\n\tmargin-left: 8px;\n}\n\nspan.mlabel {\n\tbackground-color: var(--label-background-color);\n\tborder-top:1px solid var(--label-left-top-border-color);\n\tborder-left:1px solid var(--label-left-top-border-color);\n\tborder-right:1px solid var(--label-right-bottom-border-color);\n\tborder-bottom:1px solid var(--label-right-bottom-border-color);\n\ttext-shadow: none;\n\tcolor: var(--label-foreground-color);\n\tmargin-right: 4px;\n\tpadding: 2px 3px;\n\tborder-radius: 3px;\n\tfont-size: 7pt;\n\twhite-space: nowrap;\n\tvertical-align: middle;\n}\n\n\n\n/* @end */\n\n/* these are for tree view inside a (index) page */\n\ndiv.directory {\n\tmargin: 10px 0px;\n\twidth: 100%;\n}\n\n.directory table {\n\tborder-collapse:collapse;\n}\n\n.directory td {\n\tmargin: 0px;\n\tpadding: 0px;\n\tvertical-align: top;\n}\n\n.directory td.entry {\n\twhite-space: nowrap;\n\tpadding-right: 6px;\n\tpadding-top: 3px;\n}\n\n.directory td.entry a {\n\toutline:none;\n}\n\n.directory td.entry a img {\n\tborder: none;\n}\n\n.directory td.desc {\n\twidth: 100%;\n\tpadding-left: 6px;\n\tpadding-right: 6px;\n\tpadding-top: 3px;\n\tborder-left: 1px solid rgba(0,0,0,0.05);\n}\n\n.directory tr.odd {\n\tpadding-left: 6px;\n\tbackground-color: var(--index-odd-item-bg-color);\n}\n\n.directory tr.even {\n\tpadding-left: 6px;\n\tbackground-color: var(--index-even-item-bg-color);\n}\n\n.directory img {\n\tvertical-align: -30%;\n}\n\n.directory .levels {\n\twhite-space: nowrap;\n\twidth: 100%;\n\ttext-align: right;\n\tfont-size: 9pt;\n}\n\n.directory .levels span {\n\tcursor: pointer;\n\tpadding-left: 2px;\n\tpadding-right: 2px;\n\tcolor: var(--page-link-color);\n}\n\n.arrow {\n\tcolor: var(--nav-background-color);\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tcursor: pointer;\n\tfont-size: 80%;\n\tdisplay: inline-block;\n\twidth: 16px;\n\theight: 14px;\n\ttransition: opacity 0.3s ease;\n}\n\nspan.arrowhead {\n\tposition: relative;\n\tpadding: 0;\n\tmargin: 0 0 0 2px;\n\tdisplay: inline-block;\n\twidth: 5px;\n\theight: 5px;\n\tborder-right: 2px solid var(--nav-arrow-color);\n\tborder-bottom: 2px solid var(--nav-arrow-color);\n\ttransform: rotate(-45deg);\n\ttransition: transform 0.3s ease;\n}\n\nspan.arrowhead.opened {\n\ttransform: rotate(45deg);\n}\n\n.selected span.arrowhead {\n\tborder-right: 2px solid var(--nav-arrow-selected-color);\n\tborder-bottom: 2px solid var(--nav-arrow-selected-color);\n}\n\n.icon {\n\tfont-family: var(--font-family-icon);\n\tline-height: normal;\n\tfont-weight: bold;\n\tfont-size: 12px;\n\theight: 14px;\n\twidth: 16px;\n\tdisplay: inline-block;\n\tbackground-color: var(--icon-background-color);\n\tcolor: var(--icon-foreground-color);\n\ttext-align: center;\n\tborder-radius: 4px;\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.icona {\n\twidth: 24px;\n\theight: 22px;\n\tdisplay: inline-block;\n}\n\n.iconfolder {\n\twidth: 24px;\n\theight: 18px;\n\tmargin-top: 6px;\n\tvertical-align:top;\n\tdisplay: inline-block;\n\tposition: relative;\n}\n\n.icondoc {\n\twidth: 24px;\n\theight: 18px;\n\tmargin-top: 3px;\n\tvertical-align:top;\n\tdisplay: inline-block;\n\tposition: relative;\n}\n\n.folder-icon {\n\twidth: 16px;\n\theight: 11px;\n\tbackground-color: var(--icon-folder-fill-color);\n\tborder: 1px solid var(--icon-folder-border-color);\n\tborder-radius: 0 2px 2px 2px;\n\tposition: relative;\n\tbox-sizing: content-box;\n}\n\n.folder-icon::after {\n\tcontent: '';\n\tposition: absolute;\n\ttop: 2px;\n\tleft: -1px;\n\twidth: 16px;\n\theight: 7px;\n\tbackground-color: var(--icon-folder-open-fill-color);\n\tborder: 1px solid var(--icon-folder-border-color);\n\tborder-radius: 7px 7px 2px 2px;\n\ttransform-origin: top left;\n\topacity: 0;\n\ttransition: all 0.3s linear;\n}\n\n.folder-icon::before {\n\tcontent: '';\n\tposition: absolute;\n\ttop: -3px;\n\tleft: -1px;\n\twidth: 6px;\n\theight: 2px;\n\tbackground-color: var(--icon-folder-fill-color);\n\tborder-top: 1px solid var(--icon-folder-border-color);\n\tborder-left: 1px solid var(--icon-folder-border-color);\n\tborder-right: 1px solid var(--icon-folder-border-color);\n\tborder-radius: 2px 2px 0 0;\n}\n\n.folder-icon.open::after {\n\ttop: 3px;\n\topacity: 1;\n}\n\n.doc-icon {\n\tleft: 6px;\n\twidth: 12px;\n\theight: 16px;\n\tbackground-color: var(--icon-doc-border-color);\n\tclip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%);\n\tposition: relative;\n\tdisplay: inline-block;\n}\n.doc-icon::before {\n\tcontent: \"\";\n\tleft: 1px;\n\ttop: 1px;\n\twidth: 10px;\n\theight: 14px;\n\tbackground-color: var(--icon-doc-fill-color);\n\tclip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%);\n\tposition: absolute;\n\tbox-sizing: border-box;\n}\n.doc-icon::after {\n\tcontent: \"\";\n\tleft: 7px;\n\ttop: 0px;\n\twidth: 3px;\n\theight: 3px;\n\tbackground-color: transparent;\n\tposition: absolute;\n\tborder: 1px solid var(--icon-doc-border-color);\n}\n\n\n\n\n/* @end */\n\ndiv.dynheader {\n\tmargin-top: 8px;\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\nspan.dynarrow {\n\tposition: relative;\n\tdisplay: inline-block;\n\twidth: 12px;\n\tbottom: 1px;\n}\n\naddress {\n\tfont-style: normal;\n\tcolor: var(--footer-foreground-color);\n}\n\ntable.doxtable caption {\n\tcaption-side: top;\n}\n\ntable.doxtable {\n\tborder-collapse:collapse;\n\tmargin-top: 4px;\n\tmargin-bottom: 4px;\n}\n\ntable.doxtable td, table.doxtable th {\n\tborder: 1px solid var(--table-cell-border-color);\n\tpadding: 3px 7px 2px;\n}\n\ntable.doxtable th {\n\tbackground-color: var(--table-header-background-color);\n\tcolor: var(--table-header-foreground-color);\n\tfont-size: 110%;\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n}\n\ntable.fieldtable {\n\tmargin-bottom: 10px;\n\tborder: 1px solid var(--memdef-border-color);\n\tborder-spacing: 0px;\n\tborder-radius: 4px;\n\tbox-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);\n}\n\n.fieldtable td, .fieldtable th {\n\tpadding: 3px 7px 2px;\n}\n\n.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit {\n\twhite-space: nowrap;\n\tborder-right: 1px solid var(--memdef-border-color);\n\tborder-bottom: 1px solid var(--memdef-border-color);\n\tvertical-align: top;\n}\n\n.fieldtable td.fieldname {\n\tpadding-top: 3px;\n}\n\n.fieldtable td.fieldinit {\n\tpadding-top: 3px;\n\ttext-align: right;\n}\n\n\n.fieldtable td.fielddoc {\n\tborder-bottom: 1px solid var(--memdef-border-color);\n}\n\n.fieldtable td.fielddoc p:first-child {\n\tmargin-top: 0px;\n}\n\n.fieldtable td.fielddoc p:last-child {\n\tmargin-bottom: 2px;\n}\n\n.fieldtable tr:last-child td {\n\tborder-bottom: none;\n}\n\n.fieldtable th {\n\tbackground-color: var(--memdef-title-background-color);\n\tfont-size: 90%;\n\tcolor: var(--memdef-proto-text-color);\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n\ttext-align:left;\n\tfont-weight: 400;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder-bottom: 1px solid var(--memdef-border-color);\n}\n\n/* ----------- navigation breadcrumb styling ----------- */\n\n#nav-path ul {\n\theight: 30px;\n\tline-height: 30px;\n\tcolor: var(--nav-text-normal-color);\n\toverflow: hidden;\n\tmargin: 0px;\n\tpadding-left: 4px;\n\tbackground-image: none;\n\tbackground: var(--page-background-color);\n\tborder-bottom: 1px solid var(--nav-breadcrumb-separator-color);\n\tfont-size: var(--nav-font-size-level1);\n\tfont-family: var(--font-family-nav);\n\tposition: relative;\n\tz-index: 100;\n}\n\n#main-nav {\n\tborder-bottom: 1px solid var(--nav-border-color);\n}\n\n.navpath li {\n\tlist-style-type:none;\n\tfloat:left;\n\tcolor: var(--nav-foreground-color);\n}\n\n.navpath li.footer {\n\tlist-style-type:none;\n\tfloat:right;\n\tpadding-left:10px;\n\tpadding-right:15px;\n\tbackground-image:none;\n\tbackground-repeat:no-repeat;\n\tbackground-position:right;\n\tfont-size: 8pt;\n\tcolor: var(--footer-foreground-color);\n}\n\n#nav-path li.navelem {\n\tbackground-image: none;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-left: 15px;\n}\n\n.navpath li.navelem a {\n\ttext-shadow: none;\n\tdisplay: inline-block;\n\tcolor: var(--nav-breadcrumb-color);\n\tposition: relative;\n\ttop: 0px;\n\theight: 30px;\n\tmargin-right: -20px;\n}\n\n#nav-path li.navelem:after {\n\tcontent: '';\n\tdisplay: inline-block;\n\tposition: relative;\n\ttop: 0;\n\tright: -15px;\n\twidth: 30px;\n\theight: 30px;\n\ttransform: scaleX(0.5) scale(0.707) rotate(45deg);\n\tz-index: 10;\n\tbackground: var(--page-background-color);\n\tbox-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color);\n\tborder-radius: 0 5px 0 50px;\n}\n\n#nav-path li.navelem:first-child {\n\tmargin-left: -6px;\n}\n\n#nav-path li.navelem:hover,\n#nav-path li.navelem:hover:after {\n\tbackground-color: var(--nav-breadcrumb-active-bg);\n}\n\n/* ---------------------- */\n\ndiv.summary\n{\n\tfloat: right;\n\tfont-size: 8pt;\n\tpadding-right: 5px;\n\twidth: 50%;\n\ttext-align: right;\n}\n\ndiv.summary a\n{\n\twhite-space: nowrap;\n}\n\ntable.classindex\n{\n\tmargin: 10px;\n\twhite-space: nowrap;\n\tmargin-left: 3%;\n\tmargin-right: 3%;\n\twidth: 94%;\n\tborder: 0;\n\tborder-spacing: 0;\n\tpadding: 0;\n}\n\ndiv.ingroups\n{\n\tfont-size: 8pt;\n\twidth: 50%;\n\ttext-align: left;\n}\n\ndiv.ingroups a\n{\n\twhite-space: nowrap;\n}\n\ndiv.header\n{\n\tmargin:  0px;\n\tbackground-color: var(--header-background-color);\n\tborder-bottom: 1px solid var(--header-separator-color);\n}\n\ndiv.headertitle\n{\n\tpadding: 5px 5px 5px 10px;\n}\n\ndl {\n\tpadding: 0 0 0 0;\n}\n\ndl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a {\n\tfont-weight: bold !important;\n}\n\ndl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug,\ndl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark {\n\tpadding: 10px;\n\tmargin: 10px 0px;\n\toverflow: hidden;\n\tmargin-left: 0;\n\tborder-radius: 4px;\n}\n\ndl.section dd {\n\tmargin-bottom: 2px;\n}\n\ndl.warning, dl.attention, dl.important {\n\tbackground: var(--warning-color-bg);\n\tborder-left: 8px solid var(--warning-color-hl);\n\tcolor: var(--warning-color-text);\n}\n\ndl.warning dt, dl.attention dt, dl.important dt {\n\tcolor: var(--warning-color-hl);\n}\n\ndl.note, dl.remark {\n\tbackground: var(--note-color-bg);\n\tborder-left: 8px solid var(--note-color-hl);\n\tcolor: var(--note-color-text);\n}\n\ndl.note dt, dl.remark dt {\n\tcolor: var(--note-color-hl);\n}\n\ndl.todo {\n\tbackground: var(--todo-color-bg);\n\tborder-left: 8px solid var(--todo-color-hl);\n\tcolor: var(--todo-color-text);\n}\n\ndl.todo dt {\n\tcolor: var(--todo-color-hl);\n}\n\ndl.test {\n\tbackground: var(--test-color-bg);\n\tborder-left: 8px solid var(--test-color-hl);\n\tcolor: var(--test-color-text);\n}\n\ndl.test dt {\n\tcolor: var(--test-color-hl);\n}\n\ndl.bug dt a {\n\tcolor: var(--bug-color-hl) !important;\n}\n\ndl.bug {\n\tbackground: var(--bug-color-bg);\n\tborder-left: 8px solid var(--bug-color-hl);\n\tcolor: var(--bug-color-text);\n}\n\ndl.bug dt a {\n\tcolor: var(--bug-color-hl) !important;\n}\n\ndl.deprecated {\n\tbackground: var(--deprecated-color-bg);\n\tborder-left: 8px solid var(--deprecated-color-hl);\n\tcolor: var(--deprecated-color-text);\n}\n\ndl.deprecated dt a {\n\tcolor: var(--deprecated-color-hl) !important;\n}\n\ndl.note dd, dl.warning dd, dl.pre dd, dl.post dd,\ndl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd,\ndl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd {\n\tmargin-inline-start: 0px;\n}\n\ndl.invariant, dl.pre, dl.post {\n\tbackground: var(--invariant-color-bg);\n\tborder-left: 8px solid var(--invariant-color-hl);\n\tcolor: var(--invariant-color-text);\n}\n\ndl.invariant dt, dl.pre dt, dl.post dt {\n\tcolor: var(--invariant-color-hl);\n}\n\n\n#projectrow\n{\n\theight: 56px;\n}\n\n#projectlogo\n{\n\ttext-align: center;\n\tvertical-align: bottom;\n\tborder-collapse: separate;\n}\n\n#projectlogo img\n{\n\tborder: 0px none;\n}\n\n#projectalign\n{\n\tvertical-align: middle;\n\tpadding-left: 0.5em;\n}\n\n#projectname\n{\n\tfont-size: 200%;\n\tfont-family: var(--font-family-title);\n\tmargin: 0;\n\tpadding: 0;\n}\n\n#side-nav #projectname\n{\n\tfont-size: 130%;\n}\n\n#projectbrief\n{\n\tfont-size: 90%;\n\tfont-family: var(--font-family-title);\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#projectnumber\n{\n\tfont-size: 50%;\n\tfont-family: var(--font-family-title);\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n#titlearea\n{\n\tpadding: 0 0 0 5px;\n\tmargin: 0px;\n\tborder-bottom: 1px solid var(--title-separator-color);\n\tbackground-color: var(--title-background-color);\n}\n\n.image\n{\n\ttext-align: center;\n}\n\n.dotgraph\n{\n\ttext-align: center;\n}\n\n.mscgraph\n{\n\ttext-align: center;\n}\n\n.plantumlgraph\n{\n\ttext-align: center;\n}\n\n.diagraph\n{\n\ttext-align: center;\n}\n\n.caption\n{\n\tfont-weight: bold;\n}\n\ndl.citelist {\n\tmargin-bottom:50px;\n}\n\ndl.citelist dt {\n\tcolor:var(--citation-label-color);\n\tfloat:left;\n\tfont-weight:bold;\n\tmargin-right:10px;\n\tpadding:5px;\n\ttext-align:right;\n\twidth:52px;\n}\n\ndl.citelist dd {\n\tmargin:2px 0 2px 72px;\n\tpadding:5px 0;\n}\n\ndiv.toc {\n\tpadding: 14px 25px;\n\tbackground-color: var(--toc-background-color);\n\tborder: 1px solid var(--toc-border-color);\n\tborder-radius: 7px 7px 7px 7px;\n\tfloat: right;\n\theight: auto;\n\tmargin: 0 8px 10px 10px;\n\twidth: 200px;\n}\n\ndiv.toc li {\n\tbackground: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent;\n\tfont: 10px/1.2 var(--font-family-toc);\n\tmargin-top: 5px;\n\tpadding-left: 10px;\n\tpadding-top: 2px;\n}\n\ndiv.toc h3 {\n\tfont: bold 12px/1.2 var(--font-family-toc);\n\tcolor: var(--toc-header-color);\n\tborder-bottom: 0 none;\n\tmargin: 0;\n}\n\ndiv.toc ul {\n\tlist-style: none outside none;\n\tborder: medium none;\n\tpadding: 0px;\n}\n\ndiv.toc li[class^='level'] {\n\tmargin-left: 15px;\n}\n\ndiv.toc li.level1 {\n\tmargin-left: 0px;\n}\n\ndiv.toc li.empty {\n\tbackground-image: none;\n\tmargin-top: 0px;\n}\n\nspan.emoji {\n        /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html\n         * font-family: \"Noto Color Emoji\", \"Apple Color Emoji\", \"Segoe UI Emoji\", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;\n         */\n}\n\nspan.obfuscator {\n\tdisplay: none;\n}\n\n.inherit_header {\n\tfont-weight: 400;\n\tcursor: pointer;\n\t-webkit-touch-callout: none;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\n.inherit_header td {\n\tpadding: 6px 0 2px 0;\n}\n\n.inherit {\n\tdisplay: none;\n}\n\ntr.heading h2 {\n\tmargin-top: 12px;\n\tmargin-bottom: 12px;\n}\n\n/* tooltip related style info */\n\n.ttc {\n\tposition: absolute;\n\tdisplay: none;\n}\n\n#powerTip {\n\tcursor: default;\n\tcolor: var(--tooltip-foreground-color);\n\tbackground-color: var(--tooltip-background-color);\n\tbackdrop-filter: var(--tooltip-backdrop-filter);\n\t-webkit-backdrop-filter: var(--tooltip-backdrop-filter);\n\tborder: 1px solid var(--tooltip-border-color);\n\tborder-radius: 4px;\n\tbox-shadow: var(--tooltip-shadow);\n\tdisplay: none;\n\tfont-size: smaller;\n\tmax-width: 80%;\n\tpadding: 1ex 1em 1em;\n\tposition: absolute;\n\tz-index: 2147483647;\n}\n\n#powerTip div.ttdoc {\n\tcolor: var(--tooltip-doc-color);\n\tfont-style: italic;\n}\n\n#powerTip div.ttname a {\n\tfont-weight: bold;\n}\n\n#powerTip a {\n\tcolor: var(--tooltip-link-color);\n}\n\n#powerTip div.ttname {\n\tfont-weight: bold;\n}\n\n#powerTip div.ttdeci {\n\tcolor: var(--tooltip-declaration-color);\n}\n\n#powerTip div {\n\tmargin: 0px;\n\tpadding: 0px;\n\tfont-size: 12px;\n\tfont-family: var(--font-family-tooltip);\n\tline-height: 16px;\n}\n\n#powerTip:before, #powerTip:after {\n\tcontent: \"\";\n\tposition: absolute;\n\tmargin: 0px;\n}\n\n#powerTip.n:after,  #powerTip.n:before,\n#powerTip.s:after,  #powerTip.s:before,\n#powerTip.w:after,  #powerTip.w:before,\n#powerTip.e:after,  #powerTip.e:before,\n#powerTip.ne:after, #powerTip.ne:before,\n#powerTip.se:after, #powerTip.se:before,\n#powerTip.nw:after, #powerTip.nw:before,\n#powerTip.sw:after, #powerTip.sw:before {\n\tborder: solid transparent;\n\tcontent: \" \";\n\theight: 0;\n\twidth: 0;\n\tposition: absolute;\n}\n\n#powerTip.n:after,  #powerTip.s:after,\n#powerTip.w:after,  #powerTip.e:after,\n#powerTip.nw:after, #powerTip.ne:after,\n#powerTip.sw:after, #powerTip.se:after {\n\tborder-color: rgba(255, 255, 255, 0);\n}\n\n#powerTip.n:before,  #powerTip.s:before,\n#powerTip.w:before,  #powerTip.e:before,\n#powerTip.nw:before, #powerTip.ne:before,\n#powerTip.sw:before, #powerTip.se:before {\n\tborder-color: rgba(128, 128, 128, 0);\n}\n\n#powerTip.n:after,  #powerTip.n:before,\n#powerTip.ne:after, #powerTip.ne:before,\n#powerTip.nw:after, #powerTip.nw:before {\n\ttop: 100%;\n}\n\n#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {\n\tborder-top-color: var(--tooltip-arrow-background-color);\n\tborder-width: 10px;\n\tmargin: 0px -10px;\n}\n#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before {\n\tborder-top-color: var(--tooltip-border-color);\n\tborder-width: 11px;\n\tmargin: 0px -11px;\n}\n#powerTip.n:after, #powerTip.n:before {\n\tleft: 50%;\n}\n\n#powerTip.nw:after, #powerTip.nw:before {\n\tright: 14px;\n}\n\n#powerTip.ne:after, #powerTip.ne:before {\n\tleft: 14px;\n}\n\n#powerTip.s:after,  #powerTip.s:before,\n#powerTip.se:after, #powerTip.se:before,\n#powerTip.sw:after, #powerTip.sw:before {\n\tbottom: 100%;\n}\n\n#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {\n\tborder-bottom-color: var(--tooltip-arrow-background-color);\n\tborder-width: 10px;\n\tmargin: 0px -10px;\n}\n\n#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {\n\tborder-bottom-color: var(--tooltip-border-color);\n\tborder-width: 11px;\n\tmargin: 0px -11px;\n}\n\n#powerTip.s:after, #powerTip.s:before {\n\tleft: 50%;\n}\n\n#powerTip.sw:after, #powerTip.sw:before {\n\tright: 14px;\n}\n\n#powerTip.se:after, #powerTip.se:before {\n\tleft: 14px;\n}\n\n#powerTip.e:after, #powerTip.e:before {\n\tleft: 100%;\n}\n#powerTip.e:after {\n\tborder-left-color: var(--tooltip-border-color);\n\tborder-width: 10px;\n\ttop: 50%;\n\tmargin-top: -10px;\n}\n#powerTip.e:before {\n\tborder-left-color: var(--tooltip-border-color);\n\tborder-width: 11px;\n\ttop: 50%;\n\tmargin-top: -11px;\n}\n\n#powerTip.w:after, #powerTip.w:before {\n\tright: 100%;\n}\n#powerTip.w:after {\n\tborder-right-color: var(--tooltip-border-color);\n\tborder-width: 10px;\n\ttop: 50%;\n\tmargin-top: -10px;\n}\n#powerTip.w:before {\n\tborder-right-color: var(--tooltip-border-color);\n\tborder-width: 11px;\n\ttop: 50%;\n\tmargin-top: -11px;\n}\n\n@media print\n{\n\t#top { display: none; }\n\t#side-nav { display: none; }\n\t#nav-path { display: none; }\n\tbody { overflow:visible; }\n\th1, h2, h3, h4, h5, h6 { page-break-after: avoid; }\n\t.summary { display: none; }\n\t.memitem { page-break-inside: avoid; }\n\t#doc-content\n\t{\n\tmargin-left:0 !important;\n\theight:auto !important;\n\twidth:auto !important;\n\toverflow:inherit;\n\tdisplay:inline;\n\t}\n}\n\n/* @group Markdown */\n\ntable.markdownTable {\n\tborder-collapse:collapse;\n\tmargin-top: 4px;\n\tmargin-bottom: 4px;\n}\n\ntable.markdownTable td, table.markdownTable th {\n\tborder: 1px solid var(--table-cell-border-color);\n\tpadding: 3px 7px 2px;\n}\n\ntable.markdownTable tr {\n}\n\nth.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {\n\tbackground-color: var(--table-header-background-color);\n\tcolor: var(--table-header-foreground-color);\n\tfont-size: 110%;\n\tpadding-bottom: 4px;\n\tpadding-top: 5px;\n}\n\nth.markdownTableHeadLeft, td.markdownTableBodyLeft {\n\ttext-align: left\n}\n\nth.markdownTableHeadRight, td.markdownTableBodyRight {\n\ttext-align: right\n}\n\nth.markdownTableHeadCenter, td.markdownTableBodyCenter {\n\ttext-align: center\n}\n\ntt, code, kbd\n{\n\tdisplay: inline-block;\n}\ntt, code, kbd\n{\n\tvertical-align: top;\n}\n/* @end */\n\nu {\n\ttext-decoration: underline;\n}\n\ndetails>summary {\n\tlist-style-type: none;\n}\n\ndetails > summary::-webkit-details-marker {\n\tdisplay: none;\n}\n\ndetails>summary::before {\n\tcontent: \"\\25ba\";\n\tpadding-right:4px;\n\tfont-size: 80%;\n}\n\ndetails[open]>summary::before {\n\tcontent: \"\\25bc\";\n\tpadding-right:4px;\n\tfont-size: 80%;\n}\n\n:root {\n    scrollbar-width: thin;\n    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);\n}\n\n::-webkit-scrollbar {\n        background-color: var(--scrollbar-background-color);\n        height: 12px;\n        width: 12px;\n}\n::-webkit-scrollbar-thumb {\n        border-radius: 6px;\n        box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color);\n        border: solid 2px transparent;\n}\n::-webkit-scrollbar-corner {\n        background-color: var(--scrollbar-background-color);\n}\n\n"
  },
  {
    "path": "docs/html/doxygen_crawl.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<title>Validator / crawler helper</title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n</head>\n<body>\n<a href=\"_binary_reader_writer_8cs.html\"/>\n<a href=\"_buffer_pool_8cs.html\"/>\n<a href=\"_c_h_a_n_g_e_l_o_g_8md.html\"/>\n<a href=\"_channel_join_message_8cs.html\"/>\n<a href=\"_channel_leave_message_8cs.html\"/>\n<a href=\"_channel_remove_message_8cs.html\"/>\n<a href=\"_channel_send_message_8cs.html\"/>\n<a href=\"_channel_update_message_8cs.html\"/>\n<a href=\"_console_client_8gen_8cs.html\"/>\n<a href=\"_debug_2net46_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_debug_2net46_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_entity_too_large_exception_8cs.html\"/>\n<a href=\"_event_8cs.html\"/>\n<a href=\"_http_helper_8cs.html\"/>\n<a href=\"_i_buffer_pool_8cs.html\"/>\n<a href=\"_i_channel_8cs.html\"/>\n<a href=\"_i_channel_message_ack_8cs.html\"/>\n<a href=\"_i_channel_presence_event_8cs.html\"/>\n<a href=\"_i_match_8cs.html\"/>\n<a href=\"_i_match_presence_event_8cs.html\"/>\n<a href=\"_i_match_state_8cs.html\"/>\n<a href=\"_i_matchmaker_matched_8cs.html\"/>\n<a href=\"_i_matchmaker_ticket_8cs.html\"/>\n<a href=\"_i_party_8cs.html\"/>\n<a href=\"_i_party_close_8cs.html\"/>\n<a href=\"_i_party_data_8cs.html\"/>\n<a href=\"_i_party_join_request_8cs.html\"/>\n<a href=\"_i_party_leader_8cs.html\"/>\n<a href=\"_i_party_matchmaker_ticket_8cs.html\"/>\n<a href=\"_i_party_presence_event_8cs.html\"/>\n<a href=\"_i_party_update_8cs.html\"/>\n<a href=\"_i_ping_pong_manager_8cs.html\"/>\n<a href=\"_i_socket_8cs.html\"/>\n<a href=\"_i_socket_adapter_8cs.html\"/>\n<a href=\"_i_status_8cs.html\"/>\n<a href=\"_i_status_presence_event_8cs.html\"/>\n<a href=\"_i_stream_presence_event_8cs.html\"/>\n<a href=\"_i_user_presence_8cs.html\"/>\n<a href=\"_i_web_socket_client_factory_8cs.html\"/>\n<a href=\"_i_web_socket_server_factory_8cs.html\"/>\n<a href=\"_invalid_http_response_code_exception_8cs.html\"/>\n<a href=\"_match_create_message_8cs.html\"/>\n<a href=\"_match_join_message_8cs.html\"/>\n<a href=\"_match_leave_message_8cs.html\"/>\n<a href=\"_match_send_message_8cs.html\"/>\n<a href=\"_matchmaker_add_message_8cs.html\"/>\n<a href=\"_matchmaker_remove_message_8cs.html\"/>\n<a href=\"_nakama_2_api_client_8gen_8cs.html\"/>\n<a href=\"_nakama_2_client_8cs.html\"/>\n<a href=\"_nakama_2_g_zip_http_client_handler_8cs.html\"/>\n<a href=\"_nakama_2_http_request_adapter_8cs.html\"/>\n<a href=\"_nakama_2_i_client_8cs.html\"/>\n<a href=\"_nakama_2_i_http_adapter_8cs.html\"/>\n<a href=\"_nakama_2_i_http_adapter_util_8cs.html\"/>\n<a href=\"_nakama_2_i_logger_8cs.html\"/>\n<a href=\"_nakama_2_i_session_8cs.html\"/>\n<a href=\"_nakama_2_preserve_attribute_8cs.html\"/>\n<a href=\"_nakama_2_retry_8cs.html\"/>\n<a href=\"_nakama_2_retry_configuration_8cs.html\"/>\n<a href=\"_nakama_2_retry_history_8cs.html\"/>\n<a href=\"_nakama_2_retry_invoker_8cs.html\"/>\n<a href=\"_nakama_2_retry_jitter_8cs.html\"/>\n<a href=\"_nakama_2_retry_listener_8cs.html\"/>\n<a href=\"_nakama_2_session_8cs.html\"/>\n<a href=\"_nakama_2_tiny_json_2_json_parser_8cs.html\"/>\n<a href=\"_nakama_2_tiny_json_2_json_writer_8cs.html\"/>\n<a href=\"_nakama_2_transient_exception_delegate_8cs.html\"/>\n<a href=\"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\"/>\n<a href=\"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\"/>\n<a href=\"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\"/>\n<a href=\"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\"/>\n<a href=\"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\"/>\n<a href=\"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\"/>\n<a href=\"_null_logger_8cs.html\"/>\n<a href=\"_party_8cs.html\"/>\n<a href=\"_party_accept_8cs.html\"/>\n<a href=\"_party_close_8cs.html\"/>\n<a href=\"_party_create_8cs.html\"/>\n<a href=\"_party_data_8cs.html\"/>\n<a href=\"_party_data_send_8cs.html\"/>\n<a href=\"_party_join_8cs.html\"/>\n<a href=\"_party_join_request_8cs.html\"/>\n<a href=\"_party_join_request_list_8cs.html\"/>\n<a href=\"_party_leader_8cs.html\"/>\n<a href=\"_party_leave_8cs.html\"/>\n<a href=\"_party_matchmaker_add_8cs.html\"/>\n<a href=\"_party_matchmaker_remove_8cs.html\"/>\n<a href=\"_party_matchmaker_ticket_8cs.html\"/>\n<a href=\"_party_member_remove_8cs.html\"/>\n<a href=\"_party_presence_event_8cs.html\"/>\n<a href=\"_party_promote_8cs.html\"/>\n<a href=\"_party_update_8cs.html\"/>\n<a href=\"_ping_pong_manager_8cs.html\"/>\n<a href=\"_pong_event_args_8cs.html\"/>\n<a href=\"_presence_util_8cs.html\"/>\n<a href=\"_r_e_a_d_m_e_8md.html\"/>\n<a href=\"_release_2net46_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_release_2net46_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\"/>\n<a href=\"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\"/>\n<a href=\"_satori_2_api_client_8gen_8cs.html\"/>\n<a href=\"_satori_2_client_8cs.html\"/>\n<a href=\"_satori_2_g_zip_http_client_handler_8cs.html\"/>\n<a href=\"_satori_2_http_request_adapter_8cs.html\"/>\n<a href=\"_satori_2_i_client_8cs.html\"/>\n<a href=\"_satori_2_i_http_adapter_8cs.html\"/>\n<a href=\"_satori_2_i_http_adapter_util_8cs.html\"/>\n<a href=\"_satori_2_i_logger_8cs.html\"/>\n<a href=\"_satori_2_i_session_8cs.html\"/>\n<a href=\"_satori_2_preserve_attribute_8cs.html\"/>\n<a href=\"_satori_2_retry_8cs.html\"/>\n<a href=\"_satori_2_retry_configuration_8cs.html\"/>\n<a href=\"_satori_2_retry_history_8cs.html\"/>\n<a href=\"_satori_2_retry_invoker_8cs.html\"/>\n<a href=\"_satori_2_retry_jitter_8cs.html\"/>\n<a href=\"_satori_2_retry_listener_8cs.html\"/>\n<a href=\"_satori_2_session_8cs.html\"/>\n<a href=\"_satori_2_tiny_json_2_json_parser_8cs.html\"/>\n<a href=\"_satori_2_tiny_json_2_json_writer_8cs.html\"/>\n<a href=\"_satori_2_transient_exception_delegate_8cs.html\"/>\n<a href=\"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\"/>\n<a href=\"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\"/>\n<a href=\"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\"/>\n<a href=\"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\"/>\n<a href=\"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\"/>\n<a href=\"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\"/>\n<a href=\"_sec_web_socket_key_missing_exception_8cs.html\"/>\n<a href=\"_server_listener_socket_exception_8cs.html\"/>\n<a href=\"_socket_8cs.html\"/>\n<a href=\"_status_follow_message_8cs.html\"/>\n<a href=\"_status_unfollow_message_8cs.html\"/>\n<a href=\"_status_update_message_8cs.html\"/>\n<a href=\"_storage_object_id_8cs.html\"/>\n<a href=\"_web_socket_adapter_8cs.html\"/>\n<a href=\"_web_socket_buffer_overflow_exception_8cs.html\"/>\n<a href=\"_web_socket_client_factory_8cs.html\"/>\n<a href=\"_web_socket_client_options_8cs.html\"/>\n<a href=\"_web_socket_error_message_8cs.html\"/>\n<a href=\"_web_socket_frame_8cs.html\"/>\n<a href=\"_web_socket_frame_common_8cs.html\"/>\n<a href=\"_web_socket_frame_reader_8cs.html\"/>\n<a href=\"_web_socket_frame_writer_8cs.html\"/>\n<a href=\"_web_socket_handshake_failed_exception_8cs.html\"/>\n<a href=\"_web_socket_http_context_8cs.html\"/>\n<a href=\"_web_socket_implementation_8cs.html\"/>\n<a href=\"_web_socket_message_envelope_8cs.html\"/>\n<a href=\"_web_socket_op_code_8cs.html\"/>\n<a href=\"_web_socket_read_cursor_8cs.html\"/>\n<a href=\"_web_socket_server_factory_8cs.html\"/>\n<a href=\"_web_socket_server_options_8cs.html\"/>\n<a href=\"_web_socket_stdlib_adapter_8cs.html\"/>\n<a href=\"_web_socket_version_not_supported_exception_8cs.html\"/>\n<a href=\"_write_storage_object_8cs.html\"/>\n<a href=\"annotated.html\"/>\n<a href=\"class_nakama_1_1_api_response_exception-members.html\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\"/>\n<a href=\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\"/>\n<a href=\"class_nakama_1_1_client-members.html\"/>\n<a href=\"class_nakama_1_1_client.html\"/>\n<a href=\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\"/>\n<a href=\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\"/>\n<a href=\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\"/>\n<a href=\"class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6\"/>\n<a href=\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\"/>\n<a href=\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\"/>\n<a href=\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\"/>\n<a href=\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\"/>\n<a href=\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\"/>\n<a href=\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\"/>\n<a href=\"class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270\"/>\n<a href=\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\"/>\n<a href=\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\"/>\n<a href=\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\"/>\n<a href=\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\"/>\n<a href=\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\"/>\n<a href=\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\"/>\n<a href=\"class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493\"/>\n<a href=\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\"/>\n<a href=\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\"/>\n<a href=\"class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621\"/>\n<a href=\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\"/>\n<a href=\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\"/>\n<a href=\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\"/>\n<a href=\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\"/>\n<a href=\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\"/>\n<a href=\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\"/>\n<a href=\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\"/>\n<a href=\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\"/>\n<a href=\"class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711\"/>\n<a href=\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\"/>\n<a href=\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\"/>\n<a href=\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\"/>\n<a href=\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\"/>\n<a href=\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\"/>\n<a href=\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\"/>\n<a href=\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\"/>\n<a href=\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\"/>\n<a href=\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\"/>\n<a href=\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\"/>\n<a href=\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\"/>\n<a href=\"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\"/>\n<a href=\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\"/>\n<a href=\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\"/>\n<a href=\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\"/>\n<a href=\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\"/>\n<a href=\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\"/>\n<a href=\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\"/>\n<a href=\"class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830\"/>\n<a href=\"class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460\"/>\n<a href=\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\"/>\n<a href=\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\"/>\n<a href=\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\"/>\n<a href=\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\"/>\n<a href=\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\"/>\n<a href=\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\"/>\n<a href=\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\"/>\n<a href=\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\"/>\n<a href=\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\"/>\n<a href=\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\"/>\n<a href=\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\"/>\n<a href=\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\"/>\n<a href=\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\"/>\n<a href=\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\"/>\n<a href=\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\"/>\n<a href=\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\"/>\n<a href=\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\"/>\n<a href=\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\"/>\n<a href=\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\"/>\n<a href=\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\"/>\n<a href=\"class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\"/>\n<a href=\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\"/>\n<a href=\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\"/>\n<a href=\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\"/>\n<a href=\"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\"/>\n<a href=\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\"/>\n<a href=\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\"/>\n<a href=\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\"/>\n<a href=\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\"/>\n<a href=\"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\"/>\n<a href=\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\"/>\n<a href=\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\"/>\n<a href=\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\"/>\n<a href=\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\"/>\n<a href=\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\"/>\n<a href=\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\"/>\n<a href=\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\"/>\n<a href=\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\"/>\n<a href=\"class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35\"/>\n<a href=\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\"/>\n<a href=\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\"/>\n<a href=\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\"/>\n<a href=\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\"/>\n<a href=\"class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756\"/>\n<a href=\"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\"/>\n<a href=\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\"/>\n<a href=\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\"/>\n<a href=\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\"/>\n<a href=\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\"/>\n<a href=\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\"/>\n<a href=\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\"/>\n<a href=\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\"/>\n<a href=\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\"/>\n<a href=\"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\"/>\n<a href=\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\"/>\n<a href=\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\"/>\n<a href=\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception-members.html\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\"/>\n<a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\"/>\n<a href=\"class_nakama_1_1_http_request_adapter-members.html\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e\"/>\n<a href=\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options-members.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\"/>\n<a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\"/>\n<a href=\"class_nakama_1_1_retry-members.html\"/>\n<a href=\"class_nakama_1_1_retry.html\"/>\n<a href=\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\"/>\n<a href=\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\"/>\n<a href=\"class_nakama_1_1_retry_configuration-members.html\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\"/>\n<a href=\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\"/>\n<a href=\"class_nakama_1_1_session-members.html\"/>\n<a href=\"class_nakama_1_1_session.html\"/>\n<a href=\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\"/>\n<a href=\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\"/>\n<a href=\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\"/>\n<a href=\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\"/>\n<a href=\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\"/>\n<a href=\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\"/>\n<a href=\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\"/>\n<a href=\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\"/>\n<a href=\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\"/>\n<a href=\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\"/>\n<a href=\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\"/>\n<a href=\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\"/>\n<a href=\"class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582\"/>\n<a href=\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\"/>\n<a href=\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\"/>\n<a href=\"class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f\"/>\n<a href=\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\"/>\n<a href=\"class_nakama_1_1_socket-members.html\"/>\n<a href=\"class_nakama_1_1_socket.html\"/>\n<a href=\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\"/>\n<a href=\"class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d\"/>\n<a href=\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\"/>\n<a href=\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\"/>\n<a href=\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\"/>\n<a href=\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\"/>\n<a href=\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\"/>\n<a href=\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\"/>\n<a href=\"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\"/>\n<a href=\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\"/>\n<a href=\"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\"/>\n<a href=\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\"/>\n<a href=\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\"/>\n<a href=\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\"/>\n<a href=\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\"/>\n<a href=\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\"/>\n<a href=\"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\"/>\n<a href=\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\"/>\n<a href=\"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\"/>\n<a href=\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\"/>\n<a href=\"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\"/>\n<a href=\"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\"/>\n<a href=\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\"/>\n<a href=\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\"/>\n<a href=\"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\"/>\n<a href=\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\"/>\n<a href=\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\"/>\n<a href=\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\"/>\n<a href=\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\"/>\n<a href=\"class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7\"/>\n<a href=\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\"/>\n<a href=\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\"/>\n<a href=\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\"/>\n<a href=\"class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7\"/>\n<a href=\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\"/>\n<a href=\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\"/>\n<a href=\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\"/>\n<a href=\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\"/>\n<a href=\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\"/>\n<a href=\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\"/>\n<a href=\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\"/>\n<a href=\"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\"/>\n<a href=\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\"/>\n<a href=\"class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1\"/>\n<a href=\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\"/>\n<a href=\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\"/>\n<a href=\"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\"/>\n<a href=\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\"/>\n<a href=\"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\"/>\n<a href=\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\"/>\n<a href=\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\"/>\n<a href=\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\"/>\n<a href=\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\"/>\n<a href=\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\"/>\n<a href=\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\"/>\n<a href=\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\"/>\n<a href=\"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\"/>\n<a href=\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\"/>\n<a href=\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\"/>\n<a href=\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\"/>\n<a href=\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\"/>\n<a href=\"class_nakama_1_1_socket.html#ac4201f5bdda381252451e4aef465b498\"/>\n<a href=\"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\"/>\n<a href=\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\"/>\n<a href=\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\"/>\n<a href=\"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\"/>\n<a href=\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\"/>\n<a href=\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\"/>\n<a href=\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\"/>\n<a href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\"/>\n<a href=\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\"/>\n<a href=\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\"/>\n<a href=\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\"/>\n<a href=\"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\"/>\n<a href=\"class_nakama_1_1_storage_object_id-members.html\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\"/>\n<a href=\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter-members.html\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\"/>\n<a href=\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter-members.html\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\"/>\n<a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\"/>\n<a href=\"class_nakama_1_1_write_storage_object-members.html\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\"/>\n<a href=\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\"/>\n<a href=\"class_satori_1_1_api_response_exception-members.html\"/>\n<a href=\"class_satori_1_1_api_response_exception.html\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926\"/>\n<a href=\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\"/>\n<a href=\"class_satori_1_1_client-members.html\"/>\n<a href=\"class_satori_1_1_client.html\"/>\n<a href=\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\"/>\n<a href=\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\"/>\n<a href=\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\"/>\n<a href=\"class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de\"/>\n<a href=\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\"/>\n<a href=\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\"/>\n<a href=\"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\"/>\n<a href=\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\"/>\n<a href=\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\"/>\n<a href=\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\"/>\n<a href=\"class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d\"/>\n<a href=\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\"/>\n<a href=\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\"/>\n<a href=\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\"/>\n<a href=\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\"/>\n<a href=\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\"/>\n<a href=\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\"/>\n<a href=\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\"/>\n<a href=\"class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0\"/>\n<a href=\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\"/>\n<a href=\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\"/>\n<a href=\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\"/>\n<a href=\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\"/>\n<a href=\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\"/>\n<a href=\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\"/>\n<a href=\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\"/>\n<a href=\"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\"/>\n<a href=\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\"/>\n<a href=\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\"/>\n<a href=\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\"/>\n<a href=\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\"/>\n<a href=\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\"/>\n<a href=\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\"/>\n<a href=\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\"/>\n<a href=\"class_satori_1_1_event-members.html\"/>\n<a href=\"class_satori_1_1_event.html\"/>\n<a href=\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\"/>\n<a href=\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\"/>\n<a href=\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\"/>\n<a href=\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\"/>\n<a href=\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\"/>\n<a href=\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\"/>\n<a href=\"class_satori_1_1_http_request_adapter-members.html\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\"/>\n<a href=\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\"/>\n<a href=\"class_satori_1_1_retry-members.html\"/>\n<a href=\"class_satori_1_1_retry.html\"/>\n<a href=\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\"/>\n<a href=\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\"/>\n<a href=\"class_satori_1_1_retry_configuration-members.html\"/>\n<a href=\"class_satori_1_1_retry_configuration.html\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\"/>\n<a href=\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\"/>\n<a href=\"class_satori_1_1_session-members.html\"/>\n<a href=\"class_satori_1_1_session.html\"/>\n<a href=\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\"/>\n<a href=\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\"/>\n<a href=\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\"/>\n<a href=\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\"/>\n<a href=\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\"/>\n<a href=\"class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed\"/>\n<a href=\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\"/>\n<a href=\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\"/>\n<a href=\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\"/>\n<a href=\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\"/>\n<a href=\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\"/>\n<a href=\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\"/>\n<a href=\"class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4\"/>\n<a href=\"classes.html\"/>\n<a href=\"dir_00db1776877a30bd47a3324e3b896815.html\"/>\n<a href=\"dir_0385b7cc93c13096276fd0475bf94138.html\"/>\n<a href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\"/>\n<a href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\"/>\n<a href=\"dir_2024f50217af71df819eb31c540cc957.html\"/>\n<a href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\"/>\n<a href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\"/>\n<a href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\"/>\n<a href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\"/>\n<a href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\"/>\n<a href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\"/>\n<a href=\"dir_5d1450713377add98c1180fe0eb2f9ae.html\"/>\n<a href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\"/>\n<a href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\"/>\n<a href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\"/>\n<a href=\"dir_75202c243db9baf385df0aac94b0acc0.html\"/>\n<a href=\"dir_7a595d23279f99f2e5346245557e8271.html\"/>\n<a href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\"/>\n<a href=\"dir_93c065d202f1b2ae4be97868117427d8.html\"/>\n<a href=\"dir_ba769f4416b2c074a28c6130af43e345.html\"/>\n<a href=\"dir_c0ea682cca75c87761dacf1668992820.html\"/>\n<a href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\"/>\n<a href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\"/>\n<a href=\"dir_d0af3520e52159625e5c54b0a0666246.html\"/>\n<a href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\"/>\n<a href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\"/>\n<a href=\"doxygen_crawl.html\"/>\n<a href=\"files.html\"/>\n<a href=\"functions.html\"/>\n<a href=\"functions_b.html\"/>\n<a href=\"functions_c.html\"/>\n<a href=\"functions_d.html\"/>\n<a href=\"functions_e.html\"/>\n<a href=\"functions_evnt.html\"/>\n<a href=\"functions_f.html\"/>\n<a href=\"functions_func.html\"/>\n<a href=\"functions_func_b.html\"/>\n<a href=\"functions_func_c.html\"/>\n<a href=\"functions_func_d.html\"/>\n<a href=\"functions_func_e.html\"/>\n<a href=\"functions_func_f.html\"/>\n<a href=\"functions_func_g.html\"/>\n<a href=\"functions_func_h.html\"/>\n<a href=\"functions_func_i.html\"/>\n<a href=\"functions_func_j.html\"/>\n<a href=\"functions_func_k.html\"/>\n<a href=\"functions_func_l.html\"/>\n<a href=\"functions_func_o.html\"/>\n<a href=\"functions_func_p.html\"/>\n<a href=\"functions_func_r.html\"/>\n<a href=\"functions_func_s.html\"/>\n<a href=\"functions_func_t.html\"/>\n<a href=\"functions_func_u.html\"/>\n<a href=\"functions_func_v.html\"/>\n<a href=\"functions_func_w.html\"/>\n<a href=\"functions_g.html\"/>\n<a href=\"functions_h.html\"/>\n<a href=\"functions_i.html\"/>\n<a href=\"functions_j.html\"/>\n<a href=\"functions_k.html\"/>\n<a href=\"functions_l.html\"/>\n<a href=\"functions_m.html\"/>\n<a href=\"functions_n.html\"/>\n<a href=\"functions_o.html\"/>\n<a href=\"functions_p.html\"/>\n<a href=\"functions_prop.html\"/>\n<a href=\"functions_prop_b.html\"/>\n<a href=\"functions_prop_c.html\"/>\n<a href=\"functions_prop_d.html\"/>\n<a href=\"functions_prop_e.html\"/>\n<a href=\"functions_prop_f.html\"/>\n<a href=\"functions_prop_g.html\"/>\n<a href=\"functions_prop_h.html\"/>\n<a href=\"functions_prop_i.html\"/>\n<a href=\"functions_prop_j.html\"/>\n<a href=\"functions_prop_k.html\"/>\n<a href=\"functions_prop_l.html\"/>\n<a href=\"functions_prop_m.html\"/>\n<a href=\"functions_prop_n.html\"/>\n<a href=\"functions_prop_o.html\"/>\n<a href=\"functions_prop_p.html\"/>\n<a href=\"functions_prop_r.html\"/>\n<a href=\"functions_prop_s.html\"/>\n<a href=\"functions_prop_t.html\"/>\n<a href=\"functions_prop_u.html\"/>\n<a href=\"functions_prop_v.html\"/>\n<a href=\"functions_prop_w.html\"/>\n<a href=\"functions_r.html\"/>\n<a href=\"functions_s.html\"/>\n<a href=\"functions_t.html\"/>\n<a href=\"functions_u.html\"/>\n<a href=\"functions_v.html\"/>\n<a href=\"functions_vars.html\"/>\n<a href=\"functions_w.html\"/>\n<a href=\"hierarchy.html\"/>\n<a href=\"index.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_account_device-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_config_warning-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_config-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_config.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_console_session-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_status_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_user_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group-members.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\"/>\n<a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\"/>\n<a href=\"interface_nakama_1_1_i_api_account-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\"/>\n<a href=\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\"/>\n<a href=\"interface_nakama_1_1_i_api_account_apple-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_apple.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\"/>\n<a href=\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\"/>\n<a href=\"interface_nakama_1_1_i_api_account_custom-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_custom.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\"/>\n<a href=\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\"/>\n<a href=\"interface_nakama_1_1_i_api_account_device-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_device.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\"/>\n<a href=\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\"/>\n<a href=\"interface_nakama_1_1_i_api_account_email-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_email.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\"/>\n<a href=\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\"/>\n<a href=\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\"/>\n<a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\"/>\n<a href=\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\"/>\n<a href=\"interface_nakama_1_1_i_api_account_google-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_google.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\"/>\n<a href=\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\"/>\n<a href=\"interface_nakama_1_1_i_api_account_steam-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_steam.html\"/>\n<a href=\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\"/>\n<a href=\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\"/>\n<a href=\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\"/>\n<a href=\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_object_id-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\"/>\n<a href=\"interface_nakama_1_1_i_api_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_event.html\"/>\n<a href=\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\"/>\n<a href=\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\"/>\n<a href=\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\"/>\n<a href=\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\"/>\n<a href=\"interface_nakama_1_1_i_api_friend-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friend.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\"/>\n<a href=\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\"/>\n<a href=\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\"/>\n<a href=\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\"/>\n<a href=\"interface_nakama_1_1_i_api_friend_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friend_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\"/>\n<a href=\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\"/>\n<a href=\"interface_nakama_1_1_i_api_friends_of_friends_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\"/>\n<a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\"/>\n<a href=\"interface_nakama_1_1_i_api_group-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\"/>\n<a href=\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\"/>\n<a href=\"interface_nakama_1_1_i_api_group_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\"/>\n<a href=\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\"/>\n<a href=\"interface_nakama_1_1_i_api_group_user_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group_user_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\"/>\n<a href=\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\"/>\n<a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\"/>\n<a href=\"interface_nakama_1_1_i_api_link_steam_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_link_steam_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\"/>\n<a href=\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\"/>\n<a href=\"interface_nakama_1_1_i_api_list_subscriptions_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\"/>\n<a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\"/>\n<a href=\"interface_nakama_1_1_i_api_match-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\"/>\n<a href=\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\"/>\n<a href=\"interface_nakama_1_1_i_api_match_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_match_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_stats-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\"/>\n<a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\"/>\n<a href=\"interface_nakama_1_1_i_api_notification-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\"/>\n<a href=\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\"/>\n<a href=\"interface_nakama_1_1_i_api_notification_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_notification_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\"/>\n<a href=\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\"/>\n<a href=\"interface_nakama_1_1_i_api_party-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_party.html\"/>\n<a href=\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\"/>\n<a href=\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\"/>\n<a href=\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\"/>\n<a href=\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\"/>\n<a href=\"interface_nakama_1_1_i_api_party_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_party_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\"/>\n<a href=\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_object_id-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_objects_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\"/>\n<a href=\"interface_nakama_1_1_i_api_rpc-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_rpc.html\"/>\n<a href=\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\"/>\n<a href=\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\"/>\n<a href=\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\"/>\n<a href=\"interface_nakama_1_1_i_api_session-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\"/>\n<a href=\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\"/>\n<a href=\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\"/>\n<a href=\"interface_nakama_1_1_i_api_session_logout_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session_logout_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\"/>\n<a href=\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\"/>\n<a href=\"interface_nakama_1_1_i_api_session_refresh_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session_refresh_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\"/>\n<a href=\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_acks-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_acks.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_objects-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_objects.html\"/>\n<a href=\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\"/>\n<a href=\"interface_nakama_1_1_i_api_subscription_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_subscription_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\"/>\n<a href=\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\"/>\n<a href=\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\"/>\n<a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\"/>\n<a href=\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\"/>\n<a href=\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\"/>\n<a href=\"interface_nakama_1_1_i_api_user-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\"/>\n<a href=\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\"/>\n<a href=\"interface_nakama_1_1_i_api_user_group_list-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_user_group_list.html\"/>\n<a href=\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\"/>\n<a href=\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\"/>\n<a href=\"interface_nakama_1_1_i_api_users-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_users.html\"/>\n<a href=\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_response-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_response-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\"/>\n<a href=\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_objects_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\"/>\n<a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\"/>\n<a href=\"interface_nakama_1_1_i_channel-members.html\"/>\n<a href=\"interface_nakama_1_1_i_channel.html\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\"/>\n<a href=\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack-members.html\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\"/>\n<a href=\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\"/>\n<a href=\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\"/>\n<a href=\"interface_nakama_1_1_i_client-members.html\"/>\n<a href=\"interface_nakama_1_1_i_client.html\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\"/>\n<a href=\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\"/>\n<a href=\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\"/>\n<a href=\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\"/>\n<a href=\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\"/>\n<a href=\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\"/>\n<a href=\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\"/>\n<a href=\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\"/>\n<a href=\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\"/>\n<a href=\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\"/>\n<a href=\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\"/>\n<a href=\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\"/>\n<a href=\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\"/>\n<a href=\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\"/>\n<a href=\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\"/>\n<a href=\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\"/>\n<a href=\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\"/>\n<a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend-members.html\"/>\n<a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\"/>\n<a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\"/>\n<a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\"/>\n<a href=\"interface_nakama_1_1_i_group_user_list_group_user-members.html\"/>\n<a href=\"interface_nakama_1_1_i_group_user_list_group_user.html\"/>\n<a href=\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\"/>\n<a href=\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\"/>\n<a href=\"interface_nakama_1_1_i_http_adapter-members.html\"/>\n<a href=\"interface_nakama_1_1_i_http_adapter.html\"/>\n<a href=\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\"/>\n<a href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\"/>\n<a href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\"/>\n<a href=\"interface_nakama_1_1_i_logger-members.html\"/>\n<a href=\"interface_nakama_1_1_i_logger.html\"/>\n<a href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\"/>\n<a href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\"/>\n<a href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\"/>\n<a href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\"/>\n<a href=\"interface_nakama_1_1_i_match-members.html\"/>\n<a href=\"interface_nakama_1_1_i_match.html\"/>\n<a href=\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\"/>\n<a href=\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\"/>\n<a href=\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\"/>\n<a href=\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\"/>\n<a href=\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\"/>\n<a href=\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\"/>\n<a href=\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\"/>\n<a href=\"interface_nakama_1_1_i_match_presence_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_match_presence_event.html\"/>\n<a href=\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\"/>\n<a href=\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\"/>\n<a href=\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\"/>\n<a href=\"interface_nakama_1_1_i_match_state-members.html\"/>\n<a href=\"interface_nakama_1_1_i_match_state.html\"/>\n<a href=\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\"/>\n<a href=\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\"/>\n<a href=\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\"/>\n<a href=\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched-members.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_ticket-members.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_ticket.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_user-members.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_user.html\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\"/>\n<a href=\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\"/>\n<a href=\"interface_nakama_1_1_i_party-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party.html\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\"/>\n<a href=\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\"/>\n<a href=\"interface_nakama_1_1_i_party_close-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_close.html\"/>\n<a href=\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\"/>\n<a href=\"interface_nakama_1_1_i_party_data-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_data.html\"/>\n<a href=\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\"/>\n<a href=\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\"/>\n<a href=\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\"/>\n<a href=\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\"/>\n<a href=\"interface_nakama_1_1_i_party_join_request-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_join_request.html\"/>\n<a href=\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\"/>\n<a href=\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\"/>\n<a href=\"interface_nakama_1_1_i_party_leader-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_leader.html\"/>\n<a href=\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\"/>\n<a href=\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\"/>\n<a href=\"interface_nakama_1_1_i_party_matchmaker_ticket-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\"/>\n<a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\"/>\n<a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\"/>\n<a href=\"interface_nakama_1_1_i_party_presence_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_presence_event.html\"/>\n<a href=\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\"/>\n<a href=\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\"/>\n<a href=\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\"/>\n<a href=\"interface_nakama_1_1_i_party_update-members.html\"/>\n<a href=\"interface_nakama_1_1_i_party_update.html\"/>\n<a href=\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\"/>\n<a href=\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\"/>\n<a href=\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\"/>\n<a href=\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\"/>\n<a href=\"interface_nakama_1_1_i_protobuf_any-members.html\"/>\n<a href=\"interface_nakama_1_1_i_protobuf_any.html\"/>\n<a href=\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\"/>\n<a href=\"interface_nakama_1_1_i_rpc_status-members.html\"/>\n<a href=\"interface_nakama_1_1_i_rpc_status.html\"/>\n<a href=\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\"/>\n<a href=\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\"/>\n<a href=\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\"/>\n<a href=\"interface_nakama_1_1_i_session-members.html\"/>\n<a href=\"interface_nakama_1_1_i_session.html\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\"/>\n<a href=\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\"/>\n<a href=\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\"/>\n<a href=\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\"/>\n<a href=\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\"/>\n<a href=\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\"/>\n<a href=\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\"/>\n<a href=\"interface_nakama_1_1_i_socket-members.html\"/>\n<a href=\"interface_nakama_1_1_i_socket.html\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\"/>\n<a href=\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter-members.html\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\"/>\n<a href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\"/>\n<a href=\"interface_nakama_1_1_i_status-members.html\"/>\n<a href=\"interface_nakama_1_1_i_status.html\"/>\n<a href=\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\"/>\n<a href=\"interface_nakama_1_1_i_status_presence_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_status_presence_event.html\"/>\n<a href=\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\"/>\n<a href=\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\"/>\n<a href=\"interface_nakama_1_1_i_stream-members.html\"/>\n<a href=\"interface_nakama_1_1_i_stream.html\"/>\n<a href=\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\"/>\n<a href=\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\"/>\n<a href=\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\"/>\n<a href=\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\"/>\n<a href=\"interface_nakama_1_1_i_stream_presence_event-members.html\"/>\n<a href=\"interface_nakama_1_1_i_stream_presence_event.html\"/>\n<a href=\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\"/>\n<a href=\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\"/>\n<a href=\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\"/>\n<a href=\"interface_nakama_1_1_i_stream_state-members.html\"/>\n<a href=\"interface_nakama_1_1_i_stream_state.html\"/>\n<a href=\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\"/>\n<a href=\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\"/>\n<a href=\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\"/>\n<a href=\"interface_nakama_1_1_i_user_group_list_user_group-members.html\"/>\n<a href=\"interface_nakama_1_1_i_user_group_list_user_group.html\"/>\n<a href=\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\"/>\n<a href=\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\"/>\n<a href=\"interface_nakama_1_1_i_user_presence-members.html\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\"/>\n<a href=\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write-members.html\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\"/>\n<a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write-members.html\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\"/>\n<a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool-members.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager-members.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory-members.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory-members.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\"/>\n<a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_logout_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_refresh_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\"/>\n<a href=\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\"/>\n<a href=\"interface_satori_1_1_i_api_event-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_event.html\"/>\n<a href=\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\"/>\n<a href=\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\"/>\n<a href=\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\"/>\n<a href=\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\"/>\n<a href=\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\"/>\n<a href=\"interface_satori_1_1_i_api_event_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_event_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\"/>\n<a href=\"interface_satori_1_1_i_api_experiment-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_experiment.html\"/>\n<a href=\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\"/>\n<a href=\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\"/>\n<a href=\"interface_satori_1_1_i_api_experiment_list-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_experiment_list.html\"/>\n<a href=\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\"/>\n<a href=\"interface_satori_1_1_i_api_flag-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\"/>\n<a href=\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\"/>\n<a href=\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\"/>\n<a href=\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\"/>\n<a href=\"interface_satori_1_1_i_api_flag_list-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_list.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_list-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_list.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\"/>\n<a href=\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response.html\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\"/>\n<a href=\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\"/>\n<a href=\"interface_satori_1_1_i_api_identify_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_identify_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\"/>\n<a href=\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\"/>\n<a href=\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\"/>\n<a href=\"interface_satori_1_1_i_api_live_event-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\"/>\n<a href=\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\"/>\n<a href=\"interface_satori_1_1_i_api_live_event_list-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_live_event_list.html\"/>\n<a href=\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\"/>\n<a href=\"interface_satori_1_1_i_api_message-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_message.html\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\"/>\n<a href=\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\"/>\n<a href=\"interface_satori_1_1_i_api_properties-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_properties.html\"/>\n<a href=\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\"/>\n<a href=\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\"/>\n<a href=\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\"/>\n<a href=\"interface_satori_1_1_i_api_session-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_session.html\"/>\n<a href=\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\"/>\n<a href=\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\"/>\n<a href=\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\"/>\n<a href=\"interface_satori_1_1_i_api_update_message_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_update_message_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\"/>\n<a href=\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\"/>\n<a href=\"interface_satori_1_1_i_api_update_properties_request-members.html\"/>\n<a href=\"interface_satori_1_1_i_api_update_properties_request.html\"/>\n<a href=\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\"/>\n<a href=\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\"/>\n<a href=\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\"/>\n<a href=\"interface_satori_1_1_i_client-members.html\"/>\n<a href=\"interface_satori_1_1_i_client.html\"/>\n<a href=\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\"/>\n<a href=\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\"/>\n<a href=\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\"/>\n<a href=\"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\"/>\n<a href=\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\"/>\n<a href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\"/>\n<a href=\"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\"/>\n<a href=\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\"/>\n<a href=\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\"/>\n<a href=\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\"/>\n<a href=\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\"/>\n<a href=\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\"/>\n<a href=\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\"/>\n<a href=\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\"/>\n<a href=\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\"/>\n<a href=\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\"/>\n<a href=\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\"/>\n<a href=\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\"/>\n<a href=\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\"/>\n<a href=\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\"/>\n<a href=\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\"/>\n<a href=\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\"/>\n<a href=\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\"/>\n<a href=\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\"/>\n<a href=\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\"/>\n<a href=\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\"/>\n<a href=\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\"/>\n<a href=\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\"/>\n<a href=\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\"/>\n<a href=\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\"/>\n<a href=\"interface_satori_1_1_i_flag_value_change_reason-members.html\"/>\n<a href=\"interface_satori_1_1_i_flag_value_change_reason.html\"/>\n<a href=\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\"/>\n<a href=\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\"/>\n<a href=\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\"/>\n<a href=\"interface_satori_1_1_i_http_adapter-members.html\"/>\n<a href=\"interface_satori_1_1_i_http_adapter.html\"/>\n<a href=\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\"/>\n<a href=\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\"/>\n<a href=\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\"/>\n<a href=\"interface_satori_1_1_i_logger-members.html\"/>\n<a href=\"interface_satori_1_1_i_logger.html\"/>\n<a href=\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\"/>\n<a href=\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\"/>\n<a href=\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\"/>\n<a href=\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\"/>\n<a href=\"interface_satori_1_1_i_protobuf_any-members.html\"/>\n<a href=\"interface_satori_1_1_i_protobuf_any.html\"/>\n<a href=\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\"/>\n<a href=\"interface_satori_1_1_i_rpc_status-members.html\"/>\n<a href=\"interface_satori_1_1_i_rpc_status.html\"/>\n<a href=\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\"/>\n<a href=\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\"/>\n<a href=\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\"/>\n<a href=\"interface_satori_1_1_i_session-members.html\"/>\n<a href=\"interface_satori_1_1_i_session.html\"/>\n<a href=\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\"/>\n<a href=\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\"/>\n<a href=\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\"/>\n<a href=\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\"/>\n<a href=\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\"/>\n<a href=\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\"/>\n<a href=\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\"/>\n<a href=\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\"/>\n<a href=\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\"/>\n<a href=\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\"/>\n<a href=\"md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html\"/>\n<a href=\"namespace_nakama.html\"/>\n<a href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\"/>\n<a href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\"/>\n<a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\"/>\n<a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\"/>\n<a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\"/>\n<a href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\"/>\n<a href=\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\"/>\n<a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\"/>\n<a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\"/>\n<a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\"/>\n<a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\"/>\n<a href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\"/>\n<a href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\"/>\n<a href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\"/>\n<a href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\"/>\n<a href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\"/>\n<a href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\"/>\n<a href=\"namespace_nakama_1_1_console.html\"/>\n<a href=\"namespace_nakama_1_1_ninja.html\"/>\n<a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\"/>\n<a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\"/>\n<a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\"/>\n<a href=\"namespace_nakama_1_1_tiny_json.html\"/>\n<a href=\"namespace_satori.html\"/>\n<a href=\"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\"/>\n<a href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\"/>\n<a href=\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\"/>\n<a href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\"/>\n<a href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\"/>\n<a href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\"/>\n<a href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\"/>\n<a href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\"/>\n<a href=\"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\"/>\n<a href=\"namespace_satori_1_1_tiny_json.html\"/>\n<a href=\"namespacemembers.html\"/>\n<a href=\"namespacemembers_enum.html\"/>\n<a href=\"namespacemembers_func.html\"/>\n<a href=\"namespaces.html\"/>\n<a href=\"pages.html\"/>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/dynsections.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n */\n\nfunction toggleVisibility(linkObj) {\n  return dynsection.toggleVisibility(linkObj);\n}\n\nlet dynsection = {\n  // helper function\n  updateStripes : function() {\n    $('table.directory tr').\n      removeClass('even').filter(':visible:even').addClass('even');\n    $('table.directory tr').\n      removeClass('odd').filter(':visible:odd').addClass('odd');\n  },\n\n  toggleVisibility : function(linkObj) {\n    const base = $(linkObj).attr('id');\n    const summary = $('#'+base+'-summary');\n    const content = $('#'+base+'-content');\n    const trigger = $('#'+base+'-trigger');\n    const src=$(trigger).attr('src');\n    if (content.is(':visible')===true) {\n      content.slideUp('fast');\n      summary.show();\n      $(linkObj).find('.arrowhead').addClass('closed').removeClass('opened');\n    } else {\n      content.slideDown('fast');\n      summary.hide();\n      $(linkObj).find('.arrowhead').removeClass('closed').addClass('opened');\n    }\n    return false;\n  },\n\n  toggleLevel : function(level) {\n    $('table.directory tr').each(function() {\n      const l = this.id.split('_').length-1;\n      const i = $('#img'+this.id.substring(3));\n      const a = $('#arr'+this.id.substring(3));\n      if (l<level+1) {\n        i.find('.folder-icon').addClass('open');\n        a.find('.arrowhead').removeClass('closed').addClass('opened');\n        $(this).show();\n      } else if (l==level+1) {\n        a.find('.arrowhead').removeClass('opened').addClass('closed');\n        i.find('.folder-icon').removeClass('open');\n        $(this).show();\n      } else {\n        $(this).hide();\n      }\n    });\n    this.updateStripes();\n  },\n\n  toggleFolder : function(id) {\n    // the clicked row\n    const currentRow = $('#row_'+id);\n\n    // all rows after the clicked row\n    const rows = currentRow.nextAll(\"tr\");\n\n    const re = new RegExp('^row_'+id+'\\\\d+_$', \"i\"); //only one sub\n\n    // only match elements AFTER this one (can't hide elements before)\n    const childRows = rows.filter(function() { return this.id.match(re); });\n\n    // first row is visible we are HIDING\n    if (childRows.filter(':first').is(':visible')===true) {\n      // replace down arrow by right arrow for current row\n      const currentRowSpans = currentRow.find(\"span\");\n      currentRowSpans.filter(\".iconfolder\").find('.folder-icon').removeClass(\"open\");\n      currentRowSpans.filter(\".opened\").removeClass(\"opened\").addClass(\"closed\");\n      rows.filter(\"[id^=row_\"+id+\"]\").hide(); // hide all children\n    } else { // we are SHOWING\n      // replace right arrow by down arrow for current row\n      const currentRowSpans = currentRow.find(\"span\");\n      currentRowSpans.filter(\".iconfolder\").find('.folder-icon').addClass(\"open\");\n      currentRowSpans.filter(\".closed\").removeClass(\"closed\").addClass(\"opened\");\n      // replace down arrows by right arrows for child rows\n      const childRowsSpans = childRows.find(\"span\");\n      childRowsSpans.filter(\".iconfolder\").find('.folder-icon').removeClass(\"open\");\n      childRowsSpans.filter(\".opened\").removeClass(\"opened\").addClass(\"closed\");\n      childRows.show(); //show all children\n    }\n    this.updateStripes();\n  },\n\n  toggleInherit : function(id) {\n    let rows = $('tr.inherit.'+id);\n    let header = $('tr.inherit_header.'+id);\n    if (rows.filter(':first').is(':visible')===true) {\n      rows.hide();\n      $(header).find('.arrowhead').addClass('closed').removeClass('opened');\n    } else {\n      rows.show();\n      $(header).find('.arrowhead').removeClass('closed').addClass('opened');\n    }\n  },\n\n};\n\nlet codefold = {\n  opened : true,\n\n  // toggle all folding blocks\n  toggle_all : function() {\n    if (this.opened) {\n      $('#fold_all').addClass('plus').removeClass('minus');\n      $('div[id^=foldopen]').hide();\n      $('div[id^=foldclosed]').show();\n      $('div[id^=foldclosed] span.fold').removeClass('minus').addClass('plus');\n    } else {\n      $('#fold_all').addClass('minus').removeClass('plus');\n      $('div[id^=foldopen]').show();\n      $('div[id^=foldclosed]').hide();\n    }\n    this.opened=!this.opened;\n  },\n\n  // toggle single folding block\n  toggle : function(id) {\n    $('#foldopen'+id).toggle();\n    $('#foldclosed'+id).toggle();\n    $('#foldopen'+id).next().find('span.fold').addClass('plus').removeClass('minus');\n  },\n\n  init : function() {\n    $('span[class=lineno]').css({\n      'padding-right':'4px',\n      'margin-right':'2px',\n      'display':'inline-block',\n      'width':'54px',\n      'background':'linear-gradient(var(--fold-line-color),var(--fold-line-color)) no-repeat 46px/2px 100%'\n    });\n    // add global toggle to first line\n    $('span[class=lineno]:first').append('<span class=\"fold minus\" id=\"fold_all\" '+\n      'onclick=\"javascript:codefold.toggle_all();\"></span>');\n    // add vertical lines to other rows\n    $('span[class=lineno]').not(':eq(0)').append('<span class=\"fold\"></span>');\n    // add toggle controls to lines with fold divs\n    $('div[class=foldopen]').each(function() {\n      // extract specific id to use\n      const id    = $(this).attr('id').replace('foldopen','');\n      // extract start and end foldable fragment attributes\n      const start = $(this).attr('data-start');\n      const end   = $(this).attr('data-end');\n      // replace normal fold span with controls for the first line of a foldable fragment\n      $(this).find('span[class=fold]:first').replaceWith('<span class=\"fold minus\" '+\n                   'onclick=\"javascript:codefold.toggle(\\''+id+'\\');\"></span>');\n      // append div for folded (closed) representation\n      $(this).after('<div id=\"foldclosed'+id+'\" class=\"foldclosed\" style=\"display:none;\"></div>');\n      // extract the first line from the \"open\" section to represent closed content\n      const line = $(this).children().first().clone();\n      // remove any glow that might still be active on the original line\n      $(line).removeClass('glow');\n      if (start) {\n        // if line already ends with a start marker (e.g. trailing {), remove it\n        $(line).html($(line).html().replace(new RegExp('\\\\s*'+start+'\\\\s*$','g'),''));\n      }\n      // replace minus with plus symbol\n      $(line).find('span[class=fold]').addClass('plus').removeClass('minus');\n      // append ellipsis\n      $(line).append(' '+start+'<a href=\"javascript:codefold.toggle(\\''+id+'\\')\">&#8230;</a>'+end);\n      // insert constructed line into closed div\n      $('#foldclosed'+id).html(line);\n    });\n  },\n};\n/* @license-end */\n"
  },
  {
    "path": "docs/html/files.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: File List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('files.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">File List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all files with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:dynsection.toggleLevel(1);\">1</span><span onclick=\"javascript:dynsection.toggleLevel(2);\">2</span><span onclick=\"javascript:dynsection.toggleLevel(3);\">3</span><span onclick=\"javascript:dynsection.toggleLevel(4);\">4</span><span onclick=\"javascript:dynsection.toggleLevel(5);\">5</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\" target=\"_self\">Nakama</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_5d1450713377add98c1180fe0eb2f9ae.html\" target=\"_self\">Console</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_console_client_8gen_8cs.html\" target=\"_self\">ConsoleClient.gen.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_00db1776877a30bd47a3324e3b896815.html\" target=\"_self\">Ninja.WebSockets</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_1_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_1_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_1c3008a3c461c137d9f062e2a28e5366.html\" target=\"_self\">Exceptions</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_entity_too_large_exception_8cs.html\" target=\"_self\">EntityTooLargeException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_invalid_http_response_code_exception_8cs.html\" target=\"_self\">InvalidHttpResponseCodeException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_sec_web_socket_key_missing_exception_8cs.html\" target=\"_self\">SecWebSocketKeyMissingException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_server_listener_socket_exception_8cs.html\" target=\"_self\">ServerListenerSocketException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_buffer_overflow_exception_8cs.html\" target=\"_self\">WebSocketBufferOverflowException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_handshake_failed_exception_8cs.html\" target=\"_self\">WebSocketHandshakeFailedException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_version_not_supported_exception_8cs.html\" target=\"_self\">WebSocketVersionNotSupportedException.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_1_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_1_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\" target=\"_self\">Internal</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_binary_reader_writer_8cs.html\" target=\"_self\">BinaryReaderWriter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_frame_8cs.html\" target=\"_self\">WebSocketFrame.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_frame_common_8cs.html\" target=\"_self\">WebSocketFrameCommon.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_frame_reader_8cs.html\" target=\"_self\">WebSocketFrameReader.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_frame_writer_8cs.html\" target=\"_self\">WebSocketFrameWriter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_implementation_8cs.html\" target=\"_self\">WebSocketImplementation.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_op_code_8cs.html\" target=\"_self\">WebSocketOpCode.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_1_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_read_cursor_8cs.html\" target=\"_self\">WebSocketReadCursor.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_buffer_pool_8cs.html\" target=\"_self\">BufferPool.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_http_helper_8cs.html\" target=\"_self\">HttpHelper.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_buffer_pool_8cs.html\" target=\"_self\">IBufferPool.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_ping_pong_manager_8cs.html\" target=\"_self\">IPingPongManager.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_web_socket_client_factory_8cs.html\" target=\"_self\">IWebSocketClientFactory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_web_socket_server_factory_8cs.html\" target=\"_self\">IWebSocketServerFactory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_ping_pong_manager_8cs.html\" target=\"_self\">PingPongManager.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_pong_event_args_8cs.html\" target=\"_self\">PongEventArgs.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_10_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_client_factory_8cs.html\" target=\"_self\">WebSocketClientFactory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_11_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_client_options_8cs.html\" target=\"_self\">WebSocketClientOptions.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_12_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_http_context_8cs.html\" target=\"_self\">WebSocketHttpContext.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_13_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_server_factory_8cs.html\" target=\"_self\">WebSocketServerFactory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_14_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_server_options_8cs.html\" target=\"_self\">WebSocketServerOptions.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\" target=\"_self\">obj</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\" target=\"_self\">Debug</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_0_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_0_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_0_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\" target=\"_self\">net46</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\" target=\"_self\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2net46_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_0_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_0_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_0_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_c0ea682cca75c87761dacf1668992820.html\" target=\"_self\">netstandard2.0</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_1_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_0_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_0_2_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_0_2_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_0_2_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\" target=\"_self\">netstandard2.1</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_2_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_0_2_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_5986fb63ee1c250c22ec7255d2796bed.html\" target=\"_self\">Release</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_1_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_1_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_1_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\" target=\"_self\">net46</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_0_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\" target=\"_self\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_0_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2net46_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_1_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_1_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_1_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_1_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_d0af3520e52159625e5c54b0a0666246.html\" target=\"_self\">netstandard2.0</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_1_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_1_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_0_2_1_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_2_1_2_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_2_1_2_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_2_1_2_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\" target=\"_self\">netstandard2.1</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_2_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_1_2_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\" target=\"_self\">Nakama.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_3_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_3_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_0_3_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('0_3_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_0385b7cc93c13096276fd0475bf94138.html\" target=\"_self\">TinyJson</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_3_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_tiny_json_2_json_parser_8cs.html\" target=\"_self\">JsonParser.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_3_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_tiny_json_2_json_writer_8cs.html\" target=\"_self\">JsonWriter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\" target=\"_self\">ApiClient.gen.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_channel_join_message_8cs.html\" target=\"_self\">ChannelJoinMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_channel_leave_message_8cs.html\" target=\"_self\">ChannelLeaveMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_channel_remove_message_8cs.html\" target=\"_self\">ChannelRemoveMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_channel_send_message_8cs.html\" target=\"_self\">ChannelSendMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_channel_update_message_8cs.html\" target=\"_self\">ChannelUpdateMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_10_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_client_8cs.html\" target=\"_self\">Client.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_11_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_g_zip_http_client_handler_8cs.html\" target=\"_self\">GZipHttpClientHandler.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_12_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_http_request_adapter_8cs.html\" target=\"_self\">HttpRequestAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_13_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_channel_8cs.html\" target=\"_self\">IChannel.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_14_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_channel_message_ack_8cs.html\" target=\"_self\">IChannelMessageAck.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_15_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_channel_presence_event_8cs.html\" target=\"_self\">IChannelPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_16_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_i_client_8cs.html\" target=\"_self\">IClient.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_17_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_i_http_adapter_8cs.html\" target=\"_self\">IHttpAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_18_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_i_http_adapter_util_8cs.html\" target=\"_self\">IHttpAdapterUtil.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_19_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_i_logger_8cs.html\" target=\"_self\">ILogger.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_20_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_match_8cs.html\" target=\"_self\">IMatch.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_21_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_matchmaker_matched_8cs.html\" target=\"_self\">IMatchmakerMatched.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_22_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_matchmaker_ticket_8cs.html\" target=\"_self\">IMatchmakerTicket.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_23_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_match_presence_event_8cs.html\" target=\"_self\">IMatchPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_24_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_match_state_8cs.html\" target=\"_self\">IMatchState.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_25_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_8cs.html\" target=\"_self\">IParty.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_26_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_close_8cs.html\" target=\"_self\">IPartyClose.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_27_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_data_8cs.html\" target=\"_self\">IPartyData.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_28_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_join_request_8cs.html\" target=\"_self\">IPartyJoinRequest.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_29_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_leader_8cs.html\" target=\"_self\">IPartyLeader.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_30_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_matchmaker_ticket_8cs.html\" target=\"_self\">IPartyMatchmakerTicket.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_31_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_presence_event_8cs.html\" target=\"_self\">IPartyPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_32_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_party_update_8cs.html\" target=\"_self\">IPartyUpdate.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_33_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_i_session_8cs.html\" target=\"_self\">ISession.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_34_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_socket_8cs.html\" target=\"_self\">ISocket.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_35_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_socket_adapter_8cs.html\" target=\"_self\">ISocketAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_36_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_status_8cs.html\" target=\"_self\">IStatus.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_37_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_status_presence_event_8cs.html\" target=\"_self\">IStatusPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_38_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_stream_presence_event_8cs.html\" target=\"_self\">IStreamPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_39_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_i_user_presence_8cs.html\" target=\"_self\">IUserPresence.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_40_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_match_create_message_8cs.html\" target=\"_self\">MatchCreateMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_41_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_match_join_message_8cs.html\" target=\"_self\">MatchJoinMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_42_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_match_leave_message_8cs.html\" target=\"_self\">MatchLeaveMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_43_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_matchmaker_add_message_8cs.html\" target=\"_self\">MatchmakerAddMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_44_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_matchmaker_remove_message_8cs.html\" target=\"_self\">MatchmakerRemoveMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_45_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_match_send_message_8cs.html\" target=\"_self\">MatchSendMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_46_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_null_logger_8cs.html\" target=\"_self\">NullLogger.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_47_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_8cs.html\" target=\"_self\">Party.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_48_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_accept_8cs.html\" target=\"_self\">PartyAccept.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_49_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_close_8cs.html\" target=\"_self\">PartyClose.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_50_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_create_8cs.html\" target=\"_self\">PartyCreate.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_51_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_data_8cs.html\" target=\"_self\">PartyData.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_52_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_data_send_8cs.html\" target=\"_self\">PartyDataSend.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_53_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_join_8cs.html\" target=\"_self\">PartyJoin.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_54_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_join_request_8cs.html\" target=\"_self\">PartyJoinRequest.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_55_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_join_request_list_8cs.html\" target=\"_self\">PartyJoinRequestList.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_56_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_leader_8cs.html\" target=\"_self\">PartyLeader.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_57_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_leave_8cs.html\" target=\"_self\">PartyLeave.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_58_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_matchmaker_add_8cs.html\" target=\"_self\">PartyMatchmakerAdd.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_59_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_matchmaker_remove_8cs.html\" target=\"_self\">PartyMatchmakerRemove.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_60_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_matchmaker_ticket_8cs.html\" target=\"_self\">PartyMatchmakerTicket.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_61_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_member_remove_8cs.html\" target=\"_self\">PartyMemberRemove.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_62_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_presence_event_8cs.html\" target=\"_self\">PartyPresenceEvent.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_63_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_promote_8cs.html\" target=\"_self\">PartyPromote.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_64_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_party_update_8cs.html\" target=\"_self\">PartyUpdate.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_65_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_presence_util_8cs.html\" target=\"_self\">PresenceUtil.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_66_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_preserve_attribute_8cs.html\" target=\"_self\">PreserveAttribute.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_67_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_8cs.html\" target=\"_self\">Retry.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_68_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_configuration_8cs.html\" target=\"_self\">RetryConfiguration.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_69_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_history_8cs.html\" target=\"_self\">RetryHistory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_70_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_invoker_8cs.html\" target=\"_self\">RetryInvoker.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_71_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_jitter_8cs.html\" target=\"_self\">RetryJitter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_72_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_retry_listener_8cs.html\" target=\"_self\">RetryListener.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_73_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_session_8cs.html\" target=\"_self\">Session.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_74_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_socket_8cs.html\" target=\"_self\">Socket.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_75_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_status_follow_message_8cs.html\" target=\"_self\">StatusFollowMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_76_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_status_unfollow_message_8cs.html\" target=\"_self\">StatusUnfollowMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_77_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_status_update_message_8cs.html\" target=\"_self\">StatusUpdateMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_78_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_storage_object_id_8cs.html\" target=\"_self\">StorageObjectId.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_79_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_nakama_2_transient_exception_delegate_8cs.html\" target=\"_self\">TransientExceptionDelegate.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_80_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_adapter_8cs.html\" target=\"_self\">WebSocketAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_81_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_error_message_8cs.html\" target=\"_self\">WebSocketErrorMessage.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_82_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_message_envelope_8cs.html\" target=\"_self\">WebSocketMessageEnvelope.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_83_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_web_socket_stdlib_adapter_8cs.html\" target=\"_self\">WebSocketStdlibAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_84_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_write_storage_object_8cs.html\" target=\"_self\">WriteStorageObject.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_ba769f4416b2c074a28c6130af43e345.html\" target=\"_self\">Satori</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\" target=\"_self\">obj</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\" target=\"_self\">Debug</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_0_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_0_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_0_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_0_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_2024f50217af71df819eb31c540cc957.html\" target=\"_self\">net46</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_0_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\" target=\"_self\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_0_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2net46_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_0_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_0_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_0_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\" target=\"_self\">netstandard2.0</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_2_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_0_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_0_2_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_0_2_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_0_2_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_5a43296f26836228c3ddbf8578e994aa.html\" target=\"_self\">netstandard2.1</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_2_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_0_2_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_93c065d202f1b2ae4be97868117427d8.html\" target=\"_self\">Release</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_1_0_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_1_0_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_1_0_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_75202c243db9baf385df0aac94b0acc0.html\" target=\"_self\">net46</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_0_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\" target=\"_self\">.NETFramework,Version=v4.6.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_0_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2net46_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_1_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_1_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_1_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_1_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_7a595d23279f99f2e5346245557e8271.html\" target=\"_self\">netstandard2.0</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.0.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_2_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span id=\"arr_1_0_1_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_0_1_2_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_0_1_2_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_0_1_2_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_5c537d2b32ff2d13d00336fbe6131750.html\" target=\"_self\">netstandard2.1</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_2_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\" target=\"_self\">.NETStandard,Version=v2.1.AssemblyAttributes.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_1_2_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:80px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\" target=\"_self\">Satori.AssemblyInfo.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_1_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_1_')\"><span class=\"arrowhead closed\"></span></span><span id=\"img_1_1_\" class=\"iconfolder\" onclick=\"dynsection.toggleFolder('1_1_')\"><div class=\"folder-icon\"></div></span><a class=\"el\" href=\"dir_ec82c3f1a2edb4d01443ada27de98406.html\" target=\"_self\">TinyJson</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_tiny_json_2_json_parser_8cs.html\" target=\"_self\">JsonParser.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_1_1_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:48px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_tiny_json_2_json_writer_8cs.html\" target=\"_self\">JsonWriter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_2_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\" target=\"_self\">ApiClient.gen.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_3_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_client_8cs.html\" target=\"_self\">Client.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_4_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_event_8cs.html\" target=\"_self\">Event.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_5_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_g_zip_http_client_handler_8cs.html\" target=\"_self\">GZipHttpClientHandler.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_6_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_http_request_adapter_8cs.html\" target=\"_self\">HttpRequestAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_7_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_i_client_8cs.html\" target=\"_self\">IClient.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_8_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_i_http_adapter_8cs.html\" target=\"_self\">IHttpAdapter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_9_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_i_http_adapter_util_8cs.html\" target=\"_self\">IHttpAdapterUtil.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_10_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_i_logger_8cs.html\" target=\"_self\">ILogger.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_11_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_i_session_8cs.html\" target=\"_self\">ISession.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_12_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_preserve_attribute_8cs.html\" target=\"_self\">PreserveAttribute.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_13_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_8cs.html\" target=\"_self\">Retry.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_14_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_configuration_8cs.html\" target=\"_self\">RetryConfiguration.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_15_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_history_8cs.html\" target=\"_self\">RetryHistory.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_16_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_invoker_8cs.html\" target=\"_self\">RetryInvoker.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_17_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_jitter_8cs.html\" target=\"_self\">RetryJitter.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_18_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_retry_listener_8cs.html\" target=\"_self\">RetryListener.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_19_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_session_8cs.html\" target=\"_self\">Session.cs</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_20_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icondoc\"><div class=\"doc-icon\"></div></span><a class=\"el\" href=\"_satori_2_transient_exception_delegate_8cs.html\" target=\"_self\">TransientExceptionDelegate.cs</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/files_dup.js",
    "content": "var files_dup =\n[\n    [ \"Nakama\", \"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\", \"dir_64302e4ed8e680c5e7832e1b7ea09baa\" ],\n    [ \"Satori\", \"dir_ba769f4416b2c074a28c6130af43e345.html\", \"dir_ba769f4416b2c074a28c6130af43e345\" ]\n];"
  },
  {
    "path": "docs/html/functions.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_a\" name=\"index_a\"></a>- a -</h3><ul>\n<li>AcceptPartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\">Nakama.Socket</a></li>\n<li>AcceptWebSocketAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>Account&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\">Nakama.Console.INakamaconsoleAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\">Nakama.IApiLinkSteamRequest</a></li>\n<li>Acks&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\">Nakama.IApiStorageObjectAcks</a></li>\n<li>Active&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\">Nakama.IApiValidatedSubscription</a></li>\n<li>ActiveEndTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\">Satori.IApiLiveEvent</a></li>\n<li>ActiveStartTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\">Satori.IApiLiveEvent</a></li>\n<li>AddFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\">Nakama.IClient</a></li>\n<li>AddGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\">Nakama.IClient</a></li>\n<li>AdditionalHttpHeaders&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>AddMatchmakerAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\">Nakama.Socket</a></li>\n<li>AddMatchmakerPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\">Nakama.Socket</a></li>\n<li>ApiKey&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\">Satori.IClient</a></li>\n<li>ApiResponseException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\">Satori.ApiResponseException</a></li>\n<li>AppleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\">Nakama.IApiUser</a></li>\n<li>AuthenticateAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\">Nakama.IClient</a></li>\n<li>AuthenticateAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\">Satori.IClient</a></li>\n<li>AuthenticateCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\">Nakama.IClient</a></li>\n<li>AuthenticateDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">Nakama.IClient</a></li>\n<li>AuthenticateEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\">Nakama.IClient</a></li>\n<li>AuthenticateFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\">Nakama.IClient</a></li>\n<li>AuthenticateGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\">Nakama.IClient</a></li>\n<li>AuthenticateGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\">Nakama.IClient</a></li>\n<li>AuthenticateLogoutAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\">Satori.IClient</a></li>\n<li>AuthenticateSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\">Nakama.IClient</a></li>\n<li>Authoritative&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\">Nakama.IMatch</a></li>\n<li>AuthToken&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\">Satori.Session</a></li>\n<li>AutoRefreshSession&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\">Satori.IClient</a></li>\n<li>AvatarUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\">Nakama.IApiUser</a></li>\n<li>AvgInputKbs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgLatencyMs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgOutputKbs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgRateSec&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\">Nakama.Console.IStatusListStatus</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_b.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_b\" name=\"index_b\"></a>- b -</h3><ul>\n<li>BanGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\">Nakama.IClient</a></li>\n<li>BaseDelayMs&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\">Satori.RetryConfiguration</a></li>\n<li>BeginRead()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>BeginWrite()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>BlockFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\">Nakama.IClient</a></li>\n<li>BufferPool()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\">Nakama.Ninja.WebSockets.BufferPool</a></li>\n<li>BundleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\">Nakama.IApiAccountGameCenter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_c.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_c\" name=\"index_c\"></a>- c -</h3><ul>\n<li>CacheableCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\">Nakama.IApiNotificationList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\">Satori.IApiGetMessageListResponse</a></li>\n<li>CalculateWebSocketKey()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>CanEnter&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\">Nakama.IApiTournament</a></li>\n<li>CanRead&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanSeek&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanWrite&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Capacity&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Category&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\">Nakama.IApiTournament</a></li>\n<li>ChangeReason&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\">Satori.IApiFlag</a></li>\n<li>Changeset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\">Nakama.Console.IConsoleWalletLedger</a></li>\n<li>ChannelId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\">Nakama.IChannelPresenceEvent</a></li>\n<li>Client()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\">Nakama.Client</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\">Satori.Client</a></li>\n<li>Close()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CloseAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>Closed&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ClosePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\">Nakama.Socket</a></li>\n<li>Code&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\">Satori.IRpcStatus</a></li>\n<li>Collection&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">Nakama.WriteStorageObject</a></li>\n<li>CompleteTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\">Nakama.IApiMatchmakerCompletionStats</a></li>\n<li>Completions&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\">Nakama.IApiMatchmakerStats</a></li>\n<li>Computed&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\">Satori.IApiProperties</a></li>\n<li>ComputeSocketAcceptString()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ConditionChanged&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\">Satori.IApiFlag</a></li>\n<li>Config&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\">Nakama.Console.IConsoleConfig</a></li>\n<li>ConnectAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>Connected&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ConsumeTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\">Satori.IApiUpdateMessageRequest</a></li>\n<li>Content&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\">Nakama.IApiNotification</a></li>\n<li>CopyToAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Created&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\">Nakama.Session</a></li>\n<li>CreateGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\">Nakama.IClient</a></li>\n<li>CreateMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\">Nakama.Socket</a></li>\n<li>CreatePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\">Nakama.Socket</a></li>\n<li>CreateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\">Nakama.IApiMatchmakerCompletionStats</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\">Satori.Session</a></li>\n<li>CreateTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\">Satori.IApiFlagOverrideValue</a></li>\n<li>CreatorId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\">Nakama.IApiGroup</a></li>\n<li>Cursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\">Nakama.Console.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\">Nakama.Console.IApiUserGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\">Nakama.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\">Nakama.IApiFriendsOfFriendsList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\">Nakama.IApiGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\">Nakama.IApiGroupUserList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\">Nakama.IApiListSubscriptionsRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\">Nakama.IApiPartyList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\">Nakama.IApiStorageObjectList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\">Nakama.IApiSubscriptionList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\">Nakama.IApiTournamentList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\">Nakama.IApiUserGroupList</a></li>\n<li>Custom&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\">Satori.IApiProperties</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>CustomId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\">Nakama.IApiAccount</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_d.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_d\" name=\"index_d\"></a>- d -</h3><ul>\n<li>Data&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\">Nakama.IPartyData</a></li>\n<li>DebugFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\">Satori.ILogger</a></li>\n<li>Default&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\">Satori.IApiProperties</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>DefaultConnectTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\">Nakama.Socket</a></li>\n<li>DefaultExpiredTimeSpan&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621\">Nakama.Client</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0\">Satori.Client</a></li>\n<li>DefaultHost&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35\">Nakama.Client</a></li>\n<li>DefaultPort&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756\">Nakama.Client</a></li>\n<li>DefaultScheme&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493\">Nakama.Client</a></li>\n<li>DefaultSendTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7\">Nakama.Socket</a></li>\n<li>DefaultTimeout&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de\">Satori.Client</a></li>\n<li>DeleteAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\">Nakama.IClient</a></li>\n<li>DeleteFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\">Nakama.IClient</a></li>\n<li>DeleteGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\">Nakama.IClient</a></li>\n<li>DeleteIdentityAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\">Satori.IClient</a></li>\n<li>DeleteLeaderboardRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\">Nakama.IClient</a></li>\n<li>DeleteMessageAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">Satori.IClient</a></li>\n<li>DeleteNotificationsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\">Nakama.IClient</a></li>\n<li>DeleteStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\">Nakama.IClient</a></li>\n<li>DeleteTournamentRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\">Nakama.IClient</a></li>\n<li>DemoteGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\">Nakama.IClient</a></li>\n<li>Description&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\">Satori.IApiLiveEvent</a></li>\n<li>Descriptor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\">Nakama.IStream</a></li>\n<li>Details&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\">Satori.IRpcStatus</a></li>\n<li>DeviceId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></li>\n<li>DeviceIds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></li>\n<li>Devices&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\">Nakama.IApiAccount</a></li>\n<li>DisableTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\">Nakama.Console.INakamaconsoleAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\">Nakama.IApiAccount</a></li>\n<li>DisplayName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\">Nakama.IApiUser</a></li>\n<li>Duration&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\">Nakama.IApiTournament</a></li>\n<li>DurationSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\">Satori.IApiLiveEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_dup.js",
    "content": "var functions_dup =\n[\n    [ \"a\", \"functions.html\", null ],\n    [ \"b\", \"functions_b.html\", null ],\n    [ \"c\", \"functions_c.html\", null ],\n    [ \"d\", \"functions_d.html\", null ],\n    [ \"e\", \"functions_e.html\", null ],\n    [ \"f\", \"functions_f.html\", null ],\n    [ \"g\", \"functions_g.html\", null ],\n    [ \"h\", \"functions_h.html\", null ],\n    [ \"i\", \"functions_i.html\", null ],\n    [ \"j\", \"functions_j.html\", null ],\n    [ \"k\", \"functions_k.html\", null ],\n    [ \"l\", \"functions_l.html\", null ],\n    [ \"m\", \"functions_m.html\", null ],\n    [ \"n\", \"functions_n.html\", null ],\n    [ \"o\", \"functions_o.html\", null ],\n    [ \"p\", \"functions_p.html\", null ],\n    [ \"r\", \"functions_r.html\", null ],\n    [ \"s\", \"functions_s.html\", null ],\n    [ \"t\", \"functions_t.html\", null ],\n    [ \"u\", \"functions_u.html\", null ],\n    [ \"v\", \"functions_v.html\", null ],\n    [ \"w\", \"functions_w.html\", null ]\n];"
  },
  {
    "path": "docs/html/functions_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_e.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_e\" name=\"index_e\"></a>- e -</h3><ul>\n<li>EdgeCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\">Nakama.IApiUser</a></li>\n<li>Email&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\">Nakama.IApiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\">Nakama.IApiAccountEmail</a></li>\n<li>EndActive&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\">Nakama.IApiTournament</a></li>\n<li>EndRead()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>EndTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\">Nakama.IApiTournament</a></li>\n<li>EndTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\">Satori.IApiLiveEvent</a></li>\n<li>EndWrite()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>EntityTooLargeException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></li>\n<li>Environment&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\">Nakama.IApiValidatedSubscription</a></li>\n<li>Epoch&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f\">Nakama.Session</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4\">Satori.Session</a></li>\n<li>Error&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\">Nakama.Console.IRuntimeError</a></li>\n<li>ErrorFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\">Satori.ILogger</a></li>\n<li>Event()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\">Satori.Event</a></li>\n<li>EventAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\">Satori.IClient</a></li>\n<li>Events&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\">Satori.IApiEventRequest</a></li>\n<li>EventsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\">Satori.IClient</a></li>\n<li>Experiments&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\">Satori.IApiExperimentList</a></li>\n<li>ExpireTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\">Satori.Session</a></li>\n<li>ExpiryTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\">Nakama.IApiValidatedSubscription</a></li>\n<li>ExponentialBackoff&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\">Nakama.Retry</a>, <a class=\"el\" href=\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\">Satori.Retry</a></li>\n<li>External&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\">Nakama.IApiEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_evnt.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Events</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_evnt.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all events with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_c\" name=\"index_c\"></a>- c -</h3><ul>\n<li>Closed&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>Connected&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\">Nakama.WebSocketStdlibAdapter</a></li>\n</ul>\n\n\n<h3 class=\"doxsection\"><a id=\"index_p\" name=\"index_p\"></a>- p -</h3><ul>\n<li>Pong&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\">Nakama.Ninja.WebSockets.IPingPongManager</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n</ul>\n\n\n<h3 class=\"doxsection\"><a id=\"index_r\" name=\"index_r\"></a>- r -</h3><ul>\n<li>Received&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ReceivedChannelMessage&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\">Nakama.Socket</a></li>\n<li>ReceivedChannelPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\">Nakama.Socket</a></li>\n<li>ReceivedError&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ReceivedMatchmakerMatched&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\">Nakama.Socket</a></li>\n<li>ReceivedMatchPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\">Nakama.Socket</a></li>\n<li>ReceivedMatchState&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\">Nakama.Socket</a></li>\n<li>ReceivedNotification&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\">Nakama.Socket</a></li>\n<li>ReceivedParty&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\">Nakama.Socket</a></li>\n<li>ReceivedPartyClose&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\">Nakama.Socket</a></li>\n<li>ReceivedPartyData&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\">Nakama.Socket</a></li>\n<li>ReceivedPartyJoinRequest&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\">Nakama.Socket</a></li>\n<li>ReceivedPartyLeader&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\">Nakama.Socket</a></li>\n<li>ReceivedPartyMatchmakerTicket&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\">Nakama.Socket</a></li>\n<li>ReceivedPartyPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\">Nakama.Socket</a></li>\n<li>ReceivedPartyUpdate&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\">Nakama.Socket</a></li>\n<li>ReceivedSessionUpdated&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\">Satori.IClient</a></li>\n<li>ReceivedStatusPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\">Nakama.Socket</a></li>\n<li>ReceivedStreamPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\">Nakama.Socket</a></li>\n<li>ReceivedStreamState&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_f.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_f\" name=\"index_f\"></a>- f -</h3><ul>\n<li>FacebookId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\">Nakama.IApiUser</a></li>\n<li>FacebookInstantGameId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\">Nakama.IApiUser</a></li>\n<li>Field&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\">Nakama.Console.IConfigWarning</a></li>\n<li>FlagName&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\">Satori.IApiFlagOverride</a></li>\n<li>Flags&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\">Satori.IApiFlagList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\">Satori.IApiFlagOverrideList</a></li>\n<li>Flush()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>FlushAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>FollowUsersAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\">Nakama.Socket</a></li>\n<li>Friends&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\">Nakama.Console.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\">Nakama.IApiFriendList</a></li>\n<li>FriendsOfFriends&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\">Nakama.IApiFriendsOfFriendsList</a></li>\n<li>From()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_a\" name=\"index_a\"></a>- a -</h3><ul>\n<li>AcceptPartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\">Nakama.Socket</a></li>\n<li>AcceptWebSocketAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>AddFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\">Nakama.IClient</a></li>\n<li>AddGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\">Nakama.IClient</a></li>\n<li>AddMatchmakerAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\">Nakama.Socket</a></li>\n<li>AddMatchmakerPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\">Nakama.Socket</a></li>\n<li>ApiResponseException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\">Satori.ApiResponseException</a></li>\n<li>AuthenticateAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\">Nakama.IClient</a></li>\n<li>AuthenticateAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\">Satori.IClient</a></li>\n<li>AuthenticateCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\">Nakama.IClient</a></li>\n<li>AuthenticateDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">Nakama.IClient</a></li>\n<li>AuthenticateEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\">Nakama.IClient</a></li>\n<li>AuthenticateFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\">Nakama.IClient</a></li>\n<li>AuthenticateGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\">Nakama.IClient</a></li>\n<li>AuthenticateGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\">Nakama.IClient</a></li>\n<li>AuthenticateLogoutAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\">Satori.IClient</a></li>\n<li>AuthenticateSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func.js",
    "content": "var functions_func =\n[\n    [ \"a\", \"functions_func.html\", null ],\n    [ \"b\", \"functions_func_b.html\", null ],\n    [ \"c\", \"functions_func_c.html\", null ],\n    [ \"d\", \"functions_func_d.html\", null ],\n    [ \"e\", \"functions_func_e.html\", null ],\n    [ \"f\", \"functions_func_f.html\", null ],\n    [ \"g\", \"functions_func_g.html\", null ],\n    [ \"h\", \"functions_func_h.html\", null ],\n    [ \"i\", \"functions_func_i.html\", null ],\n    [ \"j\", \"functions_func_j.html\", null ],\n    [ \"k\", \"functions_func_k.html\", null ],\n    [ \"l\", \"functions_func_l.html\", null ],\n    [ \"o\", \"functions_func_o.html\", null ],\n    [ \"p\", \"functions_func_p.html\", null ],\n    [ \"r\", \"functions_func_r.html\", null ],\n    [ \"s\", \"functions_func_s.html\", null ],\n    [ \"t\", \"functions_func_t.html\", null ],\n    [ \"u\", \"functions_func_u.html\", null ],\n    [ \"v\", \"functions_func_v.html\", null ],\n    [ \"w\", \"functions_func_w.html\", null ]\n];"
  },
  {
    "path": "docs/html/functions_func_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_b.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_b\" name=\"index_b\"></a>- b -</h3><ul>\n<li>BanGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\">Nakama.IClient</a></li>\n<li>BeginRead()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>BeginWrite()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>BlockFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\">Nakama.IClient</a></li>\n<li>BufferPool()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\">Nakama.Ninja.WebSockets.BufferPool</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_c.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_c\" name=\"index_c\"></a>- c -</h3><ul>\n<li>CalculateWebSocketKey()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>Client()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\">Nakama.Client</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\">Satori.Client</a></li>\n<li>Close()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CloseAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ClosePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\">Nakama.Socket</a></li>\n<li>ComputeSocketAcceptString()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ConnectAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>CopyToAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CreateGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\">Nakama.IClient</a></li>\n<li>CreateMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\">Nakama.Socket</a></li>\n<li>CreatePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_d.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_d\" name=\"index_d\"></a>- d -</h3><ul>\n<li>DebugFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\">Satori.ILogger</a></li>\n<li>DeleteAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\">Nakama.IClient</a></li>\n<li>DeleteFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\">Nakama.IClient</a></li>\n<li>DeleteGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\">Nakama.IClient</a></li>\n<li>DeleteIdentityAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\">Satori.IClient</a></li>\n<li>DeleteLeaderboardRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\">Nakama.IClient</a></li>\n<li>DeleteMessageAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">Satori.IClient</a></li>\n<li>DeleteNotificationsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\">Nakama.IClient</a></li>\n<li>DeleteStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\">Nakama.IClient</a></li>\n<li>DeleteTournamentRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\">Nakama.IClient</a></li>\n<li>DemoteGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_e.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_e\" name=\"index_e\"></a>- e -</h3><ul>\n<li>EndRead()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>EndWrite()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>EntityTooLargeException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></li>\n<li>ErrorFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\">Satori.ILogger</a></li>\n<li>Event()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\">Satori.Event</a></li>\n<li>EventAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\">Satori.IClient</a></li>\n<li>EventsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\">Satori.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_f.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_f\" name=\"index_f\"></a>- f -</h3><ul>\n<li>Flush()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>FlushAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>FollowUsersAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\">Nakama.Socket</a></li>\n<li>From()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_g.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_g\" name=\"index_g\"></a>- g -</h3><ul>\n<li>GetAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\">Nakama.IClient</a></li>\n<li>GetAllExperimentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\">Satori.IClient</a></li>\n<li>GetBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\">Nakama.Ninja.WebSockets.BufferPool</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a>, <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\">Nakama.Ninja.WebSockets.IBufferPool</a></li>\n<li>GetExperimentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\">Satori.IClient</a></li>\n<li>GetFlagAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\">Satori.IClient</a></li>\n<li>GetFlagDefaultAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\">Satori.IClient</a></li>\n<li>GetFlagOverridesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\">Satori.IClient</a></li>\n<li>GetFlagsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\">Satori.IClient</a></li>\n<li>GetFlagsDefaultAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\">Satori.IClient</a></li>\n<li>GetLiveEventsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\">Satori.IClient</a></li>\n<li>GetMessageListAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\">Satori.IClient</a></li>\n<li>GetPathFromHeader()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>GetStream()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>GetSubProtocols()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>GetSubscriptionAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">Nakama.IClient</a></li>\n<li>GetUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_h.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_h\" name=\"index_h\"></a>- h -</h3><ul>\n<li>HasExpired()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\">Satori.Session</a></li>\n<li>HasRefreshExpired()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\">Satori.Session</a></li>\n<li>HttpRequestAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\">Satori.HttpRequestAdapter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_i.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_i.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_i\" name=\"index_i\"></a>- i -</h3><ul>\n<li>IdentifyAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\">Satori.IClient</a></li>\n<li>ImportFacebookFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\">Nakama.IClient</a></li>\n<li>ImportSteamFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\">Nakama.IClient</a></li>\n<li>InfoFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\">Satori.ILogger</a></li>\n<li>InitializeLifetimeService()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>InvalidHttpResponseCodeException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>IsTransientException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b\">Satori.HttpRequestAdapter</a></li>\n<li>IsWebSocketUpgradeRequest()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_j.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_j.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_j\" name=\"index_j\"></a>- j -</h3><ul>\n<li>JoinChatAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\">Nakama.Socket</a></li>\n<li>JoinGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\">Nakama.IClient</a></li>\n<li>JoinMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\">Nakama.Socket</a></li>\n<li>JoinPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\">Nakama.Socket</a></li>\n<li>JoinTournamentAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_k.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_k.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_k\" name=\"index_k\"></a>- k -</h3><ul>\n<li>KickGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_l.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_l.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_l\" name=\"index_l\"></a>- l -</h3><ul>\n<li>LeaveChatAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\">Nakama.Socket</a></li>\n<li>LeaveGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\">Nakama.IClient</a></li>\n<li>LeaveMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\">Nakama.Socket</a></li>\n<li>LeavePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\">Nakama.Socket</a></li>\n<li>LinkAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\">Nakama.IClient</a></li>\n<li>LinkCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\">Nakama.IClient</a></li>\n<li>LinkDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\">Nakama.IClient</a></li>\n<li>LinkEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\">Nakama.IClient</a></li>\n<li>LinkFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\">Nakama.IClient</a></li>\n<li>LinkGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\">Nakama.IClient</a></li>\n<li>LinkGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\">Nakama.IClient</a></li>\n<li>LinkSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\">Nakama.IClient</a></li>\n<li>ListChannelMessagesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\">Nakama.IClient</a></li>\n<li>ListFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\">Nakama.IClient</a></li>\n<li>ListGroupsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\">Nakama.IClient</a></li>\n<li>ListGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\">Nakama.IClient</a></li>\n<li>ListLeaderboardRecordsAroundOwnerAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\">Nakama.IClient</a></li>\n<li>ListLeaderboardRecordsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\">Nakama.IClient</a></li>\n<li>ListMatchesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\">Nakama.IClient</a></li>\n<li>ListNotificationsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\">Nakama.IClient</a></li>\n<li>ListPartiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\">Nakama.IClient</a></li>\n<li>ListPartyJoinRequestsAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\">Nakama.Socket</a></li>\n<li>ListPropertiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\">Satori.IClient</a></li>\n<li>ListStorageObjects()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\">Nakama.IClient</a></li>\n<li>ListStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\">Nakama.IClient</a></li>\n<li>ListSubscriptionsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\">Nakama.IClient</a></li>\n<li>ListTournamentRecordsAroundOwnerAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\">Nakama.IClient</a></li>\n<li>ListTournamentRecordsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\">Nakama.IClient</a></li>\n<li>ListTournamentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\">Nakama.IClient</a></li>\n<li>ListUserGroupsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\">Nakama.IClient</a></li>\n<li>ListUsersStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_o.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_o.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_o\" name=\"index_o\"></a>- o -</h3><ul>\n<li>OnPong()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_p.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_p.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_p\" name=\"index_p\"></a>- p -</h3><ul>\n<li>PingPongManager()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>PongEventArgs()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\">Nakama.Ninja.WebSockets.PongEventArgs</a></li>\n<li>PromoteGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\">Nakama.IClient</a></li>\n<li>PromotePartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\">Nakama.Socket</a></li>\n<li>PublicBufferMemoryStream()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_r.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_r.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_r\" name=\"index_r\"></a>- r -</h3><ul>\n<li>Read()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadByte()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadHttpHeaderAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ReadHttpHeaderFromStreamAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>ReadHttpResponseCode()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ReadStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\">Nakama.IClient</a></li>\n<li>RemoveChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\">Nakama.Socket</a></li>\n<li>RemoveMatchmakerAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\">Nakama.Socket</a></li>\n<li>RemoveMatchmakerPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\">Nakama.Socket</a></li>\n<li>RemovePartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\">Nakama.Socket</a></li>\n<li>Restore()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582\">Nakama.Session</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed\">Satori.Session</a></li>\n<li>RetryConfiguration()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\">Satori.RetryConfiguration</a></li>\n<li>ReturnBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\">Nakama.Ninja.WebSockets.BufferPool</a></li>\n<li>RpcAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\">Nakama.IClient</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_s.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_s.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_s\" name=\"index_s\"></a>- s -</h3><ul>\n<li>SecWebSocketKeyMissingException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></li>\n<li>Seek()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>SendAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\">Nakama.WebSocketStdlibAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\">Satori.IHttpAdapter</a></li>\n<li>SendMatchStateAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\">Nakama.Socket</a></li>\n<li>SendPartyDataAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\">Nakama.Socket</a></li>\n<li>SendPing()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\">Nakama.Ninja.WebSockets.IPingPongManager</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>ServerListenerSocketException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></li>\n<li>SessionLogoutAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\">Nakama.IClient</a></li>\n<li>SessionRefreshAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\">Satori.IClient</a></li>\n<li>SetLength()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Socket()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_t.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_t.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_t\" name=\"index_t\"></a>- t -</h3><ul>\n<li>TlsAuthenticateAsClient()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>ToArray()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ToString()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\">Nakama.Client</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\">Nakama.Session</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\">Nakama.WebSocketStdlibAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\">Satori.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\">Satori.Session</a></li>\n<li>TryGetBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_u.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_u.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_u\" name=\"index_u\"></a>- u -</h3><ul>\n<li>UnfollowUsersAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\">Nakama.Socket</a></li>\n<li>UnlinkAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\">Nakama.IClient</a></li>\n<li>UnlinkCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\">Nakama.IClient</a></li>\n<li>UnlinkDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\">Nakama.IClient</a></li>\n<li>UnlinkEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\">Nakama.IClient</a></li>\n<li>UnlinkFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\">Nakama.IClient</a></li>\n<li>UnlinkGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\">Nakama.IClient</a></li>\n<li>UnlinkGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\">Nakama.IClient</a></li>\n<li>UnlinkSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\">Nakama.IClient</a></li>\n<li>Update()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\">Nakama.Session</a></li>\n<li>UpdateAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\">Nakama.IClient</a></li>\n<li>UpdateChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">Nakama.Socket</a></li>\n<li>UpdateGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\">Nakama.IClient</a></li>\n<li>UpdateMessageAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\">Satori.IClient</a></li>\n<li>UpdatePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\">Nakama.Socket</a></li>\n<li>UpdatePresences()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\">Nakama.IParty</a></li>\n<li>UpdatePropertiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\">Satori.IClient</a></li>\n<li>UpdateStatusAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_v.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_v.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_v\" name=\"index_v\"></a>- v -</h3><ul>\n<li>ValidatePurchaseAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\">Nakama.IClient</a></li>\n<li>ValidatePurchaseFacebookInstantAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\">Nakama.IClient</a></li>\n<li>ValidatePurchaseGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\">Nakama.IClient</a></li>\n<li>ValidatePurchaseHuaweiAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\">Nakama.IClient</a></li>\n<li>ValidateSubscriptionAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\">Nakama.IClient</a></li>\n<li>ValidateSubscriptionGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_func_w.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Functions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_func_w.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all functions with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_w\" name=\"index_w\"></a>- w -</h3><ul>\n<li>WarnFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\">Satori.ILogger</a></li>\n<li>WebSocketAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\">Nakama.WebSocketAdapter</a></li>\n<li>WebSocketBufferOverflowException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></li>\n<li>WebSocketClientFactory()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>WebSocketClientOptions()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>WebSocketHandshakeFailedException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></li>\n<li>WebSocketHttpContext()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>WebSocketServerFactory()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>WebSocketServerOptions()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>WebSocketStdlibAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>WebSocketVersionNotSupportedException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></li>\n<li>WithGzip()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd\">Satori.HttpRequestAdapter</a></li>\n<li>Write()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteByte()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\">Nakama.Socket</a></li>\n<li>WriteHttpHeaderAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>WriteLeaderboardRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\">Nakama.IClient</a></li>\n<li>WriteStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\">Nakama.IClient</a></li>\n<li>WriteTo()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteTournamentRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_g.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_g\" name=\"index_g\"></a>- g -</h3><ul>\n<li>GamecenterId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\">Nakama.IApiUser</a></li>\n<li>GetAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\">Nakama.IClient</a></li>\n<li>GetAllExperimentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\">Satori.IClient</a></li>\n<li>GetBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\">Nakama.Ninja.WebSockets.BufferPool</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a>, <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\">Nakama.Ninja.WebSockets.IBufferPool</a></li>\n<li>GetExperimentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\">Satori.IClient</a></li>\n<li>GetFlagAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\">Satori.IClient</a></li>\n<li>GetFlagDefaultAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\">Satori.IClient</a></li>\n<li>GetFlagOverridesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\">Satori.IClient</a></li>\n<li>GetFlagsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\">Satori.IClient</a></li>\n<li>GetFlagsDefaultAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\">Satori.IClient</a></li>\n<li>GetLiveEventsAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\">Satori.IClient</a></li>\n<li>GetMessageListAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\">Satori.IClient</a></li>\n<li>GetPathFromHeader()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>GetStream()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>GetSubProtocols()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>GetSubscriptionAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">Nakama.IClient</a></li>\n<li>GetUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\">Nakama.IClient</a></li>\n<li>GlobalRetryConfiguration&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\">Satori.IClient</a></li>\n<li>GoogleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\">Nakama.IApiUser</a></li>\n<li>GoroutineCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\">Nakama.Console.IStatusListStatus</a></li>\n<li>Group&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\">Nakama.Console.IUserGroupListUserGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\">Nakama.IUserGroupListUserGroup</a></li>\n<li>GroupId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\">Nakama.IChannelPresenceEvent</a></li>\n<li>Groups&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\">Nakama.IApiGroupList</a></li>\n<li>GroupUsers&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\">Nakama.IApiGroupUserList</a></li>\n<li>GrpcStatusCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\">Satori.ApiResponseException</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_h.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_h\" name=\"index_h\"></a>- h -</h3><ul>\n<li>HandlerName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\">Nakama.IApiMatch</a></li>\n<li>HasExpired()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\">Satori.Session</a></li>\n<li>HasRefreshExpired()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\">Satori.Session</a></li>\n<li>Health&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\">Nakama.Console.IStatusListStatus</a></li>\n<li>Hidden&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\">Nakama.IPartyUpdate</a></li>\n<li>Host&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\">Satori.IClient</a></li>\n<li>HttpHeader&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>HttpKey&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\">Nakama.IApiRpc</a></li>\n<li>HttpRequestAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\">Satori.HttpRequestAdapter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_i.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_i.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_i\" name=\"index_i\"></a>- i -</h3><ul>\n<li>Id&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\">Nakama.Console.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\">Nakama.Console.IConsoleUnlinkDeviceRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\">Nakama.IApiAccountCustom</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\">Nakama.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\">Nakama.IApiRpc</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\">Nakama.IParty</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\">Satori.IApiLiveEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\">Satori.IApiMessage</a></li>\n<li>IdentifyAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\">Satori.IClient</a></li>\n<li>IdentityId&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\">Satori.Session</a></li>\n<li>ImageUrl&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\">Satori.IApiMessage</a></li>\n<li>ImportFacebookFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\">Nakama.IClient</a></li>\n<li>ImportSteamFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\">Nakama.IClient</a></li>\n<li>IncludeExceptionInCloseResponse&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>InfoFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\">Satori.ILogger</a></li>\n<li>InitializeLifetimeService()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>InvalidHttpResponseCodeException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>IsConnected&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>IsConnecting&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>IsExpired&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\">Satori.Session</a></li>\n<li>IsRefreshExpired&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\">Satori.Session</a></li>\n<li>IsTransientException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b\">Satori.HttpRequestAdapter</a></li>\n<li>IsWebSocketRequest&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>IsWebSocketUpgradeRequest()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>Items&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\">Nakama.Console.IConsoleWalletLedgerList</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_j.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_j.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_j\" name=\"index_j\"></a>- j -</h3><ul>\n<li>Jitter&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\">Satori.RetryConfiguration</a></li>\n<li>JitterBackoff&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\">Nakama.Retry</a>, <a class=\"el\" href=\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\">Satori.Retry</a></li>\n<li>JoinChatAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\">Nakama.Socket</a></li>\n<li>JoinGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\">Nakama.IClient</a></li>\n<li>JoinMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\">Nakama.Socket</a></li>\n<li>JoinPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\">Nakama.Socket</a></li>\n<li>Joins&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\">Nakama.IChannelPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\">Nakama.IStatusPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\">Nakama.IStreamPresenceEvent</a></li>\n<li>JoinTournamentAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_k.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_k.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_k\" name=\"index_k\"></a>- k -</h3><ul>\n<li>KeepAliveInterval&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>Key&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\">Nakama.WriteStorageObject</a></li>\n<li>KickGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_l.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_l.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_l\" name=\"index_l\"></a>- l -</h3><ul>\n<li>Label&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\">Nakama.IPartyUpdate</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\">Nakama.IStream</a></li>\n<li>LangTag&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\">Nakama.IApiUser</a></li>\n<li>Leader&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\">Nakama.IParty</a></li>\n<li>LeaderboardId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\">Nakama.IApiLeaderboardRecord</a></li>\n<li>LeaderboardRecords&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\">Nakama.Console.IConsoleAccountExport</a></li>\n<li>LeaveChatAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\">Nakama.Socket</a></li>\n<li>LeaveGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\">Nakama.IClient</a></li>\n<li>LeaveMatchAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\">Nakama.Socket</a></li>\n<li>LeavePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\">Nakama.Socket</a></li>\n<li>Leaves&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\">Nakama.IChannelPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\">Nakama.IStatusPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\">Nakama.IStreamPresenceEvent</a></li>\n<li>Length&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Limit&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\">Nakama.IApiListSubscriptionsRequest</a></li>\n<li>LinkAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\">Nakama.IClient</a></li>\n<li>LinkCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\">Nakama.IClient</a></li>\n<li>LinkDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\">Nakama.IClient</a></li>\n<li>LinkEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\">Nakama.IClient</a></li>\n<li>LinkFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\">Nakama.IClient</a></li>\n<li>LinkGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\">Nakama.IClient</a></li>\n<li>LinkGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\">Nakama.IClient</a></li>\n<li>LinkSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\">Nakama.IClient</a></li>\n<li>ListChannelMessagesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\">Nakama.IClient</a></li>\n<li>ListFriendsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\">Nakama.IClient</a></li>\n<li>ListGroupsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\">Nakama.IClient</a></li>\n<li>ListGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\">Nakama.IClient</a></li>\n<li>ListLeaderboardRecordsAroundOwnerAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\">Nakama.IClient</a></li>\n<li>ListLeaderboardRecordsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\">Nakama.IClient</a></li>\n<li>ListMatchesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\">Nakama.IClient</a></li>\n<li>ListNotificationsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\">Nakama.IClient</a></li>\n<li>ListPartiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\">Nakama.IClient</a></li>\n<li>ListPartyJoinRequestsAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\">Nakama.Socket</a></li>\n<li>ListPropertiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\">Satori.IClient</a></li>\n<li>ListStorageObjects()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\">Nakama.IClient</a></li>\n<li>ListStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\">Nakama.IClient</a></li>\n<li>ListSubscriptionsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\">Nakama.IClient</a></li>\n<li>ListTournamentRecordsAroundOwnerAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\">Nakama.IClient</a></li>\n<li>ListTournamentRecordsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\">Nakama.IClient</a></li>\n<li>ListTournamentsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\">Nakama.IClient</a></li>\n<li>ListUserGroupsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\">Nakama.IClient</a></li>\n<li>ListUsersStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">Nakama.IClient</a></li>\n<li>LiveEvents&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\">Satori.IApiLiveEventList</a></li>\n<li>Location&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\">Nakama.IApiUser</a></li>\n<li>Logger&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\">Nakama.Client</a>, <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\">Nakama.IClient</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\">Nakama.Socket</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\">Satori.IHttpAdapter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_m.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_m.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_m\" name=\"index_m\"></a>- m -</h3><ul>\n<li>MatchCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\">Nakama.Console.IStatusListStatus</a></li>\n<li>Matches&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\">Nakama.IApiMatchList</a></li>\n<li>MatchId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\">Nakama.IMatchState</a></li>\n<li>MaxAttempts&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\">Satori.RetryConfiguration</a></li>\n<li>MaxCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\">Nakama.IApiGroup</a></li>\n<li>MaxNumScore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\">Nakama.IApiTournament</a></li>\n<li>MaxSize&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\">Nakama.IParty</a></li>\n<li>Message&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\">Nakama.Console.IConfigWarning</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\">Satori.IRpcStatus</a></li>\n<li>MessageId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\">Nakama.IChannelMessageAck</a></li>\n<li>Messages&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\">Satori.IApiGetMessageListResponse</a></li>\n<li>Metadata&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\">Satori.IApiMessage</a></li>\n<li>Mode&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\">Nakama.IStream</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_n.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_n.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_n\" name=\"index_n\"></a>- n -</h3><ul>\n<li>Name&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\">Nakama.Console.IStatusListStatus</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\">Satori.IApiExperiment</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\">Satori.IApiFlag</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\">Satori.IApiLiveEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\">Satori.IFlagValueChangeReason</a></li>\n<li>NextCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\">Nakama.IApiTournamentRecordList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\">Satori.IApiGetMessageListResponse</a></li>\n<li>NextReset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\">Nakama.IApiTournament</a></li>\n<li>NoDelay&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>Nodes&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\">Nakama.Console.IConsoleStatusList</a></li>\n<li>NoSession&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\">Satori.IApiAuthenticateRequest</a></li>\n<li>Notifications&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\">Nakama.IApiNotificationList</a></li>\n<li>NumericProperties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\">Nakama.IMatchmakerUser</a></li>\n<li>NumScore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\">Nakama.IApiLeaderboardRecord</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_o.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_o.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_o\" name=\"index_o\"></a>- o -</h3><ul>\n<li>ObjectIds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\">Nakama.IApiDeleteStorageObjectsRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\">Nakama.IApiReadStorageObjectsRequest</a></li>\n<li>Objects&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\">Nakama.Console.IConsoleStorageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\">Nakama.IApiStorageObjectList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\">Nakama.IApiStorageObjects</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\">Nakama.IApiWriteStorageObjectsRequest</a></li>\n<li>OldestTicketCreateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\">Nakama.IApiMatchmakerStats</a></li>\n<li>Online&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\">Nakama.IApiUser</a></li>\n<li>OnPong()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>OpCode&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\">Nakama.IMatchState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\">Nakama.IPartyData</a></li>\n<li>Open&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\">Nakama.IPartyUpdate</a></li>\n<li>Operator&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>OriginalTransactionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\">Nakama.IApiValidatedSubscription</a></li>\n<li>Overrides&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\">Satori.IApiFlagOverride</a></li>\n<li>OwnerId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\">Nakama.IApiLeaderboardRecord</a></li>\n<li>OwnerRecords&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\">Nakama.IApiTournamentRecordList</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_p.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_p.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_p\" name=\"index_p\"></a>- p -</h3><ul>\n<li>Parties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\">Nakama.IApiPartyList</a></li>\n<li>PartyId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\">Nakama.IPartyClose</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\">Nakama.IPartyData</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\">Nakama.IPartyJoinRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\">Nakama.IPartyLeader</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\">Nakama.IPartyMatchmakerTicket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\">Nakama.IPartyUpdate</a></li>\n<li>Password&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\">Nakama.Console.IConsoleAuthenticateRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\">Nakama.IApiAccountEmail</a></li>\n<li>Path&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>Payload&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\">Nakama.IApiRpc</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\">Nakama.Ninja.WebSockets.PongEventArgs</a></li>\n<li>PermissionRead&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\">Nakama.WriteStorageObject</a></li>\n<li>PermissionWrite&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\">Nakama.WriteStorageObject</a></li>\n<li>Persist&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\">Nakama.IApiValidatePurchaseAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\">Nakama.IApiValidatePurchaseGoogleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\">Nakama.IApiValidatePurchaseHuaweiRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\">Nakama.IApiValidateSubscriptionAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\">Nakama.IApiValidateSubscriptionGoogleRequest</a></li>\n<li>Persistence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\">Nakama.IUserPresence</a></li>\n<li>Persistent&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\">Nakama.IChannelMessageAck</a></li>\n<li>PingPongManager()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>PlayerId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\">Nakama.IApiAccountGameCenter</a></li>\n<li>Pong&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\">Nakama.Ninja.WebSockets.IPingPongManager</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>PongEventArgs()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\">Nakama.Ninja.WebSockets.PongEventArgs</a></li>\n<li>Port&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\">Satori.IClient</a></li>\n<li>Position&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Presence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\">Nakama.IMatchmakerUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\">Nakama.IPartyData</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\">Nakama.IPartyLeader</a></li>\n<li>PresenceCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\">Nakama.Console.IStatusListStatus</a></li>\n<li>Presences&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\">Nakama.IPartyJoinRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\">Nakama.IStatus</a></li>\n<li>PrevCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\">Nakama.IApiSubscriptionList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\">Nakama.IApiTournamentRecordList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\">Satori.IApiGetMessageListResponse</a></li>\n<li>PrevReset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\">Nakama.IApiTournament</a></li>\n<li>ProductId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\">Nakama.IApiValidatedSubscription</a></li>\n<li>PromoteGroupUsersAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\">Nakama.IClient</a></li>\n<li>PromotePartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\">Nakama.Socket</a></li>\n<li>Properties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\">Satori.IApiSession</a></li>\n<li>ProviderNotification&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\">Nakama.IApiValidatedSubscription</a></li>\n<li>ProviderResponse&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\">Nakama.IApiValidatedSubscription</a></li>\n<li>PublicBufferMemoryStream()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>PublicKeyUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\">Nakama.IApiAccountGameCenter</a></li>\n<li>Purchase&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\">Nakama.IApiValidatePurchaseGoogleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\">Nakama.IApiValidatePurchaseHuaweiRequest</a></li>\n<li>PurchaseTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\">Nakama.IApiValidatedSubscription</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_a\" name=\"index_a\"></a>- a -</h3><ul>\n<li>Account&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\">Nakama.Console.INakamaconsoleAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\">Nakama.IApiLinkSteamRequest</a></li>\n<li>Acks&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\">Nakama.IApiStorageObjectAcks</a></li>\n<li>Active&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\">Nakama.IApiValidatedSubscription</a></li>\n<li>ActiveEndTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\">Satori.IApiLiveEvent</a></li>\n<li>ActiveStartTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\">Satori.IApiLiveEvent</a></li>\n<li>AdditionalHttpHeaders&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>ApiKey&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\">Satori.IClient</a></li>\n<li>AppleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\">Nakama.IApiUser</a></li>\n<li>Authoritative&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\">Nakama.IMatch</a></li>\n<li>AuthToken&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\">Satori.Session</a></li>\n<li>AutoRefreshSession&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\">Satori.IClient</a></li>\n<li>AvatarUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\">Nakama.IApiUser</a></li>\n<li>AvgInputKbs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgLatencyMs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgOutputKbs&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\">Nakama.Console.IStatusListStatus</a></li>\n<li>AvgRateSec&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\">Nakama.Console.IStatusListStatus</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop.js",
    "content": "var functions_prop =\n[\n    [ \"a\", \"functions_prop.html\", null ],\n    [ \"b\", \"functions_prop_b.html\", null ],\n    [ \"c\", \"functions_prop_c.html\", null ],\n    [ \"d\", \"functions_prop_d.html\", null ],\n    [ \"e\", \"functions_prop_e.html\", null ],\n    [ \"f\", \"functions_prop_f.html\", null ],\n    [ \"g\", \"functions_prop_g.html\", null ],\n    [ \"h\", \"functions_prop_h.html\", null ],\n    [ \"i\", \"functions_prop_i.html\", null ],\n    [ \"j\", \"functions_prop_j.html\", null ],\n    [ \"k\", \"functions_prop_k.html\", null ],\n    [ \"l\", \"functions_prop_l.html\", null ],\n    [ \"m\", \"functions_prop_m.html\", null ],\n    [ \"n\", \"functions_prop_n.html\", null ],\n    [ \"o\", \"functions_prop_o.html\", null ],\n    [ \"p\", \"functions_prop_p.html\", null ],\n    [ \"r\", \"functions_prop_r.html\", null ],\n    [ \"s\", \"functions_prop_s.html\", null ],\n    [ \"t\", \"functions_prop_t.html\", null ],\n    [ \"u\", \"functions_prop_u.html\", null ],\n    [ \"v\", \"functions_prop_v.html\", null ],\n    [ \"w\", \"functions_prop_w.html\", null ]\n];"
  },
  {
    "path": "docs/html/functions_prop_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_b.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_b\" name=\"index_b\"></a>- b -</h3><ul>\n<li>BaseDelayMs&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\">Satori.RetryConfiguration</a></li>\n<li>BundleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\">Nakama.IApiAccountGameCenter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_c.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_c\" name=\"index_c\"></a>- c -</h3><ul>\n<li>CacheableCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\">Nakama.IApiNotificationList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\">Satori.IApiGetMessageListResponse</a></li>\n<li>CanEnter&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\">Nakama.IApiTournament</a></li>\n<li>CanRead&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanSeek&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>CanWrite&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Capacity&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Category&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\">Nakama.IApiTournament</a></li>\n<li>ChangeReason&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\">Satori.IApiFlag</a></li>\n<li>Changeset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\">Nakama.Console.IConsoleWalletLedger</a></li>\n<li>ChannelId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\">Nakama.IChannelPresenceEvent</a></li>\n<li>Code&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\">Satori.IRpcStatus</a></li>\n<li>Collection&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">Nakama.WriteStorageObject</a></li>\n<li>CompleteTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\">Nakama.IApiMatchmakerCompletionStats</a></li>\n<li>Completions&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\">Nakama.IApiMatchmakerStats</a></li>\n<li>Computed&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\">Satori.IApiProperties</a></li>\n<li>ConditionChanged&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\">Satori.IApiFlag</a></li>\n<li>Config&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\">Nakama.Console.IConsoleConfig</a></li>\n<li>ConsumeTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\">Satori.IApiUpdateMessageRequest</a></li>\n<li>Content&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\">Nakama.IApiNotification</a></li>\n<li>Created&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\">Nakama.Session</a></li>\n<li>CreateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\">Nakama.IApiMatchmakerCompletionStats</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\">Satori.Session</a></li>\n<li>CreateTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\">Satori.IApiFlagOverrideValue</a></li>\n<li>CreatorId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\">Nakama.IApiGroup</a></li>\n<li>Cursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\">Nakama.Console.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\">Nakama.Console.IApiUserGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\">Nakama.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\">Nakama.IApiFriendsOfFriendsList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\">Nakama.IApiGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\">Nakama.IApiGroupUserList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\">Nakama.IApiListSubscriptionsRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\">Nakama.IApiPartyList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\">Nakama.IApiStorageObjectList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\">Nakama.IApiSubscriptionList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\">Nakama.IApiTournamentList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\">Nakama.IApiUserGroupList</a></li>\n<li>Custom&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\">Satori.IApiProperties</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>CustomId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\">Nakama.IApiAccount</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_d.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_d\" name=\"index_d\"></a>- d -</h3><ul>\n<li>Data&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\">Nakama.IPartyData</a></li>\n<li>Default&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\">Satori.IApiProperties</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>Description&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\">Satori.IApiLiveEvent</a></li>\n<li>Descriptor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\">Nakama.IStream</a></li>\n<li>Details&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\">Satori.IRpcStatus</a></li>\n<li>DeviceId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></li>\n<li>DeviceIds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></li>\n<li>Devices&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\">Nakama.IApiAccount</a></li>\n<li>DisableTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\">Nakama.Console.INakamaconsoleAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\">Nakama.IApiAccount</a></li>\n<li>DisplayName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\">Nakama.IApiUser</a></li>\n<li>Duration&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\">Nakama.IApiTournament</a></li>\n<li>DurationSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\">Satori.IApiLiveEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_e.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_e\" name=\"index_e\"></a>- e -</h3><ul>\n<li>EdgeCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\">Nakama.IApiUser</a></li>\n<li>Email&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\">Nakama.IApiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\">Nakama.IApiAccountEmail</a></li>\n<li>EndActive&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\">Nakama.IApiTournament</a></li>\n<li>EndTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\">Nakama.IApiTournament</a></li>\n<li>EndTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\">Satori.IApiLiveEvent</a></li>\n<li>Environment&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\">Nakama.IApiValidatedSubscription</a></li>\n<li>Error&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\">Nakama.Console.IRuntimeError</a></li>\n<li>Events&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\">Satori.IApiEventRequest</a></li>\n<li>Experiments&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\">Satori.IApiExperimentList</a></li>\n<li>ExpireTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\">Satori.Session</a></li>\n<li>ExpiryTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\">Nakama.IApiValidatedSubscription</a></li>\n<li>ExponentialBackoff&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\">Nakama.Retry</a>, <a class=\"el\" href=\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\">Satori.Retry</a></li>\n<li>External&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\">Nakama.IApiEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_f.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_f\" name=\"index_f\"></a>- f -</h3><ul>\n<li>FacebookId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\">Nakama.IApiUser</a></li>\n<li>FacebookInstantGameId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\">Nakama.IApiUser</a></li>\n<li>Field&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\">Nakama.Console.IConfigWarning</a></li>\n<li>FlagName&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\">Satori.IApiFlagOverride</a></li>\n<li>Flags&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\">Satori.IApiFlagList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\">Satori.IApiFlagOverrideList</a></li>\n<li>Friends&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\">Nakama.Console.IApiFriendList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\">Nakama.IApiFriendList</a></li>\n<li>FriendsOfFriends&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\">Nakama.IApiFriendsOfFriendsList</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_g.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_g\" name=\"index_g\"></a>- g -</h3><ul>\n<li>GamecenterId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\">Nakama.IApiUser</a></li>\n<li>GlobalRetryConfiguration&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\">Satori.IClient</a></li>\n<li>GoogleId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\">Nakama.IApiUser</a></li>\n<li>GoroutineCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\">Nakama.Console.IStatusListStatus</a></li>\n<li>Group&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\">Nakama.Console.IUserGroupListUserGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\">Nakama.IUserGroupListUserGroup</a></li>\n<li>GroupId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\">Nakama.IChannelPresenceEvent</a></li>\n<li>Groups&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\">Nakama.IApiGroupList</a></li>\n<li>GroupUsers&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\">Nakama.IApiGroupUserList</a></li>\n<li>GrpcStatusCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\">Satori.ApiResponseException</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_h.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_h.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_h\" name=\"index_h\"></a>- h -</h3><ul>\n<li>HandlerName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\">Nakama.IApiMatch</a></li>\n<li>Health&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\">Nakama.Console.IStatusListStatus</a></li>\n<li>Hidden&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\">Nakama.IPartyUpdate</a></li>\n<li>Host&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\">Satori.IClient</a></li>\n<li>HttpHeader&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>HttpKey&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\">Nakama.IApiRpc</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_i.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_i.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_i\" name=\"index_i\"></a>- i -</h3><ul>\n<li>Id&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\">Nakama.Console.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\">Nakama.Console.IConsoleUnlinkDeviceRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\">Nakama.IApiAccountCustom</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\">Nakama.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\">Nakama.IApiRpc</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\">Nakama.IParty</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\">Satori.IApiAuthenticateRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\">Satori.IApiIdentifyRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\">Satori.IApiLiveEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\">Satori.IApiMessage</a></li>\n<li>IdentityId&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\">Satori.Session</a></li>\n<li>ImageUrl&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\">Satori.IApiMessage</a></li>\n<li>IncludeExceptionInCloseResponse&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>IsConnected&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>IsConnecting&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>IsExpired&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\">Satori.Session</a></li>\n<li>IsRefreshExpired&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\">Satori.Session</a></li>\n<li>IsWebSocketRequest&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>Items&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\">Nakama.Console.IConsoleWalletLedgerList</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_j.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_j.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_j\" name=\"index_j\"></a>- j -</h3><ul>\n<li>Jitter&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\">Satori.RetryConfiguration</a></li>\n<li>JitterBackoff&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\">Nakama.Retry</a>, <a class=\"el\" href=\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\">Satori.Retry</a></li>\n<li>Joins&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\">Nakama.IChannelPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\">Nakama.IStatusPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\">Nakama.IStreamPresenceEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_k.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_k.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_k\" name=\"index_k\"></a>- k -</h3><ul>\n<li>KeepAliveInterval&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>Key&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\">Nakama.WriteStorageObject</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_l.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_l.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_l\" name=\"index_l\"></a>- l -</h3><ul>\n<li>Label&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\">Nakama.IPartyUpdate</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\">Nakama.IStream</a></li>\n<li>LangTag&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\">Nakama.IApiUser</a></li>\n<li>Leader&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\">Nakama.IParty</a></li>\n<li>LeaderboardId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\">Nakama.IApiLeaderboardRecord</a></li>\n<li>LeaderboardRecords&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\">Nakama.Console.IConsoleAccountExport</a></li>\n<li>Leaves&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\">Nakama.IChannelPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\">Nakama.IStatusPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\">Nakama.IStreamPresenceEvent</a></li>\n<li>Length&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Limit&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\">Nakama.IApiListSubscriptionsRequest</a></li>\n<li>LiveEvents&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\">Satori.IApiLiveEventList</a></li>\n<li>Location&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\">Nakama.IApiUser</a></li>\n<li>Logger&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\">Nakama.Client</a>, <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\">Nakama.IClient</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\">Nakama.Socket</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\">Satori.IHttpAdapter</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_m.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_m.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_m\" name=\"index_m\"></a>- m -</h3><ul>\n<li>MatchCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\">Nakama.Console.IStatusListStatus</a></li>\n<li>Matches&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\">Nakama.IApiMatchList</a></li>\n<li>MatchId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\">Nakama.IMatchPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\">Nakama.IMatchState</a></li>\n<li>MaxAttempts&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\">Satori.RetryConfiguration</a></li>\n<li>MaxCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\">Nakama.IApiGroup</a></li>\n<li>MaxNumScore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\">Nakama.IApiTournament</a></li>\n<li>MaxSize&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\">Nakama.IParty</a></li>\n<li>Message&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\">Nakama.Console.IConfigWarning</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\">Nakama.Console.IRuntimeError</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\">Nakama.IRpcStatus</a>, <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\">Satori.IRpcStatus</a></li>\n<li>MessageId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\">Nakama.IChannelMessageAck</a></li>\n<li>Messages&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\">Satori.IApiGetMessageListResponse</a></li>\n<li>Metadata&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\">Satori.IApiMessage</a></li>\n<li>Mode&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\">Nakama.IStream</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_n.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_n.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_n\" name=\"index_n\"></a>- n -</h3><ul>\n<li>Name&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\">Nakama.Console.IStatusListStatus</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\">Satori.IApiExperiment</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\">Satori.IApiFlag</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\">Satori.IApiLiveEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\">Satori.IFlagValueChangeReason</a></li>\n<li>NextCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\">Nakama.IApiTournamentRecordList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\">Satori.IApiGetMessageListResponse</a></li>\n<li>NextReset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\">Nakama.IApiTournament</a></li>\n<li>NoDelay&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>Nodes&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\">Nakama.Console.IConsoleStatusList</a></li>\n<li>NoSession&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\">Satori.IApiAuthenticateRequest</a></li>\n<li>Notifications&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\">Nakama.IApiNotificationList</a></li>\n<li>NumericProperties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\">Nakama.IMatchmakerUser</a></li>\n<li>NumScore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\">Nakama.IApiLeaderboardRecord</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_o.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_o.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_o\" name=\"index_o\"></a>- o -</h3><ul>\n<li>ObjectIds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\">Nakama.IApiDeleteStorageObjectsRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\">Nakama.IApiReadStorageObjectsRequest</a></li>\n<li>Objects&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\">Nakama.Console.IConsoleAccountExport</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\">Nakama.Console.IConsoleStorageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\">Nakama.IApiStorageObjectList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\">Nakama.IApiStorageObjects</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\">Nakama.IApiWriteStorageObjectsRequest</a></li>\n<li>OldestTicketCreateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\">Nakama.IApiMatchmakerStats</a></li>\n<li>Online&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\">Nakama.IApiUser</a></li>\n<li>OpCode&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\">Nakama.IMatchState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\">Nakama.IPartyData</a></li>\n<li>Open&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\">Nakama.IApiCreateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\">Nakama.IApiUpdateGroupRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\">Nakama.IPartyUpdate</a></li>\n<li>Operator&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>OriginalTransactionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\">Nakama.IApiValidatedSubscription</a></li>\n<li>Overrides&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\">Satori.IApiFlagOverride</a></li>\n<li>OwnerId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\">Nakama.IApiLeaderboardRecord</a></li>\n<li>OwnerRecords&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\">Nakama.IApiTournamentRecordList</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_p.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_p.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_p\" name=\"index_p\"></a>- p -</h3><ul>\n<li>Parties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\">Nakama.IApiPartyList</a></li>\n<li>PartyId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\">Nakama.IApiParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\">Nakama.IPartyClose</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\">Nakama.IPartyData</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\">Nakama.IPartyJoinRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\">Nakama.IPartyLeader</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\">Nakama.IPartyMatchmakerTicket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\">Nakama.IPartyPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\">Nakama.IPartyUpdate</a></li>\n<li>Password&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\">Nakama.Console.IConsoleAuthenticateRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\">Nakama.IApiAccountEmail</a></li>\n<li>Path&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>Payload&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\">Nakama.IApiRpc</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\">Nakama.Ninja.WebSockets.PongEventArgs</a></li>\n<li>PermissionRead&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\">Nakama.WriteStorageObject</a></li>\n<li>PermissionWrite&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\">Nakama.WriteStorageObject</a></li>\n<li>Persist&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\">Nakama.IApiValidatePurchaseAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\">Nakama.IApiValidatePurchaseGoogleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\">Nakama.IApiValidatePurchaseHuaweiRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\">Nakama.IApiValidateSubscriptionAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\">Nakama.IApiValidateSubscriptionGoogleRequest</a></li>\n<li>Persistence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\">Nakama.IUserPresence</a></li>\n<li>Persistent&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\">Nakama.IChannelMessageAck</a></li>\n<li>PlayerId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\">Nakama.IApiAccountGameCenter</a></li>\n<li>Port&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\">Satori.IClient</a></li>\n<li>Position&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Presence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\">Nakama.IMatchmakerUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\">Nakama.IPartyData</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\">Nakama.IPartyLeader</a></li>\n<li>PresenceCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\">Nakama.Console.IStatusListStatus</a></li>\n<li>Presences&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\">Nakama.IParty</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\">Nakama.IPartyJoinRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\">Nakama.IStatus</a></li>\n<li>PrevCursor&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\">Nakama.IApiChannelMessageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\">Nakama.IApiSubscriptionList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\">Nakama.IApiTournamentRecordList</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\">Satori.IApiGetMessageListResponse</a></li>\n<li>PrevReset&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\">Nakama.IApiTournament</a></li>\n<li>ProductId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\">Nakama.IApiValidatedSubscription</a></li>\n<li>Properties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\">Satori.IApiSession</a></li>\n<li>ProviderNotification&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\">Nakama.IApiValidatedSubscription</a></li>\n<li>ProviderResponse&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\">Nakama.IApiValidatedSubscription</a></li>\n<li>PublicKeyUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\">Nakama.IApiAccountGameCenter</a></li>\n<li>Purchase&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\">Nakama.IApiValidatePurchaseGoogleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\">Nakama.IApiValidatePurchaseHuaweiRequest</a></li>\n<li>PurchaseTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\">Nakama.IApiValidatedSubscription</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_r.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_r.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_r\" name=\"index_r\"></a>- r -</h3><ul>\n<li>Rank&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\">Nakama.IApiLeaderboardRecord</a></li>\n<li>RankCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\">Nakama.IApiTournamentRecordList</a></li>\n<li>ReadTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\">Satori.IApiUpdateMessageRequest</a></li>\n<li>ReadTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Receipt&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\">Nakama.IApiValidatePurchaseAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\">Nakama.IApiValidateSubscriptionAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\">Nakama.IApiValidateSubscriptionGoogleRequest</a></li>\n<li>Recompute&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>Records&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\">Nakama.IApiTournamentRecordList</a></li>\n<li>Referrer&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></li>\n<li>RefreshExpireTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\">Satori.Session</a></li>\n<li>RefreshToken&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\">Nakama.IApiSessionLogoutRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\">Satori.IApiAuthenticateLogoutRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\">Satori.IApiAuthenticateRefreshRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\">Satori.IApiSession</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\">Satori.Session</a></li>\n<li>RefundTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\">Nakama.IApiValidatedSubscription</a></li>\n<li>ResetCron&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\">Satori.IApiLiveEvent</a></li>\n<li>ResponseCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>ResponseDetails&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>ResponseHeader&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>RetryListener&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\">Satori.RetryConfiguration</a></li>\n<li>RoomName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\">Nakama.IChannelPresenceEvent</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_s.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_s.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_s\" name=\"index_s\"></a>- s -</h3><ul>\n<li>Salt&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\">Nakama.IApiAccountGameCenter</a></li>\n<li>ScheduleId&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\">Satori.IApiMessage</a></li>\n<li>Scheme&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\">Satori.IClient</a></li>\n<li>Score&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>SecWebSocketExtensions&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>SecWebSocketProtocol&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>SeenBefore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\">Nakama.IApiValidatedPurchase</a></li>\n<li>Self&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\">Nakama.IParty</a></li>\n<li>Sender&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\">Nakama.IStreamState</a></li>\n<li>SenderId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\">Nakama.IApiNotification</a></li>\n<li>SendTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\">Satori.IApiMessage</a></li>\n<li>ServerKey&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\">Nakama.IClient</a></li>\n<li>ServerVersion&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\">Nakama.Console.IConsoleConfig</a></li>\n<li>SessionCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\">Nakama.Console.IStatusListStatus</a></li>\n<li>SessionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\">Nakama.IUserPresence</a></li>\n<li>Signature&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\">Nakama.IApiAccountGameCenter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\">Nakama.IApiValidatePurchaseHuaweiRequest</a></li>\n<li>SignedPlayerInfo&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\">Nakama.IApiAccountFacebookInstantGame</a></li>\n<li>SignedRequest&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></li>\n<li>Size&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\">Nakama.IMatch</a></li>\n<li>SortOrder&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\">Nakama.IApiTournament</a></li>\n<li>StartActive&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\">Nakama.IApiTournament</a></li>\n<li>StartTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\">Nakama.IApiTournament</a></li>\n<li>StartTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\">Satori.IApiLiveEvent</a></li>\n<li>State&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\">Nakama.Console.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\">Nakama.Console.IUserGroupListUserGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\">Nakama.IGroupUserListGroupUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\">Nakama.IMatchState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\">Nakama.IStreamState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\">Nakama.IUserGroupListUserGroup</a></li>\n<li>Status&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\">Nakama.IUserPresence</a></li>\n<li>StatusCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\">Satori.ApiResponseException</a></li>\n<li>SteamId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\">Nakama.IApiUser</a></li>\n<li>Store&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\">Nakama.IApiValidatedSubscription</a></li>\n<li>Stream&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\">Nakama.IStreamPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\">Nakama.IStreamState</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>StringProperties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\">Nakama.IMatchmakerUser</a></li>\n<li>Subject&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\">Nakama.IStream</a></li>\n<li>SubProtocol&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>Subscore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>Sync&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\">Nakama.IApiLinkSteamRequest</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_t.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_t.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_t\" name=\"index_t\"></a>- t -</h3><ul>\n<li>Text&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\">Satori.IApiMessage</a></li>\n<li>Ticket&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\">Nakama.IMatchmakerTicket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\">Nakama.IPartyMatchmakerTicket</a></li>\n<li>TicketCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\">Nakama.IApiMatchmakerStats</a></li>\n<li>TickRate&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\">Nakama.IApiMatch</a></li>\n<li>Timeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\">Satori.IClient</a></li>\n<li>Timestamp&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\">Satori.IApiEvent</a></li>\n<li>TimestampSeconds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\">Nakama.IApiAccountGameCenter</a></li>\n<li>Timezone&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\">Nakama.IApiUser</a></li>\n<li>Title&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\">Satori.IApiMessage</a></li>\n<li>Token&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\">Nakama.Console.IConsoleConsoleSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\">Nakama.IApiAccountApple</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\">Nakama.IApiAccountFacebook</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\">Nakama.IApiAccountGoogle</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\">Nakama.IApiAccountSteam</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\">Nakama.IApiSessionLogoutRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\">Nakama.IApiSessionRefreshRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\">Satori.IApiAuthenticateLogoutRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\">Satori.IApiSession</a></li>\n<li>TotalCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\">Nakama.Console.IConsoleStorageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\">Nakama.Console.IConsoleUserList</a></li>\n<li>Tournaments&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\">Nakama.IApiTournamentList</a></li>\n<li>TransactionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\">Nakama.IApiValidatedPurchase</a></li>\n<li>TransientExceptionDelegate&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\">Satori.IHttpAdapter</a></li>\n<li>Type&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\">Satori.IFlagValueChangeReason</a></li>\n<li>type&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\">Nakama.IProtobufAny</a>, <a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\">Satori.IProtobufAny</a></li>\n<li>TypeUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\">Nakama.Console.IProtobufAny</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_u.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_u.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_u\" name=\"index_u\"></a>- u -</h3><ul>\n<li>UpdateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\">Satori.IApiMessage</a></li>\n<li>User&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\">Nakama.Console.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\">Nakama.IApiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\">Nakama.IFriendsOfFriendsListFriendOfFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\">Nakama.IGroupUserListGroupUser</a></li>\n<li>UserGroups&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\">Nakama.Console.IApiUserGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\">Nakama.IApiUserGroupList</a></li>\n<li>UserId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\">Nakama.ISession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\">Nakama.IUserPresence</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\">Nakama.Session</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\">Nakama.StorageObjectId</a></li>\n<li>UserIdOne&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\">Nakama.IChannelPresenceEvent</a></li>\n<li>UserIdTwo&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\">Nakama.IChannelPresenceEvent</a></li>\n<li>Username&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\">Nakama.Console.IConsoleAuthenticateRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">Nakama.ISession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\">Nakama.IUserPresence</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\">Nakama.Session</a></li>\n<li>UserPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\">Nakama.IMatchState</a></li>\n<li>Users&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\">Nakama.Console.IConsoleUserList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\">Nakama.IApiUsers</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\">Nakama.IMatchmakerMatched</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_v.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_v.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_v\" name=\"index_v\"></a>- v -</h3><ul>\n<li>ValidatedPurchases&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\">Nakama.IApiValidatePurchaseResponse</a></li>\n<li>ValidatedSubscription&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\">Nakama.IApiValidateSubscriptionResponse</a></li>\n<li>ValidatedSubscriptions&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\">Nakama.IApiSubscriptionList</a></li>\n<li>Value&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\">Nakama.Console.IProtobufAny</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\">Nakama.WriteStorageObject</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\">Satori.IApiExperiment</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\">Satori.IApiFlag</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\">Satori.IApiLiveEvent</a></li>\n<li>VariantName&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\">Satori.IFlagValueChangeReason</a></li>\n<li>Vars&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\">Nakama.Console.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\">Nakama.IApiAccountApple</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\">Nakama.IApiAccountCustom</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\">Nakama.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\">Nakama.IApiAccountEmail</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\">Nakama.IApiAccountFacebook</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\">Nakama.IApiAccountFacebookInstantGame</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\">Nakama.IApiAccountGameCenter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\">Nakama.IApiAccountGoogle</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\">Nakama.IApiAccountSteam</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\">Nakama.IApiSessionRefreshRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\">Nakama.Session</a></li>\n<li>VerifyTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\">Nakama.IApiAccount</a></li>\n<li>Version&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\">Nakama.WriteStorageObject</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_prop_w.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Properties</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_prop_w.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all properties with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_w\" name=\"index_w\"></a>- w -</h3><ul>\n<li>Wallet&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\">Nakama.IApiAccount</a></li>\n<li>WalletLedgers&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\">Nakama.Console.IConsoleAccountExport</a></li>\n<li>Warnings&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\">Nakama.Console.IConsoleConfig</a></li>\n<li>WebSocketRequestedProtocols&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>WriteTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_r.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_r.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_r\" name=\"index_r\"></a>- r -</h3><ul>\n<li>Rank&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\">Nakama.IApiLeaderboardRecord</a></li>\n<li>RankCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\">Nakama.IApiTournamentRecordList</a></li>\n<li>Read()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadByte()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>ReadHttpHeaderAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ReadHttpHeaderFromStreamAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>ReadHttpResponseCode()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>ReadStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\">Nakama.IClient</a></li>\n<li>ReadTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\">Satori.IApiMessage</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\">Satori.IApiUpdateMessageRequest</a></li>\n<li>ReadTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Receipt&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\">Nakama.IApiValidatePurchaseAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\">Nakama.IApiValidateSubscriptionAppleRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\">Nakama.IApiValidateSubscriptionGoogleRequest</a></li>\n<li>Received&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ReceivedChannelMessage&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\">Nakama.Socket</a></li>\n<li>ReceivedChannelPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\">Nakama.Socket</a></li>\n<li>ReceivedError&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\">Nakama.ISocket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>ReceivedMatchmakerMatched&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\">Nakama.Socket</a></li>\n<li>ReceivedMatchPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\">Nakama.Socket</a></li>\n<li>ReceivedMatchState&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\">Nakama.Socket</a></li>\n<li>ReceivedNotification&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\">Nakama.Socket</a></li>\n<li>ReceivedParty&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\">Nakama.Socket</a></li>\n<li>ReceivedPartyClose&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\">Nakama.Socket</a></li>\n<li>ReceivedPartyData&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\">Nakama.Socket</a></li>\n<li>ReceivedPartyJoinRequest&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\">Nakama.Socket</a></li>\n<li>ReceivedPartyLeader&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\">Nakama.Socket</a></li>\n<li>ReceivedPartyMatchmakerTicket&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\">Nakama.Socket</a></li>\n<li>ReceivedPartyPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\">Nakama.Socket</a></li>\n<li>ReceivedPartyUpdate&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\">Nakama.Socket</a></li>\n<li>ReceivedSessionUpdated&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\">Satori.IClient</a></li>\n<li>ReceivedStatusPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\">Nakama.Socket</a></li>\n<li>ReceivedStreamPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\">Nakama.Socket</a></li>\n<li>ReceivedStreamState&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\">Nakama.Socket</a></li>\n<li>Recompute&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\">Satori.IApiUpdatePropertiesRequest</a></li>\n<li>Records&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\">Nakama.IApiLeaderboardRecordList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\">Nakama.IApiTournamentRecordList</a></li>\n<li>Referrer&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></li>\n<li>RefreshExpireTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\">Satori.Session</a></li>\n<li>RefreshToken&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\">Nakama.IApiSessionLogoutRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\">Nakama.Session</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\">Satori.IApiAuthenticateLogoutRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\">Satori.IApiAuthenticateRefreshRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\">Satori.IApiSession</a>, <a class=\"el\" href=\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\">Satori.ISession</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\">Satori.Session</a></li>\n<li>RefundTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\">Nakama.IApiValidatedSubscription</a></li>\n<li>RemoveChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\">Nakama.Socket</a></li>\n<li>RemoveMatchmakerAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\">Nakama.Socket</a></li>\n<li>RemoveMatchmakerPartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\">Nakama.Socket</a></li>\n<li>RemovePartyMemberAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\">Nakama.Socket</a></li>\n<li>ResetCron&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\">Satori.IApiLiveEvent</a></li>\n<li>ResponseCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>ResponseDetails&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>ResponseHeader&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></li>\n<li>Restore()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582\">Nakama.Session</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed\">Satori.Session</a></li>\n<li>RetryConfiguration()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\">Satori.RetryConfiguration</a></li>\n<li>RetryListener&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\">Nakama.RetryConfiguration</a>, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\">Satori.RetryConfiguration</a></li>\n<li>ReturnBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\">Nakama.Ninja.WebSockets.BufferPool</a></li>\n<li>RoomName&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\">Nakama.IChannelPresenceEvent</a></li>\n<li>RpcAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\">Nakama.IClient</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\">Nakama.Socket</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_s.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_s.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_s\" name=\"index_s\"></a>- s -</h3><ul>\n<li>Salt&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\">Nakama.IApiAccountGameCenter</a></li>\n<li>ScheduleId&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\">Satori.IApiMessage</a></li>\n<li>Scheme&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\">Satori.IClient</a></li>\n<li>Score&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>SecWebSocketExtensions&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>SecWebSocketKeyMissingException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></li>\n<li>SecWebSocketProtocol&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>Seek()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>SeenBefore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\">Nakama.IApiValidatedPurchase</a></li>\n<li>Self&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\">Nakama.IParty</a></li>\n<li>SendAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\">Nakama.ISocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\">Nakama.WebSocketStdlibAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\">Satori.IHttpAdapter</a></li>\n<li>Sender&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\">Nakama.IStreamState</a></li>\n<li>SenderId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\">Nakama.IApiNotification</a></li>\n<li>SendMatchStateAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\">Nakama.Socket</a></li>\n<li>SendPartyDataAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\">Nakama.Socket</a></li>\n<li>SendPing()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\">Nakama.Ninja.WebSockets.IPingPongManager</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\">Nakama.Ninja.WebSockets.PingPongManager</a></li>\n<li>SendTime&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\">Satori.IApiMessage</a></li>\n<li>ServerKey&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\">Nakama.IClient</a></li>\n<li>ServerListenerSocketException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></li>\n<li>ServerVersion&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\">Nakama.Console.IConsoleConfig</a></li>\n<li>SessionCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\">Nakama.Console.IStatusListStatus</a></li>\n<li>SessionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\">Nakama.IUserPresence</a></li>\n<li>SessionLogoutAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\">Nakama.IClient</a></li>\n<li>SessionRefreshAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\">Satori.IClient</a></li>\n<li>SetLength()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Signature&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\">Nakama.IApiAccountGameCenter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\">Nakama.IApiValidatePurchaseHuaweiRequest</a></li>\n<li>SignedPlayerInfo&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\">Nakama.IApiAccountFacebookInstantGame</a></li>\n<li>SignedRequest&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></li>\n<li>Size&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\">Nakama.IApiMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\">Nakama.IMatch</a></li>\n<li>Socket()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\">Nakama.Socket</a></li>\n<li>SortOrder&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\">Nakama.IApiTournament</a></li>\n<li>StartActive&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\">Nakama.IApiTournament</a></li>\n<li>StartTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\">Nakama.IApiTournament</a></li>\n<li>StartTimeSec&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\">Satori.IApiLiveEvent</a></li>\n<li>State&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\">Nakama.Console.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\">Nakama.Console.IUserGroupListUserGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\">Nakama.IGroupUserListGroupUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\">Nakama.IMatchState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\">Nakama.IStreamState</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\">Nakama.IUserGroupListUserGroup</a></li>\n<li>Status&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\">Nakama.IUserPresence</a></li>\n<li>StatusCode&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\">Satori.ApiResponseException</a></li>\n<li>SteamId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\">Nakama.IApiUser</a></li>\n<li>Store&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\">Nakama.IApiValidatedSubscription</a></li>\n<li>Stream&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\">Nakama.IStreamPresenceEvent</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\">Nakama.IStreamState</a>, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>StringProperties&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\">Nakama.IMatchmakerUser</a></li>\n<li>Subject&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\">Nakama.Console.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\">Nakama.IApiNotification</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\">Nakama.IStream</a></li>\n<li>SubProtocol&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>Subscore&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n<li>Sync&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\">Nakama.IApiLinkSteamRequest</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_t.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_t.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_t\" name=\"index_t\"></a>- t -</h3><ul>\n<li>Text&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\">Satori.IApiMessage</a></li>\n<li>Ticket&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\">Nakama.IMatchmakerTicket</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\">Nakama.IPartyMatchmakerTicket</a></li>\n<li>TicketCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\">Nakama.IApiMatchmakerStats</a></li>\n<li>TickRate&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\">Nakama.IApiMatch</a></li>\n<li>Timeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\">Nakama.IClient</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\">Satori.IClient</a></li>\n<li>Timestamp&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\">Nakama.IApiEvent</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\">Satori.IApiEvent</a></li>\n<li>TimestampSeconds&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\">Nakama.IApiAccountGameCenter</a></li>\n<li>Timezone&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\">Nakama.IApiUser</a></li>\n<li>Title&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\">Nakama.IApiTournament</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\">Satori.IApiMessage</a></li>\n<li>TlsAuthenticateAsClient()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>ToArray()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Token&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\">Nakama.Console.IConsoleConsoleSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\">Nakama.IApiAccountApple</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\">Nakama.IApiAccountFacebook</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\">Nakama.IApiAccountGoogle</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\">Nakama.IApiAccountSteam</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\">Nakama.IApiSession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\">Nakama.IApiSessionLogoutRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\">Nakama.IApiSessionRefreshRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\">Nakama.IMatchmakerMatched</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\">Satori.IApiAuthenticateLogoutRequest</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\">Satori.IApiSession</a></li>\n<li>ToString()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\">Nakama.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\">Nakama.Client</a>, <a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\">Nakama.Console.ApiResponseException</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\">Nakama.Session</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\">Nakama.Socket</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\">Nakama.WebSocketAdapter</a>, <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\">Nakama.WebSocketStdlibAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\">Satori.ApiResponseException</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\">Satori.Session</a></li>\n<li>TotalCount&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\">Nakama.Console.IConsoleStorageList</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\">Nakama.Console.IConsoleUserList</a></li>\n<li>Tournaments&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\">Nakama.IApiTournamentList</a></li>\n<li>TransactionId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\">Nakama.IApiValidatedPurchase</a></li>\n<li>TransientExceptionDelegate&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\">Nakama.IHttpAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\">Satori.HttpRequestAdapter</a>, <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\">Satori.IHttpAdapter</a></li>\n<li>TryGetBuffer()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>Type&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\">Satori.IFlagValueChangeReason</a></li>\n<li>type&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\">Nakama.IProtobufAny</a>, <a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\">Satori.IProtobufAny</a></li>\n<li>TypeUrl&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\">Nakama.Console.IProtobufAny</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_u.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_u.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_u\" name=\"index_u\"></a>- u -</h3><ul>\n<li>UnfollowUsersAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\">Nakama.Socket</a></li>\n<li>UnlinkAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\">Nakama.IClient</a></li>\n<li>UnlinkCustomAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\">Nakama.IClient</a></li>\n<li>UnlinkDeviceAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\">Nakama.IClient</a></li>\n<li>UnlinkEmailAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\">Nakama.IClient</a></li>\n<li>UnlinkFacebookAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\">Nakama.IClient</a></li>\n<li>UnlinkGameCenterAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\">Nakama.IClient</a></li>\n<li>UnlinkGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\">Nakama.IClient</a></li>\n<li>UnlinkSteamAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\">Nakama.IClient</a></li>\n<li>Update()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\">Nakama.Session</a></li>\n<li>UpdateAccountAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\">Nakama.IClient</a></li>\n<li>UpdateChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">Nakama.Socket</a></li>\n<li>UpdateGroupAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\">Nakama.IClient</a></li>\n<li>UpdateMessageAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\">Satori.IClient</a></li>\n<li>UpdatePartyAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\">Nakama.Socket</a></li>\n<li>UpdatePresences()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\">Nakama.IMatch</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\">Nakama.IParty</a></li>\n<li>UpdatePropertiesAsync()&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\">Satori.Client</a>, <a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\">Satori.IClient</a></li>\n<li>UpdateStatusAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\">Nakama.Socket</a></li>\n<li>UpdateTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\">Nakama.Console.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\">Nakama.IApiGroup</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\">Satori.IApiMessage</a></li>\n<li>User&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\">Nakama.Console.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\">Nakama.IApiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\">Nakama.IApiFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\">Nakama.IFriendsOfFriendsListFriendOfFriend</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\">Nakama.IGroupUserListGroupUser</a></li>\n<li>UserGroups&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\">Nakama.Console.IApiUserGroupList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\">Nakama.IApiUserGroupList</a></li>\n<li>UserId&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\">Nakama.Console.IConsoleWalletLedger</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\">Nakama.IApiReadStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\">Nakama.IApiValidatedPurchase</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\">Nakama.IApiValidatedSubscription</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\">Nakama.ISession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\">Nakama.IUserPresence</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\">Nakama.Session</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\">Nakama.StorageObjectId</a></li>\n<li>UserIdOne&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\">Nakama.IChannelPresenceEvent</a></li>\n<li>UserIdTwo&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\">Nakama.IChannel</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\">Nakama.IChannelPresenceEvent</a></li>\n<li>Username&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\">Nakama.Console.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\">Nakama.Console.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\">Nakama.Console.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\">Nakama.Console.IConsoleAuthenticateRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\">Nakama.IApiChannelMessage</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\">Nakama.IApiLeaderboardRecord</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\">Nakama.IApiUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\">Nakama.IApiUser</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\">Nakama.IChannelMessageAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">Nakama.ISession</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\">Nakama.IUserPresence</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\">Nakama.Session</a></li>\n<li>UserPresence&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\">Nakama.IMatchState</a></li>\n<li>Users&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\">Nakama.Console.IConsoleUserList</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\">Nakama.IApiUsers</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\">Nakama.IMatchmakerMatched</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_v.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_v.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_v\" name=\"index_v\"></a>- v -</h3><ul>\n<li>ValidatedPurchases&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\">Nakama.IApiValidatePurchaseResponse</a></li>\n<li>ValidatedSubscription&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\">Nakama.IApiValidateSubscriptionResponse</a></li>\n<li>ValidatedSubscriptions&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\">Nakama.IApiSubscriptionList</a></li>\n<li>ValidatePurchaseAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\">Nakama.IClient</a></li>\n<li>ValidatePurchaseFacebookInstantAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\">Nakama.IClient</a></li>\n<li>ValidatePurchaseGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\">Nakama.IClient</a></li>\n<li>ValidatePurchaseHuaweiAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\">Nakama.IClient</a></li>\n<li>ValidateSubscriptionAppleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\">Nakama.IClient</a></li>\n<li>ValidateSubscriptionGoogleAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\">Nakama.IClient</a></li>\n<li>Value&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\">Nakama.Console.IProtobufAny</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\">Nakama.WriteStorageObject</a>, <a class=\"el\" href=\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\">Satori.Event</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\">Satori.IApiEvent</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\">Satori.IApiExperiment</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\">Satori.IApiFlag</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\">Satori.IApiLiveEvent</a></li>\n<li>VariantName&#160;:&#160;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\">Satori.IApiFlagOverrideValue</a>, <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\">Satori.IFlagValueChangeReason</a></li>\n<li>Vars&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\">Nakama.Console.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\">Nakama.IApiAccountApple</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\">Nakama.IApiAccountCustom</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\">Nakama.IApiAccountDevice</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\">Nakama.IApiAccountEmail</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\">Nakama.IApiAccountFacebook</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\">Nakama.IApiAccountFacebookInstantGame</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\">Nakama.IApiAccountGameCenter</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\">Nakama.IApiAccountGoogle</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\">Nakama.IApiAccountSteam</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\">Nakama.IApiSessionRefreshRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\">Nakama.ISession</a>, <a class=\"el\" href=\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\">Nakama.Session</a></li>\n<li>VerifyTime&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\">Nakama.IApiAccount</a></li>\n<li>Version&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\">Nakama.Console.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\">Nakama.Console.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\">Nakama.IApiDeleteStorageObjectId</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\">Nakama.IApiStorageObject</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\">Nakama.IApiStorageObjectAck</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\">Nakama.IApiWriteStorageObject</a>, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\">Nakama.StorageObjectId</a>, <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\">Nakama.WriteStorageObject</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_vars.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members - Variables</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_vars.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all variables with links to the classes they belong to:</div><ul>\n<li>DefaultConnectTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\">Nakama.Socket</a></li>\n<li>DefaultExpiredTimeSpan&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621\">Nakama.Client</a>, <a class=\"el\" href=\"class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0\">Satori.Client</a></li>\n<li>DefaultHost&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35\">Nakama.Client</a></li>\n<li>DefaultPort&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756\">Nakama.Client</a></li>\n<li>DefaultScheme&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493\">Nakama.Client</a></li>\n<li>DefaultSendTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7\">Nakama.Socket</a></li>\n<li>DefaultTimeout&#160;:&#160;<a class=\"el\" href=\"class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de\">Satori.Client</a></li>\n<li>Epoch&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f\">Nakama.Session</a>, <a class=\"el\" href=\"class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4\">Satori.Session</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/functions_w.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('functions_w.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all class members with links to the classes they belong to:</div>\n\n<h3 class=\"doxsection\"><a id=\"index_w\" name=\"index_w\"></a>- w -</h3><ul>\n<li>Wallet&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\">Nakama.Console.INakamaapiAccount</a>, <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\">Nakama.IApiAccount</a></li>\n<li>WalletLedgers&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\">Nakama.Console.IConsoleAccountExport</a></li>\n<li>WarnFormat()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">Nakama.ILogger</a>, <a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\">Satori.ILogger</a></li>\n<li>Warnings&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\">Nakama.Console.IConsoleConfig</a></li>\n<li>WebSocketAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\">Nakama.WebSocketAdapter</a></li>\n<li>WebSocketBufferOverflowException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></li>\n<li>WebSocketClientFactory()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></li>\n<li>WebSocketClientOptions()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></li>\n<li>WebSocketHandshakeFailedException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></li>\n<li>WebSocketHttpContext()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>WebSocketRequestedProtocols&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></li>\n<li>WebSocketServerFactory()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></li>\n<li>WebSocketServerOptions()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></li>\n<li>WebSocketStdlibAdapter()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\">Nakama.WebSocketStdlibAdapter</a></li>\n<li>WebSocketVersionNotSupportedException()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></li>\n<li>WithGzip()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e\">Nakama.HttpRequestAdapter</a>, <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd\">Satori.HttpRequestAdapter</a></li>\n<li>Write()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteByte()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteChatMessageAsync()&#160;:&#160;<a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\">Nakama.ISocket</a>, <a class=\"el\" href=\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\">Nakama.Socket</a></li>\n<li>WriteHttpHeaderAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634\">Nakama.Ninja.WebSockets.HttpHelper</a></li>\n<li>WriteLeaderboardRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\">Nakama.IClient</a></li>\n<li>WriteStorageObjectsAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\">Nakama.IClient</a></li>\n<li>WriteTimeout&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteTo()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></li>\n<li>WriteTournamentRecordAsync()&#160;:&#160;<a class=\"el\" href=\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\">Nakama.Client</a>, <a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\">Nakama.IClient</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/hierarchy.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Class Hierarchy</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('hierarchy.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Class Hierarchy</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:dynsection.toggleLevel(1);\">1</span><span onclick=\"javascript:dynsection.toggleLevel(2);\">2</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_event.html\" target=\"_self\">Satori.Event</a></td><td class=\"desc\">An event to be published to the server </td></tr>\n<tr id=\"row_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><b>EventArgs</b></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\" target=\"_self\">Nakama.Ninja.WebSockets.PongEventArgs</a></td><td class=\"desc\">Pong EventArgs </td></tr>\n<tr id=\"row_2_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_2_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('2_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><b>Exception</b></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\" target=\"_self\">Nakama.ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_2_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\" target=\"_self\">Nakama.Console.ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_2_2_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_3_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_4_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_5_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_6_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_7_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_8_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\" target=\"_self\">Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_2_9_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\" target=\"_self\">Satori.ApiResponseException</a></td><td class=\"desc\">An exception generated for <code>HttpResponse</code> objects don't return a success status </td></tr>\n<tr id=\"row_3_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\" target=\"_self\">Nakama.Ninja.WebSockets.HttpHelper</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_4_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\" target=\"_self\">Nakama.IApiAccount</a></td><td class=\"desc\">A user with additional account details. Always the current user </td></tr>\n<tr id=\"row_5_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\" target=\"_self\">Nakama.IApiAccountApple</a></td><td class=\"desc\">Send a Apple Sign In token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_6_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\" target=\"_self\">Nakama.IApiAccountCustom</a></td><td class=\"desc\">Send a custom ID to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_7_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\" target=\"_self\">Nakama.Console.IApiAccountDevice</a></td><td class=\"desc\">Send a device to the server. Used with authenticate/link/unlink and user </td></tr>\n<tr id=\"row_8_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\" target=\"_self\">Nakama.IApiAccountDevice</a></td><td class=\"desc\">Send a device to the server. Used with authenticate/link/unlink and user </td></tr>\n<tr id=\"row_9_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\" target=\"_self\">Nakama.IApiAccountEmail</a></td><td class=\"desc\">Send an email with password to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_10_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\" target=\"_self\">Nakama.IApiAccountFacebook</a></td><td class=\"desc\">Send a Facebook token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_11_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\" target=\"_self\">Nakama.IApiAccountFacebookInstantGame</a></td><td class=\"desc\">Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_12_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\" target=\"_self\">Nakama.IApiAccountGameCenter</a></td><td class=\"desc\">Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a> </td></tr>\n<tr id=\"row_13_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\" target=\"_self\">Nakama.IApiAccountGoogle</a></td><td class=\"desc\">Send a Google token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_14_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\" target=\"_self\">Nakama.IApiAccountSteam</a></td><td class=\"desc\">Send a Steam token to the server. Used with authenticate/link/unlink </td></tr>\n<tr id=\"row_15_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\" target=\"_self\">Satori.IApiAuthenticateLogoutRequest</a></td><td class=\"desc\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user </td></tr>\n<tr id=\"row_16_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\" target=\"_self\">Satori.IApiAuthenticateRefreshRequest</a></td><td class=\"desc\">Authenticate against the server with a refresh token </td></tr>\n<tr id=\"row_17_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\" target=\"_self\">Satori.IApiAuthenticateRequest</a></td><td class=\"desc\">Authentication request </td></tr>\n<tr id=\"row_18_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\" target=\"_self\">Nakama.Console.IApiChannelMessage</a></td><td class=\"desc\">A message sent on a channel </td></tr>\n<tr id=\"row_19_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\" target=\"_self\">Nakama.IApiChannelMessage</a></td><td class=\"desc\">A message sent on a channel </td></tr>\n<tr id=\"row_20_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\" target=\"_self\">Nakama.IApiChannelMessageList</a></td><td class=\"desc\">A list of channel messages, usually a result of a list operation </td></tr>\n<tr id=\"row_21_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\" target=\"_self\">Nakama.IApiCreateGroupRequest</a></td><td class=\"desc\">Create a group with the current user as owner </td></tr>\n<tr id=\"row_22_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_22_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('22_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\" target=\"_self\">Nakama.IApiDeleteStorageObjectId</a></td><td class=\"desc\">Storage objects to delete </td></tr>\n<tr id=\"row_22_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\" target=\"_self\">Nakama.StorageObjectId</a></td><td class=\"desc\">An identifier for a storage object </td></tr>\n<tr id=\"row_23_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\" target=\"_self\">Nakama.IApiDeleteStorageObjectsRequest</a></td><td class=\"desc\">Batch delete storage objects </td></tr>\n<tr id=\"row_24_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\" target=\"_self\">Nakama.IApiEvent</a></td><td class=\"desc\">Represents an event to be passed through the server to registered event handlers </td></tr>\n<tr id=\"row_25_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\" target=\"_self\">Satori.IApiEvent</a></td><td class=\"desc\">A single event. Usually, but not necessarily, part of a batch </td></tr>\n<tr id=\"row_26_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\" target=\"_self\">Satori.IApiEventRequest</a></td><td class=\"desc\">Publish an event to the server </td></tr>\n<tr id=\"row_27_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\" target=\"_self\">Satori.IApiExperiment</a></td><td class=\"desc\">An experiment that this user is partaking </td></tr>\n<tr id=\"row_28_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\" target=\"_self\">Satori.IApiExperimentList</a></td><td class=\"desc\">All experiments that this identity is involved with </td></tr>\n<tr id=\"row_29_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\" target=\"_self\">Satori.IApiFlag</a></td><td class=\"desc\">Feature flag available to the identity </td></tr>\n<tr id=\"row_30_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\" target=\"_self\">Satori.IApiFlagList</a></td><td class=\"desc\">All flags available to the identity </td></tr>\n<tr id=\"row_31_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\" target=\"_self\">Satori.IApiFlagOverride</a></td><td class=\"desc\">Feature flag available to the identity </td></tr>\n<tr id=\"row_32_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\" target=\"_self\">Satori.IApiFlagOverrideList</a></td><td class=\"desc\">All flags available to the identity and their value overrides </td></tr>\n<tr id=\"row_33_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\" target=\"_self\">Satori.IApiFlagOverrideValue</a></td><td class=\"desc\">The details of a flag value override </td></tr>\n<tr id=\"row_34_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\" target=\"_self\">Nakama.Console.IApiFriend</a></td><td class=\"desc\">A friend of a user </td></tr>\n<tr id=\"row_35_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\" target=\"_self\">Nakama.IApiFriend</a></td><td class=\"desc\">A friend of a user </td></tr>\n<tr id=\"row_36_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\" target=\"_self\">Nakama.Console.IApiFriendList</a></td><td class=\"desc\">A collection of zero or more friends of the user </td></tr>\n<tr id=\"row_37_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\" target=\"_self\">Nakama.IApiFriendList</a></td><td class=\"desc\">A collection of zero or more friends of the user </td></tr>\n<tr id=\"row_38_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\" target=\"_self\">Nakama.IApiFriendsOfFriendsList</a></td><td class=\"desc\">A List of friends of friends </td></tr>\n<tr id=\"row_39_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\" target=\"_self\">Satori.IApiGetMessageListResponse</a></td><td class=\"desc\">A response containing all the messages for an identity </td></tr>\n<tr id=\"row_40_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\" target=\"_self\">Nakama.Console.IApiGroup</a></td><td class=\"desc\">A group in the server </td></tr>\n<tr id=\"row_41_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\" target=\"_self\">Nakama.IApiGroup</a></td><td class=\"desc\">A group in the server </td></tr>\n<tr id=\"row_42_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\" target=\"_self\">Nakama.IApiGroupList</a></td><td class=\"desc\">One or more groups returned from a listing operation </td></tr>\n<tr id=\"row_43_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\" target=\"_self\">Nakama.IApiGroupUserList</a></td><td class=\"desc\">A list of users belonging to a group, along with their role </td></tr>\n<tr id=\"row_44_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\" target=\"_self\">Satori.IApiIdentifyRequest</a></td><td class=\"desc\">Enrich/replace the current session with a new ID </td></tr>\n<tr id=\"row_45_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\" target=\"_self\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"desc\">Represents a complete leaderboard record with all scores and associated metadata </td></tr>\n<tr id=\"row_46_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\" target=\"_self\">Nakama.IApiLeaderboardRecord</a></td><td class=\"desc\">Represents a complete leaderboard record with all scores and associated metadata </td></tr>\n<tr id=\"row_47_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\" target=\"_self\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"desc\">A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records </td></tr>\n<tr id=\"row_48_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\" target=\"_self\">Nakama.IApiLinkSteamRequest</a></td><td class=\"desc\">Link Steam to the current user's account </td></tr>\n<tr id=\"row_49_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\" target=\"_self\">Nakama.IApiListSubscriptionsRequest</a></td><td class=\"desc\">List user subscriptions </td></tr>\n<tr id=\"row_50_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\" target=\"_self\">Satori.IApiLiveEvent</a></td><td class=\"desc\">A single live event </td></tr>\n<tr id=\"row_51_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\" target=\"_self\">Satori.IApiLiveEventList</a></td><td class=\"desc\">List of Live events </td></tr>\n<tr id=\"row_52_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\" target=\"_self\">Nakama.IApiMatch</a></td><td class=\"desc\">Represents a realtime match </td></tr>\n<tr id=\"row_53_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\" target=\"_self\">Nakama.IApiMatchList</a></td><td class=\"desc\">A list of realtime matches </td></tr>\n<tr id=\"row_54_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\" target=\"_self\">Nakama.IApiMatchmakerCompletionStats</a></td><td class=\"desc\">Matchmaker ticket completion stats </td></tr>\n<tr id=\"row_55_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\" target=\"_self\">Nakama.IApiMatchmakerStats</a></td><td class=\"desc\">Matchmaker stats </td></tr>\n<tr id=\"row_56_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\" target=\"_self\">Satori.IApiMessage</a></td><td class=\"desc\">A scheduled message </td></tr>\n<tr id=\"row_57_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\" target=\"_self\">Nakama.Console.IApiNotification</a></td><td class=\"desc\">A notification in the server </td></tr>\n<tr id=\"row_58_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\" target=\"_self\">Nakama.IApiNotification</a></td><td class=\"desc\">A notification in the server </td></tr>\n<tr id=\"row_59_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\" target=\"_self\">Nakama.IApiNotificationList</a></td><td class=\"desc\">A collection of zero or more notifications </td></tr>\n<tr id=\"row_60_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\" target=\"_self\">Nakama.IApiParty</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_61_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\" target=\"_self\">Nakama.IApiPartyList</a></td><td class=\"desc\">A list of realtime matches </td></tr>\n<tr id=\"row_62_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\" target=\"_self\">Satori.IApiProperties</a></td><td class=\"desc\">Properties associated with an identity </td></tr>\n<tr id=\"row_63_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_63_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('63_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\" target=\"_self\">Nakama.IApiReadStorageObjectId</a></td><td class=\"desc\">Storage objects to get </td></tr>\n<tr id=\"row_63_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\" target=\"_self\">Nakama.StorageObjectId</a></td><td class=\"desc\">An identifier for a storage object </td></tr>\n<tr id=\"row_64_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\" target=\"_self\">Nakama.IApiReadStorageObjectsRequest</a></td><td class=\"desc\">Batch get storage objects </td></tr>\n<tr id=\"row_65_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\" target=\"_self\">Nakama.IApiRpc</a></td><td class=\"desc\">Execute an Lua function on the server </td></tr>\n<tr id=\"row_66_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\" target=\"_self\">Nakama.IApiSession</a></td><td class=\"desc\">A user's session used to authenticate messages </td></tr>\n<tr id=\"row_67_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\" target=\"_self\">Satori.IApiSession</a></td><td class=\"desc\">A session </td></tr>\n<tr id=\"row_68_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\" target=\"_self\">Nakama.IApiSessionLogoutRequest</a></td><td class=\"desc\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user </td></tr>\n<tr id=\"row_69_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\" target=\"_self\">Nakama.IApiSessionRefreshRequest</a></td><td class=\"desc\">Authenticate against the server with a refresh token </td></tr>\n<tr id=\"row_70_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\" target=\"_self\">Nakama.Console.IApiStorageObject</a></td><td class=\"desc\">An object within the storage engine </td></tr>\n<tr id=\"row_71_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\" target=\"_self\">Nakama.IApiStorageObject</a></td><td class=\"desc\">An object within the storage engine </td></tr>\n<tr id=\"row_72_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\" target=\"_self\">Nakama.Console.IApiStorageObjectAck</a></td><td class=\"desc\">A storage acknowledgement </td></tr>\n<tr id=\"row_73_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\" target=\"_self\">Nakama.IApiStorageObjectAck</a></td><td class=\"desc\">A storage acknowledgement </td></tr>\n<tr id=\"row_74_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\" target=\"_self\">Nakama.IApiStorageObjectAcks</a></td><td class=\"desc\">Batch of acknowledgements for the storage object write </td></tr>\n<tr id=\"row_75_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\" target=\"_self\">Nakama.IApiStorageObjectList</a></td><td class=\"desc\">List of storage objects </td></tr>\n<tr id=\"row_76_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\" target=\"_self\">Nakama.IApiStorageObjects</a></td><td class=\"desc\">Batch of storage objects </td></tr>\n<tr id=\"row_77_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\" target=\"_self\">Nakama.IApiSubscriptionList</a></td><td class=\"desc\">A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_78_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\" target=\"_self\">Nakama.IApiTournament</a></td><td class=\"desc\">A tournament on the server </td></tr>\n<tr id=\"row_79_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\" target=\"_self\">Nakama.IApiTournamentList</a></td><td class=\"desc\">A list of tournaments </td></tr>\n<tr id=\"row_80_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\" target=\"_self\">Nakama.IApiTournamentRecordList</a></td><td class=\"desc\">A set of tournament records which may be part of a tournament records page or a batch of individual records </td></tr>\n<tr id=\"row_81_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\" target=\"_self\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"desc\">Update a user's account details </td></tr>\n<tr id=\"row_82_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\" target=\"_self\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"desc\">Update fields in a given group </td></tr>\n<tr id=\"row_83_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\" target=\"_self\">Satori.IApiUpdateMessageRequest</a></td><td class=\"desc\">The request to update the status of a message </td></tr>\n<tr id=\"row_84_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\" target=\"_self\">Satori.IApiUpdatePropertiesRequest</a></td><td class=\"desc\">Update Properties associated with this identity </td></tr>\n<tr id=\"row_85_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\" target=\"_self\">Nakama.Console.IApiUser</a></td><td class=\"desc\">A user in the server </td></tr>\n<tr id=\"row_86_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\" target=\"_self\">Nakama.IApiUser</a></td><td class=\"desc\">A user in the server </td></tr>\n<tr id=\"row_87_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\" target=\"_self\">Nakama.Console.IApiUserGroupList</a></td><td class=\"desc\">A list of groups belonging to a user, along with the user's role in each group </td></tr>\n<tr id=\"row_88_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\" target=\"_self\">Nakama.IApiUserGroupList</a></td><td class=\"desc\">A list of groups belonging to a user, along with the user's role in each group </td></tr>\n<tr id=\"row_89_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\" target=\"_self\">Nakama.IApiUsers</a></td><td class=\"desc\">A collection of zero or more users </td></tr>\n<tr id=\"row_90_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\" target=\"_self\">Nakama.IApiValidatedPurchase</a></td><td class=\"desc\">Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_91_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\" target=\"_self\">Nakama.IApiValidatedSubscription</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_92_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\" target=\"_self\">Nakama.IApiValidatePurchaseAppleRequest</a></td><td class=\"desc\">Apple IAP Purchases validation request </td></tr>\n<tr id=\"row_93_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\" target=\"_self\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></td><td class=\"desc\">Facebook Instant IAP Purchase validation request </td></tr>\n<tr id=\"row_94_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\" target=\"_self\">Nakama.IApiValidatePurchaseGoogleRequest</a></td><td class=\"desc\">Google IAP Purchase validation request </td></tr>\n<tr id=\"row_95_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\" target=\"_self\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td><td class=\"desc\">Huawei IAP Purchase validation request </td></tr>\n<tr id=\"row_96_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\" target=\"_self\">Nakama.IApiValidatePurchaseResponse</a></td><td class=\"desc\">Validate IAP response </td></tr>\n<tr id=\"row_97_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\" target=\"_self\">Nakama.IApiValidateSubscriptionAppleRequest</a></td><td class=\"desc\">Apple Subscription validation request </td></tr>\n<tr id=\"row_98_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\" target=\"_self\">Nakama.IApiValidateSubscriptionGoogleRequest</a></td><td class=\"desc\">Google Subscription validation request </td></tr>\n<tr id=\"row_99_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\" target=\"_self\">Nakama.IApiValidateSubscriptionResponse</a></td><td class=\"desc\">Validate Subscription response </td></tr>\n<tr id=\"row_100_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_100_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('100_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\" target=\"_self\">Nakama.IApiWriteStorageObject</a></td><td class=\"desc\">The object to store </td></tr>\n<tr id=\"row_100_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\" target=\"_self\">Nakama.WriteStorageObject</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_101_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\" target=\"_self\">Nakama.IApiWriteStorageObjectsRequest</a></td><td class=\"desc\">Write objects to the storage engine </td></tr>\n<tr id=\"row_102_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_102_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('102_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\" target=\"_self\">Nakama.Ninja.WebSockets.IBufferPool</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_102_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" target=\"_self\">Nakama.Ninja.WebSockets.BufferPool</a></td><td class=\"desc\">This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes </td></tr>\n<tr id=\"row_103_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\" target=\"_self\">Nakama.IChannel</a></td><td class=\"desc\">A chat channel on the server </td></tr>\n<tr id=\"row_104_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\" target=\"_self\">Nakama.IChannelMessageAck</a></td><td class=\"desc\">An acknowledgement from the server when a chat message is delivered to a channel </td></tr>\n<tr id=\"row_105_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\" target=\"_self\">Nakama.IChannelPresenceEvent</a></td><td class=\"desc\">A batch of join and leave presences on a chat channel </td></tr>\n<tr id=\"row_106_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_106_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('106_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\" target=\"_self\">Nakama.IClient</a></td><td class=\"desc\">A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_106_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_client.html\" target=\"_self\">Nakama.Client</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_107_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_107_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('107_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_client.html\" target=\"_self\">Satori.IClient</a></td><td class=\"desc\">A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server </td></tr>\n<tr id=\"row_107_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_client.html\" target=\"_self\">Satori.Client</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_108_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\" target=\"_self\">Nakama.Console.IConfigWarning</a></td><td class=\"desc\">A warning for a configuration field </td></tr>\n<tr id=\"row_109_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\" target=\"_self\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"desc\">An export of all information stored for a user account </td></tr>\n<tr id=\"row_110_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\" target=\"_self\">Nakama.Console.IConsoleAuthenticateRequest</a></td><td class=\"desc\">Authenticate a console user with username and password </td></tr>\n<tr id=\"row_111_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\" target=\"_self\">Nakama.Console.IConsoleConfig</a></td><td class=\"desc\">The current server configuration and any associated warnings </td></tr>\n<tr id=\"row_112_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\" target=\"_self\">Nakama.Console.IConsoleConsoleSession</a></td><td class=\"desc\">A console user session </td></tr>\n<tr id=\"row_113_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\" target=\"_self\">Nakama.Console.IConsoleStatusList</a></td><td class=\"desc\">List of nodes and their stats </td></tr>\n<tr id=\"row_114_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\" target=\"_self\">Nakama.Console.IConsoleStorageList</a></td><td class=\"desc\">List of storage objects </td></tr>\n<tr id=\"row_115_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\" target=\"_self\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></td><td class=\"desc\">Unlink a particular device ID from a user's account </td></tr>\n<tr id=\"row_116_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\" target=\"_self\">Nakama.Console.IConsoleUserList</a></td><td class=\"desc\">A list of users </td></tr>\n<tr id=\"row_117_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\" target=\"_self\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"desc\">An individual update to a user's wallet </td></tr>\n<tr id=\"row_118_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\" target=\"_self\">Nakama.Console.IConsoleWalletLedgerList</a></td><td class=\"desc\">List of wallet ledger items for a particular user </td></tr>\n<tr id=\"row_119_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\" target=\"_self\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"desc\">Write a new storage object or update an existing one </td></tr>\n<tr id=\"row_120_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\" target=\"_self\">Satori.IFlagValueChangeReason</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_121_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\" target=\"_self\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></td><td class=\"desc\">A friend of a friend </td></tr>\n<tr id=\"row_122_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\" target=\"_self\">Nakama.IGroupUserListGroupUser</a></td><td class=\"desc\">A single user-role pair </td></tr>\n<tr id=\"row_123_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_123_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('123_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\" target=\"_self\">Nakama.IHttpAdapter</a></td><td class=\"desc\">An adapter which implements the HTTP protocol </td></tr>\n<tr id=\"row_123_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\" target=\"_self\">Nakama.HttpRequestAdapter</a></td><td class=\"desc\">HTTP Request adapter which uses the .NET HttpClient to send requests </td></tr>\n<tr id=\"row_124_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_124_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('124_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\" target=\"_self\">Satori.IHttpAdapter</a></td><td class=\"desc\">An adapter which implements the HTTP protocol </td></tr>\n<tr id=\"row_124_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\" target=\"_self\">Satori.HttpRequestAdapter</a></td><td class=\"desc\">HTTP Request adapter which uses the .NET HttpClient to send requests </td></tr>\n<tr id=\"row_125_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\" target=\"_self\">Nakama.ILogger</a></td><td class=\"desc\">A simple logger to write log messages to an output sink </td></tr>\n<tr id=\"row_126_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\" target=\"_self\">Satori.ILogger</a></td><td class=\"desc\">A simple logger to write log messages to an output sink </td></tr>\n<tr id=\"row_127_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\" target=\"_self\">Nakama.IMatch</a></td><td class=\"desc\">A multiplayer match </td></tr>\n<tr id=\"row_128_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\" target=\"_self\">Nakama.IMatchmakerMatched</a></td><td class=\"desc\">The result of a successful matchmaker operation sent to the server </td></tr>\n<tr id=\"row_129_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\" target=\"_self\">Nakama.IMatchmakerTicket</a></td><td class=\"desc\">The matchmaker ticket received from the server </td></tr>\n<tr id=\"row_130_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\" target=\"_self\">Nakama.IMatchmakerUser</a></td><td class=\"desc\">The user with the parameters they sent to the server when asking for opponents </td></tr>\n<tr id=\"row_131_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\" target=\"_self\">Nakama.IMatchPresenceEvent</a></td><td class=\"desc\">A batch of join and leave presences for a match </td></tr>\n<tr id=\"row_132_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\" target=\"_self\">Nakama.IMatchState</a></td><td class=\"desc\">Some game state update in a match </td></tr>\n<tr id=\"row_133_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\" target=\"_self\">Nakama.Console.INakamaapiAccount</a></td><td class=\"desc\">A user with additional account details. Always the current user </td></tr>\n<tr id=\"row_134_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\" target=\"_self\">Nakama.Console.INakamaconsoleAccount</a></td><td class=\"desc\">Account information </td></tr>\n<tr id=\"row_135_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\" target=\"_self\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"desc\">Update user account information </td></tr>\n<tr id=\"row_136_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\" target=\"_self\">Nakama.IParty</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_137_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\" target=\"_self\">Nakama.IPartyClose</a></td><td class=\"desc\">End a party, kicking all party members and closing it </td></tr>\n<tr id=\"row_138_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\" target=\"_self\">Nakama.IPartyData</a></td><td class=\"desc\">Incoming party data delivered from the server </td></tr>\n<tr id=\"row_139_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\" target=\"_self\">Nakama.IPartyJoinRequest</a></td><td class=\"desc\">Incoming notification for one or more new presences attempting to join the party </td></tr>\n<tr id=\"row_140_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\" target=\"_self\">Nakama.IPartyLeader</a></td><td class=\"desc\">Announcement of a new party leader </td></tr>\n<tr id=\"row_141_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\" target=\"_self\">Nakama.IPartyMatchmakerTicket</a></td><td class=\"desc\">A response from starting a new party matchmaking process </td></tr>\n<tr id=\"row_142_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\" target=\"_self\">Nakama.IPartyPresenceEvent</a></td><td class=\"desc\">Presence update for a particular party </td></tr>\n<tr id=\"row_143_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\" target=\"_self\">Nakama.IPartyUpdate</a></td><td class=\"desc\">Incoming information about a party </td></tr>\n<tr id=\"row_144_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_144_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('144_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\" target=\"_self\">Nakama.Ninja.WebSockets.IPingPongManager</a></td><td class=\"desc\">Ping Pong Manager used to facilitate ping pong WebSocket messages </td></tr>\n<tr id=\"row_144_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" target=\"_self\">Nakama.Ninja.WebSockets.PingPongManager</a></td><td class=\"desc\">Ping Pong Manager used to facilitate ping pong WebSocket messages </td></tr>\n<tr id=\"row_145_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\" target=\"_self\">Nakama.Console.IProtobufAny</a></td><td class=\"desc\"><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" } </td></tr>\n<tr id=\"row_146_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\" target=\"_self\">Nakama.IProtobufAny</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_147_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\" target=\"_self\">Satori.IProtobufAny</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_148_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\" target=\"_self\">Nakama.IRpcStatus</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_149_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\" target=\"_self\">Satori.IRpcStatus</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_150_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\" target=\"_self\">Nakama.Console.IRuntimeError</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_151_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_151_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('151_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\" target=\"_self\">Nakama.ISession</a></td><td class=\"desc\">A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_151_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_session.html\" target=\"_self\">Nakama.Session</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_152_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_152_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('152_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_satori_1_1_i_session.html\" target=\"_self\">Satori.ISession</a></td><td class=\"desc\">A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server </td></tr>\n<tr id=\"row_152_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_session.html\" target=\"_self\">Satori.Session</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_153_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_153_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('153_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\" target=\"_self\">Nakama.ISocket</a></td><td class=\"desc\">A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_153_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_socket.html\" target=\"_self\">Nakama.Socket</a></td><td class=\"desc\">A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API </td></tr>\n<tr id=\"row_154_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_154_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('154_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\" target=\"_self\">Nakama.ISocketAdapter</a></td><td class=\"desc\">An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> </td></tr>\n<tr id=\"row_154_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\" target=\"_self\">Nakama.WebSocketAdapter</a></td><td class=\"desc\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_154_1_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\" target=\"_self\">Nakama.WebSocketStdlibAdapter</a></td><td class=\"desc\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server </td></tr>\n<tr id=\"row_155_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\" target=\"_self\">Nakama.IStatus</a></td><td class=\"desc\">Receive status updates for users </td></tr>\n<tr id=\"row_156_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\" target=\"_self\">Nakama.Console.IStatusListStatus</a></td><td class=\"desc\">The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node </td></tr>\n<tr id=\"row_157_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\" target=\"_self\">Nakama.IStatusPresenceEvent</a></td><td class=\"desc\">A status update event about other users who've come online or gone offline </td></tr>\n<tr id=\"row_158_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\" target=\"_self\">Nakama.IStream</a></td><td class=\"desc\">A realtime socket stream on the server </td></tr>\n<tr id=\"row_159_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\" target=\"_self\">Nakama.IStreamPresenceEvent</a></td><td class=\"desc\">A batch of joins and leaves on the low level stream </td></tr>\n<tr id=\"row_160_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\" target=\"_self\">Nakama.IStreamState</a></td><td class=\"desc\">A state change received from a stream </td></tr>\n<tr id=\"row_161_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\" target=\"_self\">Nakama.Console.IUserGroupListUserGroup</a></td><td class=\"desc\">A single group-role pair </td></tr>\n<tr id=\"row_162_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\" target=\"_self\">Nakama.IUserGroupListUserGroup</a></td><td class=\"desc\">A single group-role pair </td></tr>\n<tr id=\"row_163_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\" target=\"_self\">Nakama.IUserPresence</a></td><td class=\"desc\">An object which represents a connected user in the server </td></tr>\n<tr id=\"row_164_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_164_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('164_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\" target=\"_self\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a></td><td class=\"desc\">Web socket client factory used to open web socket client connections </td></tr>\n<tr id=\"row_164_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" target=\"_self\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a></td><td class=\"desc\">Web socket client factory used to open web socket client connections </td></tr>\n<tr id=\"row_165_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_165_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('165_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\" target=\"_self\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a></td><td class=\"desc\">Web socket server factory used to open web socket server connections </td></tr>\n<tr id=\"row_165_0_\" class=\"even\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" target=\"_self\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a></td><td class=\"desc\">Web socket server factory used to open web socket server connections </td></tr>\n<tr id=\"row_166_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\" target=\"_self\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"desc\">Record values to write </td></tr>\n<tr id=\"row_167_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\" target=\"_self\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"desc\">Record values to write </td></tr>\n<tr id=\"row_168_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_168_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('168_')\"><span class=\"arrowhead closed\"></span></span><span class=\"icona\"><span class=\"icon\">C</span></span><b>MemoryStream</b></td><td class=\"desc\"></td></tr>\n<tr id=\"row_168_0_\" class=\"odd\" style=\"display:none;\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\" target=\"_self\">Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream</a></td><td class=\"desc\">This memory stream is not instance thread safe (not to be confused with the <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\">BufferPool</a> which is instance thread safe) </td></tr>\n<tr id=\"row_169_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_retry.html\" target=\"_self\">Nakama.Retry</a></td><td class=\"desc\">Represents a single retry attempt </td></tr>\n<tr id=\"row_170_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_retry.html\" target=\"_self\">Satori.Retry</a></td><td class=\"desc\">Represents a single retry attempt </td></tr>\n<tr id=\"row_171_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" target=\"_self\">Nakama.RetryConfiguration</a></td><td class=\"desc\">A configuration for controlling retriable requests </td></tr>\n<tr id=\"row_172_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" target=\"_self\">Satori.RetryConfiguration</a></td><td class=\"desc\">A configuration for controlling retriable requests </td></tr>\n<tr id=\"row_173_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\" target=\"_self\">Nakama.Ninja.WebSockets.WebSocketClientOptions</a></td><td class=\"desc\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options </td></tr>\n<tr id=\"row_174_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" target=\"_self\">Nakama.Ninja.WebSockets.WebSocketHttpContext</a></td><td class=\"desc\">The WebSocket HTTP Context used to initiate a WebSocket handshake </td></tr>\n<tr id=\"row_175_\" class=\"odd\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">C</span></span><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\" target=\"_self\">Nakama.Ninja.WebSockets.WebSocketServerOptions</a></td><td class=\"desc\">Server WebSocket init options </td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/hierarchy.js",
    "content": "var hierarchy =\n[\n    [ \"Satori.Event\", \"class_satori_1_1_event.html\", null ],\n    [ \"EventArgs\", null, [\n      [ \"Nakama.Ninja.WebSockets.PongEventArgs\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\", null ]\n    ] ],\n    [ \"Exception\", null, [\n      [ \"Nakama.ApiResponseException\", \"class_nakama_1_1_api_response_exception.html\", null ],\n      [ \"Nakama.Console.ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\", null ],\n      [ \"Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\", null ],\n      [ \"Satori.ApiResponseException\", \"class_satori_1_1_api_response_exception.html\", null ]\n    ] ],\n    [ \"Nakama.Ninja.WebSockets.HttpHelper\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\", null ],\n    [ \"Nakama.IApiAccount\", \"interface_nakama_1_1_i_api_account.html\", null ],\n    [ \"Nakama.IApiAccountApple\", \"interface_nakama_1_1_i_api_account_apple.html\", null ],\n    [ \"Nakama.IApiAccountCustom\", \"interface_nakama_1_1_i_api_account_custom.html\", null ],\n    [ \"Nakama.Console.IApiAccountDevice\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html\", null ],\n    [ \"Nakama.IApiAccountDevice\", \"interface_nakama_1_1_i_api_account_device.html\", null ],\n    [ \"Nakama.IApiAccountEmail\", \"interface_nakama_1_1_i_api_account_email.html\", null ],\n    [ \"Nakama.IApiAccountFacebook\", \"interface_nakama_1_1_i_api_account_facebook.html\", null ],\n    [ \"Nakama.IApiAccountFacebookInstantGame\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html\", null ],\n    [ \"Nakama.IApiAccountGameCenter\", \"interface_nakama_1_1_i_api_account_game_center.html\", null ],\n    [ \"Nakama.IApiAccountGoogle\", \"interface_nakama_1_1_i_api_account_google.html\", null ],\n    [ \"Nakama.IApiAccountSteam\", \"interface_nakama_1_1_i_api_account_steam.html\", null ],\n    [ \"Satori.IApiAuthenticateLogoutRequest\", \"interface_satori_1_1_i_api_authenticate_logout_request.html\", null ],\n    [ \"Satori.IApiAuthenticateRefreshRequest\", \"interface_satori_1_1_i_api_authenticate_refresh_request.html\", null ],\n    [ \"Satori.IApiAuthenticateRequest\", \"interface_satori_1_1_i_api_authenticate_request.html\", null ],\n    [ \"Nakama.Console.IApiChannelMessage\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html\", null ],\n    [ \"Nakama.IApiChannelMessage\", \"interface_nakama_1_1_i_api_channel_message.html\", null ],\n    [ \"Nakama.IApiChannelMessageList\", \"interface_nakama_1_1_i_api_channel_message_list.html\", null ],\n    [ \"Nakama.IApiCreateGroupRequest\", \"interface_nakama_1_1_i_api_create_group_request.html\", null ],\n    [ \"Nakama.IApiDeleteStorageObjectId\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html\", [\n      [ \"Nakama.StorageObjectId\", \"class_nakama_1_1_storage_object_id.html\", null ]\n    ] ],\n    [ \"Nakama.IApiDeleteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html\", null ],\n    [ \"Nakama.IApiEvent\", \"interface_nakama_1_1_i_api_event.html\", null ],\n    [ \"Satori.IApiEvent\", \"interface_satori_1_1_i_api_event.html\", null ],\n    [ \"Satori.IApiEventRequest\", \"interface_satori_1_1_i_api_event_request.html\", null ],\n    [ \"Satori.IApiExperiment\", \"interface_satori_1_1_i_api_experiment.html\", null ],\n    [ \"Satori.IApiExperimentList\", \"interface_satori_1_1_i_api_experiment_list.html\", null ],\n    [ \"Satori.IApiFlag\", \"interface_satori_1_1_i_api_flag.html\", null ],\n    [ \"Satori.IApiFlagList\", \"interface_satori_1_1_i_api_flag_list.html\", null ],\n    [ \"Satori.IApiFlagOverride\", \"interface_satori_1_1_i_api_flag_override.html\", null ],\n    [ \"Satori.IApiFlagOverrideList\", \"interface_satori_1_1_i_api_flag_override_list.html\", null ],\n    [ \"Satori.IApiFlagOverrideValue\", \"interface_satori_1_1_i_api_flag_override_value.html\", null ],\n    [ \"Nakama.Console.IApiFriend\", \"interface_nakama_1_1_console_1_1_i_api_friend.html\", null ],\n    [ \"Nakama.IApiFriend\", \"interface_nakama_1_1_i_api_friend.html\", null ],\n    [ \"Nakama.Console.IApiFriendList\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html\", null ],\n    [ \"Nakama.IApiFriendList\", \"interface_nakama_1_1_i_api_friend_list.html\", null ],\n    [ \"Nakama.IApiFriendsOfFriendsList\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html\", null ],\n    [ \"Satori.IApiGetMessageListResponse\", \"interface_satori_1_1_i_api_get_message_list_response.html\", null ],\n    [ \"Nakama.Console.IApiGroup\", \"interface_nakama_1_1_console_1_1_i_api_group.html\", null ],\n    [ \"Nakama.IApiGroup\", \"interface_nakama_1_1_i_api_group.html\", null ],\n    [ \"Nakama.IApiGroupList\", \"interface_nakama_1_1_i_api_group_list.html\", null ],\n    [ \"Nakama.IApiGroupUserList\", \"interface_nakama_1_1_i_api_group_user_list.html\", null ],\n    [ \"Satori.IApiIdentifyRequest\", \"interface_satori_1_1_i_api_identify_request.html\", null ],\n    [ \"Nakama.Console.IApiLeaderboardRecord\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\", null ],\n    [ \"Nakama.IApiLeaderboardRecord\", \"interface_nakama_1_1_i_api_leaderboard_record.html\", null ],\n    [ \"Nakama.IApiLeaderboardRecordList\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html\", null ],\n    [ \"Nakama.IApiLinkSteamRequest\", \"interface_nakama_1_1_i_api_link_steam_request.html\", null ],\n    [ \"Nakama.IApiListSubscriptionsRequest\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html\", null ],\n    [ \"Satori.IApiLiveEvent\", \"interface_satori_1_1_i_api_live_event.html\", null ],\n    [ \"Satori.IApiLiveEventList\", \"interface_satori_1_1_i_api_live_event_list.html\", null ],\n    [ \"Nakama.IApiMatch\", \"interface_nakama_1_1_i_api_match.html\", null ],\n    [ \"Nakama.IApiMatchList\", \"interface_nakama_1_1_i_api_match_list.html\", null ],\n    [ \"Nakama.IApiMatchmakerCompletionStats\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\", null ],\n    [ \"Nakama.IApiMatchmakerStats\", \"interface_nakama_1_1_i_api_matchmaker_stats.html\", null ],\n    [ \"Satori.IApiMessage\", \"interface_satori_1_1_i_api_message.html\", null ],\n    [ \"Nakama.Console.IApiNotification\", \"interface_nakama_1_1_console_1_1_i_api_notification.html\", null ],\n    [ \"Nakama.IApiNotification\", \"interface_nakama_1_1_i_api_notification.html\", null ],\n    [ \"Nakama.IApiNotificationList\", \"interface_nakama_1_1_i_api_notification_list.html\", null ],\n    [ \"Nakama.IApiParty\", \"interface_nakama_1_1_i_api_party.html\", null ],\n    [ \"Nakama.IApiPartyList\", \"interface_nakama_1_1_i_api_party_list.html\", null ],\n    [ \"Satori.IApiProperties\", \"interface_satori_1_1_i_api_properties.html\", null ],\n    [ \"Nakama.IApiReadStorageObjectId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html\", [\n      [ \"Nakama.StorageObjectId\", \"class_nakama_1_1_storage_object_id.html\", null ]\n    ] ],\n    [ \"Nakama.IApiReadStorageObjectsRequest\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html\", null ],\n    [ \"Nakama.IApiRpc\", \"interface_nakama_1_1_i_api_rpc.html\", null ],\n    [ \"Nakama.IApiSession\", \"interface_nakama_1_1_i_api_session.html\", null ],\n    [ \"Satori.IApiSession\", \"interface_satori_1_1_i_api_session.html\", null ],\n    [ \"Nakama.IApiSessionLogoutRequest\", \"interface_nakama_1_1_i_api_session_logout_request.html\", null ],\n    [ \"Nakama.IApiSessionRefreshRequest\", \"interface_nakama_1_1_i_api_session_refresh_request.html\", null ],\n    [ \"Nakama.Console.IApiStorageObject\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html\", null ],\n    [ \"Nakama.IApiStorageObject\", \"interface_nakama_1_1_i_api_storage_object.html\", null ],\n    [ \"Nakama.Console.IApiStorageObjectAck\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\", null ],\n    [ \"Nakama.IApiStorageObjectAck\", \"interface_nakama_1_1_i_api_storage_object_ack.html\", null ],\n    [ \"Nakama.IApiStorageObjectAcks\", \"interface_nakama_1_1_i_api_storage_object_acks.html\", null ],\n    [ \"Nakama.IApiStorageObjectList\", \"interface_nakama_1_1_i_api_storage_object_list.html\", null ],\n    [ \"Nakama.IApiStorageObjects\", \"interface_nakama_1_1_i_api_storage_objects.html\", null ],\n    [ \"Nakama.IApiSubscriptionList\", \"interface_nakama_1_1_i_api_subscription_list.html\", null ],\n    [ \"Nakama.IApiTournament\", \"interface_nakama_1_1_i_api_tournament.html\", null ],\n    [ \"Nakama.IApiTournamentList\", \"interface_nakama_1_1_i_api_tournament_list.html\", null ],\n    [ \"Nakama.IApiTournamentRecordList\", \"interface_nakama_1_1_i_api_tournament_record_list.html\", null ],\n    [ \"Nakama.IApiUpdateAccountRequest\", \"interface_nakama_1_1_i_api_update_account_request.html\", null ],\n    [ \"Nakama.IApiUpdateGroupRequest\", \"interface_nakama_1_1_i_api_update_group_request.html\", null ],\n    [ \"Satori.IApiUpdateMessageRequest\", \"interface_satori_1_1_i_api_update_message_request.html\", null ],\n    [ \"Satori.IApiUpdatePropertiesRequest\", \"interface_satori_1_1_i_api_update_properties_request.html\", null ],\n    [ \"Nakama.Console.IApiUser\", \"interface_nakama_1_1_console_1_1_i_api_user.html\", null ],\n    [ \"Nakama.IApiUser\", \"interface_nakama_1_1_i_api_user.html\", null ],\n    [ \"Nakama.Console.IApiUserGroupList\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\", null ],\n    [ \"Nakama.IApiUserGroupList\", \"interface_nakama_1_1_i_api_user_group_list.html\", null ],\n    [ \"Nakama.IApiUsers\", \"interface_nakama_1_1_i_api_users.html\", null ],\n    [ \"Nakama.IApiValidatedPurchase\", \"interface_nakama_1_1_i_api_validated_purchase.html\", null ],\n    [ \"Nakama.IApiValidatedSubscription\", \"interface_nakama_1_1_i_api_validated_subscription.html\", null ],\n    [ \"Nakama.IApiValidatePurchaseAppleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\", null ],\n    [ \"Nakama.IApiValidatePurchaseFacebookInstantRequest\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\", null ],\n    [ \"Nakama.IApiValidatePurchaseGoogleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html\", null ],\n    [ \"Nakama.IApiValidatePurchaseHuaweiRequest\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\", null ],\n    [ \"Nakama.IApiValidatePurchaseResponse\", \"interface_nakama_1_1_i_api_validate_purchase_response.html\", null ],\n    [ \"Nakama.IApiValidateSubscriptionAppleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\", null ],\n    [ \"Nakama.IApiValidateSubscriptionGoogleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html\", null ],\n    [ \"Nakama.IApiValidateSubscriptionResponse\", \"interface_nakama_1_1_i_api_validate_subscription_response.html\", null ],\n    [ \"Nakama.IApiWriteStorageObject\", \"interface_nakama_1_1_i_api_write_storage_object.html\", [\n      [ \"Nakama.WriteStorageObject\", \"class_nakama_1_1_write_storage_object.html\", null ]\n    ] ],\n    [ \"Nakama.IApiWriteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.IBufferPool\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\", [\n      [ \"Nakama.Ninja.WebSockets.BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\", null ]\n    ] ],\n    [ \"Nakama.IChannel\", \"interface_nakama_1_1_i_channel.html\", null ],\n    [ \"Nakama.IChannelMessageAck\", \"interface_nakama_1_1_i_channel_message_ack.html\", null ],\n    [ \"Nakama.IChannelPresenceEvent\", \"interface_nakama_1_1_i_channel_presence_event.html\", null ],\n    [ \"Nakama.IClient\", \"interface_nakama_1_1_i_client.html\", [\n      [ \"Nakama.Client\", \"class_nakama_1_1_client.html\", null ]\n    ] ],\n    [ \"Satori.IClient\", \"interface_satori_1_1_i_client.html\", [\n      [ \"Satori.Client\", \"class_satori_1_1_client.html\", null ]\n    ] ],\n    [ \"Nakama.Console.IConfigWarning\", \"interface_nakama_1_1_console_1_1_i_config_warning.html\", null ],\n    [ \"Nakama.Console.IConsoleAccountExport\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html\", null ],\n    [ \"Nakama.Console.IConsoleAuthenticateRequest\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\", null ],\n    [ \"Nakama.Console.IConsoleConfig\", \"interface_nakama_1_1_console_1_1_i_console_config.html\", null ],\n    [ \"Nakama.Console.IConsoleConsoleSession\", \"interface_nakama_1_1_console_1_1_i_console_console_session.html\", null ],\n    [ \"Nakama.Console.IConsoleStatusList\", \"interface_nakama_1_1_console_1_1_i_console_status_list.html\", null ],\n    [ \"Nakama.Console.IConsoleStorageList\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html\", null ],\n    [ \"Nakama.Console.IConsoleUnlinkDeviceRequest\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\", null ],\n    [ \"Nakama.Console.IConsoleUserList\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html\", null ],\n    [ \"Nakama.Console.IConsoleWalletLedger\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\", null ],\n    [ \"Nakama.Console.IConsoleWalletLedgerList\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\", null ],\n    [ \"Nakama.Console.IConsoleWriteStorageObjectRequest\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\", null ],\n    [ \"Satori.IFlagValueChangeReason\", \"interface_satori_1_1_i_flag_value_change_reason.html\", null ],\n    [ \"Nakama.IFriendsOfFriendsListFriendOfFriend\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\", null ],\n    [ \"Nakama.IGroupUserListGroupUser\", \"interface_nakama_1_1_i_group_user_list_group_user.html\", null ],\n    [ \"Nakama.IHttpAdapter\", \"interface_nakama_1_1_i_http_adapter.html\", [\n      [ \"Nakama.HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html\", null ]\n    ] ],\n    [ \"Satori.IHttpAdapter\", \"interface_satori_1_1_i_http_adapter.html\", [\n      [ \"Satori.HttpRequestAdapter\", \"class_satori_1_1_http_request_adapter.html\", null ]\n    ] ],\n    [ \"Nakama.ILogger\", \"interface_nakama_1_1_i_logger.html\", null ],\n    [ \"Satori.ILogger\", \"interface_satori_1_1_i_logger.html\", null ],\n    [ \"Nakama.IMatch\", \"interface_nakama_1_1_i_match.html\", null ],\n    [ \"Nakama.IMatchmakerMatched\", \"interface_nakama_1_1_i_matchmaker_matched.html\", null ],\n    [ \"Nakama.IMatchmakerTicket\", \"interface_nakama_1_1_i_matchmaker_ticket.html\", null ],\n    [ \"Nakama.IMatchmakerUser\", \"interface_nakama_1_1_i_matchmaker_user.html\", null ],\n    [ \"Nakama.IMatchPresenceEvent\", \"interface_nakama_1_1_i_match_presence_event.html\", null ],\n    [ \"Nakama.IMatchState\", \"interface_nakama_1_1_i_match_state.html\", null ],\n    [ \"Nakama.Console.INakamaapiAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\", null ],\n    [ \"Nakama.Console.INakamaconsoleAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\", null ],\n    [ \"Nakama.Console.INakamaconsoleUpdateAccountRequest\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\", null ],\n    [ \"Nakama.IParty\", \"interface_nakama_1_1_i_party.html\", null ],\n    [ \"Nakama.IPartyClose\", \"interface_nakama_1_1_i_party_close.html\", null ],\n    [ \"Nakama.IPartyData\", \"interface_nakama_1_1_i_party_data.html\", null ],\n    [ \"Nakama.IPartyJoinRequest\", \"interface_nakama_1_1_i_party_join_request.html\", null ],\n    [ \"Nakama.IPartyLeader\", \"interface_nakama_1_1_i_party_leader.html\", null ],\n    [ \"Nakama.IPartyMatchmakerTicket\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html\", null ],\n    [ \"Nakama.IPartyPresenceEvent\", \"interface_nakama_1_1_i_party_presence_event.html\", null ],\n    [ \"Nakama.IPartyUpdate\", \"interface_nakama_1_1_i_party_update.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.IPingPongManager\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\", [\n      [ \"Nakama.Ninja.WebSockets.PingPongManager\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\", null ]\n    ] ],\n    [ \"Nakama.Console.IProtobufAny\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html\", null ],\n    [ \"Nakama.IProtobufAny\", \"interface_nakama_1_1_i_protobuf_any.html\", null ],\n    [ \"Satori.IProtobufAny\", \"interface_satori_1_1_i_protobuf_any.html\", null ],\n    [ \"Nakama.IRpcStatus\", \"interface_nakama_1_1_i_rpc_status.html\", null ],\n    [ \"Satori.IRpcStatus\", \"interface_satori_1_1_i_rpc_status.html\", null ],\n    [ \"Nakama.Console.IRuntimeError\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html\", null ],\n    [ \"Nakama.ISession\", \"interface_nakama_1_1_i_session.html\", [\n      [ \"Nakama.Session\", \"class_nakama_1_1_session.html\", null ]\n    ] ],\n    [ \"Satori.ISession\", \"interface_satori_1_1_i_session.html\", [\n      [ \"Satori.Session\", \"class_satori_1_1_session.html\", null ]\n    ] ],\n    [ \"Nakama.ISocket\", \"interface_nakama_1_1_i_socket.html\", [\n      [ \"Nakama.Socket\", \"class_nakama_1_1_socket.html\", null ]\n    ] ],\n    [ \"Nakama.ISocketAdapter\", \"interface_nakama_1_1_i_socket_adapter.html\", [\n      [ \"Nakama.WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html\", null ],\n      [ \"Nakama.WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html\", null ]\n    ] ],\n    [ \"Nakama.IStatus\", \"interface_nakama_1_1_i_status.html\", null ],\n    [ \"Nakama.Console.IStatusListStatus\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html\", null ],\n    [ \"Nakama.IStatusPresenceEvent\", \"interface_nakama_1_1_i_status_presence_event.html\", null ],\n    [ \"Nakama.IStream\", \"interface_nakama_1_1_i_stream.html\", null ],\n    [ \"Nakama.IStreamPresenceEvent\", \"interface_nakama_1_1_i_stream_presence_event.html\", null ],\n    [ \"Nakama.IStreamState\", \"interface_nakama_1_1_i_stream_state.html\", null ],\n    [ \"Nakama.Console.IUserGroupListUserGroup\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\", null ],\n    [ \"Nakama.IUserGroupListUserGroup\", \"interface_nakama_1_1_i_user_group_list_user_group.html\", null ],\n    [ \"Nakama.IUserPresence\", \"interface_nakama_1_1_i_user_presence.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.IWebSocketClientFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\", [\n      [ \"Nakama.Ninja.WebSockets.WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\", null ]\n    ] ],\n    [ \"Nakama.Ninja.WebSockets.IWebSocketServerFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\", [\n      [ \"Nakama.Ninja.WebSockets.WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\", null ]\n    ] ],\n    [ \"Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\", null ],\n    [ \"Nakama.IWriteTournamentRecordRequestTournamentRecordWrite\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\", null ],\n    [ \"MemoryStream\", null, [\n      [ \"Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\", null ]\n    ] ],\n    [ \"Nakama.Retry\", \"class_nakama_1_1_retry.html\", null ],\n    [ \"Satori.Retry\", \"class_satori_1_1_retry.html\", null ],\n    [ \"Nakama.RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html\", null ],\n    [ \"Satori.RetryConfiguration\", \"class_satori_1_1_retry_configuration.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.WebSocketClientOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.WebSocketHttpContext\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\", null ],\n    [ \"Nakama.Ninja.WebSockets.WebSocketServerOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\", null ]\n];"
  },
  {
    "path": "docs/html/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Main Page</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('index.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama .NET Client Documentation</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<a href=\"doxygen_crawl.html\"></a>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_account_device-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_account_device.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiAccountDevice Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">Nakama.Console.IApiAccountDevice</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">Nakama.Console.IApiAccountDevice</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">Nakama.Console.IApiAccountDevice</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_account_device.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiAccountDevice Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_account_device.html','','interface_nakama_1_1_console_1_1_i_api_account_device-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiAccountDevice Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a device to the server. Used with authenticate/link/unlink and user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a332d88e255f8ec01249173be1cf0e133\" id=\"r_a332d88e255f8ec01249173be1cf0e133\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a332d88e255f8ec01249173be1cf0e133\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a332d88e255f8ec01249173be1cf0e133\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A device identifier. Should be obtained by a platform-specific device API.  <br /></td></tr>\n<tr class=\"memitem:a84d8d865a0853bfb55a78e991a92aa90\" id=\"r_a84d8d865a0853bfb55a78e991a92aa90\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a84d8d865a0853bfb55a78e991a92aa90\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a84d8d865a0853bfb55a78e991a92aa90\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a device to the server. Used with authenticate/link/unlink and user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a332d88e255f8ec01249173be1cf0e133\" name=\"a332d88e255f8ec01249173be1cf0e133\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a332d88e255f8ec01249173be1cf0e133\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiAccountDevice.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A device identifier. Should be obtained by a platform-specific device API. </p>\n\n</div>\n</div>\n<a id=\"a84d8d865a0853bfb55a78e991a92aa90\" name=\"a84d8d865a0853bfb55a78e991a92aa90\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a84d8d865a0853bfb55a78e991a92aa90\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.Console.IApiAccountDevice.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">IApiAccountDevice</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_account_device.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_account_device =\n[\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_channel_message-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_channel_message.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiChannelMessage Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\">ChannelId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\">Content</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\">GroupId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\">MessageId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\">Persistent</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\">RoomName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\">SenderId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\">UserIdOne</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\">UserIdTwo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">Nakama.Console.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_channel_message.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiChannelMessage Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_channel_message.html','','interface_nakama_1_1_console_1_1_i_api_channel_message-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiChannelMessage Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A message sent on a channel.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aefbb1055e9337a302a3177932c85c050\" id=\"r_aefbb1055e9337a302a3177932c85c050\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aefbb1055e9337a302a3177932c85c050\">ChannelId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aefbb1055e9337a302a3177932c85c050\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The channel this message belongs to.  <br /></td></tr>\n<tr class=\"memitem:a192e09a3d4af18616bc0b65669e2b49b\" id=\"r_a192e09a3d4af18616bc0b65669e2b49b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a192e09a3d4af18616bc0b65669e2b49b\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a192e09a3d4af18616bc0b65669e2b49b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The code representing a message type or category.  <br /></td></tr>\n<tr class=\"memitem:a45a5c2ddbd0eef159232202f2ebeda94\" id=\"r_a45a5c2ddbd0eef159232202f2ebeda94\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a45a5c2ddbd0eef159232202f2ebeda94\">Content</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a45a5c2ddbd0eef159232202f2ebeda94\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The content payload.  <br /></td></tr>\n<tr class=\"memitem:aa7bb977779ca2100bad6ce4cd42dd4c6\" id=\"r_aa7bb977779ca2100bad6ce4cd42dd4c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa7bb977779ca2100bad6ce4cd42dd4c6\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa7bb977779ca2100bad6ce4cd42dd4c6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the message was created.  <br /></td></tr>\n<tr class=\"memitem:a7f964b4eb85c2b4cb9789268d22e4e74\" id=\"r_a7f964b4eb85c2b4cb9789268d22e4e74\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f964b4eb85c2b4cb9789268d22e4e74\">GroupId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7f964b4eb85c2b4cb9789268d22e4e74\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the group, or an empty string if this message was not sent through a group channel.  <br /></td></tr>\n<tr class=\"memitem:a3b31094377741c16f421caa584904bb3\" id=\"r_a3b31094377741c16f421caa584904bb3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3b31094377741c16f421caa584904bb3\">MessageId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3b31094377741c16f421caa584904bb3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique ID of this message.  <br /></td></tr>\n<tr class=\"memitem:a4fbb0e6d9e6de4f17f347c8e34ebe366\" id=\"r_a4fbb0e6d9e6de4f17f347c8e34ebe366\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4fbb0e6d9e6de4f17f347c8e34ebe366\">Persistent</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4fbb0e6d9e6de4f17f347c8e34ebe366\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the message was persisted to the channel's history, false otherwise.  <br /></td></tr>\n<tr class=\"memitem:a4dfdc0ecc3181068cd4270cfe5e7bf83\" id=\"r_a4dfdc0ecc3181068cd4270cfe5e7bf83\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4dfdc0ecc3181068cd4270cfe5e7bf83\">RoomName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4dfdc0ecc3181068cd4270cfe5e7bf83\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the chat room, or an empty string if this message was not sent through a chat room.  <br /></td></tr>\n<tr class=\"memitem:a3ae8c0a397dc2efe2160d7c5655b493a\" id=\"r_a3ae8c0a397dc2efe2160d7c5655b493a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3ae8c0a397dc2efe2160d7c5655b493a\">SenderId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3ae8c0a397dc2efe2160d7c5655b493a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Message sender, usually a user ID.  <br /></td></tr>\n<tr class=\"memitem:af1eef5f9c860e13751f0e3383a56ed3c\" id=\"r_af1eef5f9c860e13751f0e3383a56ed3c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af1eef5f9c860e13751f0e3383a56ed3c\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af1eef5f9c860e13751f0e3383a56ed3c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the message was last updated.  <br /></td></tr>\n<tr class=\"memitem:aa6549e653010913d8611c6ee98a7a580\" id=\"r_aa6549e653010913d8611c6ee98a7a580\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa6549e653010913d8611c6ee98a7a580\">UserIdOne</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa6549e653010913d8611c6ee98a7a580\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:abaab7698f30ead8c7bc6ffb0ba8169ee\" id=\"r_abaab7698f30ead8c7bc6ffb0ba8169ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abaab7698f30ead8c7bc6ffb0ba8169ee\">UserIdTwo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abaab7698f30ead8c7bc6ffb0ba8169ee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:a0d14740909d4c062f1fc805b5226b6a7\" id=\"r_a0d14740909d4c062f1fc805b5226b6a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d14740909d4c062f1fc805b5226b6a7\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0d14740909d4c062f1fc805b5226b6a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the message sender, if any.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A message sent on a channel. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aefbb1055e9337a302a3177932c85c050\" name=\"aefbb1055e9337a302a3177932c85c050\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aefbb1055e9337a302a3177932c85c050\">&#9670;&#160;</a></span>ChannelId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.ChannelId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The channel this message belongs to. </p>\n\n</div>\n</div>\n<a id=\"a192e09a3d4af18616bc0b65669e2b49b\" name=\"a192e09a3d4af18616bc0b65669e2b49b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a192e09a3d4af18616bc0b65669e2b49b\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiChannelMessage.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The code representing a message type or category. </p>\n\n</div>\n</div>\n<a id=\"a45a5c2ddbd0eef159232202f2ebeda94\" name=\"a45a5c2ddbd0eef159232202f2ebeda94\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a45a5c2ddbd0eef159232202f2ebeda94\">&#9670;&#160;</a></span>Content</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.Content</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The content payload. </p>\n\n</div>\n</div>\n<a id=\"aa7bb977779ca2100bad6ce4cd42dd4c6\" name=\"aa7bb977779ca2100bad6ce4cd42dd4c6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7bb977779ca2100bad6ce4cd42dd4c6\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the message was created. </p>\n\n</div>\n</div>\n<a id=\"a7f964b4eb85c2b4cb9789268d22e4e74\" name=\"a7f964b4eb85c2b4cb9789268d22e4e74\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f964b4eb85c2b4cb9789268d22e4e74\">&#9670;&#160;</a></span>GroupId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.GroupId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the group, or an empty string if this message was not sent through a group channel. </p>\n\n</div>\n</div>\n<a id=\"a3b31094377741c16f421caa584904bb3\" name=\"a3b31094377741c16f421caa584904bb3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3b31094377741c16f421caa584904bb3\">&#9670;&#160;</a></span>MessageId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.MessageId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique ID of this message. </p>\n\n</div>\n</div>\n<a id=\"a4fbb0e6d9e6de4f17f347c8e34ebe366\" name=\"a4fbb0e6d9e6de4f17f347c8e34ebe366\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4fbb0e6d9e6de4f17f347c8e34ebe366\">&#9670;&#160;</a></span>Persistent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Console.IApiChannelMessage.Persistent</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the message was persisted to the channel's history, false otherwise. </p>\n\n</div>\n</div>\n<a id=\"a4dfdc0ecc3181068cd4270cfe5e7bf83\" name=\"a4dfdc0ecc3181068cd4270cfe5e7bf83\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4dfdc0ecc3181068cd4270cfe5e7bf83\">&#9670;&#160;</a></span>RoomName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.RoomName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the chat room, or an empty string if this message was not sent through a chat room. </p>\n\n</div>\n</div>\n<a id=\"a3ae8c0a397dc2efe2160d7c5655b493a\" name=\"a3ae8c0a397dc2efe2160d7c5655b493a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3ae8c0a397dc2efe2160d7c5655b493a\">&#9670;&#160;</a></span>SenderId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.SenderId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Message sender, usually a user ID. </p>\n\n</div>\n</div>\n<a id=\"af1eef5f9c860e13751f0e3383a56ed3c\" name=\"af1eef5f9c860e13751f0e3383a56ed3c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af1eef5f9c860e13751f0e3383a56ed3c\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the message was last updated. </p>\n\n</div>\n</div>\n<a id=\"aa6549e653010913d8611c6ee98a7a580\" name=\"aa6549e653010913d8611c6ee98a7a580\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa6549e653010913d8611c6ee98a7a580\">&#9670;&#160;</a></span>UserIdOne</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.UserIdOne</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the first DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"abaab7698f30ead8c7bc6ffb0ba8169ee\" name=\"abaab7698f30ead8c7bc6ffb0ba8169ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abaab7698f30ead8c7bc6ffb0ba8169ee\">&#9670;&#160;</a></span>UserIdTwo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.UserIdTwo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the second DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"a0d14740909d4c062f1fc805b5226b6a7\" name=\"a0d14740909d4c062f1fc805b5226b6a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d14740909d4c062f1fc805b5226b6a7\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiChannelMessage.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the message sender, if any. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">IApiChannelMessage</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_channel_message.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_channel_message =\n[\n    [ \"ChannelId\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\", null ],\n    [ \"Code\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\", null ],\n    [ \"Content\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\", null ],\n    [ \"GroupId\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\", null ],\n    [ \"MessageId\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\", null ],\n    [ \"Persistent\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\", null ],\n    [ \"RoomName\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\", null ],\n    [ \"SenderId\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\", null ],\n    [ \"UserIdOne\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\", null ],\n    [ \"UserIdTwo\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\", null ],\n    [ \"Username\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_friend.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiFriend Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">Nakama.Console.IApiFriend</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">Nakama.Console.IApiFriend</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">Nakama.Console.IApiFriend</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiFriend Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_friend.html','','interface_nakama_1_1_console_1_1_i_api_friend-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiFriend Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A friend of a user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0da515066a7c41f9165f7f02389d45be\" id=\"r_a0da515066a7c41f9165f7f02389d45be\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0da515066a7c41f9165f7f02389d45be\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0da515066a7c41f9165f7f02389d45be\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The friend status.  <br /></td></tr>\n<tr class=\"memitem:a8c290e4497a6c1ee1f46fdd6a4ff3694\" id=\"r_a8c290e4497a6c1ee1f46fdd6a4ff3694\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8c290e4497a6c1ee1f46fdd6a4ff3694\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8c290e4497a6c1ee1f46fdd6a4ff3694\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A friend of a user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0da515066a7c41f9165f7f02389d45be\" name=\"a0da515066a7c41f9165f7f02389d45be\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0da515066a7c41f9165f7f02389d45be\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiFriend.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The friend status. </p>\n\n</div>\n</div>\n<a id=\"a8c290e4497a6c1ee1f46fdd6a4ff3694\" name=\"a8c290e4497a6c1ee1f46fdd6a4ff3694\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8c290e4497a6c1ee1f46fdd6a4ff3694\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a> Nakama.Console.IApiFriend.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_friend =\n[\n    [ \"State\", \"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\", null ],\n    [ \"User\", \"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_friend_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiFriendList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">Nakama.Console.IApiFriendList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">Nakama.Console.IApiFriendList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\">Friends</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">Nakama.Console.IApiFriendList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiFriendList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_friend_list.html','','interface_nakama_1_1_console_1_1_i_api_friend_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiFriendList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A collection of zero or more friends of the user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a9e8d3286c1e5e9d169820dcf6443dc5f\" id=\"r_a9e8d3286c1e5e9d169820dcf6443dc5f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e8d3286c1e5e9d169820dcf6443dc5f\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9e8d3286c1e5e9d169820dcf6443dc5f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:afe569f7085539b22d1a405d610084cf5\" id=\"r_afe569f7085539b22d1a405d610084cf5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe569f7085539b22d1a405d610084cf5\">Friends</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afe569f7085539b22d1a405d610084cf5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Friend objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A collection of zero or more friends of the user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a9e8d3286c1e5e9d169820dcf6443dc5f\" name=\"a9e8d3286c1e5e9d169820dcf6443dc5f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e8d3286c1e5e9d169820dcf6443dc5f\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiFriendList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"afe569f7085539b22d1a405d610084cf5\" name=\"afe569f7085539b22d1a405d610084cf5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe569f7085539b22d1a405d610084cf5\">&#9670;&#160;</a></span>Friends</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a>&gt; Nakama.Console.IApiFriendList.Friends</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Friend objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">IApiFriendList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_friend_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_friend_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\", null ],\n    [ \"Friends\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_group-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_group.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiGroup Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\">CreatorId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\">EdgeCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\">MaxCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">Nakama.Console.IApiGroup</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_group.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiGroup Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_group.html','','interface_nakama_1_1_console_1_1_i_api_group-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiGroup Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A group in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8b27cbc95648fcd0b276347ea091aea8\" id=\"r_a8b27cbc95648fcd0b276347ea091aea8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b27cbc95648fcd0b276347ea091aea8\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8b27cbc95648fcd0b276347ea091aea8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:aea2ef7f74c874cae6cce76c7f2e03c67\" id=\"r_aea2ef7f74c874cae6cce76c7f2e03c67\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea2ef7f74c874cae6cce76c7f2e03c67\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aea2ef7f74c874cae6cce76c7f2e03c67\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the group was created.  <br /></td></tr>\n<tr class=\"memitem:a585323f5cd38592a821f5d9580f34c39\" id=\"r_a585323f5cd38592a821f5d9580f34c39\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a585323f5cd38592a821f5d9580f34c39\">CreatorId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a585323f5cd38592a821f5d9580f34c39\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of the user who created the group.  <br /></td></tr>\n<tr class=\"memitem:a071adf7945080a8026c7605704878df4\" id=\"r_a071adf7945080a8026c7605704878df4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a071adf7945080a8026c7605704878df4\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a071adf7945080a8026c7605704878df4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A description for the group.  <br /></td></tr>\n<tr class=\"memitem:a70989afa906fa241926ae4d8ae21f5be\" id=\"r_a70989afa906fa241926ae4d8ae21f5be\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a70989afa906fa241926ae4d8ae21f5be\">EdgeCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a70989afa906fa241926ae4d8ae21f5be\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current count of all members in the group.  <br /></td></tr>\n<tr class=\"memitem:a7c8266ce04201582c292c47b3ca934ce\" id=\"r_a7c8266ce04201582c292c47b3ca934ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7c8266ce04201582c292c47b3ca934ce\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7c8266ce04201582c292c47b3ca934ce\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of a group.  <br /></td></tr>\n<tr class=\"memitem:a3391b2788b8e00e72c5eaa26fcae37a6\" id=\"r_a3391b2788b8e00e72c5eaa26fcae37a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3391b2788b8e00e72c5eaa26fcae37a6\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3391b2788b8e00e72c5eaa26fcae37a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:a30506924b9edec0d4fd08b3e602bc4f5\" id=\"r_a30506924b9edec0d4fd08b3e602bc4f5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a30506924b9edec0d4fd08b3e602bc4f5\">MaxCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a30506924b9edec0d4fd08b3e602bc4f5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of members allowed.  <br /></td></tr>\n<tr class=\"memitem:af73b1e2498e614cd2d2ab0fc1554cad8\" id=\"r_af73b1e2498e614cd2d2ab0fc1554cad8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af73b1e2498e614cd2d2ab0fc1554cad8\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af73b1e2498e614cd2d2ab0fc1554cad8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Additional information stored as a JSON object.  <br /></td></tr>\n<tr class=\"memitem:ad06404133c69d5bb8447fc6d741d1303\" id=\"r_ad06404133c69d5bb8447fc6d741d1303\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad06404133c69d5bb8447fc6d741d1303\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad06404133c69d5bb8447fc6d741d1303\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique name of the group.  <br /></td></tr>\n<tr class=\"memitem:ab02fb2c7614911231cf9779a5d15c529\" id=\"r_ab02fb2c7614911231cf9779a5d15c529\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab02fb2c7614911231cf9779a5d15c529\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab02fb2c7614911231cf9779a5d15c529\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Anyone can join open groups, otherwise only admins can accept members.  <br /></td></tr>\n<tr class=\"memitem:abbbd22fa5df2036ecad22197a40a44c8\" id=\"r_abbbd22fa5df2036ecad22197a40a44c8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abbbd22fa5df2036ecad22197a40a44c8\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abbbd22fa5df2036ecad22197a40a44c8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the group was last updated.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A group in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8b27cbc95648fcd0b276347ea091aea8\" name=\"a8b27cbc95648fcd0b276347ea091aea8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b27cbc95648fcd0b276347ea091aea8\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"aea2ef7f74c874cae6cce76c7f2e03c67\" name=\"aea2ef7f74c874cae6cce76c7f2e03c67\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea2ef7f74c874cae6cce76c7f2e03c67\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the group was created. </p>\n\n</div>\n</div>\n<a id=\"a585323f5cd38592a821f5d9580f34c39\" name=\"a585323f5cd38592a821f5d9580f34c39\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a585323f5cd38592a821f5d9580f34c39\">&#9670;&#160;</a></span>CreatorId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.CreatorId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of the user who created the group. </p>\n\n</div>\n</div>\n<a id=\"a071adf7945080a8026c7605704878df4\" name=\"a071adf7945080a8026c7605704878df4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a071adf7945080a8026c7605704878df4\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A description for the group. </p>\n\n</div>\n</div>\n<a id=\"a70989afa906fa241926ae4d8ae21f5be\" name=\"a70989afa906fa241926ae4d8ae21f5be\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a70989afa906fa241926ae4d8ae21f5be\">&#9670;&#160;</a></span>EdgeCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiGroup.EdgeCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current count of all members in the group. </p>\n\n</div>\n</div>\n<a id=\"a7c8266ce04201582c292c47b3ca934ce\" name=\"a7c8266ce04201582c292c47b3ca934ce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7c8266ce04201582c292c47b3ca934ce\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of a group. </p>\n\n</div>\n</div>\n<a id=\"a3391b2788b8e00e72c5eaa26fcae37a6\" name=\"a3391b2788b8e00e72c5eaa26fcae37a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3391b2788b8e00e72c5eaa26fcae37a6\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"a30506924b9edec0d4fd08b3e602bc4f5\" name=\"a30506924b9edec0d4fd08b3e602bc4f5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a30506924b9edec0d4fd08b3e602bc4f5\">&#9670;&#160;</a></span>MaxCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiGroup.MaxCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of members allowed. </p>\n\n</div>\n</div>\n<a id=\"af73b1e2498e614cd2d2ab0fc1554cad8\" name=\"af73b1e2498e614cd2d2ab0fc1554cad8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af73b1e2498e614cd2d2ab0fc1554cad8\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Additional information stored as a JSON object. </p>\n\n</div>\n</div>\n<a id=\"ad06404133c69d5bb8447fc6d741d1303\" name=\"ad06404133c69d5bb8447fc6d741d1303\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad06404133c69d5bb8447fc6d741d1303\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique name of the group. </p>\n\n</div>\n</div>\n<a id=\"ab02fb2c7614911231cf9779a5d15c529\" name=\"ab02fb2c7614911231cf9779a5d15c529\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab02fb2c7614911231cf9779a5d15c529\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Console.IApiGroup.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Anyone can join open groups, otherwise only admins can accept members. </p>\n\n</div>\n</div>\n<a id=\"abbbd22fa5df2036ecad22197a40a44c8\" name=\"abbbd22fa5df2036ecad22197a40a44c8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abbbd22fa5df2036ecad22197a40a44c8\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiGroup.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the group was last updated. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_group.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_group =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\", null ],\n    [ \"CreatorId\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\", null ],\n    [ \"Description\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\", null ],\n    [ \"EdgeCount\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\", null ],\n    [ \"MaxCount\", \"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\", null ],\n    [ \"Name\", \"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\", null ],\n    [ \"Open\", \"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_leaderboard_record-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiLeaderboardRecord Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\">ExpiryTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\">LeaderboardId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\">MaxNumScore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\">NumScore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\">OwnerId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\">Rank</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\">Score</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\">Subscore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">Nakama.Console.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiLeaderboardRecord Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html','','interface_nakama_1_1_console_1_1_i_api_leaderboard_record-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiLeaderboardRecord Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents a complete leaderboard record with all scores and associated metadata.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af4136c3f77e0c7dbc63c1c5ea78f0f04\" id=\"r_af4136c3f77e0c7dbc63c1c5ea78f0f04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4136c3f77e0c7dbc63c1c5ea78f0f04\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af4136c3f77e0c7dbc63c1c5ea78f0f04\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the leaderboard record was created.  <br /></td></tr>\n<tr class=\"memitem:aa5fa79acece56b4c28e2e596db5d8af3\" id=\"r_aa5fa79acece56b4c28e2e596db5d8af3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa5fa79acece56b4c28e2e596db5d8af3\">ExpiryTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa5fa79acece56b4c28e2e596db5d8af3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the leaderboard record expires.  <br /></td></tr>\n<tr class=\"memitem:a46ee642ea9931908910e06f2b85783d1\" id=\"r_a46ee642ea9931908910e06f2b85783d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a46ee642ea9931908910e06f2b85783d1\">LeaderboardId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a46ee642ea9931908910e06f2b85783d1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the leaderboard this score belongs to.  <br /></td></tr>\n<tr class=\"memitem:aca0a7ff0d76f0bc5af0030e81e13c4b1\" id=\"r_aca0a7ff0d76f0bc5af0030e81e13c4b1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aca0a7ff0d76f0bc5af0030e81e13c4b1\">MaxNumScore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aca0a7ff0d76f0bc5af0030e81e13c4b1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of score updates allowed by the owner.  <br /></td></tr>\n<tr class=\"memitem:a3894b31e8b47c3f5b145ddce285f946e\" id=\"r_a3894b31e8b47c3f5b145ddce285f946e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3894b31e8b47c3f5b145ddce285f946e\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3894b31e8b47c3f5b145ddce285f946e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Metadata.  <br /></td></tr>\n<tr class=\"memitem:af6f57c01af5acb5c311940e6ac3852e3\" id=\"r_af6f57c01af5acb5c311940e6ac3852e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af6f57c01af5acb5c311940e6ac3852e3\">NumScore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af6f57c01af5acb5c311940e6ac3852e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The number of submissions to this score record.  <br /></td></tr>\n<tr class=\"memitem:a3688e871dc2c924d90abd682e49c888d\" id=\"r_a3688e871dc2c924d90abd682e49c888d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3688e871dc2c924d90abd682e49c888d\">OwnerId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3688e871dc2c924d90abd682e49c888d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the score owner, usually a user or group.  <br /></td></tr>\n<tr class=\"memitem:a8b6fe15ce1ef65f85b99d8881a0ab07e\" id=\"r_a8b6fe15ce1ef65f85b99d8881a0ab07e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b6fe15ce1ef65f85b99d8881a0ab07e\">Rank</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8b6fe15ce1ef65f85b99d8881a0ab07e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The rank of this record.  <br /></td></tr>\n<tr class=\"memitem:ad99e6355419cdf19385b3a7980b20807\" id=\"r_ad99e6355419cdf19385b3a7980b20807\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad99e6355419cdf19385b3a7980b20807\">Score</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad99e6355419cdf19385b3a7980b20807\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The score value.  <br /></td></tr>\n<tr class=\"memitem:a8adc2b089935523b0c0ba298605a98e7\" id=\"r_a8adc2b089935523b0c0ba298605a98e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8adc2b089935523b0c0ba298605a98e7\">Subscore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8adc2b089935523b0c0ba298605a98e7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An optional subscore value.  <br /></td></tr>\n<tr class=\"memitem:ada7130274d01b270c3943314da01c2d4\" id=\"r_ada7130274d01b270c3943314da01c2d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ada7130274d01b270c3943314da01c2d4\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ada7130274d01b270c3943314da01c2d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the leaderboard record was updated.  <br /></td></tr>\n<tr class=\"memitem:a9714cff05af36be455a99b2c46d34dbb\" id=\"r_a9714cff05af36be455a99b2c46d34dbb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9714cff05af36be455a99b2c46d34dbb\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9714cff05af36be455a99b2c46d34dbb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the score owner, if the owner is a user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents a complete leaderboard record with all scores and associated metadata. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af4136c3f77e0c7dbc63c1c5ea78f0f04\" name=\"af4136c3f77e0c7dbc63c1c5ea78f0f04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4136c3f77e0c7dbc63c1c5ea78f0f04\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the leaderboard record was created. </p>\n\n</div>\n</div>\n<a id=\"aa5fa79acece56b4c28e2e596db5d8af3\" name=\"aa5fa79acece56b4c28e2e596db5d8af3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa5fa79acece56b4c28e2e596db5d8af3\">&#9670;&#160;</a></span>ExpiryTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.ExpiryTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the leaderboard record expires. </p>\n\n</div>\n</div>\n<a id=\"a46ee642ea9931908910e06f2b85783d1\" name=\"a46ee642ea9931908910e06f2b85783d1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a46ee642ea9931908910e06f2b85783d1\">&#9670;&#160;</a></span>LeaderboardId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.LeaderboardId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the leaderboard this score belongs to. </p>\n\n</div>\n</div>\n<a id=\"aca0a7ff0d76f0bc5af0030e81e13c4b1\" name=\"aca0a7ff0d76f0bc5af0030e81e13c4b1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aca0a7ff0d76f0bc5af0030e81e13c4b1\">&#9670;&#160;</a></span>MaxNumScore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiLeaderboardRecord.MaxNumScore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of score updates allowed by the owner. </p>\n\n</div>\n</div>\n<a id=\"a3894b31e8b47c3f5b145ddce285f946e\" name=\"a3894b31e8b47c3f5b145ddce285f946e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3894b31e8b47c3f5b145ddce285f946e\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Metadata. </p>\n\n</div>\n</div>\n<a id=\"af6f57c01af5acb5c311940e6ac3852e3\" name=\"af6f57c01af5acb5c311940e6ac3852e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af6f57c01af5acb5c311940e6ac3852e3\">&#9670;&#160;</a></span>NumScore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiLeaderboardRecord.NumScore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The number of submissions to this score record. </p>\n\n</div>\n</div>\n<a id=\"a3688e871dc2c924d90abd682e49c888d\" name=\"a3688e871dc2c924d90abd682e49c888d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3688e871dc2c924d90abd682e49c888d\">&#9670;&#160;</a></span>OwnerId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.OwnerId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the score owner, usually a user or group. </p>\n\n</div>\n</div>\n<a id=\"a8b6fe15ce1ef65f85b99d8881a0ab07e\" name=\"a8b6fe15ce1ef65f85b99d8881a0ab07e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b6fe15ce1ef65f85b99d8881a0ab07e\">&#9670;&#160;</a></span>Rank</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.Rank</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The rank of this record. </p>\n\n</div>\n</div>\n<a id=\"ad99e6355419cdf19385b3a7980b20807\" name=\"ad99e6355419cdf19385b3a7980b20807\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad99e6355419cdf19385b3a7980b20807\">&#9670;&#160;</a></span>Score</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.Score</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The score value. </p>\n\n</div>\n</div>\n<a id=\"a8adc2b089935523b0c0ba298605a98e7\" name=\"a8adc2b089935523b0c0ba298605a98e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8adc2b089935523b0c0ba298605a98e7\">&#9670;&#160;</a></span>Subscore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.Subscore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>An optional subscore value. </p>\n\n</div>\n</div>\n<a id=\"ada7130274d01b270c3943314da01c2d4\" name=\"ada7130274d01b270c3943314da01c2d4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ada7130274d01b270c3943314da01c2d4\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the leaderboard record was updated. </p>\n\n</div>\n</div>\n<a id=\"a9714cff05af36be455a99b2c46d34dbb\" name=\"a9714cff05af36be455a99b2c46d34dbb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9714cff05af36be455a99b2c46d34dbb\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiLeaderboardRecord.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the score owner, if the owner is a user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_leaderboard_record.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_leaderboard_record =\n[\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\", null ],\n    [ \"ExpiryTime\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\", null ],\n    [ \"LeaderboardId\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\", null ],\n    [ \"MaxNumScore\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\", null ],\n    [ \"NumScore\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\", null ],\n    [ \"OwnerId\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\", null ],\n    [ \"Rank\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\", null ],\n    [ \"Score\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\", null ],\n    [ \"Subscore\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\", null ],\n    [ \"Username\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_notification-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_notification.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiNotification Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\">Content</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\">Persistent</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\">SenderId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\">Subject</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">Nakama.Console.IApiNotification</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_notification.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiNotification Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_notification.html','','interface_nakama_1_1_console_1_1_i_api_notification-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiNotification Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A notification in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a312d42df4ef08dc9b62821167f534d8f\" id=\"r_a312d42df4ef08dc9b62821167f534d8f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a312d42df4ef08dc9b62821167f534d8f\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a312d42df4ef08dc9b62821167f534d8f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Category code for this notification.  <br /></td></tr>\n<tr class=\"memitem:a1ef19605de607fbdb6596e44fc9cdf53\" id=\"r_a1ef19605de607fbdb6596e44fc9cdf53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1ef19605de607fbdb6596e44fc9cdf53\">Content</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1ef19605de607fbdb6596e44fc9cdf53\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Content of the notification in JSON.  <br /></td></tr>\n<tr class=\"memitem:ab1d5e01d9064e9e34963884f39d23dbf\" id=\"r_ab1d5e01d9064e9e34963884f39d23dbf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab1d5e01d9064e9e34963884f39d23dbf\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab1d5e01d9064e9e34963884f39d23dbf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the notification was created.  <br /></td></tr>\n<tr class=\"memitem:ad05b14a384173eaf88e87733f277b0a0\" id=\"r_ad05b14a384173eaf88e87733f277b0a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad05b14a384173eaf88e87733f277b0a0\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad05b14a384173eaf88e87733f277b0a0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">ID of the Notification.  <br /></td></tr>\n<tr class=\"memitem:a486a79e0dc9fe285041284ace0c2e491\" id=\"r_a486a79e0dc9fe285041284ace0c2e491\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a486a79e0dc9fe285041284ace0c2e491\">Persistent</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a486a79e0dc9fe285041284ace0c2e491\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if this notification was persisted to the database.  <br /></td></tr>\n<tr class=\"memitem:a9022630f97359e1438e8a795e5131492\" id=\"r_a9022630f97359e1438e8a795e5131492\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9022630f97359e1438e8a795e5131492\">SenderId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9022630f97359e1438e8a795e5131492\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">ID of the sender, if a user. Otherwise 'null'.  <br /></td></tr>\n<tr class=\"memitem:a3cb86317ceb89d5b5093b64e7b11217b\" id=\"r_a3cb86317ceb89d5b5093b64e7b11217b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3cb86317ceb89d5b5093b64e7b11217b\">Subject</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3cb86317ceb89d5b5093b64e7b11217b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subject of the notification.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A notification in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a312d42df4ef08dc9b62821167f534d8f\" name=\"a312d42df4ef08dc9b62821167f534d8f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a312d42df4ef08dc9b62821167f534d8f\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiNotification.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Category code for this notification. </p>\n\n</div>\n</div>\n<a id=\"a1ef19605de607fbdb6596e44fc9cdf53\" name=\"a1ef19605de607fbdb6596e44fc9cdf53\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1ef19605de607fbdb6596e44fc9cdf53\">&#9670;&#160;</a></span>Content</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiNotification.Content</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Content of the notification in JSON. </p>\n\n</div>\n</div>\n<a id=\"ab1d5e01d9064e9e34963884f39d23dbf\" name=\"ab1d5e01d9064e9e34963884f39d23dbf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab1d5e01d9064e9e34963884f39d23dbf\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiNotification.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the notification was created. </p>\n\n</div>\n</div>\n<a id=\"ad05b14a384173eaf88e87733f277b0a0\" name=\"ad05b14a384173eaf88e87733f277b0a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad05b14a384173eaf88e87733f277b0a0\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiNotification.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>ID of the Notification. </p>\n\n</div>\n</div>\n<a id=\"a486a79e0dc9fe285041284ace0c2e491\" name=\"a486a79e0dc9fe285041284ace0c2e491\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a486a79e0dc9fe285041284ace0c2e491\">&#9670;&#160;</a></span>Persistent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Console.IApiNotification.Persistent</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if this notification was persisted to the database. </p>\n\n</div>\n</div>\n<a id=\"a9022630f97359e1438e8a795e5131492\" name=\"a9022630f97359e1438e8a795e5131492\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9022630f97359e1438e8a795e5131492\">&#9670;&#160;</a></span>SenderId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiNotification.SenderId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>ID of the sender, if a user. Otherwise 'null'. </p>\n\n</div>\n</div>\n<a id=\"a3cb86317ceb89d5b5093b64e7b11217b\" name=\"a3cb86317ceb89d5b5093b64e7b11217b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3cb86317ceb89d5b5093b64e7b11217b\">&#9670;&#160;</a></span>Subject</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiNotification.Subject</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subject of the notification. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">IApiNotification</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_notification.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_notification =\n[\n    [ \"Code\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\", null ],\n    [ \"Content\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\", null ],\n    [ \"Persistent\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\", null ],\n    [ \"SenderId\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\", null ],\n    [ \"Subject\", \"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_storage_object.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiStorageObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\">PermissionRead</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\">PermissionWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">Nakama.Console.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiStorageObject Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_storage_object.html','','interface_nakama_1_1_console_1_1_i_api_storage_object-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiStorageObject Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An object within the storage engine.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a817cbd561f009c92fd7010985c533998\" id=\"r_a817cbd561f009c92fd7010985c533998\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a817cbd561f009c92fd7010985c533998\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a817cbd561f009c92fd7010985c533998\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:a7341668562d7762c715d49137af1badb\" id=\"r_a7341668562d7762c715d49137af1badb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7341668562d7762c715d49137af1badb\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7341668562d7762c715d49137af1badb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the object was created.  <br /></td></tr>\n<tr class=\"memitem:aea52a7568376c289350b1de1e2c08995\" id=\"r_aea52a7568376c289350b1de1e2c08995\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea52a7568376c289350b1de1e2c08995\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aea52a7568376c289350b1de1e2c08995\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:aecdd20d5a5fb89f87e76372687b7bf4d\" id=\"r_aecdd20d5a5fb89f87e76372687b7bf4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aecdd20d5a5fb89f87e76372687b7bf4d\">PermissionRead</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aecdd20d5a5fb89f87e76372687b7bf4d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The read access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:a977890a58ece6639393815334c7bc2af\" id=\"r_a977890a58ece6639393815334c7bc2af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a977890a58ece6639393815334c7bc2af\">PermissionWrite</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a977890a58ece6639393815334c7bc2af\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The write access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:aedc1b5f56b33928bf34204f4e9817aa7\" id=\"r_aedc1b5f56b33928bf34204f4e9817aa7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aedc1b5f56b33928bf34204f4e9817aa7\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aedc1b5f56b33928bf34204f4e9817aa7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the object was last updated.  <br /></td></tr>\n<tr class=\"memitem:a4995265775d9f2d316a70950b0c45a92\" id=\"r_a4995265775d9f2d316a70950b0c45a92\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4995265775d9f2d316a70950b0c45a92\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4995265775d9f2d316a70950b0c45a92\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user owner of the object.  <br /></td></tr>\n<tr class=\"memitem:ab0c2db9caa28372e753e5f338ddce8ba\" id=\"r_ab0c2db9caa28372e753e5f338ddce8ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0c2db9caa28372e753e5f338ddce8ba\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab0c2db9caa28372e753e5f338ddce8ba\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The value of the object.  <br /></td></tr>\n<tr class=\"memitem:ad810db66ec385c48e274098ef8c3861a\" id=\"r_ad810db66ec385c48e274098ef8c3861a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad810db66ec385c48e274098ef8c3861a\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad810db66ec385c48e274098ef8c3861a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An object within the storage engine. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a817cbd561f009c92fd7010985c533998\" name=\"a817cbd561f009c92fd7010985c533998\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a817cbd561f009c92fd7010985c533998\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n</div>\n</div>\n<a id=\"a7341668562d7762c715d49137af1badb\" name=\"a7341668562d7762c715d49137af1badb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7341668562d7762c715d49137af1badb\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the object was created. </p>\n\n</div>\n</div>\n<a id=\"aea52a7568376c289350b1de1e2c08995\" name=\"aea52a7568376c289350b1de1e2c08995\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea52a7568376c289350b1de1e2c08995\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n</div>\n</div>\n<a id=\"aecdd20d5a5fb89f87e76372687b7bf4d\" name=\"aecdd20d5a5fb89f87e76372687b7bf4d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aecdd20d5a5fb89f87e76372687b7bf4d\">&#9670;&#160;</a></span>PermissionRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiStorageObject.PermissionRead</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The read access permissions for the object. </p>\n\n</div>\n</div>\n<a id=\"a977890a58ece6639393815334c7bc2af\" name=\"a977890a58ece6639393815334c7bc2af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a977890a58ece6639393815334c7bc2af\">&#9670;&#160;</a></span>PermissionWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiStorageObject.PermissionWrite</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The write access permissions for the object. </p>\n\n</div>\n</div>\n<a id=\"aedc1b5f56b33928bf34204f4e9817aa7\" name=\"aedc1b5f56b33928bf34204f4e9817aa7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aedc1b5f56b33928bf34204f4e9817aa7\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the object was last updated. </p>\n\n</div>\n</div>\n<a id=\"a4995265775d9f2d316a70950b0c45a92\" name=\"a4995265775d9f2d316a70950b0c45a92\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4995265775d9f2d316a70950b0c45a92\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user owner of the object. </p>\n\n</div>\n</div>\n<a id=\"ab0c2db9caa28372e753e5f338ddce8ba\" name=\"ab0c2db9caa28372e753e5f338ddce8ba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0c2db9caa28372e753e5f338ddce8ba\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The value of the object. </p>\n\n</div>\n</div>\n<a id=\"ad810db66ec385c48e274098ef8c3861a\" name=\"ad810db66ec385c48e274098ef8c3861a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad810db66ec385c48e274098ef8c3861a\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObject.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_storage_object =\n[\n    [ \"Collection\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\", null ],\n    [ \"Key\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\", null ],\n    [ \"PermissionRead\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\", null ],\n    [ \"PermissionWrite\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\", null ],\n    [ \"Value\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\", null ],\n    [ \"Version\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object_ack-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiStorageObjectAck Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">Nakama.Console.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiStorageObjectAck Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html','','interface_nakama_1_1_console_1_1_i_api_storage_object_ack-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiStorageObjectAck Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A storage acknowledgement.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae12dd7f9b4666b1ef0733a6ae5a44c7f\" id=\"r_ae12dd7f9b4666b1ef0733a6ae5a44c7f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae12dd7f9b4666b1ef0733a6ae5a44c7f\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae12dd7f9b4666b1ef0733a6ae5a44c7f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:aa1e7059dd9e441ba5aa0c1757b29b7dc\" id=\"r_aa1e7059dd9e441ba5aa0c1757b29b7dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa1e7059dd9e441ba5aa0c1757b29b7dc\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa1e7059dd9e441ba5aa0c1757b29b7dc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:acd898f2dbcf1799968dd68351aef60db\" id=\"r_acd898f2dbcf1799968dd68351aef60db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acd898f2dbcf1799968dd68351aef60db\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acd898f2dbcf1799968dd68351aef60db\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The owner of the object.  <br /></td></tr>\n<tr class=\"memitem:a71c8c791ec77c38ab93b9bee1082d28e\" id=\"r_a71c8c791ec77c38ab93b9bee1082d28e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a71c8c791ec77c38ab93b9bee1082d28e\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a71c8c791ec77c38ab93b9bee1082d28e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A storage acknowledgement. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae12dd7f9b4666b1ef0733a6ae5a44c7f\" name=\"ae12dd7f9b4666b1ef0733a6ae5a44c7f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae12dd7f9b4666b1ef0733a6ae5a44c7f\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObjectAck.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n</div>\n</div>\n<a id=\"aa1e7059dd9e441ba5aa0c1757b29b7dc\" name=\"aa1e7059dd9e441ba5aa0c1757b29b7dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa1e7059dd9e441ba5aa0c1757b29b7dc\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObjectAck.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n</div>\n</div>\n<a id=\"acd898f2dbcf1799968dd68351aef60db\" name=\"acd898f2dbcf1799968dd68351aef60db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acd898f2dbcf1799968dd68351aef60db\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObjectAck.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The owner of the object. </p>\n\n</div>\n</div>\n<a id=\"a71c8c791ec77c38ab93b9bee1082d28e\" name=\"a71c8c791ec77c38ab93b9bee1082d28e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a71c8c791ec77c38ab93b9bee1082d28e\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiStorageObjectAck.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_storage_object_ack.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_storage_object_ack =\n[\n    [ \"Collection\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\", null ],\n    [ \"Key\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\", null ],\n    [ \"Version\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_user.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiUser Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\">DisplayName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\">EdgeCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\">FacebookId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\">FacebookInstantGameId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\">GamecenterId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\">GoogleId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\">Location</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\">Online</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\">SteamId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\">Timezone</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">Nakama.Console.IApiUser</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiUser Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_user.html','','interface_nakama_1_1_console_1_1_i_api_user-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiUser Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A user in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a901553cfe0359184b304752b0c5ba78e\" id=\"r_a901553cfe0359184b304752b0c5ba78e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a901553cfe0359184b304752b0c5ba78e\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a901553cfe0359184b304752b0c5ba78e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:a805f65da53508c7b89d6460267106442\" id=\"r_a805f65da53508c7b89d6460267106442\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a805f65da53508c7b89d6460267106442\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a805f65da53508c7b89d6460267106442\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the user was created.  <br /></td></tr>\n<tr class=\"memitem:a891e29fedcefbde0f865785a55632298\" id=\"r_a891e29fedcefbde0f865785a55632298\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a891e29fedcefbde0f865785a55632298\">DisplayName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a891e29fedcefbde0f865785a55632298\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The display name of the user.  <br /></td></tr>\n<tr class=\"memitem:a7aaf807ddb8550042a550d8ec6ea94ba\" id=\"r_a7aaf807ddb8550042a550d8ec6ea94ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7aaf807ddb8550042a550d8ec6ea94ba\">EdgeCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7aaf807ddb8550042a550d8ec6ea94ba\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Number of related edges to this user.  <br /></td></tr>\n<tr class=\"memitem:a62e1431224e82c440c891aa6d821acde\" id=\"r_a62e1431224e82c440c891aa6d821acde\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a62e1431224e82c440c891aa6d821acde\">FacebookId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a62e1431224e82c440c891aa6d821acde\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Facebook id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a9cc93e7076c5524be06ac8cc8b57c97d\" id=\"r_a9cc93e7076c5524be06ac8cc8b57c97d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9cc93e7076c5524be06ac8cc8b57c97d\">FacebookInstantGameId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9cc93e7076c5524be06ac8cc8b57c97d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Facebook Instant Game id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a0f18a35aaf831fa9843332beda01a995\" id=\"r_a0f18a35aaf831fa9843332beda01a995\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f18a35aaf831fa9843332beda01a995\">GamecenterId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0f18a35aaf831fa9843332beda01a995\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Apple Game Center in of the user's account.  <br /></td></tr>\n<tr class=\"memitem:a21b77e07dde3fa0a46ec3d6ecf766185\" id=\"r_a21b77e07dde3fa0a46ec3d6ecf766185\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a21b77e07dde3fa0a46ec3d6ecf766185\">GoogleId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a21b77e07dde3fa0a46ec3d6ecf766185\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Google id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:acc3d21e1c88992c40ecacb9c037b4555\" id=\"r_acc3d21e1c88992c40ecacb9c037b4555\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc3d21e1c88992c40ecacb9c037b4555\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acc3d21e1c88992c40ecacb9c037b4555\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of the user's account.  <br /></td></tr>\n<tr class=\"memitem:a02f2d7c581f1e5f0ab14b7ba25564595\" id=\"r_a02f2d7c581f1e5f0ab14b7ba25564595\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a02f2d7c581f1e5f0ab14b7ba25564595\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a02f2d7c581f1e5f0ab14b7ba25564595\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:ac6e175fd7eb29c7ddb4161e1440091bd\" id=\"r_ac6e175fd7eb29c7ddb4161e1440091bd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac6e175fd7eb29c7ddb4161e1440091bd\">Location</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac6e175fd7eb29c7ddb4161e1440091bd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The location set by the user.  <br /></td></tr>\n<tr class=\"memitem:a824ef8f0a6b71a797993bb7d312853a7\" id=\"r_a824ef8f0a6b71a797993bb7d312853a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a824ef8f0a6b71a797993bb7d312853a7\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a824ef8f0a6b71a797993bb7d312853a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Additional information stored as a JSON object.  <br /></td></tr>\n<tr class=\"memitem:a8e3d99268d2c5833e12141576283305d\" id=\"r_a8e3d99268d2c5833e12141576283305d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8e3d99268d2c5833e12141576283305d\">Online</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8e3d99268d2c5833e12141576283305d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Indicates whether the user is currently online.  <br /></td></tr>\n<tr class=\"memitem:aaf7cc670cdc069ed911ccac9766dd65a\" id=\"r_aaf7cc670cdc069ed911ccac9766dd65a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaf7cc670cdc069ed911ccac9766dd65a\">SteamId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aaf7cc670cdc069ed911ccac9766dd65a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Steam id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:ab7bc58732b4f2fdcf86d3e59e54fccb5\" id=\"r_ab7bc58732b4f2fdcf86d3e59e54fccb5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab7bc58732b4f2fdcf86d3e59e54fccb5\">Timezone</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab7bc58732b4f2fdcf86d3e59e54fccb5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The timezone set by the user.  <br /></td></tr>\n<tr class=\"memitem:afa69bac4d2ac21fcb18b8df53b44646f\" id=\"r_afa69bac4d2ac21fcb18b8df53b44646f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afa69bac4d2ac21fcb18b8df53b44646f\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afa69bac4d2ac21fcb18b8df53b44646f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the user was last updated.  <br /></td></tr>\n<tr class=\"memitem:a9ad3492dc8be24a6cf9a1a9756bee5cf\" id=\"r_a9ad3492dc8be24a6cf9a1a9756bee5cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9ad3492dc8be24a6cf9a1a9756bee5cf\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9ad3492dc8be24a6cf9a1a9756bee5cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user's account.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A user in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a901553cfe0359184b304752b0c5ba78e\" name=\"a901553cfe0359184b304752b0c5ba78e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a901553cfe0359184b304752b0c5ba78e\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"a805f65da53508c7b89d6460267106442\" name=\"a805f65da53508c7b89d6460267106442\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a805f65da53508c7b89d6460267106442\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the user was created. </p>\n\n</div>\n</div>\n<a id=\"a891e29fedcefbde0f865785a55632298\" name=\"a891e29fedcefbde0f865785a55632298\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a891e29fedcefbde0f865785a55632298\">&#9670;&#160;</a></span>DisplayName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.DisplayName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The display name of the user. </p>\n\n</div>\n</div>\n<a id=\"a7aaf807ddb8550042a550d8ec6ea94ba\" name=\"a7aaf807ddb8550042a550d8ec6ea94ba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7aaf807ddb8550042a550d8ec6ea94ba\">&#9670;&#160;</a></span>EdgeCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IApiUser.EdgeCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Number of related edges to this user. </p>\n\n</div>\n</div>\n<a id=\"a62e1431224e82c440c891aa6d821acde\" name=\"a62e1431224e82c440c891aa6d821acde\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62e1431224e82c440c891aa6d821acde\">&#9670;&#160;</a></span>FacebookId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.FacebookId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Facebook id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a9cc93e7076c5524be06ac8cc8b57c97d\" name=\"a9cc93e7076c5524be06ac8cc8b57c97d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9cc93e7076c5524be06ac8cc8b57c97d\">&#9670;&#160;</a></span>FacebookInstantGameId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.FacebookInstantGameId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Facebook Instant Game id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a0f18a35aaf831fa9843332beda01a995\" name=\"a0f18a35aaf831fa9843332beda01a995\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f18a35aaf831fa9843332beda01a995\">&#9670;&#160;</a></span>GamecenterId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.GamecenterId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Apple Game Center in of the user's account. </p>\n\n</div>\n</div>\n<a id=\"a21b77e07dde3fa0a46ec3d6ecf766185\" name=\"a21b77e07dde3fa0a46ec3d6ecf766185\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a21b77e07dde3fa0a46ec3d6ecf766185\">&#9670;&#160;</a></span>GoogleId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.GoogleId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Google id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"acc3d21e1c88992c40ecacb9c037b4555\" name=\"acc3d21e1c88992c40ecacb9c037b4555\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc3d21e1c88992c40ecacb9c037b4555\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of the user's account. </p>\n\n</div>\n</div>\n<a id=\"a02f2d7c581f1e5f0ab14b7ba25564595\" name=\"a02f2d7c581f1e5f0ab14b7ba25564595\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02f2d7c581f1e5f0ab14b7ba25564595\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"ac6e175fd7eb29c7ddb4161e1440091bd\" name=\"ac6e175fd7eb29c7ddb4161e1440091bd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac6e175fd7eb29c7ddb4161e1440091bd\">&#9670;&#160;</a></span>Location</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.Location</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The location set by the user. </p>\n\n</div>\n</div>\n<a id=\"a824ef8f0a6b71a797993bb7d312853a7\" name=\"a824ef8f0a6b71a797993bb7d312853a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a824ef8f0a6b71a797993bb7d312853a7\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Additional information stored as a JSON object. </p>\n\n</div>\n</div>\n<a id=\"a8e3d99268d2c5833e12141576283305d\" name=\"a8e3d99268d2c5833e12141576283305d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8e3d99268d2c5833e12141576283305d\">&#9670;&#160;</a></span>Online</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.Console.IApiUser.Online</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Indicates whether the user is currently online. </p>\n\n</div>\n</div>\n<a id=\"aaf7cc670cdc069ed911ccac9766dd65a\" name=\"aaf7cc670cdc069ed911ccac9766dd65a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaf7cc670cdc069ed911ccac9766dd65a\">&#9670;&#160;</a></span>SteamId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.SteamId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Steam id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"ab7bc58732b4f2fdcf86d3e59e54fccb5\" name=\"ab7bc58732b4f2fdcf86d3e59e54fccb5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab7bc58732b4f2fdcf86d3e59e54fccb5\">&#9670;&#160;</a></span>Timezone</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.Timezone</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The timezone set by the user. </p>\n\n</div>\n</div>\n<a id=\"afa69bac4d2ac21fcb18b8df53b44646f\" name=\"afa69bac4d2ac21fcb18b8df53b44646f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afa69bac4d2ac21fcb18b8df53b44646f\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the user was last updated. </p>\n\n</div>\n</div>\n<a id=\"a9ad3492dc8be24a6cf9a1a9756bee5cf\" name=\"a9ad3492dc8be24a6cf9a1a9756bee5cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9ad3492dc8be24a6cf9a1a9756bee5cf\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUser.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user's account. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_user =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\", null ],\n    [ \"DisplayName\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\", null ],\n    [ \"EdgeCount\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\", null ],\n    [ \"FacebookId\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\", null ],\n    [ \"FacebookInstantGameId\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\", null ],\n    [ \"GamecenterId\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\", null ],\n    [ \"GoogleId\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\", null ],\n    [ \"Location\", \"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\", null ],\n    [ \"Online\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\", null ],\n    [ \"SteamId\", \"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\", null ],\n    [ \"Timezone\", \"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\", null ],\n    [ \"Username\", \"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user_group_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_user_group_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiUserGroupList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">Nakama.Console.IApiUserGroupList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">Nakama.Console.IApiUserGroupList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\">UserGroups</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">Nakama.Console.IApiUserGroupList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user_group_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IApiUserGroupList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_api_user_group_list.html','','interface_nakama_1_1_console_1_1_i_api_user_group_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IApiUserGroupList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of groups belonging to a user, along with the user's role in each group.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a9f9e577a0a6a8b937eb8fc1e0fefe933\" id=\"r_a9f9e577a0a6a8b937eb8fc1e0fefe933\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9f9e577a0a6a8b937eb8fc1e0fefe933\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9f9e577a0a6a8b937eb8fc1e0fefe933\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:aeb7ac2189e53365fbdc7f0401b7fa66e\" id=\"r_aeb7ac2189e53365fbdc7f0401b7fa66e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeb7ac2189e53365fbdc7f0401b7fa66e\">UserGroups</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aeb7ac2189e53365fbdc7f0401b7fa66e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Group-role pairs for a user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of groups belonging to a user, along with the user's role in each group. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a9f9e577a0a6a8b937eb8fc1e0fefe933\" name=\"a9f9e577a0a6a8b937eb8fc1e0fefe933\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9f9e577a0a6a8b937eb8fc1e0fefe933\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IApiUserGroupList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"aeb7ac2189e53365fbdc7f0401b7fa66e\" name=\"aeb7ac2189e53365fbdc7f0401b7fa66e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb7ac2189e53365fbdc7f0401b7fa66e\">&#9670;&#160;</a></span>UserGroups</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a>&gt; Nakama.Console.IApiUserGroupList.UserGroups</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Group-role pairs for a user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">IApiUserGroupList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_api_user_group_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_api_user_group_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\", null ],\n    [ \"UserGroups\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_config_warning-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_config_warning.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConfigWarning Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">Nakama.Console.IConfigWarning</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\">Field</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">Nakama.Console.IConfigWarning</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\">Message</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">Nakama.Console.IConfigWarning</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_config_warning.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConfigWarning Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_config_warning.html','','interface_nakama_1_1_console_1_1_i_config_warning-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConfigWarning Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A warning for a configuration field.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aeb4704db3565ef185d5806dc55b43406\" id=\"r_aeb4704db3565ef185d5806dc55b43406\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeb4704db3565ef185d5806dc55b43406\">Field</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aeb4704db3565ef185d5806dc55b43406\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The config field this warning is for in a JSON pointer format.  <br /></td></tr>\n<tr class=\"memitem:ac36d557d92a6e1e9022f246b50e4a61b\" id=\"r_ac36d557d92a6e1e9022f246b50e4a61b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac36d557d92a6e1e9022f246b50e4a61b\">Message</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac36d557d92a6e1e9022f246b50e4a61b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Warning message text.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A warning for a configuration field. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aeb4704db3565ef185d5806dc55b43406\" name=\"aeb4704db3565ef185d5806dc55b43406\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb4704db3565ef185d5806dc55b43406\">&#9670;&#160;</a></span>Field</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConfigWarning.Field</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The config field this warning is for in a JSON pointer format. </p>\n\n</div>\n</div>\n<a id=\"ac36d557d92a6e1e9022f246b50e4a61b\" name=\"ac36d557d92a6e1e9022f246b50e4a61b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac36d557d92a6e1e9022f246b50e4a61b\">&#9670;&#160;</a></span>Message</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConfigWarning.Message</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Warning message text. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">IConfigWarning</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_config_warning.js",
    "content": "var interface_nakama_1_1_console_1_1_i_config_warning =\n[\n    [ \"Field\", \"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\", null ],\n    [ \"Message\", \"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_account_export-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_account_export.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleAccountExport Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\">Account</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\">Friends</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\">Groups</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\">LeaderboardRecords</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\">Messages</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\">Notifications</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\">Objects</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\">WalletLedgers</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">Nakama.Console.IConsoleAccountExport</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_account_export.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleAccountExport Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_account_export.html','','interface_nakama_1_1_console_1_1_i_console_account_export-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleAccountExport Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An export of all information stored for a user account.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a4048b1250af7682f706940712d2f1c65\" id=\"r_a4048b1250af7682f706940712d2f1c65\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4048b1250af7682f706940712d2f1c65\">Account</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4048b1250af7682f706940712d2f1c65\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's account details.  <br /></td></tr>\n<tr class=\"memitem:a2e90ee045efaa10f7f6354a8cafbc088\" id=\"r_a2e90ee045efaa10f7f6354a8cafbc088\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2e90ee045efaa10f7f6354a8cafbc088\">Friends</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2e90ee045efaa10f7f6354a8cafbc088\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's friends.  <br /></td></tr>\n<tr class=\"memitem:a24dfc914775897b3430825c9b09ca021\" id=\"r_a24dfc914775897b3430825c9b09ca021\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a24dfc914775897b3430825c9b09ca021\">Groups</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a24dfc914775897b3430825c9b09ca021\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's groups.  <br /></td></tr>\n<tr class=\"memitem:ad1521901874cd1d3b0c25cb52d3c9856\" id=\"r_ad1521901874cd1d3b0c25cb52d3c9856\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad1521901874cd1d3b0c25cb52d3c9856\">LeaderboardRecords</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad1521901874cd1d3b0c25cb52d3c9856\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's leaderboard records.  <br /></td></tr>\n<tr class=\"memitem:a0cdacfc37d84217e3bf612b0d40d9920\" id=\"r_a0cdacfc37d84217e3bf612b0d40d9920\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">IApiChannelMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0cdacfc37d84217e3bf612b0d40d9920\">Messages</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0cdacfc37d84217e3bf612b0d40d9920\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's chat messages.  <br /></td></tr>\n<tr class=\"memitem:a02eaeb434c9cf9599934493b44c89108\" id=\"r_a02eaeb434c9cf9599934493b44c89108\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">IApiNotification</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a02eaeb434c9cf9599934493b44c89108\">Notifications</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a02eaeb434c9cf9599934493b44c89108\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's notifications.  <br /></td></tr>\n<tr class=\"memitem:ab0f2aa7828a1dd4314dda8ee10081efc\" id=\"r_ab0f2aa7828a1dd4314dda8ee10081efc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0f2aa7828a1dd4314dda8ee10081efc\">Objects</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab0f2aa7828a1dd4314dda8ee10081efc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's storage.  <br /></td></tr>\n<tr class=\"memitem:a8213347c0307a8ded82c9b4b0b6f9cd9\" id=\"r_a8213347c0307a8ded82c9b4b0b6f9cd9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8213347c0307a8ded82c9b4b0b6f9cd9\">WalletLedgers</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8213347c0307a8ded82c9b4b0b6f9cd9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's wallet ledger items.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An export of all information stored for a user account. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a4048b1250af7682f706940712d2f1c65\" name=\"a4048b1250af7682f706940712d2f1c65\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4048b1250af7682f706940712d2f1c65\">&#9670;&#160;</a></span>Account</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a> Nakama.Console.IConsoleAccountExport.Account</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's account details. </p>\n\n</div>\n</div>\n<a id=\"a2e90ee045efaa10f7f6354a8cafbc088\" name=\"a2e90ee045efaa10f7f6354a8cafbc088\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2e90ee045efaa10f7f6354a8cafbc088\">&#9670;&#160;</a></span>Friends</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a>&gt; Nakama.Console.IConsoleAccountExport.Friends</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's friends. </p>\n\n</div>\n</div>\n<a id=\"a24dfc914775897b3430825c9b09ca021\" name=\"a24dfc914775897b3430825c9b09ca021\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a24dfc914775897b3430825c9b09ca021\">&#9670;&#160;</a></span>Groups</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a>&gt; Nakama.Console.IConsoleAccountExport.Groups</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's groups. </p>\n\n</div>\n</div>\n<a id=\"ad1521901874cd1d3b0c25cb52d3c9856\" name=\"ad1521901874cd1d3b0c25cb52d3c9856\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad1521901874cd1d3b0c25cb52d3c9856\">&#9670;&#160;</a></span>LeaderboardRecords</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a>&gt; Nakama.Console.IConsoleAccountExport.LeaderboardRecords</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's leaderboard records. </p>\n\n</div>\n</div>\n<a id=\"a0cdacfc37d84217e3bf612b0d40d9920\" name=\"a0cdacfc37d84217e3bf612b0d40d9920\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0cdacfc37d84217e3bf612b0d40d9920\">&#9670;&#160;</a></span>Messages</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">IApiChannelMessage</a>&gt; Nakama.Console.IConsoleAccountExport.Messages</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's chat messages. </p>\n\n</div>\n</div>\n<a id=\"a02eaeb434c9cf9599934493b44c89108\" name=\"a02eaeb434c9cf9599934493b44c89108\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02eaeb434c9cf9599934493b44c89108\">&#9670;&#160;</a></span>Notifications</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">IApiNotification</a>&gt; Nakama.Console.IConsoleAccountExport.Notifications</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's notifications. </p>\n\n</div>\n</div>\n<a id=\"ab0f2aa7828a1dd4314dda8ee10081efc\" name=\"ab0f2aa7828a1dd4314dda8ee10081efc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0f2aa7828a1dd4314dda8ee10081efc\">&#9670;&#160;</a></span>Objects</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a>&gt; Nakama.Console.IConsoleAccountExport.Objects</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's storage. </p>\n\n</div>\n</div>\n<a id=\"a8213347c0307a8ded82c9b4b0b6f9cd9\" name=\"a8213347c0307a8ded82c9b4b0b6f9cd9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8213347c0307a8ded82c9b4b0b6f9cd9\">&#9670;&#160;</a></span>WalletLedgers</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a>&gt; Nakama.Console.IConsoleAccountExport.WalletLedgers</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's wallet ledger items. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">IConsoleAccountExport</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_account_export.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_account_export =\n[\n    [ \"Account\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\", null ],\n    [ \"Friends\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\", null ],\n    [ \"Groups\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\", null ],\n    [ \"LeaderboardRecords\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\", null ],\n    [ \"Messages\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\", null ],\n    [ \"Notifications\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\", null ],\n    [ \"Objects\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\", null ],\n    [ \"WalletLedgers\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_authenticate_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_authenticate_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleAuthenticateRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">Nakama.Console.IConsoleAuthenticateRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\">Password</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">Nakama.Console.IConsoleAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">Nakama.Console.IConsoleAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_authenticate_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleAuthenticateRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_authenticate_request.html','','interface_nakama_1_1_console_1_1_i_console_authenticate_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleAuthenticateRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Authenticate a console user with username and password.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0051d14e775850b549a4ac9d3c038966\" id=\"r_a0051d14e775850b549a4ac9d3c038966\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0051d14e775850b549a4ac9d3c038966\">Password</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0051d14e775850b549a4ac9d3c038966\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The password of the user.  <br /></td></tr>\n<tr class=\"memitem:a0787ad23510e67a73448da2d68470419\" id=\"r_a0787ad23510e67a73448da2d68470419\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0787ad23510e67a73448da2d68470419\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0787ad23510e67a73448da2d68470419\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Authenticate a console user with username and password. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0051d14e775850b549a4ac9d3c038966\" name=\"a0051d14e775850b549a4ac9d3c038966\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0051d14e775850b549a4ac9d3c038966\">&#9670;&#160;</a></span>Password</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleAuthenticateRequest.Password</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The password of the user. </p>\n\n</div>\n</div>\n<a id=\"a0787ad23510e67a73448da2d68470419\" name=\"a0787ad23510e67a73448da2d68470419\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0787ad23510e67a73448da2d68470419\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleAuthenticateRequest.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">IConsoleAuthenticateRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_authenticate_request.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_authenticate_request =\n[\n    [ \"Password\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\", null ],\n    [ \"Username\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_config-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_config.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleConfig Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">Nakama.Console.IConsoleConfig</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\">Config</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">Nakama.Console.IConsoleConfig</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\">ServerVersion</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">Nakama.Console.IConsoleConfig</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\">Warnings</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">Nakama.Console.IConsoleConfig</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_config.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleConfig Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_config.html','','interface_nakama_1_1_console_1_1_i_console_config-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleConfig Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The current server configuration and any associated warnings.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:afc2f390d0e4742b9320b35a74b383d79\" id=\"r_afc2f390d0e4742b9320b35a74b383d79\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc2f390d0e4742b9320b35a74b383d79\">Config</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afc2f390d0e4742b9320b35a74b383d79\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">JSON-encoded active server configuration.  <br /></td></tr>\n<tr class=\"memitem:af8a88d86a7e574dd64cad759e06e1e35\" id=\"r_af8a88d86a7e574dd64cad759e06e1e35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af8a88d86a7e574dd64cad759e06e1e35\">ServerVersion</a><code> [get]</code></td></tr>\n<tr class=\"memitem:acd5f7853005eda28e5a83e3927231da8\" id=\"r_acd5f7853005eda28e5a83e3927231da8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">IConfigWarning</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acd5f7853005eda28e5a83e3927231da8\">Warnings</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acd5f7853005eda28e5a83e3927231da8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Any warnings about the current config.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The current server configuration and any associated warnings. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"afc2f390d0e4742b9320b35a74b383d79\" name=\"afc2f390d0e4742b9320b35a74b383d79\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc2f390d0e4742b9320b35a74b383d79\">&#9670;&#160;</a></span>Config</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleConfig.Config</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>JSON-encoded active server configuration. </p>\n\n</div>\n</div>\n<a id=\"af8a88d86a7e574dd64cad759e06e1e35\" name=\"af8a88d86a7e574dd64cad759e06e1e35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af8a88d86a7e574dd64cad759e06e1e35\">&#9670;&#160;</a></span>ServerVersion</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleConfig.ServerVersion</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"acd5f7853005eda28e5a83e3927231da8\" name=\"acd5f7853005eda28e5a83e3927231da8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acd5f7853005eda28e5a83e3927231da8\">&#9670;&#160;</a></span>Warnings</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">IConfigWarning</a>&gt; Nakama.Console.IConsoleConfig.Warnings</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Any warnings about the current config. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">IConsoleConfig</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_config.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_config =\n[\n    [ \"Config\", \"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\", null ],\n    [ \"ServerVersion\", \"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\", null ],\n    [ \"Warnings\", \"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_console_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_console_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleConsoleSession Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">Nakama.Console.IConsoleConsoleSession</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">Nakama.Console.IConsoleConsoleSession</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_console_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleConsoleSession Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_console_session.html','','interface_nakama_1_1_console_1_1_i_console_console_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleConsoleSession Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A console user session.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a28549381b6f0e7b7cc92a9d9cf819ae2\" id=\"r_a28549381b6f0e7b7cc92a9d9cf819ae2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28549381b6f0e7b7cc92a9d9cf819ae2\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a28549381b6f0e7b7cc92a9d9cf819ae2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session token (JWT) for the console user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A console user session. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a28549381b6f0e7b7cc92a9d9cf819ae2\" name=\"a28549381b6f0e7b7cc92a9d9cf819ae2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28549381b6f0e7b7cc92a9d9cf819ae2\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleConsoleSession.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A session token (JWT) for the console user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">IConsoleConsoleSession</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_console_session.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_console_session =\n[\n    [ \"Token\", \"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_status_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_status_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleStatusList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">Nakama.Console.IConsoleStatusList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\">Nodes</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">Nakama.Console.IConsoleStatusList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_status_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleStatusList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_status_list.html','','interface_nakama_1_1_console_1_1_i_console_status_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleStatusList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List of nodes and their stats.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0323e23a836cceafff5e4f279802889d\" id=\"r_a0323e23a836cceafff5e4f279802889d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">IStatusListStatus</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0323e23a836cceafff5e4f279802889d\">Nodes</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0323e23a836cceafff5e4f279802889d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of nodes and their stats.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List of nodes and their stats. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0323e23a836cceafff5e4f279802889d\" name=\"a0323e23a836cceafff5e4f279802889d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0323e23a836cceafff5e4f279802889d\">&#9670;&#160;</a></span>Nodes</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">IStatusListStatus</a>&gt; Nakama.Console.IConsoleStatusList.Nodes</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List of nodes and their stats. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">IConsoleStatusList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_status_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_status_list =\n[\n    [ \"Nodes\", \"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_storage_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_storage_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleStorageList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">Nakama.Console.IConsoleStorageList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\">Objects</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">Nakama.Console.IConsoleStorageList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\">TotalCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">Nakama.Console.IConsoleStorageList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_storage_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleStorageList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_storage_list.html','','interface_nakama_1_1_console_1_1_i_console_storage_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleStorageList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List of storage objects.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af93125ef6c4dbd1dd8027e5d10a30238\" id=\"r_af93125ef6c4dbd1dd8027e5d10a30238\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af93125ef6c4dbd1dd8027e5d10a30238\">Objects</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af93125ef6c4dbd1dd8027e5d10a30238\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects matching list/filter operation.  <br /></td></tr>\n<tr class=\"memitem:ae3edcfd19bcde4d6bb3162e9728a1454\" id=\"r_ae3edcfd19bcde4d6bb3162e9728a1454\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae3edcfd19bcde4d6bb3162e9728a1454\">TotalCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae3edcfd19bcde4d6bb3162e9728a1454\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Approximate total number of storage objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List of storage objects. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af93125ef6c4dbd1dd8027e5d10a30238\" name=\"af93125ef6c4dbd1dd8027e5d10a30238\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af93125ef6c4dbd1dd8027e5d10a30238\">&#9670;&#160;</a></span>Objects</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a>&gt; Nakama.Console.IConsoleStorageList.Objects</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>List of storage objects matching list/filter operation. </p>\n\n</div>\n</div>\n<a id=\"ae3edcfd19bcde4d6bb3162e9728a1454\" name=\"ae3edcfd19bcde4d6bb3162e9728a1454\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae3edcfd19bcde4d6bb3162e9728a1454\">&#9670;&#160;</a></span>TotalCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IConsoleStorageList.TotalCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Approximate total number of storage objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">IConsoleStorageList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_storage_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_storage_list =\n[\n    [ \"Objects\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\", null ],\n    [ \"TotalCount\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_unlink_device_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleUnlinkDeviceRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">Nakama.Console.IConsoleUnlinkDeviceRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\">DeviceId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">Nakama.Console.IConsoleUnlinkDeviceRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleUnlinkDeviceRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html','','interface_nakama_1_1_console_1_1_i_console_unlink_device_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleUnlinkDeviceRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Unlink a particular device ID from a user's account.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aa3003b4a1c87e8b1ec858b8dab4f96bd\" id=\"r_aa3003b4a1c87e8b1ec858b8dab4f96bd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa3003b4a1c87e8b1ec858b8dab4f96bd\">DeviceId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa3003b4a1c87e8b1ec858b8dab4f96bd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Device ID to unlink.  <br /></td></tr>\n<tr class=\"memitem:a3e50cf276c3ca4d9324466192029e0b7\" id=\"r_a3e50cf276c3ca4d9324466192029e0b7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3e50cf276c3ca4d9324466192029e0b7\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3e50cf276c3ca4d9324466192029e0b7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User ID to unlink from.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Unlink a particular device ID from a user's account. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aa3003b4a1c87e8b1ec858b8dab4f96bd\" name=\"aa3003b4a1c87e8b1ec858b8dab4f96bd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa3003b4a1c87e8b1ec858b8dab4f96bd\">&#9670;&#160;</a></span>DeviceId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleUnlinkDeviceRequest.DeviceId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Device ID to unlink. </p>\n\n</div>\n</div>\n<a id=\"a3e50cf276c3ca4d9324466192029e0b7\" name=\"a3e50cf276c3ca4d9324466192029e0b7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3e50cf276c3ca4d9324466192029e0b7\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleUnlinkDeviceRequest.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User ID to unlink from. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">IConsoleUnlinkDeviceRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_unlink_device_request.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_unlink_device_request =\n[\n    [ \"DeviceId\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_user_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_user_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleUserList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">Nakama.Console.IConsoleUserList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\">TotalCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">Nakama.Console.IConsoleUserList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\">Users</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">Nakama.Console.IConsoleUserList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_user_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleUserList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_user_list.html','','interface_nakama_1_1_console_1_1_i_console_user_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleUserList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of users.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a60e8109cdbc7acab309fef2cf34ea1f0\" id=\"r_a60e8109cdbc7acab309fef2cf34ea1f0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60e8109cdbc7acab309fef2cf34ea1f0\">TotalCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a60e8109cdbc7acab309fef2cf34ea1f0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Approximate total number of users.  <br /></td></tr>\n<tr class=\"memitem:a917a612c0bab3fea020f38732c67d6c1\" id=\"r_a917a612c0bab3fea020f38732c67d6c1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a917a612c0bab3fea020f38732c67d6c1\">Users</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a917a612c0bab3fea020f38732c67d6c1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of users. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a60e8109cdbc7acab309fef2cf34ea1f0\" name=\"a60e8109cdbc7acab309fef2cf34ea1f0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60e8109cdbc7acab309fef2cf34ea1f0\">&#9670;&#160;</a></span>TotalCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IConsoleUserList.TotalCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Approximate total number of users. </p>\n\n</div>\n</div>\n<a id=\"a917a612c0bab3fea020f38732c67d6c1\" name=\"a917a612c0bab3fea020f38732c67d6c1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a917a612c0bab3fea020f38732c67d6c1\">&#9670;&#160;</a></span>Users</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a>&gt; Nakama.Console.IConsoleUserList.Users</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A list of users. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">IConsoleUserList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_user_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_user_list =\n[\n    [ \"TotalCount\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\", null ],\n    [ \"Users\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWalletLedger Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\">Changeset</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">Nakama.Console.IConsoleWalletLedger</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleWalletLedger Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html','','interface_nakama_1_1_console_1_1_i_console_wallet_ledger-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWalletLedger Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An individual update to a user's wallet.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a5bcd52bee2dcbe9fc00ec944b7ae2bb8\" id=\"r_a5bcd52bee2dcbe9fc00ec944b7ae2bb8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\">Changeset</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5bcd52bee2dcbe9fc00ec944b7ae2bb8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The changeset.  <br /></td></tr>\n<tr class=\"memitem:af3c347c882246b135afbb1a5a4cb304c\" id=\"r_af3c347c882246b135afbb1a5a4cb304c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af3c347c882246b135afbb1a5a4cb304c\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af3c347c882246b135afbb1a5a4cb304c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the wallet ledger item was created.  <br /></td></tr>\n<tr class=\"memitem:a8d4a4453e879e561f9e933452d1ff174\" id=\"r_a8d4a4453e879e561f9e933452d1ff174\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8d4a4453e879e561f9e933452d1ff174\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8d4a4453e879e561f9e933452d1ff174\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The identifier of this wallet change.  <br /></td></tr>\n<tr class=\"memitem:a9d7ee382141ef1020bc0d6f0e463f124\" id=\"r_a9d7ee382141ef1020bc0d6f0e463f124\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9d7ee382141ef1020bc0d6f0e463f124\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9d7ee382141ef1020bc0d6f0e463f124\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Any associated metadata.  <br /></td></tr>\n<tr class=\"memitem:a53478c6bcccbf4427826badc72288f02\" id=\"r_a53478c6bcccbf4427826badc72288f02\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a53478c6bcccbf4427826badc72288f02\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a53478c6bcccbf4427826badc72288f02\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the wallet ledger item was updated.  <br /></td></tr>\n<tr class=\"memitem:a55cfc46ba08490541d278f9d7b68817c\" id=\"r_a55cfc46ba08490541d278f9d7b68817c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a55cfc46ba08490541d278f9d7b68817c\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a55cfc46ba08490541d278f9d7b68817c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user ID this wallet ledger item belongs to.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An individual update to a user's wallet. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a5bcd52bee2dcbe9fc00ec944b7ae2bb8\" name=\"a5bcd52bee2dcbe9fc00ec944b7ae2bb8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\">&#9670;&#160;</a></span>Changeset</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.Changeset</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The changeset. </p>\n\n</div>\n</div>\n<a id=\"af3c347c882246b135afbb1a5a4cb304c\" name=\"af3c347c882246b135afbb1a5a4cb304c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af3c347c882246b135afbb1a5a4cb304c\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the wallet ledger item was created. </p>\n\n</div>\n</div>\n<a id=\"a8d4a4453e879e561f9e933452d1ff174\" name=\"a8d4a4453e879e561f9e933452d1ff174\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8d4a4453e879e561f9e933452d1ff174\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The identifier of this wallet change. </p>\n\n</div>\n</div>\n<a id=\"a9d7ee382141ef1020bc0d6f0e463f124\" name=\"a9d7ee382141ef1020bc0d6f0e463f124\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d7ee382141ef1020bc0d6f0e463f124\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Any associated metadata. </p>\n\n</div>\n</div>\n<a id=\"a53478c6bcccbf4427826badc72288f02\" name=\"a53478c6bcccbf4427826badc72288f02\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a53478c6bcccbf4427826badc72288f02\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the wallet ledger item was updated. </p>\n\n</div>\n</div>\n<a id=\"a55cfc46ba08490541d278f9d7b68817c\" name=\"a55cfc46ba08490541d278f9d7b68817c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a55cfc46ba08490541d278f9d7b68817c\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWalletLedger.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user ID this wallet ledger item belongs to. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_wallet_ledger =\n[\n    [ \"Changeset\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWalletLedgerList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">Nakama.Console.IConsoleWalletLedgerList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\">Items</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">Nakama.Console.IConsoleWalletLedgerList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleWalletLedgerList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html','','interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWalletLedgerList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List of wallet ledger items for a particular user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8d757a185f6a2ff3caba034ee88a037b\" id=\"r_a8d757a185f6a2ff3caba034ee88a037b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8d757a185f6a2ff3caba034ee88a037b\">Items</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8d757a185f6a2ff3caba034ee88a037b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of wallet ledger items.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List of wallet ledger items for a particular user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8d757a185f6a2ff3caba034ee88a037b\" name=\"a8d757a185f6a2ff3caba034ee88a037b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8d757a185f6a2ff3caba034ee88a037b\">&#9670;&#160;</a></span>Items</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a>&gt; Nakama.Console.IConsoleWalletLedgerList.Items</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A list of wallet ledger items. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">IConsoleWalletLedgerList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list =\n[\n    [ \"Items\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_write_storage_object_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWriteStorageObjectRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\">PermissionRead</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\">PermissionWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">Nakama.Console.IConsoleWriteStorageObjectRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IConsoleWriteStorageObjectRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html','','interface_nakama_1_1_console_1_1_i_console_write_storage_object_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IConsoleWriteStorageObjectRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Write a new storage object or update an existing one.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae7ba8fbbdc43e99233d2b76e8225f853\" id=\"r_ae7ba8fbbdc43e99233d2b76e8225f853\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae7ba8fbbdc43e99233d2b76e8225f853\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae7ba8fbbdc43e99233d2b76e8225f853\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Collection.  <br /></td></tr>\n<tr class=\"memitem:a865ce3ebefbf5a554e2b6aa6a5f3bdf2\" id=\"r_a865ce3ebefbf5a554e2b6aa6a5f3bdf2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a865ce3ebefbf5a554e2b6aa6a5f3bdf2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Key.  <br /></td></tr>\n<tr class=\"memitem:ae2986d810a1c7794be14c2c9a42275ee\" id=\"r_ae2986d810a1c7794be14c2c9a42275ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae2986d810a1c7794be14c2c9a42275ee\">PermissionRead</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae2986d810a1c7794be14c2c9a42275ee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Read permission value.  <br /></td></tr>\n<tr class=\"memitem:a51d3b829a2cb8738df418da3f1455cf0\" id=\"r_a51d3b829a2cb8738df418da3f1455cf0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a51d3b829a2cb8738df418da3f1455cf0\">PermissionWrite</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a51d3b829a2cb8738df418da3f1455cf0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write permission value.  <br /></td></tr>\n<tr class=\"memitem:a449dde7ecb6e3e8250df05b83eb7037f\" id=\"r_a449dde7ecb6e3e8250df05b83eb7037f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a449dde7ecb6e3e8250df05b83eb7037f\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a449dde7ecb6e3e8250df05b83eb7037f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Owner user ID.  <br /></td></tr>\n<tr class=\"memitem:a1b184fc1454c3c0ac4d4844c9ef0668b\" id=\"r_a1b184fc1454c3c0ac4d4844c9ef0668b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b184fc1454c3c0ac4d4844c9ef0668b\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1b184fc1454c3c0ac4d4844c9ef0668b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Value.  <br /></td></tr>\n<tr class=\"memitem:ad9890896ef62f031a41353e5e75f81ad\" id=\"r_ad9890896ef62f031a41353e5e75f81ad\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad9890896ef62f031a41353e5e75f81ad\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad9890896ef62f031a41353e5e75f81ad\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Version for OCC.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Write a new storage object or update an existing one. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae7ba8fbbdc43e99233d2b76e8225f853\" name=\"ae7ba8fbbdc43e99233d2b76e8225f853\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae7ba8fbbdc43e99233d2b76e8225f853\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWriteStorageObjectRequest.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Collection. </p>\n\n</div>\n</div>\n<a id=\"a865ce3ebefbf5a554e2b6aa6a5f3bdf2\" name=\"a865ce3ebefbf5a554e2b6aa6a5f3bdf2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWriteStorageObjectRequest.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Key. </p>\n\n</div>\n</div>\n<a id=\"ae2986d810a1c7794be14c2c9a42275ee\" name=\"ae2986d810a1c7794be14c2c9a42275ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae2986d810a1c7794be14c2c9a42275ee\">&#9670;&#160;</a></span>PermissionRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionRead</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Read permission value. </p>\n\n</div>\n</div>\n<a id=\"a51d3b829a2cb8738df418da3f1455cf0\" name=\"a51d3b829a2cb8738df418da3f1455cf0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a51d3b829a2cb8738df418da3f1455cf0\">&#9670;&#160;</a></span>PermissionWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionWrite</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Write permission value. </p>\n\n</div>\n</div>\n<a id=\"a449dde7ecb6e3e8250df05b83eb7037f\" name=\"a449dde7ecb6e3e8250df05b83eb7037f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a449dde7ecb6e3e8250df05b83eb7037f\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWriteStorageObjectRequest.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Owner user ID. </p>\n\n</div>\n</div>\n<a id=\"a1b184fc1454c3c0ac4d4844c9ef0668b\" name=\"a1b184fc1454c3c0ac4d4844c9ef0668b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b184fc1454c3c0ac4d4844c9ef0668b\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWriteStorageObjectRequest.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Value. </p>\n\n</div>\n</div>\n<a id=\"ad9890896ef62f031a41353e5e75f81ad\" name=\"ad9890896ef62f031a41353e5e75f81ad\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad9890896ef62f031a41353e5e75f81ad\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IConsoleWriteStorageObjectRequest.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Version for OCC. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">IConsoleWriteStorageObjectRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.js",
    "content": "var interface_nakama_1_1_console_1_1_i_console_write_storage_object_request =\n[\n    [ \"Collection\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\", null ],\n    [ \"Key\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\", null ],\n    [ \"PermissionRead\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\", null ],\n    [ \"PermissionWrite\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\", null ],\n    [ \"Value\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\", null ],\n    [ \"Version\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaapi_account-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaapi_account.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaapiAccount Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\">CustomId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\">Devices</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\">Email</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\">VerifyTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\">Wallet</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">Nakama.Console.INakamaapiAccount</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaapi_account.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.INakamaapiAccount Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaapi_account.html','','interface_nakama_1_1_console_1_1_i_nakamaapi_account-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaapiAccount Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A user with additional account details. Always the current user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2d01d75c529d43104107034b755baf88\" id=\"r_a2d01d75c529d43104107034b755baf88\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2d01d75c529d43104107034b755baf88\">CustomId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2d01d75c529d43104107034b755baf88\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The custom id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a25d6d1f668a38e769551d7928f8abaad\" id=\"r_a25d6d1f668a38e769551d7928f8abaad\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">IApiAccountDevice</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a25d6d1f668a38e769551d7928f8abaad\">Devices</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a25d6d1f668a38e769551d7928f8abaad\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The devices which belong to the user's account.  <br /></td></tr>\n<tr class=\"memitem:a8f2f9149ea64beaa48a835ac06c5f593\" id=\"r_a8f2f9149ea64beaa48a835ac06c5f593\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8f2f9149ea64beaa48a835ac06c5f593\">Email</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8f2f9149ea64beaa48a835ac06c5f593\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The email address of the user.  <br /></td></tr>\n<tr class=\"memitem:adfbce9fd9851cfcc00cc71feb27a76c7\" id=\"r_adfbce9fd9851cfcc00cc71feb27a76c7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adfbce9fd9851cfcc00cc71feb27a76c7\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adfbce9fd9851cfcc00cc71feb27a76c7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user object.  <br /></td></tr>\n<tr class=\"memitem:ad330da1b5bb578459922e62aa06a6021\" id=\"r_ad330da1b5bb578459922e62aa06a6021\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad330da1b5bb578459922e62aa06a6021\">VerifyTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad330da1b5bb578459922e62aa06a6021\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the user's email was verified.  <br /></td></tr>\n<tr class=\"memitem:a465f0b3ff26ec121d61ecdcd3ab62603\" id=\"r_a465f0b3ff26ec121d61ecdcd3ab62603\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a465f0b3ff26ec121d61ecdcd3ab62603\">Wallet</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a465f0b3ff26ec121d61ecdcd3ab62603\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's wallet data.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A user with additional account details. Always the current user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a2d01d75c529d43104107034b755baf88\" name=\"a2d01d75c529d43104107034b755baf88\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2d01d75c529d43104107034b755baf88\">&#9670;&#160;</a></span>CustomId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaapiAccount.CustomId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The custom id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a25d6d1f668a38e769551d7928f8abaad\" name=\"a25d6d1f668a38e769551d7928f8abaad\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a25d6d1f668a38e769551d7928f8abaad\">&#9670;&#160;</a></span>Devices</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">IApiAccountDevice</a>&gt; Nakama.Console.INakamaapiAccount.Devices</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The devices which belong to the user's account. </p>\n\n</div>\n</div>\n<a id=\"a8f2f9149ea64beaa48a835ac06c5f593\" name=\"a8f2f9149ea64beaa48a835ac06c5f593\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8f2f9149ea64beaa48a835ac06c5f593\">&#9670;&#160;</a></span>Email</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaapiAccount.Email</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The email address of the user. </p>\n\n</div>\n</div>\n<a id=\"adfbce9fd9851cfcc00cc71feb27a76c7\" name=\"adfbce9fd9851cfcc00cc71feb27a76c7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adfbce9fd9851cfcc00cc71feb27a76c7\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a> Nakama.Console.INakamaapiAccount.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user object. </p>\n\n</div>\n</div>\n<a id=\"ad330da1b5bb578459922e62aa06a6021\" name=\"ad330da1b5bb578459922e62aa06a6021\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad330da1b5bb578459922e62aa06a6021\">&#9670;&#160;</a></span>VerifyTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaapiAccount.VerifyTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the user's email was verified. </p>\n\n</div>\n</div>\n<a id=\"a465f0b3ff26ec121d61ecdcd3ab62603\" name=\"a465f0b3ff26ec121d61ecdcd3ab62603\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a465f0b3ff26ec121d61ecdcd3ab62603\">&#9670;&#160;</a></span>Wallet</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaapiAccount.Wallet</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's wallet data. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaapi_account.js",
    "content": "var interface_nakama_1_1_console_1_1_i_nakamaapi_account =\n[\n    [ \"CustomId\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\", null ],\n    [ \"Devices\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\", null ],\n    [ \"Email\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\", null ],\n    [ \"User\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\", null ],\n    [ \"VerifyTime\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\", null ],\n    [ \"Wallet\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_account-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaconsoleAccount Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">Nakama.Console.INakamaconsoleAccount</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\">Account</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">Nakama.Console.INakamaconsoleAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\">DisableTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">Nakama.Console.INakamaconsoleAccount</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.INakamaconsoleAccount Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html','','interface_nakama_1_1_console_1_1_i_nakamaconsole_account-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaconsoleAccount Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Account information.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7f8b5cefecb55ea753a24e1cc2ffdd2d\" id=\"r_a7f8b5cefecb55ea753a24e1cc2ffdd2d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f8b5cefecb55ea753a24e1cc2ffdd2d\">Account</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7f8b5cefecb55ea753a24e1cc2ffdd2d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's account details.  <br /></td></tr>\n<tr class=\"memitem:ab94979eb4d8824d1e8545e7095b32b49\" id=\"r_ab94979eb4d8824d1e8545e7095b32b49\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab94979eb4d8824d1e8545e7095b32b49\">DisableTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab94979eb4d8824d1e8545e7095b32b49\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the account was disabled.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Account information. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7f8b5cefecb55ea753a24e1cc2ffdd2d\" name=\"a7f8b5cefecb55ea753a24e1cc2ffdd2d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f8b5cefecb55ea753a24e1cc2ffdd2d\">&#9670;&#160;</a></span>Account</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a> Nakama.Console.INakamaconsoleAccount.Account</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's account details. </p>\n\n</div>\n</div>\n<a id=\"ab94979eb4d8824d1e8545e7095b32b49\" name=\"ab94979eb4d8824d1e8545e7095b32b49\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab94979eb4d8824d1e8545e7095b32b49\">&#9670;&#160;</a></span>DisableTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleAccount.DisableTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the account was disabled. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">INakamaconsoleAccount</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_account.js",
    "content": "var interface_nakama_1_1_console_1_1_i_nakamaconsole_account =\n[\n    [ \"Account\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\", null ],\n    [ \"DisableTime\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaconsoleUpdateAccountRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\">CustomId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\">DeviceIds</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\">DisplayName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\">Email</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\">Location</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\">Password</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\">Timezone</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\">Wallet</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">Nakama.Console.INakamaconsoleUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.INakamaconsoleUpdateAccountRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html','','interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.INakamaconsoleUpdateAccountRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Update user account information.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:adffafb64eb25eae91db9cc48b543e41e\" id=\"r_adffafb64eb25eae91db9cc48b543e41e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adffafb64eb25eae91db9cc48b543e41e\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adffafb64eb25eae91db9cc48b543e41e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Avatar URL.  <br /></td></tr>\n<tr class=\"memitem:ab18189e6dbc035b470ba9f712b0bf1b2\" id=\"r_ab18189e6dbc035b470ba9f712b0bf1b2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab18189e6dbc035b470ba9f712b0bf1b2\">CustomId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab18189e6dbc035b470ba9f712b0bf1b2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Custom ID.  <br /></td></tr>\n<tr class=\"memitem:a46f9a945d47ef169e18a0d1282cf7c52\" id=\"r_a46f9a945d47ef169e18a0d1282cf7c52\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a46f9a945d47ef169e18a0d1282cf7c52\">DeviceIds</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a46f9a945d47ef169e18a0d1282cf7c52\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Device ID modifications.  <br /></td></tr>\n<tr class=\"memitem:a647c7e505cff59fdb95027c5e7f63632\" id=\"r_a647c7e505cff59fdb95027c5e7f63632\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a647c7e505cff59fdb95027c5e7f63632\">DisplayName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a647c7e505cff59fdb95027c5e7f63632\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Display name.  <br /></td></tr>\n<tr class=\"memitem:aa22d406abe1fba22e778a07ff6dc9a27\" id=\"r_aa22d406abe1fba22e778a07ff6dc9a27\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa22d406abe1fba22e778a07ff6dc9a27\">Email</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa22d406abe1fba22e778a07ff6dc9a27\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Email.  <br /></td></tr>\n<tr class=\"memitem:a297aa9ffe9921c15a9b705d8fca01536\" id=\"r_a297aa9ffe9921c15a9b705d8fca01536\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a297aa9ffe9921c15a9b705d8fca01536\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a297aa9ffe9921c15a9b705d8fca01536\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User ID to update.  <br /></td></tr>\n<tr class=\"memitem:aa49047119e5b00623f8f89e9c1f0208d\" id=\"r_aa49047119e5b00623f8f89e9c1f0208d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa49047119e5b00623f8f89e9c1f0208d\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa49047119e5b00623f8f89e9c1f0208d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Langtag.  <br /></td></tr>\n<tr class=\"memitem:ae6aca8cf5fb6b116c73fae61a1d35058\" id=\"r_ae6aca8cf5fb6b116c73fae61a1d35058\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae6aca8cf5fb6b116c73fae61a1d35058\">Location</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae6aca8cf5fb6b116c73fae61a1d35058\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Location.  <br /></td></tr>\n<tr class=\"memitem:a9deeb2b42d6b2d24ebac4b5ce438390d\" id=\"r_a9deeb2b42d6b2d24ebac4b5ce438390d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9deeb2b42d6b2d24ebac4b5ce438390d\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9deeb2b42d6b2d24ebac4b5ce438390d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Metadata.  <br /></td></tr>\n<tr class=\"memitem:a99467a2409d25b238071ebec97a55e29\" id=\"r_a99467a2409d25b238071ebec97a55e29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a99467a2409d25b238071ebec97a55e29\">Password</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a99467a2409d25b238071ebec97a55e29\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Password.  <br /></td></tr>\n<tr class=\"memitem:afb6b5a14e3cfae2139dd7a69bb6510f0\" id=\"r_afb6b5a14e3cfae2139dd7a69bb6510f0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afb6b5a14e3cfae2139dd7a69bb6510f0\">Timezone</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afb6b5a14e3cfae2139dd7a69bb6510f0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Timezone.  <br /></td></tr>\n<tr class=\"memitem:ab68e3e84cae2c1a93ced9eefca3cbf6e\" id=\"r_ab68e3e84cae2c1a93ced9eefca3cbf6e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab68e3e84cae2c1a93ced9eefca3cbf6e\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab68e3e84cae2c1a93ced9eefca3cbf6e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Username.  <br /></td></tr>\n<tr class=\"memitem:a3109c374d942fc84224609f3c63159e0\" id=\"r_a3109c374d942fc84224609f3c63159e0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3109c374d942fc84224609f3c63159e0\">Wallet</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3109c374d942fc84224609f3c63159e0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Wallet.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Update user account information. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"adffafb64eb25eae91db9cc48b543e41e\" name=\"adffafb64eb25eae91db9cc48b543e41e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adffafb64eb25eae91db9cc48b543e41e\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Avatar URL. </p>\n\n</div>\n</div>\n<a id=\"ab18189e6dbc035b470ba9f712b0bf1b2\" name=\"ab18189e6dbc035b470ba9f712b0bf1b2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab18189e6dbc035b470ba9f712b0bf1b2\">&#9670;&#160;</a></span>CustomId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.CustomId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Custom ID. </p>\n\n</div>\n</div>\n<a id=\"a46f9a945d47ef169e18a0d1282cf7c52\" name=\"a46f9a945d47ef169e18a0d1282cf7c52\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a46f9a945d47ef169e18a0d1282cf7c52\">&#9670;&#160;</a></span>DeviceIds</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.Console.INakamaconsoleUpdateAccountRequest.DeviceIds</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Device ID modifications. </p>\n\n</div>\n</div>\n<a id=\"a647c7e505cff59fdb95027c5e7f63632\" name=\"a647c7e505cff59fdb95027c5e7f63632\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a647c7e505cff59fdb95027c5e7f63632\">&#9670;&#160;</a></span>DisplayName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.DisplayName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Display name. </p>\n\n</div>\n</div>\n<a id=\"aa22d406abe1fba22e778a07ff6dc9a27\" name=\"aa22d406abe1fba22e778a07ff6dc9a27\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa22d406abe1fba22e778a07ff6dc9a27\">&#9670;&#160;</a></span>Email</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Email</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Email. </p>\n\n</div>\n</div>\n<a id=\"a297aa9ffe9921c15a9b705d8fca01536\" name=\"a297aa9ffe9921c15a9b705d8fca01536\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a297aa9ffe9921c15a9b705d8fca01536\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User ID to update. </p>\n\n</div>\n</div>\n<a id=\"aa49047119e5b00623f8f89e9c1f0208d\" name=\"aa49047119e5b00623f8f89e9c1f0208d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa49047119e5b00623f8f89e9c1f0208d\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Langtag. </p>\n\n</div>\n</div>\n<a id=\"ae6aca8cf5fb6b116c73fae61a1d35058\" name=\"ae6aca8cf5fb6b116c73fae61a1d35058\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae6aca8cf5fb6b116c73fae61a1d35058\">&#9670;&#160;</a></span>Location</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Location</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Location. </p>\n\n</div>\n</div>\n<a id=\"a9deeb2b42d6b2d24ebac4b5ce438390d\" name=\"a9deeb2b42d6b2d24ebac4b5ce438390d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9deeb2b42d6b2d24ebac4b5ce438390d\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Metadata. </p>\n\n</div>\n</div>\n<a id=\"a99467a2409d25b238071ebec97a55e29\" name=\"a99467a2409d25b238071ebec97a55e29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a99467a2409d25b238071ebec97a55e29\">&#9670;&#160;</a></span>Password</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Password</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Password. </p>\n\n</div>\n</div>\n<a id=\"afb6b5a14e3cfae2139dd7a69bb6510f0\" name=\"afb6b5a14e3cfae2139dd7a69bb6510f0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afb6b5a14e3cfae2139dd7a69bb6510f0\">&#9670;&#160;</a></span>Timezone</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Timezone</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Timezone. </p>\n\n</div>\n</div>\n<a id=\"ab68e3e84cae2c1a93ced9eefca3cbf6e\" name=\"ab68e3e84cae2c1a93ced9eefca3cbf6e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab68e3e84cae2c1a93ced9eefca3cbf6e\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Username. </p>\n\n</div>\n</div>\n<a id=\"a3109c374d942fc84224609f3c63159e0\" name=\"a3109c374d942fc84224609f3c63159e0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3109c374d942fc84224609f3c63159e0\">&#9670;&#160;</a></span>Wallet</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.INakamaconsoleUpdateAccountRequest.Wallet</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Wallet. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">INakamaconsoleUpdateAccountRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.js",
    "content": "var interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\", null ],\n    [ \"CustomId\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\", null ],\n    [ \"DeviceIds\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\", null ],\n    [ \"DisplayName\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\", null ],\n    [ \"Email\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\", null ],\n    [ \"Id\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\", null ],\n    [ \"Location\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\", null ],\n    [ \"Password\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\", null ],\n    [ \"Timezone\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\", null ],\n    [ \"Username\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\", null ],\n    [ \"Wallet\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_protobuf_any-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_protobuf_any.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IProtobufAny Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">Nakama.Console.IProtobufAny</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\">TypeUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">Nakama.Console.IProtobufAny</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">Nakama.Console.IProtobufAny</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_protobuf_any.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IProtobufAny Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_protobuf_any.html','','interface_nakama_1_1_console_1_1_i_protobuf_any-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IProtobufAny Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a9729b3262d0481a8510ec54901fecb4a\" id=\"r_a9729b3262d0481a8510ec54901fecb4a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9729b3262d0481a8510ec54901fecb4a\">TypeUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9729b3262d0481a8510ec54901fecb4a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in <span class=\"tt\">path/google.protobuf.Duration</span>). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme <span class=\"tt\">http</span>, <span class=\"tt\">https</span>, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, <span class=\"tt\">https</span> is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. Schemes other than <span class=\"tt\">http</span>, <span class=\"tt\">https</span> (or the empty scheme) might be used with implementation specific semantics.  <br /></td></tr>\n<tr class=\"memitem:a382dcf0d9d31a6e039d743ec74cabbcc\" id=\"r_a382dcf0d9d31a6e039d743ec74cabbcc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a382dcf0d9d31a6e039d743ec74cabbcc\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a382dcf0d9d31a6e039d743ec74cabbcc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Must be a valid serialized protocol buffer of the above specified type.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" } </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a9729b3262d0481a8510ec54901fecb4a\" name=\"a9729b3262d0481a8510ec54901fecb4a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9729b3262d0481a8510ec54901fecb4a\">&#9670;&#160;</a></span>TypeUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IProtobufAny.TypeUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in <span class=\"tt\">path/google.protobuf.Duration</span>). The name should be in a canonical form (e.g., leading \".\" is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme <span class=\"tt\">http</span>, <span class=\"tt\">https</span>, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, <span class=\"tt\">https</span> is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. Schemes other than <span class=\"tt\">http</span>, <span class=\"tt\">https</span> (or the empty scheme) might be used with implementation specific semantics. </p>\n\n</div>\n</div>\n<a id=\"a382dcf0d9d31a6e039d743ec74cabbcc\" name=\"a382dcf0d9d31a6e039d743ec74cabbcc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a382dcf0d9d31a6e039d743ec74cabbcc\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IProtobufAny.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Must be a valid serialized protocol buffer of the above specified type. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">IProtobufAny</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_protobuf_any.js",
    "content": "var interface_nakama_1_1_console_1_1_i_protobuf_any =\n[\n    [ \"TypeUrl\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\", null ],\n    [ \"Value\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_runtime_error-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_runtime_error.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IRuntimeError Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\">Details</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\">Error</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\">Message</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">Nakama.Console.IRuntimeError</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_runtime_error.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IRuntimeError Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_runtime_error.html','','interface_nakama_1_1_console_1_1_i_runtime_error-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IRuntimeError Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac0a9d42676b9d2d98cc7e23bde758941\" id=\"r_ac0a9d42676b9d2d98cc7e23bde758941\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0a9d42676b9d2d98cc7e23bde758941\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a22e13cad727b9167505d381db3b482af\" id=\"r_a22e13cad727b9167505d381db3b482af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">IProtobufAny</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a22e13cad727b9167505d381db3b482af\">Details</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a9f5226041b29e4390df9a5e81e589a08\" id=\"r_a9f5226041b29e4390df9a5e81e589a08\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9f5226041b29e4390df9a5e81e589a08\">Error</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a12c16673169678cbb109952673dc8a60\" id=\"r_a12c16673169678cbb109952673dc8a60\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a12c16673169678cbb109952673dc8a60\">Message</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac0a9d42676b9d2d98cc7e23bde758941\" name=\"ac0a9d42676b9d2d98cc7e23bde758941\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0a9d42676b9d2d98cc7e23bde758941\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IRuntimeError.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a22e13cad727b9167505d381db3b482af\" name=\"a22e13cad727b9167505d381db3b482af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a22e13cad727b9167505d381db3b482af\">&#9670;&#160;</a></span>Details</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">IProtobufAny</a>&gt; Nakama.Console.IRuntimeError.Details</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a9f5226041b29e4390df9a5e81e589a08\" name=\"a9f5226041b29e4390df9a5e81e589a08\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9f5226041b29e4390df9a5e81e589a08\">&#9670;&#160;</a></span>Error</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IRuntimeError.Error</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a12c16673169678cbb109952673dc8a60\" name=\"a12c16673169678cbb109952673dc8a60\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a12c16673169678cbb109952673dc8a60\">&#9670;&#160;</a></span>Message</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IRuntimeError.Message</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">IRuntimeError</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_runtime_error.js",
    "content": "var interface_nakama_1_1_console_1_1_i_runtime_error =\n[\n    [ \"Code\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\", null ],\n    [ \"Details\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\", null ],\n    [ \"Error\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\", null ],\n    [ \"Message\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_status_list_status-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_status_list_status.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IStatusListStatus Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\">AvgInputKbs</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\">AvgLatencyMs</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\">AvgOutputKbs</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\">AvgRateSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\">GoroutineCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\">Health</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\">MatchCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\">PresenceCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\">SessionCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">Nakama.Console.IStatusListStatus</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_status_list_status.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IStatusListStatus Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_status_list_status.html','','interface_nakama_1_1_console_1_1_i_status_list_status-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IStatusListStatus Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac58367d6f0155bdb5751120941fc00a2\" id=\"r_ac58367d6f0155bdb5751120941fc00a2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac58367d6f0155bdb5751120941fc00a2\">AvgInputKbs</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac58367d6f0155bdb5751120941fc00a2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Average input bandwidth usage.  <br /></td></tr>\n<tr class=\"memitem:a56b2405d856da581a487bd73b8c07d11\" id=\"r_a56b2405d856da581a487bd73b8c07d11\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a56b2405d856da581a487bd73b8c07d11\">AvgLatencyMs</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a56b2405d856da581a487bd73b8c07d11\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Average response latency in milliseconds.  <br /></td></tr>\n<tr class=\"memitem:a69f5f7c4dccd9b6a6f39097f6ccb8fcd\" id=\"r_a69f5f7c4dccd9b6a6f39097f6ccb8fcd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\">AvgOutputKbs</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a69f5f7c4dccd9b6a6f39097f6ccb8fcd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Average output bandwidth usage.  <br /></td></tr>\n<tr class=\"memitem:a17724f6e13a79a8139d1523efd9c4add\" id=\"r_a17724f6e13a79a8139d1523efd9c4add\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">double&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a17724f6e13a79a8139d1523efd9c4add\">AvgRateSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a17724f6e13a79a8139d1523efd9c4add\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Average number of requests per second.  <br /></td></tr>\n<tr class=\"memitem:ab419b611b74c5dca67086a46533851e9\" id=\"r_ab419b611b74c5dca67086a46533851e9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab419b611b74c5dca67086a46533851e9\">GoroutineCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab419b611b74c5dca67086a46533851e9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Current number of running goroutines.  <br /></td></tr>\n<tr class=\"memitem:ad81610c87e84a4dbd91549f4e1a1af37\" id=\"r_ad81610c87e84a4dbd91549f4e1a1af37\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad81610c87e84a4dbd91549f4e1a1af37\">Health</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad81610c87e84a4dbd91549f4e1a1af37\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Health score.  <br /></td></tr>\n<tr class=\"memitem:a5c9d6f670b3b47e9ea7a20a8fcc6406b\" id=\"r_a5c9d6f670b3b47e9ea7a20a8fcc6406b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5c9d6f670b3b47e9ea7a20a8fcc6406b\">MatchCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5c9d6f670b3b47e9ea7a20a8fcc6406b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Current number of active authoritative matches.  <br /></td></tr>\n<tr class=\"memitem:a6ac7c70a733c82c5cd232ee16e0e4f2d\" id=\"r_a6ac7c70a733c82c5cd232ee16e0e4f2d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6ac7c70a733c82c5cd232ee16e0e4f2d\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6ac7c70a733c82c5cd232ee16e0e4f2d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Node name.  <br /></td></tr>\n<tr class=\"memitem:a8728a67da038b9ad65c14a343ba9ca9c\" id=\"r_a8728a67da038b9ad65c14a343ba9ca9c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8728a67da038b9ad65c14a343ba9ca9c\">PresenceCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8728a67da038b9ad65c14a343ba9ca9c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Currently registered live presences.  <br /></td></tr>\n<tr class=\"memitem:ac117df6b0cf3efbc304669bf19258eab\" id=\"r_ac117df6b0cf3efbc304669bf19258eab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac117df6b0cf3efbc304669bf19258eab\">SessionCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac117df6b0cf3efbc304669bf19258eab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Currently connected sessions.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac58367d6f0155bdb5751120941fc00a2\" name=\"ac58367d6f0155bdb5751120941fc00a2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac58367d6f0155bdb5751120941fc00a2\">&#9670;&#160;</a></span>AvgInputKbs</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double Nakama.Console.IStatusListStatus.AvgInputKbs</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Average input bandwidth usage. </p>\n\n</div>\n</div>\n<a id=\"a56b2405d856da581a487bd73b8c07d11\" name=\"a56b2405d856da581a487bd73b8c07d11\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a56b2405d856da581a487bd73b8c07d11\">&#9670;&#160;</a></span>AvgLatencyMs</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double Nakama.Console.IStatusListStatus.AvgLatencyMs</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Average response latency in milliseconds. </p>\n\n</div>\n</div>\n<a id=\"a69f5f7c4dccd9b6a6f39097f6ccb8fcd\" name=\"a69f5f7c4dccd9b6a6f39097f6ccb8fcd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\">&#9670;&#160;</a></span>AvgOutputKbs</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double Nakama.Console.IStatusListStatus.AvgOutputKbs</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Average output bandwidth usage. </p>\n\n</div>\n</div>\n<a id=\"a17724f6e13a79a8139d1523efd9c4add\" name=\"a17724f6e13a79a8139d1523efd9c4add\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17724f6e13a79a8139d1523efd9c4add\">&#9670;&#160;</a></span>AvgRateSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">double Nakama.Console.IStatusListStatus.AvgRateSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Average number of requests per second. </p>\n\n</div>\n</div>\n<a id=\"ab419b611b74c5dca67086a46533851e9\" name=\"ab419b611b74c5dca67086a46533851e9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab419b611b74c5dca67086a46533851e9\">&#9670;&#160;</a></span>GoroutineCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IStatusListStatus.GoroutineCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Current number of running goroutines. </p>\n\n</div>\n</div>\n<a id=\"ad81610c87e84a4dbd91549f4e1a1af37\" name=\"ad81610c87e84a4dbd91549f4e1a1af37\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad81610c87e84a4dbd91549f4e1a1af37\">&#9670;&#160;</a></span>Health</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IStatusListStatus.Health</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Health score. </p>\n\n</div>\n</div>\n<a id=\"a5c9d6f670b3b47e9ea7a20a8fcc6406b\" name=\"a5c9d6f670b3b47e9ea7a20a8fcc6406b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5c9d6f670b3b47e9ea7a20a8fcc6406b\">&#9670;&#160;</a></span>MatchCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IStatusListStatus.MatchCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Current number of active authoritative matches. </p>\n\n</div>\n</div>\n<a id=\"a6ac7c70a733c82c5cd232ee16e0e4f2d\" name=\"a6ac7c70a733c82c5cd232ee16e0e4f2d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6ac7c70a733c82c5cd232ee16e0e4f2d\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.Console.IStatusListStatus.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Node name. </p>\n\n</div>\n</div>\n<a id=\"a8728a67da038b9ad65c14a343ba9ca9c\" name=\"a8728a67da038b9ad65c14a343ba9ca9c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8728a67da038b9ad65c14a343ba9ca9c\">&#9670;&#160;</a></span>PresenceCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IStatusListStatus.PresenceCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Currently registered live presences. </p>\n\n</div>\n</div>\n<a id=\"ac117df6b0cf3efbc304669bf19258eab\" name=\"ac117df6b0cf3efbc304669bf19258eab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac117df6b0cf3efbc304669bf19258eab\">&#9670;&#160;</a></span>SessionCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IStatusListStatus.SessionCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Currently connected sessions. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">IStatusListStatus</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_status_list_status.js",
    "content": "var interface_nakama_1_1_console_1_1_i_status_list_status =\n[\n    [ \"AvgInputKbs\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\", null ],\n    [ \"AvgLatencyMs\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\", null ],\n    [ \"AvgOutputKbs\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\", null ],\n    [ \"AvgRateSec\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\", null ],\n    [ \"GoroutineCount\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\", null ],\n    [ \"Health\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\", null ],\n    [ \"MatchCount\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\", null ],\n    [ \"Name\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\", null ],\n    [ \"PresenceCount\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\", null ],\n    [ \"SessionCount\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_user_group_list_user_group-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IUserGroupListUserGroup Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">Nakama.Console.IUserGroupListUserGroup</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\">Group</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">Nakama.Console.IUserGroupListUserGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">Nakama.Console.IUserGroupListUserGroup</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console.IUserGroupListUserGroup Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html','','interface_nakama_1_1_console_1_1_i_user_group_list_user_group-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console.IUserGroupListUserGroup Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A single group-role pair.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aca0c07b5c1d82954fdfd7b36721c5827\" id=\"r_aca0c07b5c1d82954fdfd7b36721c5827\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aca0c07b5c1d82954fdfd7b36721c5827\">Group</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aca0c07b5c1d82954fdfd7b36721c5827\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Group.  <br /></td></tr>\n<tr class=\"memitem:a909a6a9e0446c46dc4b65e73777fc007\" id=\"r_a909a6a9e0446c46dc4b65e73777fc007\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a909a6a9e0446c46dc4b65e73777fc007\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a909a6a9e0446c46dc4b65e73777fc007\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's relationship to the group.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A single group-role pair. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aca0c07b5c1d82954fdfd7b36721c5827\" name=\"aca0c07b5c1d82954fdfd7b36721c5827\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aca0c07b5c1d82954fdfd7b36721c5827\">&#9670;&#160;</a></span>Group</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a> Nakama.Console.IUserGroupListUserGroup.Group</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Group. </p>\n\n</div>\n</div>\n<a id=\"a909a6a9e0446c46dc4b65e73777fc007\" name=\"a909a6a9e0446c46dc4b65e73777fc007\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a909a6a9e0446c46dc4b65e73777fc007\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.Console.IUserGroupListUserGroup.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's relationship to the group. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_console_client_8gen_8cs.html\">ConsoleClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_console_1_1_i_user_group_list_user_group.js",
    "content": "var interface_nakama_1_1_console_1_1_i_user_group_list_user_group =\n[\n    [ \"Group\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\", null ],\n    [ \"State\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccount Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\">CustomId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\">Devices</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\">DisableTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\">Email</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\">VerifyTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\">Wallet</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">Nakama.IApiAccount</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccount Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account.html','','interface_nakama_1_1_i_api_account-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccount Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A user with additional account details. Always the current user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a4830e284d2f6becd55ba6f7c0be2db8e\" id=\"r_a4830e284d2f6becd55ba6f7c0be2db8e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4830e284d2f6becd55ba6f7c0be2db8e\">CustomId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4830e284d2f6becd55ba6f7c0be2db8e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The custom id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a79ecb479d141136401f012c63d83511a\" id=\"r_a79ecb479d141136401f012c63d83511a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">IApiAccountDevice</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a79ecb479d141136401f012c63d83511a\">Devices</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a79ecb479d141136401f012c63d83511a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The devices which belong to the user's account.  <br /></td></tr>\n<tr class=\"memitem:acbbe09894d6fcf3669e9fc370a3d9bbc\" id=\"r_acbbe09894d6fcf3669e9fc370a3d9bbc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acbbe09894d6fcf3669e9fc370a3d9bbc\">DisableTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acbbe09894d6fcf3669e9fc370a3d9bbc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned.  <br /></td></tr>\n<tr class=\"memitem:a640472f2fc5084d98cc8b7bbe0ca32bb\" id=\"r_a640472f2fc5084d98cc8b7bbe0ca32bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a640472f2fc5084d98cc8b7bbe0ca32bb\">Email</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a640472f2fc5084d98cc8b7bbe0ca32bb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The email address of the user.  <br /></td></tr>\n<tr class=\"memitem:a4fcda9baa0b711e8edb5523eb4ebaa7f\" id=\"r_a4fcda9baa0b711e8edb5523eb4ebaa7f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4fcda9baa0b711e8edb5523eb4ebaa7f\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4fcda9baa0b711e8edb5523eb4ebaa7f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user object.  <br /></td></tr>\n<tr class=\"memitem:a50d5c545cc0a4ace61c8dd6e5af23db0\" id=\"r_a50d5c545cc0a4ace61c8dd6e5af23db0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a50d5c545cc0a4ace61c8dd6e5af23db0\">VerifyTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a50d5c545cc0a4ace61c8dd6e5af23db0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified.  <br /></td></tr>\n<tr class=\"memitem:a5a6e8ee791417656a0f0b8f5eff14355\" id=\"r_a5a6e8ee791417656a0f0b8f5eff14355\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5a6e8ee791417656a0f0b8f5eff14355\">Wallet</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5a6e8ee791417656a0f0b8f5eff14355\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's wallet data.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A user with additional account details. Always the current user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a4830e284d2f6becd55ba6f7c0be2db8e\" name=\"a4830e284d2f6becd55ba6f7c0be2db8e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4830e284d2f6becd55ba6f7c0be2db8e\">&#9670;&#160;</a></span>CustomId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccount.CustomId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The custom id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a79ecb479d141136401f012c63d83511a\" name=\"a79ecb479d141136401f012c63d83511a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a79ecb479d141136401f012c63d83511a\">&#9670;&#160;</a></span>Devices</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">IApiAccountDevice</a>&gt; Nakama.IApiAccount.Devices</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The devices which belong to the user's account. </p>\n\n</div>\n</div>\n<a id=\"acbbe09894d6fcf3669e9fc370a3d9bbc\" name=\"acbbe09894d6fcf3669e9fc370a3d9bbc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acbbe09894d6fcf3669e9fc370a3d9bbc\">&#9670;&#160;</a></span>DisableTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccount.DisableTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's account was disabled/banned. </p>\n\n</div>\n</div>\n<a id=\"a640472f2fc5084d98cc8b7bbe0ca32bb\" name=\"a640472f2fc5084d98cc8b7bbe0ca32bb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a640472f2fc5084d98cc8b7bbe0ca32bb\">&#9670;&#160;</a></span>Email</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccount.Email</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The email address of the user. </p>\n\n</div>\n</div>\n<a id=\"a4fcda9baa0b711e8edb5523eb4ebaa7f\" name=\"a4fcda9baa0b711e8edb5523eb4ebaa7f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4fcda9baa0b711e8edb5523eb4ebaa7f\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> Nakama.IApiAccount.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user object. </p>\n\n</div>\n</div>\n<a id=\"a50d5c545cc0a4ace61c8dd6e5af23db0\" name=\"a50d5c545cc0a4ace61c8dd6e5af23db0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a50d5c545cc0a4ace61c8dd6e5af23db0\">&#9670;&#160;</a></span>VerifyTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccount.VerifyTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user's email was verified. </p>\n\n</div>\n</div>\n<a id=\"a5a6e8ee791417656a0f0b8f5eff14355\" name=\"a5a6e8ee791417656a0f0b8f5eff14355\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5a6e8ee791417656a0f0b8f5eff14355\">&#9670;&#160;</a></span>Wallet</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccount.Wallet</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's wallet data. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account.js",
    "content": "var interface_nakama_1_1_i_api_account =\n[\n    [ \"CustomId\", \"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\", null ],\n    [ \"Devices\", \"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\", null ],\n    [ \"DisableTime\", \"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\", null ],\n    [ \"Email\", \"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\", null ],\n    [ \"User\", \"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\", null ],\n    [ \"VerifyTime\", \"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\", null ],\n    [ \"Wallet\", \"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_apple-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_apple.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountApple Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">Nakama.IApiAccountApple</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">Nakama.IApiAccountApple</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">Nakama.IApiAccountApple</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_apple.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountApple Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_apple.html','','interface_nakama_1_1_i_api_account_apple-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountApple Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a Apple Sign In token to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a236aef936550ef693ae1ba4e752836c5\" id=\"r_a236aef936550ef693ae1ba4e752836c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a236aef936550ef693ae1ba4e752836c5\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a236aef936550ef693ae1ba4e752836c5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID token received from Apple to validate.  <br /></td></tr>\n<tr class=\"memitem:a74975b2ced42410721d3862a12a842b6\" id=\"r_a74975b2ced42410721d3862a12a842b6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a74975b2ced42410721d3862a12a842b6\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a74975b2ced42410721d3862a12a842b6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a Apple Sign In token to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a236aef936550ef693ae1ba4e752836c5\" name=\"a236aef936550ef693ae1ba4e752836c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a236aef936550ef693ae1ba4e752836c5\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountApple.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID token received from Apple to validate. </p>\n\n</div>\n</div>\n<a id=\"a74975b2ced42410721d3862a12a842b6\" name=\"a74975b2ced42410721d3862a12a842b6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a74975b2ced42410721d3862a12a842b6\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountApple.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_apple.html\">IApiAccountApple</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_apple.js",
    "content": "var interface_nakama_1_1_i_api_account_apple =\n[\n    [ \"Token\", \"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_custom-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_custom.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountCustom Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">Nakama.IApiAccountCustom</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">Nakama.IApiAccountCustom</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">Nakama.IApiAccountCustom</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_custom.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountCustom Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_custom.html','','interface_nakama_1_1_i_api_account_custom-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountCustom Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a custom ID to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1509569fa6580beb01a86148343b9262\" id=\"r_a1509569fa6580beb01a86148343b9262\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1509569fa6580beb01a86148343b9262\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1509569fa6580beb01a86148343b9262\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom identifier.  <br /></td></tr>\n<tr class=\"memitem:a0f3301629398208a5b47bab3e6245a78\" id=\"r_a0f3301629398208a5b47bab3e6245a78\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f3301629398208a5b47bab3e6245a78\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0f3301629398208a5b47bab3e6245a78\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a custom ID to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1509569fa6580beb01a86148343b9262\" name=\"a1509569fa6580beb01a86148343b9262\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1509569fa6580beb01a86148343b9262\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountCustom.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A custom identifier. </p>\n\n</div>\n</div>\n<a id=\"a0f3301629398208a5b47bab3e6245a78\" name=\"a0f3301629398208a5b47bab3e6245a78\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f3301629398208a5b47bab3e6245a78\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountCustom.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_custom.html\">IApiAccountCustom</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_custom.js",
    "content": "var interface_nakama_1_1_i_api_account_custom =\n[\n    [ \"Id\", \"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_device-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_device.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountDevice Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">Nakama.IApiAccountDevice</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">Nakama.IApiAccountDevice</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">Nakama.IApiAccountDevice</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_device.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountDevice Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_device.html','','interface_nakama_1_1_i_api_account_device-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountDevice Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a device to the server. Used with authenticate/link/unlink and user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab7a96ef6d15d563501fd387b76f98b74\" id=\"r_ab7a96ef6d15d563501fd387b76f98b74\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab7a96ef6d15d563501fd387b76f98b74\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab7a96ef6d15d563501fd387b76f98b74\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A device identifier. Should be obtained by a platform-specific device API.  <br /></td></tr>\n<tr class=\"memitem:a6f5eb4d1e2f2930c3176199fa64e01ec\" id=\"r_a6f5eb4d1e2f2930c3176199fa64e01ec\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6f5eb4d1e2f2930c3176199fa64e01ec\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6f5eb4d1e2f2930c3176199fa64e01ec\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a device to the server. Used with authenticate/link/unlink and user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab7a96ef6d15d563501fd387b76f98b74\" name=\"ab7a96ef6d15d563501fd387b76f98b74\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab7a96ef6d15d563501fd387b76f98b74\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountDevice.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A device identifier. Should be obtained by a platform-specific device API. </p>\n\n</div>\n</div>\n<a id=\"a6f5eb4d1e2f2930c3176199fa64e01ec\" name=\"a6f5eb4d1e2f2930c3176199fa64e01ec\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6f5eb4d1e2f2930c3176199fa64e01ec\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountDevice.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_device.html\">IApiAccountDevice</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_device.js",
    "content": "var interface_nakama_1_1_i_api_account_device =\n[\n    [ \"Id\", \"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_email-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_email.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountEmail Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\">Email</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\">Password</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">Nakama.IApiAccountEmail</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_email.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountEmail Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_email.html','','interface_nakama_1_1_i_api_account_email-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountEmail Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send an email with password to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad55b447ecddd9bd3afc8242b8ee26d09\" id=\"r_ad55b447ecddd9bd3afc8242b8ee26d09\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad55b447ecddd9bd3afc8242b8ee26d09\">Email</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad55b447ecddd9bd3afc8242b8ee26d09\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A valid RFC-5322 email address.  <br /></td></tr>\n<tr class=\"memitem:ad177139e341a3787f3cf09e0271066c2\" id=\"r_ad177139e341a3787f3cf09e0271066c2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad177139e341a3787f3cf09e0271066c2\">Password</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad177139e341a3787f3cf09e0271066c2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A password for the user account. Ignored with unlink operations.  <br /></td></tr>\n<tr class=\"memitem:aff45051f1088d4f780179e03795d81f6\" id=\"r_aff45051f1088d4f780179e03795d81f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aff45051f1088d4f780179e03795d81f6\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aff45051f1088d4f780179e03795d81f6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send an email with password to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad55b447ecddd9bd3afc8242b8ee26d09\" name=\"ad55b447ecddd9bd3afc8242b8ee26d09\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad55b447ecddd9bd3afc8242b8ee26d09\">&#9670;&#160;</a></span>Email</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountEmail.Email</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A valid RFC-5322 email address. </p>\n\n</div>\n</div>\n<a id=\"ad177139e341a3787f3cf09e0271066c2\" name=\"ad177139e341a3787f3cf09e0271066c2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad177139e341a3787f3cf09e0271066c2\">&#9670;&#160;</a></span>Password</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountEmail.Password</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A password for the user account. Ignored with unlink operations. </p>\n\n</div>\n</div>\n<a id=\"aff45051f1088d4f780179e03795d81f6\" name=\"aff45051f1088d4f780179e03795d81f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aff45051f1088d4f780179e03795d81f6\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountEmail.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_email.html\">IApiAccountEmail</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_email.js",
    "content": "var interface_nakama_1_1_i_api_account_email =\n[\n    [ \"Email\", \"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\", null ],\n    [ \"Password\", \"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_facebook.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountFacebook Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">Nakama.IApiAccountFacebook</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">Nakama.IApiAccountFacebook</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">Nakama.IApiAccountFacebook</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountFacebook Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_facebook.html','','interface_nakama_1_1_i_api_account_facebook-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountFacebook Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a Facebook token to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac7964eef958b9601424636e740936283\" id=\"r_ac7964eef958b9601424636e740936283\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7964eef958b9601424636e740936283\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac7964eef958b9601424636e740936283\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The OAuth token received from Facebook to access their profile API.  <br /></td></tr>\n<tr class=\"memitem:a3f020c0b47138aef81d2bc00d42e3436\" id=\"r_a3f020c0b47138aef81d2bc00d42e3436\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3f020c0b47138aef81d2bc00d42e3436\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3f020c0b47138aef81d2bc00d42e3436\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a Facebook token to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac7964eef958b9601424636e740936283\" name=\"ac7964eef958b9601424636e740936283\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7964eef958b9601424636e740936283\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountFacebook.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The OAuth token received from Facebook to access their profile API. </p>\n\n</div>\n</div>\n<a id=\"a3f020c0b47138aef81d2bc00d42e3436\" name=\"a3f020c0b47138aef81d2bc00d42e3436\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3f020c0b47138aef81d2bc00d42e3436\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountFacebook.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_facebook.html\">IApiAccountFacebook</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook.js",
    "content": "var interface_nakama_1_1_i_api_account_facebook =\n[\n    [ \"Token\", \"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook_instant_game-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_facebook_instant_game.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountFacebookInstantGame Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">Nakama.IApiAccountFacebookInstantGame</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\">SignedPlayerInfo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">Nakama.IApiAccountFacebookInstantGame</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">Nakama.IApiAccountFacebookInstantGame</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook_instant_game.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountFacebookInstantGame Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_facebook_instant_game.html','','interface_nakama_1_1_i_api_account_facebook_instant_game-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountFacebookInstantGame Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a72b59c27bf3485eed5578482f270e610\" id=\"r_a72b59c27bf3485eed5578482f270e610\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a72b59c27bf3485eed5578482f270e610\">SignedPlayerInfo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a72b59c27bf3485eed5578482f270e610\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration)  <br /></td></tr>\n<tr class=\"memitem:a7fcfc5ce27bd97e4d2a8e8cebc6c1802\" id=\"r_a7fcfc5ce27bd97e4d2a8e8cebc6c1802\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7fcfc5ce27bd97e4d2a8e8cebc6c1802\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a72b59c27bf3485eed5578482f270e610\" name=\"a72b59c27bf3485eed5578482f270e610\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a72b59c27bf3485eed5578482f270e610\">&#9670;&#160;</a></span>SignedPlayerInfo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountFacebookInstantGame.SignedPlayerInfo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration) </p>\n\n</div>\n</div>\n<a id=\"a7fcfc5ce27bd97e4d2a8e8cebc6c1802\" name=\"a7fcfc5ce27bd97e4d2a8e8cebc6c1802\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountFacebookInstantGame.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">IApiAccountFacebookInstantGame</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_facebook_instant_game.js",
    "content": "var interface_nakama_1_1_i_api_account_facebook_instant_game =\n[\n    [ \"SignedPlayerInfo\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_game_center-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_game_center.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountGameCenter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\">BundleId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\">PlayerId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\">PublicKeyUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\">Salt</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\">Signature</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\">TimestampSeconds</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">Nakama.IApiAccountGameCenter</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_game_center.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountGameCenter Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_game_center.html','','interface_nakama_1_1_i_api_account_game_center-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountGameCenter Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a>.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac27ebc1ca627474a06564a8ce057105b\" id=\"r_ac27ebc1ca627474a06564a8ce057105b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac27ebc1ca627474a06564a8ce057105b\">BundleId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac27ebc1ca627474a06564a8ce057105b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Bundle ID (generated by GameCenter).  <br /></td></tr>\n<tr class=\"memitem:a4ee74b10ff5c36b165201772d4ad50d9\" id=\"r_a4ee74b10ff5c36b165201772d4ad50d9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4ee74b10ff5c36b165201772d4ad50d9\">PlayerId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4ee74b10ff5c36b165201772d4ad50d9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Player ID (generated by GameCenter).  <br /></td></tr>\n<tr class=\"memitem:adf878e6254f2b59a87e3f338698b16f7\" id=\"r_adf878e6254f2b59a87e3f338698b16f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adf878e6254f2b59a87e3f338698b16f7\">PublicKeyUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adf878e6254f2b59a87e3f338698b16f7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The URL for the public encryption key.  <br /></td></tr>\n<tr class=\"memitem:aea2cbca29fcf6cc5970e39a550fb8222\" id=\"r_aea2cbca29fcf6cc5970e39a550fb8222\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea2cbca29fcf6cc5970e39a550fb8222\">Salt</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aea2cbca29fcf6cc5970e39a550fb8222\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A random \"NSString\" used to compute the hash and keep it randomized.  <br /></td></tr>\n<tr class=\"memitem:a4a707ce6bd71298851bf6007280eb2d6\" id=\"r_a4a707ce6bd71298851bf6007280eb2d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4a707ce6bd71298851bf6007280eb2d6\">Signature</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4a707ce6bd71298851bf6007280eb2d6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The verification signature data generated.  <br /></td></tr>\n<tr class=\"memitem:abe561a33c4ca1eb201c6cb84b173194b\" id=\"r_abe561a33c4ca1eb201c6cb84b173194b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abe561a33c4ca1eb201c6cb84b173194b\">TimestampSeconds</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abe561a33c4ca1eb201c6cb84b173194b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Time since UNIX epoch when the signature was created.  <br /></td></tr>\n<tr class=\"memitem:ad6ed660a63dc2052ea2f5fba70ca5b00\" id=\"r_ad6ed660a63dc2052ea2f5fba70ca5b00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad6ed660a63dc2052ea2f5fba70ca5b00\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad6ed660a63dc2052ea2f5fba70ca5b00\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a>. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac27ebc1ca627474a06564a8ce057105b\" name=\"ac27ebc1ca627474a06564a8ce057105b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac27ebc1ca627474a06564a8ce057105b\">&#9670;&#160;</a></span>BundleId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.BundleId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Bundle ID (generated by GameCenter). </p>\n\n</div>\n</div>\n<a id=\"a4ee74b10ff5c36b165201772d4ad50d9\" name=\"a4ee74b10ff5c36b165201772d4ad50d9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4ee74b10ff5c36b165201772d4ad50d9\">&#9670;&#160;</a></span>PlayerId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.PlayerId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Player ID (generated by GameCenter). </p>\n\n</div>\n</div>\n<a id=\"adf878e6254f2b59a87e3f338698b16f7\" name=\"adf878e6254f2b59a87e3f338698b16f7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adf878e6254f2b59a87e3f338698b16f7\">&#9670;&#160;</a></span>PublicKeyUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.PublicKeyUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The URL for the public encryption key. </p>\n\n</div>\n</div>\n<a id=\"aea2cbca29fcf6cc5970e39a550fb8222\" name=\"aea2cbca29fcf6cc5970e39a550fb8222\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea2cbca29fcf6cc5970e39a550fb8222\">&#9670;&#160;</a></span>Salt</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.Salt</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A random \"NSString\" used to compute the hash and keep it randomized. </p>\n\n</div>\n</div>\n<a id=\"a4a707ce6bd71298851bf6007280eb2d6\" name=\"a4a707ce6bd71298851bf6007280eb2d6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a707ce6bd71298851bf6007280eb2d6\">&#9670;&#160;</a></span>Signature</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.Signature</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The verification signature data generated. </p>\n\n</div>\n</div>\n<a id=\"abe561a33c4ca1eb201c6cb84b173194b\" name=\"abe561a33c4ca1eb201c6cb84b173194b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abe561a33c4ca1eb201c6cb84b173194b\">&#9670;&#160;</a></span>TimestampSeconds</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGameCenter.TimestampSeconds</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Time since UNIX epoch when the signature was created. </p>\n\n</div>\n</div>\n<a id=\"ad6ed660a63dc2052ea2f5fba70ca5b00\" name=\"ad6ed660a63dc2052ea2f5fba70ca5b00\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad6ed660a63dc2052ea2f5fba70ca5b00\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountGameCenter.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_game_center.html\">IApiAccountGameCenter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_game_center.js",
    "content": "var interface_nakama_1_1_i_api_account_game_center =\n[\n    [ \"BundleId\", \"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\", null ],\n    [ \"PlayerId\", \"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\", null ],\n    [ \"PublicKeyUrl\", \"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\", null ],\n    [ \"Salt\", \"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\", null ],\n    [ \"Signature\", \"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\", null ],\n    [ \"TimestampSeconds\", \"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_google-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_google.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountGoogle Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">Nakama.IApiAccountGoogle</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">Nakama.IApiAccountGoogle</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">Nakama.IApiAccountGoogle</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_google.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountGoogle Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_google.html','','interface_nakama_1_1_i_api_account_google-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountGoogle Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a Google token to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0d9d31fc404382118e7c9fa8671b1ab0\" id=\"r_a0d9d31fc404382118e7c9fa8671b1ab0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d9d31fc404382118e7c9fa8671b1ab0\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0d9d31fc404382118e7c9fa8671b1ab0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The OAuth token received from Google to access their profile API.  <br /></td></tr>\n<tr class=\"memitem:ad34ef90d1dd37f05d0ec036f9edf983d\" id=\"r_ad34ef90d1dd37f05d0ec036f9edf983d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad34ef90d1dd37f05d0ec036f9edf983d\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad34ef90d1dd37f05d0ec036f9edf983d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a Google token to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0d9d31fc404382118e7c9fa8671b1ab0\" name=\"a0d9d31fc404382118e7c9fa8671b1ab0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d9d31fc404382118e7c9fa8671b1ab0\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountGoogle.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The OAuth token received from Google to access their profile API. </p>\n\n</div>\n</div>\n<a id=\"ad34ef90d1dd37f05d0ec036f9edf983d\" name=\"ad34ef90d1dd37f05d0ec036f9edf983d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad34ef90d1dd37f05d0ec036f9edf983d\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountGoogle.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_google.html\">IApiAccountGoogle</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_google.js",
    "content": "var interface_nakama_1_1_i_api_account_google =\n[\n    [ \"Token\", \"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_steam-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_steam.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountSteam Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">Nakama.IApiAccountSteam</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">Nakama.IApiAccountSteam</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">Nakama.IApiAccountSteam</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_steam.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiAccountSteam Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_account_steam.html','','interface_nakama_1_1_i_api_account_steam-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiAccountSteam Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Send a Steam token to the server. Used with authenticate/link/unlink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1624ba777a34d93a944e7939e41f8b8d\" id=\"r_a1624ba777a34d93a944e7939e41f8b8d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1624ba777a34d93a944e7939e41f8b8d\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1624ba777a34d93a944e7939e41f8b8d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The account token received from Steam to access their profile API.  <br /></td></tr>\n<tr class=\"memitem:a8b78f9247736b22818c4faf6e731300c\" id=\"r_a8b78f9247736b22818c4faf6e731300c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b78f9247736b22818c4faf6e731300c\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8b78f9247736b22818c4faf6e731300c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Send a Steam token to the server. Used with authenticate/link/unlink. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1624ba777a34d93a944e7939e41f8b8d\" name=\"a1624ba777a34d93a944e7939e41f8b8d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1624ba777a34d93a944e7939e41f8b8d\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiAccountSteam.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The account token received from Steam to access their profile API. </p>\n\n</div>\n</div>\n<a id=\"a8b78f9247736b22818c4faf6e731300c\" name=\"a8b78f9247736b22818c4faf6e731300c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b78f9247736b22818c4faf6e731300c\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiAccountSteam.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_account_steam.html\">IApiAccountSteam</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_account_steam.js",
    "content": "var interface_nakama_1_1_i_api_account_steam =\n[\n    [ \"Token\", \"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_channel_message.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiChannelMessage Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\">ChannelId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\">Content</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\">GroupId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\">MessageId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\">Persistent</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\">RoomName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\">SenderId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\">UserIdOne</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\">UserIdTwo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">Nakama.IApiChannelMessage</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiChannelMessage Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_channel_message.html','','interface_nakama_1_1_i_api_channel_message-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiChannelMessage Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A message sent on a channel.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1259cb0c701a188655f3afaf10cc7a96\" id=\"r_a1259cb0c701a188655f3afaf10cc7a96\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1259cb0c701a188655f3afaf10cc7a96\">ChannelId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1259cb0c701a188655f3afaf10cc7a96\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The channel this message belongs to.  <br /></td></tr>\n<tr class=\"memitem:aa68dd9505b869e995f44f4f3c06a3051\" id=\"r_aa68dd9505b869e995f44f4f3c06a3051\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa68dd9505b869e995f44f4f3c06a3051\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa68dd9505b869e995f44f4f3c06a3051\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The code representing a message type or category.  <br /></td></tr>\n<tr class=\"memitem:abd910f2d7721923835792460cad8996a\" id=\"r_abd910f2d7721923835792460cad8996a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abd910f2d7721923835792460cad8996a\">Content</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abd910f2d7721923835792460cad8996a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The content payload.  <br /></td></tr>\n<tr class=\"memitem:a3a3bf603099483eca0dbf727ca1817ec\" id=\"r_a3a3bf603099483eca0dbf727ca1817ec\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a3bf603099483eca0dbf727ca1817ec\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3a3bf603099483eca0dbf727ca1817ec\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created.  <br /></td></tr>\n<tr class=\"memitem:ab3c2b53aca6445ef0686fa63aba534b5\" id=\"r_ab3c2b53aca6445ef0686fa63aba534b5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab3c2b53aca6445ef0686fa63aba534b5\">GroupId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab3c2b53aca6445ef0686fa63aba534b5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the group, or an empty string if this message was not sent through a group channel.  <br /></td></tr>\n<tr class=\"memitem:a6b83ec9fec3fe2f236d0983a8d6143a6\" id=\"r_a6b83ec9fec3fe2f236d0983a8d6143a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6b83ec9fec3fe2f236d0983a8d6143a6\">MessageId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6b83ec9fec3fe2f236d0983a8d6143a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique ID of this message.  <br /></td></tr>\n<tr class=\"memitem:aaf9dc2c4247b2d1589dd17f3c0735800\" id=\"r_aaf9dc2c4247b2d1589dd17f3c0735800\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaf9dc2c4247b2d1589dd17f3c0735800\">Persistent</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aaf9dc2c4247b2d1589dd17f3c0735800\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the message was persisted to the channel's history, false otherwise.  <br /></td></tr>\n<tr class=\"memitem:ac2b13020832c4cb54dbf0cc582c76f06\" id=\"r_ac2b13020832c4cb54dbf0cc582c76f06\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac2b13020832c4cb54dbf0cc582c76f06\">RoomName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac2b13020832c4cb54dbf0cc582c76f06\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the chat room, or an empty string if this message was not sent through a chat room.  <br /></td></tr>\n<tr class=\"memitem:acc6f10451b49e3868082df10fed11414\" id=\"r_acc6f10451b49e3868082df10fed11414\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc6f10451b49e3868082df10fed11414\">SenderId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acc6f10451b49e3868082df10fed11414\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Message sender, usually a user ID.  <br /></td></tr>\n<tr class=\"memitem:a8667392822e75cf8bc7f940653514e18\" id=\"r_a8667392822e75cf8bc7f940653514e18\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8667392822e75cf8bc7f940653514e18\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8667392822e75cf8bc7f940653514e18\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated.  <br /></td></tr>\n<tr class=\"memitem:a5d041bf33e573269cec36a7531fafe0a\" id=\"r_a5d041bf33e573269cec36a7531fafe0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5d041bf33e573269cec36a7531fafe0a\">UserIdOne</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5d041bf33e573269cec36a7531fafe0a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:afcb15b942b92f9da8b6c66e6fb7397b9\" id=\"r_afcb15b942b92f9da8b6c66e6fb7397b9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afcb15b942b92f9da8b6c66e6fb7397b9\">UserIdTwo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afcb15b942b92f9da8b6c66e6fb7397b9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:af7c5ac495951fc3b0ed606466af8033e\" id=\"r_af7c5ac495951fc3b0ed606466af8033e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af7c5ac495951fc3b0ed606466af8033e\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af7c5ac495951fc3b0ed606466af8033e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the message sender, if any.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A message sent on a channel. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1259cb0c701a188655f3afaf10cc7a96\" name=\"a1259cb0c701a188655f3afaf10cc7a96\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1259cb0c701a188655f3afaf10cc7a96\">&#9670;&#160;</a></span>ChannelId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.ChannelId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The channel this message belongs to. </p>\n\n</div>\n</div>\n<a id=\"aa68dd9505b869e995f44f4f3c06a3051\" name=\"aa68dd9505b869e995f44f4f3c06a3051\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa68dd9505b869e995f44f4f3c06a3051\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiChannelMessage.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The code representing a message type or category. </p>\n\n</div>\n</div>\n<a id=\"abd910f2d7721923835792460cad8996a\" name=\"abd910f2d7721923835792460cad8996a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abd910f2d7721923835792460cad8996a\">&#9670;&#160;</a></span>Content</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.Content</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The content payload. </p>\n\n</div>\n</div>\n<a id=\"a3a3bf603099483eca0dbf727ca1817ec\" name=\"a3a3bf603099483eca0dbf727ca1817ec\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a3bf603099483eca0dbf727ca1817ec\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was created. </p>\n\n</div>\n</div>\n<a id=\"ab3c2b53aca6445ef0686fa63aba534b5\" name=\"ab3c2b53aca6445ef0686fa63aba534b5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab3c2b53aca6445ef0686fa63aba534b5\">&#9670;&#160;</a></span>GroupId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.GroupId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the group, or an empty string if this message was not sent through a group channel. </p>\n\n</div>\n</div>\n<a id=\"a6b83ec9fec3fe2f236d0983a8d6143a6\" name=\"a6b83ec9fec3fe2f236d0983a8d6143a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6b83ec9fec3fe2f236d0983a8d6143a6\">&#9670;&#160;</a></span>MessageId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.MessageId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique ID of this message. </p>\n\n</div>\n</div>\n<a id=\"aaf9dc2c4247b2d1589dd17f3c0735800\" name=\"aaf9dc2c4247b2d1589dd17f3c0735800\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaf9dc2c4247b2d1589dd17f3c0735800\">&#9670;&#160;</a></span>Persistent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiChannelMessage.Persistent</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the message was persisted to the channel's history, false otherwise. </p>\n\n</div>\n</div>\n<a id=\"ac2b13020832c4cb54dbf0cc582c76f06\" name=\"ac2b13020832c4cb54dbf0cc582c76f06\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac2b13020832c4cb54dbf0cc582c76f06\">&#9670;&#160;</a></span>RoomName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.RoomName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the chat room, or an empty string if this message was not sent through a chat room. </p>\n\n</div>\n</div>\n<a id=\"acc6f10451b49e3868082df10fed11414\" name=\"acc6f10451b49e3868082df10fed11414\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc6f10451b49e3868082df10fed11414\">&#9670;&#160;</a></span>SenderId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.SenderId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Message sender, usually a user ID. </p>\n\n</div>\n</div>\n<a id=\"a8667392822e75cf8bc7f940653514e18\" name=\"a8667392822e75cf8bc7f940653514e18\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8667392822e75cf8bc7f940653514e18\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the message was last updated. </p>\n\n</div>\n</div>\n<a id=\"a5d041bf33e573269cec36a7531fafe0a\" name=\"a5d041bf33e573269cec36a7531fafe0a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5d041bf33e573269cec36a7531fafe0a\">&#9670;&#160;</a></span>UserIdOne</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.UserIdOne</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the first DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"afcb15b942b92f9da8b6c66e6fb7397b9\" name=\"afcb15b942b92f9da8b6c66e6fb7397b9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afcb15b942b92f9da8b6c66e6fb7397b9\">&#9670;&#160;</a></span>UserIdTwo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.UserIdTwo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the second DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"af7c5ac495951fc3b0ed606466af8033e\" name=\"af7c5ac495951fc3b0ed606466af8033e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af7c5ac495951fc3b0ed606466af8033e\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessage.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the message sender, if any. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message.js",
    "content": "var interface_nakama_1_1_i_api_channel_message =\n[\n    [ \"ChannelId\", \"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\", null ],\n    [ \"Code\", \"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\", null ],\n    [ \"Content\", \"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\", null ],\n    [ \"GroupId\", \"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\", null ],\n    [ \"MessageId\", \"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\", null ],\n    [ \"Persistent\", \"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\", null ],\n    [ \"RoomName\", \"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\", null ],\n    [ \"SenderId\", \"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\", null ],\n    [ \"UserIdOne\", \"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\", null ],\n    [ \"UserIdTwo\", \"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_channel_message_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiChannelMessageList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\">CacheableCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\">Messages</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\">NextCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\">PrevCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">Nakama.IApiChannelMessageList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiChannelMessageList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_channel_message_list.html','','interface_nakama_1_1_i_api_channel_message_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiChannelMessageList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of channel messages, usually a result of a list operation.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:afeb63d64fcc6f8499582db0d4eb189e3\" id=\"r_afeb63d64fcc6f8499582db0d4eb189e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afeb63d64fcc6f8499582db0d4eb189e3\">CacheableCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afeb63d64fcc6f8499582db0d4eb189e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.  <br /></td></tr>\n<tr class=\"memitem:a312918337005e53c34bd42330d55030e\" id=\"r_a312918337005e53c34bd42330d55030e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a312918337005e53c34bd42330d55030e\">Messages</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a312918337005e53c34bd42330d55030e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of messages.  <br /></td></tr>\n<tr class=\"memitem:a63851eef1851e892d2e6d89f2d6f22d4\" id=\"r_a63851eef1851e892d2e6d89f2d6f22d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a63851eef1851e892d2e6d89f2d6f22d4\">NextCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a63851eef1851e892d2e6d89f2d6f22d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the next page, if any.  <br /></td></tr>\n<tr class=\"memitem:a63800c8730fedca78043e2856b6efbff\" id=\"r_a63800c8730fedca78043e2856b6efbff\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a63800c8730fedca78043e2856b6efbff\">PrevCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a63800c8730fedca78043e2856b6efbff\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the previous page, if any.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of channel messages, usually a result of a list operation. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"afeb63d64fcc6f8499582db0d4eb189e3\" name=\"afeb63d64fcc6f8499582db0d4eb189e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afeb63d64fcc6f8499582db0d4eb189e3\">&#9670;&#160;</a></span>CacheableCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessageList.CacheableCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors. </p>\n\n</div>\n</div>\n<a id=\"a312918337005e53c34bd42330d55030e\" name=\"a312918337005e53c34bd42330d55030e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a312918337005e53c34bd42330d55030e\">&#9670;&#160;</a></span>Messages</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a>&gt; Nakama.IApiChannelMessageList.Messages</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A list of messages. </p>\n\n</div>\n</div>\n<a id=\"a63851eef1851e892d2e6d89f2d6f22d4\" name=\"a63851eef1851e892d2e6d89f2d6f22d4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a63851eef1851e892d2e6d89f2d6f22d4\">&#9670;&#160;</a></span>NextCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessageList.NextCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the next page, if any. </p>\n\n</div>\n</div>\n<a id=\"a63800c8730fedca78043e2856b6efbff\" name=\"a63800c8730fedca78043e2856b6efbff\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a63800c8730fedca78043e2856b6efbff\">&#9670;&#160;</a></span>PrevCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiChannelMessageList.PrevCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the previous page, if any. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_channel_message_list.js",
    "content": "var interface_nakama_1_1_i_api_channel_message_list =\n[\n    [ \"CacheableCursor\", \"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\", null ],\n    [ \"Messages\", \"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\", null ],\n    [ \"NextCursor\", \"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\", null ],\n    [ \"PrevCursor\", \"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_create_group_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_create_group_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiCreateGroupRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\">MaxCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">Nakama.IApiCreateGroupRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_create_group_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiCreateGroupRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_create_group_request.html','','interface_nakama_1_1_i_api_create_group_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiCreateGroupRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Create a group with the current user as owner.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8d5dad2c2fda2fcec06c5c5550d1cdbb\" id=\"r_a8d5dad2c2fda2fcec06c5c5550d1cdbb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8d5dad2c2fda2fcec06c5c5550d1cdbb\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8d5dad2c2fda2fcec06c5c5550d1cdbb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:a881870903370376431cf2f7c31797ad2\" id=\"r_a881870903370376431cf2f7c31797ad2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a881870903370376431cf2f7c31797ad2\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a881870903370376431cf2f7c31797ad2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A description for the group.  <br /></td></tr>\n<tr class=\"memitem:a92e928ad3562a22470a46aadcc4ebee9\" id=\"r_a92e928ad3562a22470a46aadcc4ebee9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a92e928ad3562a22470a46aadcc4ebee9\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a92e928ad3562a22470a46aadcc4ebee9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:abcc5c8511add4336b86eb68cbe43c7de\" id=\"r_abcc5c8511add4336b86eb68cbe43c7de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abcc5c8511add4336b86eb68cbe43c7de\">MaxCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abcc5c8511add4336b86eb68cbe43c7de\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Maximum number of group members.  <br /></td></tr>\n<tr class=\"memitem:a72e42bbdb158c39fbd755f7972a161d2\" id=\"r_a72e42bbdb158c39fbd755f7972a161d2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a72e42bbdb158c39fbd755f7972a161d2\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a72e42bbdb158c39fbd755f7972a161d2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A unique name for the group.  <br /></td></tr>\n<tr class=\"memitem:a6ade798c7a71adc1662dcc2fb8a79d36\" id=\"r_a6ade798c7a71adc1662dcc2fb8a79d36\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6ade798c7a71adc1662dcc2fb8a79d36\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6ade798c7a71adc1662dcc2fb8a79d36\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Mark a group as open or not where only admins can accept members.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Create a group with the current user as owner. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8d5dad2c2fda2fcec06c5c5550d1cdbb\" name=\"a8d5dad2c2fda2fcec06c5c5550d1cdbb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8d5dad2c2fda2fcec06c5c5550d1cdbb\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiCreateGroupRequest.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"a881870903370376431cf2f7c31797ad2\" name=\"a881870903370376431cf2f7c31797ad2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a881870903370376431cf2f7c31797ad2\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiCreateGroupRequest.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A description for the group. </p>\n\n</div>\n</div>\n<a id=\"a92e928ad3562a22470a46aadcc4ebee9\" name=\"a92e928ad3562a22470a46aadcc4ebee9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a92e928ad3562a22470a46aadcc4ebee9\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiCreateGroupRequest.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"abcc5c8511add4336b86eb68cbe43c7de\" name=\"abcc5c8511add4336b86eb68cbe43c7de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abcc5c8511add4336b86eb68cbe43c7de\">&#9670;&#160;</a></span>MaxCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiCreateGroupRequest.MaxCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Maximum number of group members. </p>\n\n</div>\n</div>\n<a id=\"a72e42bbdb158c39fbd755f7972a161d2\" name=\"a72e42bbdb158c39fbd755f7972a161d2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a72e42bbdb158c39fbd755f7972a161d2\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiCreateGroupRequest.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A unique name for the group. </p>\n\n</div>\n</div>\n<a id=\"a6ade798c7a71adc1662dcc2fb8a79d36\" name=\"a6ade798c7a71adc1662dcc2fb8a79d36\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6ade798c7a71adc1662dcc2fb8a79d36\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiCreateGroupRequest.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Mark a group as open or not where only admins can accept members. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_create_group_request.html\">IApiCreateGroupRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_create_group_request.js",
    "content": "var interface_nakama_1_1_i_api_create_group_request =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\", null ],\n    [ \"Description\", \"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\", null ],\n    [ \"MaxCount\", \"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\", null ],\n    [ \"Name\", \"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_object_id-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_delete_storage_object_id.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiDeleteStorageObjectId Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">Nakama.IApiDeleteStorageObjectId</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_object_id.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiDeleteStorageObjectId Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_delete_storage_object_id.html','','interface_nakama_1_1_i_api_delete_storage_object_id-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiDeleteStorageObjectId Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Storage objects to delete.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.IApiDeleteStorageObjectId:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_api_delete_storage_object_id.png\" usemap=\"#Nakama_2EIApiDeleteStorageObjectId_map\" alt=\"\"/>\n  <map id=\"Nakama_2EIApiDeleteStorageObjectId_map\" name=\"Nakama_2EIApiDeleteStorageObjectId_map\">\n<area href=\"class_nakama_1_1_storage_object_id.html\" title=\"An identifier for a storage object.\" alt=\"Nakama.StorageObjectId\" shape=\"rect\" coords=\"0,56,210,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a20637f8e0807a46dde97b56b6eff4024\" id=\"r_a20637f8e0807a46dde97b56b6eff4024\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a20637f8e0807a46dde97b56b6eff4024\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a20637f8e0807a46dde97b56b6eff4024\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:af63c5066a0c0172de35e43ba42b3316a\" id=\"r_af63c5066a0c0172de35e43ba42b3316a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af63c5066a0c0172de35e43ba42b3316a\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af63c5066a0c0172de35e43ba42b3316a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:af7570d690cf78118235584607bbb8ebd\" id=\"r_af7570d690cf78118235584607bbb8ebd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af7570d690cf78118235584607bbb8ebd\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af7570d690cf78118235584607bbb8ebd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Storage objects to delete. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a20637f8e0807a46dde97b56b6eff4024\" name=\"a20637f8e0807a46dde97b56b6eff4024\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a20637f8e0807a46dde97b56b6eff4024\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiDeleteStorageObjectId.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"af63c5066a0c0172de35e43ba42b3316a\" name=\"af63c5066a0c0172de35e43ba42b3316a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af63c5066a0c0172de35e43ba42b3316a\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiDeleteStorageObjectId.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"af7570d690cf78118235584607bbb8ebd\" name=\"af7570d690cf78118235584607bbb8ebd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af7570d690cf78118235584607bbb8ebd\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiDeleteStorageObjectId.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">IApiDeleteStorageObjectId</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_object_id.js",
    "content": "var interface_nakama_1_1_i_api_delete_storage_object_id =\n[\n    [ \"Collection\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\", null ],\n    [ \"Key\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\", null ],\n    [ \"Version\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_objects_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_delete_storage_objects_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiDeleteStorageObjectsRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">Nakama.IApiDeleteStorageObjectsRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\">ObjectIds</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">Nakama.IApiDeleteStorageObjectsRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_objects_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiDeleteStorageObjectsRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_delete_storage_objects_request.html','','interface_nakama_1_1_i_api_delete_storage_objects_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiDeleteStorageObjectsRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Batch delete storage objects.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a256506b8b1c243bcbf22e9a341e9a725\" id=\"r_a256506b8b1c243bcbf22e9a341e9a725\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">IApiDeleteStorageObjectId</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a256506b8b1c243bcbf22e9a341e9a725\">ObjectIds</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a256506b8b1c243bcbf22e9a341e9a725\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Batch delete storage objects. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a256506b8b1c243bcbf22e9a341e9a725\" name=\"a256506b8b1c243bcbf22e9a341e9a725\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a256506b8b1c243bcbf22e9a341e9a725\">&#9670;&#160;</a></span>ObjectIds</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">IApiDeleteStorageObjectId</a>&gt; Nakama.IApiDeleteStorageObjectsRequest.ObjectIds</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Batch of storage objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">IApiDeleteStorageObjectsRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_delete_storage_objects_request.js",
    "content": "var interface_nakama_1_1_i_api_delete_storage_objects_request =\n[\n    [ \"ObjectIds\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\">External</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\">Properties</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\">Timestamp</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">Nakama.IApiEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_event.html','','interface_nakama_1_1_i_api_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents an event to be passed through the server to registered event handlers.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aa6dab036da2e4cbd3ca41ff10fa0d610\" id=\"r_aa6dab036da2e4cbd3ca41ff10fa0d610\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa6dab036da2e4cbd3ca41ff10fa0d610\">External</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa6dab036da2e4cbd3ca41ff10fa0d610\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the event came directly from a client call, false otherwise.  <br /></td></tr>\n<tr class=\"memitem:aba6a44997576666fab8b98ab0ed59923\" id=\"r_aba6a44997576666fab8b98ab0ed59923\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aba6a44997576666fab8b98ab0ed59923\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aba6a44997576666fab8b98ab0ed59923\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event name, type, category, or identifier.  <br /></td></tr>\n<tr class=\"memitem:abba047f10041db3729e3c5e9b0d7ace4\" id=\"r_abba047f10041db3729e3c5e9b0d7ace4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abba047f10041db3729e3c5e9b0d7ace4\">Properties</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abba047f10041db3729e3c5e9b0d7ace4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Arbitrary event property values.  <br /></td></tr>\n<tr class=\"memitem:a781fb5a536c2ffc3cbf7470774baeadf\" id=\"r_a781fb5a536c2ffc3cbf7470774baeadf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a781fb5a536c2ffc3cbf7470774baeadf\">Timestamp</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a781fb5a536c2ffc3cbf7470774baeadf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time when the event was triggered.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents an event to be passed through the server to registered event handlers. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aa6dab036da2e4cbd3ca41ff10fa0d610\" name=\"aa6dab036da2e4cbd3ca41ff10fa0d610\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa6dab036da2e4cbd3ca41ff10fa0d610\">&#9670;&#160;</a></span>External</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiEvent.External</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the event came directly from a client call, false otherwise. </p>\n\n</div>\n</div>\n<a id=\"aba6a44997576666fab8b98ab0ed59923\" name=\"aba6a44997576666fab8b98ab0ed59923\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aba6a44997576666fab8b98ab0ed59923\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiEvent.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>An event name, type, category, or identifier. </p>\n\n</div>\n</div>\n<a id=\"abba047f10041db3729e3c5e9b0d7ace4\" name=\"abba047f10041db3729e3c5e9b0d7ace4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abba047f10041db3729e3c5e9b0d7ace4\">&#9670;&#160;</a></span>Properties</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiEvent.Properties</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Arbitrary event property values. </p>\n\n</div>\n</div>\n<a id=\"a781fb5a536c2ffc3cbf7470774baeadf\" name=\"a781fb5a536c2ffc3cbf7470774baeadf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a781fb5a536c2ffc3cbf7470774baeadf\">&#9670;&#160;</a></span>Timestamp</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiEvent.Timestamp</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time when the event was triggered. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_event.html\">IApiEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_event.js",
    "content": "var interface_nakama_1_1_i_api_event =\n[\n    [ \"External\", \"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\", null ],\n    [ \"Name\", \"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\", null ],\n    [ \"Properties\", \"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\", null ],\n    [ \"Timestamp\", \"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friend.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriend Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">Nakama.IApiFriend</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiFriend Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friend.html','','interface_nakama_1_1_i_api_friend-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriend Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A friend of a user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2864263153bbf2905c595fa443068692\" id=\"r_a2864263153bbf2905c595fa443068692\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2864263153bbf2905c595fa443068692\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2864263153bbf2905c595fa443068692\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Metadata.  <br /></td></tr>\n<tr class=\"memitem:a1f2e60028fece48989d4b7f075a2e06b\" id=\"r_a1f2e60028fece48989d4b7f075a2e06b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1f2e60028fece48989d4b7f075a2e06b\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1f2e60028fece48989d4b7f075a2e06b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The friend status. one of \"Friend.State\".  <br /></td></tr>\n<tr class=\"memitem:afdaaed338599be89e1f00fd4df57a909\" id=\"r_afdaaed338599be89e1f00fd4df57a909\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afdaaed338599be89e1f00fd4df57a909\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afdaaed338599be89e1f00fd4df57a909\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Time of the latest relationship update.  <br /></td></tr>\n<tr class=\"memitem:afbc1387cf2c3b1cc69fcbf7ce0098ce8\" id=\"r_afbc1387cf2c3b1cc69fcbf7ce0098ce8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afbc1387cf2c3b1cc69fcbf7ce0098ce8\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afbc1387cf2c3b1cc69fcbf7ce0098ce8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A friend of a user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a2864263153bbf2905c595fa443068692\" name=\"a2864263153bbf2905c595fa443068692\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2864263153bbf2905c595fa443068692\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiFriend.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Metadata. </p>\n\n</div>\n</div>\n<a id=\"a1f2e60028fece48989d4b7f075a2e06b\" name=\"a1f2e60028fece48989d4b7f075a2e06b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1f2e60028fece48989d4b7f075a2e06b\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiFriend.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The friend status. one of \"Friend.State\". </p>\n\n</div>\n</div>\n<a id=\"afdaaed338599be89e1f00fd4df57a909\" name=\"afdaaed338599be89e1f00fd4df57a909\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afdaaed338599be89e1f00fd4df57a909\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiFriend.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Time of the latest relationship update. </p>\n\n</div>\n</div>\n<a id=\"afbc1387cf2c3b1cc69fcbf7ce0098ce8\" name=\"afbc1387cf2c3b1cc69fcbf7ce0098ce8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afbc1387cf2c3b1cc69fcbf7ce0098ce8\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> Nakama.IApiFriend.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_friend.html\">IApiFriend</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend.js",
    "content": "var interface_nakama_1_1_i_api_friend =\n[\n    [ \"Metadata\", \"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\", null ],\n    [ \"State\", \"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\", null ],\n    [ \"User\", \"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friend_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriendList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">Nakama.IApiFriendList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">Nakama.IApiFriendList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\">Friends</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">Nakama.IApiFriendList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiFriendList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friend_list.html','','interface_nakama_1_1_i_api_friend_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriendList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A collection of zero or more friends of the user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac9e478ef8f255d2881f025d084b33c2f\" id=\"r_ac9e478ef8f255d2881f025d084b33c2f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac9e478ef8f255d2881f025d084b33c2f\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac9e478ef8f255d2881f025d084b33c2f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:acb35c683f6d487f60a0f10d823f15469\" id=\"r_acb35c683f6d487f60a0f10d823f15469\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">IApiFriend</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acb35c683f6d487f60a0f10d823f15469\">Friends</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acb35c683f6d487f60a0f10d823f15469\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Friend objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A collection of zero or more friends of the user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac9e478ef8f255d2881f025d084b33c2f\" name=\"ac9e478ef8f255d2881f025d084b33c2f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac9e478ef8f255d2881f025d084b33c2f\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiFriendList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"acb35c683f6d487f60a0f10d823f15469\" name=\"acb35c683f6d487f60a0f10d823f15469\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acb35c683f6d487f60a0f10d823f15469\">&#9670;&#160;</a></span>Friends</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">IApiFriend</a>&gt; Nakama.IApiFriendList.Friends</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Friend objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friend_list.js",
    "content": "var interface_nakama_1_1_i_api_friend_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\", null ],\n    [ \"Friends\", \"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friends_of_friends_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friends_of_friends_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriendsOfFriendsList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">Nakama.IApiFriendsOfFriendsList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">Nakama.IApiFriendsOfFriendsList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\">FriendsOfFriends</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">Nakama.IApiFriendsOfFriendsList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friends_of_friends_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiFriendsOfFriendsList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_friends_of_friends_list.html','','interface_nakama_1_1_i_api_friends_of_friends_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiFriendsOfFriendsList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A List of friends of friends.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae55a8cdabc16f3bb1e01596cb8934dcc\" id=\"r_ae55a8cdabc16f3bb1e01596cb8934dcc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae55a8cdabc16f3bb1e01596cb8934dcc\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae55a8cdabc16f3bb1e01596cb8934dcc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:a9e9d4af3dc9675df9ce4ef3ea2096d39\" id=\"r_a9e9d4af3dc9675df9ce4ef3ea2096d39\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">IFriendsOfFriendsListFriendOfFriend</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e9d4af3dc9675df9ce4ef3ea2096d39\">FriendsOfFriends</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9e9d4af3dc9675df9ce4ef3ea2096d39\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User friends of friends.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A List of friends of friends. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae55a8cdabc16f3bb1e01596cb8934dcc\" name=\"ae55a8cdabc16f3bb1e01596cb8934dcc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae55a8cdabc16f3bb1e01596cb8934dcc\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiFriendsOfFriendsList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"a9e9d4af3dc9675df9ce4ef3ea2096d39\" name=\"a9e9d4af3dc9675df9ce4ef3ea2096d39\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e9d4af3dc9675df9ce4ef3ea2096d39\">&#9670;&#160;</a></span>FriendsOfFriends</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">IFriendsOfFriendsListFriendOfFriend</a>&gt; Nakama.IApiFriendsOfFriendsList.FriendsOfFriends</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User friends of friends. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">IApiFriendsOfFriendsList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_friends_of_friends_list.js",
    "content": "var interface_nakama_1_1_i_api_friends_of_friends_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\", null ],\n    [ \"FriendsOfFriends\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroup Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\">CreatorId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\">EdgeCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\">MaxCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">Nakama.IApiGroup</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiGroup Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group.html','','interface_nakama_1_1_i_api_group-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroup Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A group in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a82ce2b2b17083d5793a7b29d5ecc31c5\" id=\"r_a82ce2b2b17083d5793a7b29d5ecc31c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a82ce2b2b17083d5793a7b29d5ecc31c5\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a82ce2b2b17083d5793a7b29d5ecc31c5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:a17dca9ec1efba71d1c4d7318779d8671\" id=\"r_a17dca9ec1efba71d1c4d7318779d8671\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a17dca9ec1efba71d1c4d7318779d8671\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a17dca9ec1efba71d1c4d7318779d8671\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created.  <br /></td></tr>\n<tr class=\"memitem:acf879ad78e0728c9fef1a4cad469ca92\" id=\"r_acf879ad78e0728c9fef1a4cad469ca92\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acf879ad78e0728c9fef1a4cad469ca92\">CreatorId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acf879ad78e0728c9fef1a4cad469ca92\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of the user who created the group.  <br /></td></tr>\n<tr class=\"memitem:aafe0f0a17e12f3f03dcebe888739fe62\" id=\"r_aafe0f0a17e12f3f03dcebe888739fe62\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aafe0f0a17e12f3f03dcebe888739fe62\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aafe0f0a17e12f3f03dcebe888739fe62\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A description for the group.  <br /></td></tr>\n<tr class=\"memitem:af01f3528bcd125916aadfa5195e366c6\" id=\"r_af01f3528bcd125916aadfa5195e366c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af01f3528bcd125916aadfa5195e366c6\">EdgeCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af01f3528bcd125916aadfa5195e366c6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current count of all members in the group.  <br /></td></tr>\n<tr class=\"memitem:ad1f31e094e9972d02d92ffcc78fdfa5d\" id=\"r_ad1f31e094e9972d02d92ffcc78fdfa5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad1f31e094e9972d02d92ffcc78fdfa5d\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad1f31e094e9972d02d92ffcc78fdfa5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of a group.  <br /></td></tr>\n<tr class=\"memitem:a644091bd3ed932fd51ddaeba7df07959\" id=\"r_a644091bd3ed932fd51ddaeba7df07959\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a644091bd3ed932fd51ddaeba7df07959\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a644091bd3ed932fd51ddaeba7df07959\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:a81d90a158836868cf20735e9e0d8ea27\" id=\"r_a81d90a158836868cf20735e9e0d8ea27\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a81d90a158836868cf20735e9e0d8ea27\">MaxCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a81d90a158836868cf20735e9e0d8ea27\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of members allowed.  <br /></td></tr>\n<tr class=\"memitem:a0810484f48d791d355f93c03fb41d292\" id=\"r_a0810484f48d791d355f93c03fb41d292\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0810484f48d791d355f93c03fb41d292\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0810484f48d791d355f93c03fb41d292\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Additional information stored as a JSON object.  <br /></td></tr>\n<tr class=\"memitem:a18dad063aa4a43fb3b25eee848cae3be\" id=\"r_a18dad063aa4a43fb3b25eee848cae3be\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a18dad063aa4a43fb3b25eee848cae3be\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a18dad063aa4a43fb3b25eee848cae3be\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique name of the group.  <br /></td></tr>\n<tr class=\"memitem:a7750eaee67311bfb73bfed5c2dfa73f2\" id=\"r_a7750eaee67311bfb73bfed5c2dfa73f2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7750eaee67311bfb73bfed5c2dfa73f2\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7750eaee67311bfb73bfed5c2dfa73f2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Anyone can join open groups, otherwise only admins can accept members.  <br /></td></tr>\n<tr class=\"memitem:ab745c75e67065996dbf1cb4359590bee\" id=\"r_ab745c75e67065996dbf1cb4359590bee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab745c75e67065996dbf1cb4359590bee\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab745c75e67065996dbf1cb4359590bee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A group in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a82ce2b2b17083d5793a7b29d5ecc31c5\" name=\"a82ce2b2b17083d5793a7b29d5ecc31c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a82ce2b2b17083d5793a7b29d5ecc31c5\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"a17dca9ec1efba71d1c4d7318779d8671\" name=\"a17dca9ec1efba71d1c4d7318779d8671\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17dca9ec1efba71d1c4d7318779d8671\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was created. </p>\n\n</div>\n</div>\n<a id=\"acf879ad78e0728c9fef1a4cad469ca92\" name=\"acf879ad78e0728c9fef1a4cad469ca92\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acf879ad78e0728c9fef1a4cad469ca92\">&#9670;&#160;</a></span>CreatorId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.CreatorId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of the user who created the group. </p>\n\n</div>\n</div>\n<a id=\"aafe0f0a17e12f3f03dcebe888739fe62\" name=\"aafe0f0a17e12f3f03dcebe888739fe62\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aafe0f0a17e12f3f03dcebe888739fe62\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A description for the group. </p>\n\n</div>\n</div>\n<a id=\"af01f3528bcd125916aadfa5195e366c6\" name=\"af01f3528bcd125916aadfa5195e366c6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af01f3528bcd125916aadfa5195e366c6\">&#9670;&#160;</a></span>EdgeCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiGroup.EdgeCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current count of all members in the group. </p>\n\n</div>\n</div>\n<a id=\"ad1f31e094e9972d02d92ffcc78fdfa5d\" name=\"ad1f31e094e9972d02d92ffcc78fdfa5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad1f31e094e9972d02d92ffcc78fdfa5d\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of a group. </p>\n\n</div>\n</div>\n<a id=\"a644091bd3ed932fd51ddaeba7df07959\" name=\"a644091bd3ed932fd51ddaeba7df07959\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a644091bd3ed932fd51ddaeba7df07959\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"a81d90a158836868cf20735e9e0d8ea27\" name=\"a81d90a158836868cf20735e9e0d8ea27\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a81d90a158836868cf20735e9e0d8ea27\">&#9670;&#160;</a></span>MaxCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiGroup.MaxCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of members allowed. </p>\n\n</div>\n</div>\n<a id=\"a0810484f48d791d355f93c03fb41d292\" name=\"a0810484f48d791d355f93c03fb41d292\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0810484f48d791d355f93c03fb41d292\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Additional information stored as a JSON object. </p>\n\n</div>\n</div>\n<a id=\"a18dad063aa4a43fb3b25eee848cae3be\" name=\"a18dad063aa4a43fb3b25eee848cae3be\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a18dad063aa4a43fb3b25eee848cae3be\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique name of the group. </p>\n\n</div>\n</div>\n<a id=\"a7750eaee67311bfb73bfed5c2dfa73f2\" name=\"a7750eaee67311bfb73bfed5c2dfa73f2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7750eaee67311bfb73bfed5c2dfa73f2\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiGroup.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Anyone can join open groups, otherwise only admins can accept members. </p>\n\n</div>\n</div>\n<a id=\"ab745c75e67065996dbf1cb4359590bee\" name=\"ab745c75e67065996dbf1cb4359590bee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab745c75e67065996dbf1cb4359590bee\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroup.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the group was last updated. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group.js",
    "content": "var interface_nakama_1_1_i_api_group =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\", null ],\n    [ \"CreatorId\", \"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\", null ],\n    [ \"Description\", \"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\", null ],\n    [ \"EdgeCount\", \"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\", null ],\n    [ \"MaxCount\", \"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\", null ],\n    [ \"Name\", \"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroupList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">Nakama.IApiGroupList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">Nakama.IApiGroupList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\">Groups</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">Nakama.IApiGroupList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiGroupList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group_list.html','','interface_nakama_1_1_i_api_group_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroupList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>One or more groups returned from a listing operation.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a082e53926ccb3bdeffbf41da3f92be1f\" id=\"r_a082e53926ccb3bdeffbf41da3f92be1f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a082e53926ccb3bdeffbf41da3f92be1f\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a082e53926ccb3bdeffbf41da3f92be1f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A cursor used to get the next page.  <br /></td></tr>\n<tr class=\"memitem:a57e8d2b7d2e89233ee1a0dc1aed3a82b\" id=\"r_a57e8d2b7d2e89233ee1a0dc1aed3a82b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a57e8d2b7d2e89233ee1a0dc1aed3a82b\">Groups</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a57e8d2b7d2e89233ee1a0dc1aed3a82b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">One or more groups.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>One or more groups returned from a listing operation. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a082e53926ccb3bdeffbf41da3f92be1f\" name=\"a082e53926ccb3bdeffbf41da3f92be1f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a082e53926ccb3bdeffbf41da3f92be1f\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroupList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A cursor used to get the next page. </p>\n\n</div>\n</div>\n<a id=\"a57e8d2b7d2e89233ee1a0dc1aed3a82b\" name=\"a57e8d2b7d2e89233ee1a0dc1aed3a82b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a57e8d2b7d2e89233ee1a0dc1aed3a82b\">&#9670;&#160;</a></span>Groups</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a>&gt; Nakama.IApiGroupList.Groups</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>One or more groups. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_list.js",
    "content": "var interface_nakama_1_1_i_api_group_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\", null ],\n    [ \"Groups\", \"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_user_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group_user_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroupUserList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">Nakama.IApiGroupUserList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">Nakama.IApiGroupUserList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\">GroupUsers</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">Nakama.IApiGroupUserList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_user_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiGroupUserList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_group_user_list.html','','interface_nakama_1_1_i_api_group_user_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiGroupUserList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of users belonging to a group, along with their role.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8ecc0f2760edbfe1e5d2012aac48612f\" id=\"r_a8ecc0f2760edbfe1e5d2012aac48612f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8ecc0f2760edbfe1e5d2012aac48612f\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8ecc0f2760edbfe1e5d2012aac48612f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:a6a9a0a0279661f2a655977c9bf74e1e3\" id=\"r_a6a9a0a0279661f2a655977c9bf74e1e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">IGroupUserListGroupUser</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6a9a0a0279661f2a655977c9bf74e1e3\">GroupUsers</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6a9a0a0279661f2a655977c9bf74e1e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User-role pairs for a group.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of users belonging to a group, along with their role. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8ecc0f2760edbfe1e5d2012aac48612f\" name=\"a8ecc0f2760edbfe1e5d2012aac48612f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ecc0f2760edbfe1e5d2012aac48612f\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiGroupUserList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"a6a9a0a0279661f2a655977c9bf74e1e3\" name=\"a6a9a0a0279661f2a655977c9bf74e1e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6a9a0a0279661f2a655977c9bf74e1e3\">&#9670;&#160;</a></span>GroupUsers</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">IGroupUserListGroupUser</a>&gt; Nakama.IApiGroupUserList.GroupUsers</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User-role pairs for a group. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_group_user_list.js",
    "content": "var interface_nakama_1_1_i_api_group_user_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\", null ],\n    [ \"GroupUsers\", \"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_leaderboard_record.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLeaderboardRecord Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\">ExpiryTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\">LeaderboardId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\">MaxNumScore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\">NumScore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\">OwnerId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\">Rank</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\">Score</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\">Subscore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">Nakama.IApiLeaderboardRecord</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiLeaderboardRecord Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_leaderboard_record.html','','interface_nakama_1_1_i_api_leaderboard_record-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLeaderboardRecord Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents a complete leaderboard record with all scores and associated metadata.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aedd0603f88812231f2c6962691c6b972\" id=\"r_aedd0603f88812231f2c6962691c6b972\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aedd0603f88812231f2c6962691c6b972\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aedd0603f88812231f2c6962691c6b972\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created.  <br /></td></tr>\n<tr class=\"memitem:a16026f3b43bb76b8f9b7f5b64febecc1\" id=\"r_a16026f3b43bb76b8f9b7f5b64febecc1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a16026f3b43bb76b8f9b7f5b64febecc1\">ExpiryTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a16026f3b43bb76b8f9b7f5b64febecc1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires.  <br /></td></tr>\n<tr class=\"memitem:a069024f0680417b6d59ad6023f5c39ac\" id=\"r_a069024f0680417b6d59ad6023f5c39ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a069024f0680417b6d59ad6023f5c39ac\">LeaderboardId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a069024f0680417b6d59ad6023f5c39ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the leaderboard this score belongs to.  <br /></td></tr>\n<tr class=\"memitem:ac7ae9d4daa203421fa4ff6f87e3806a3\" id=\"r_ac7ae9d4daa203421fa4ff6f87e3806a3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7ae9d4daa203421fa4ff6f87e3806a3\">MaxNumScore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac7ae9d4daa203421fa4ff6f87e3806a3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of score updates allowed by the owner.  <br /></td></tr>\n<tr class=\"memitem:a35dfcebb353a26543dd7247f654b0c0c\" id=\"r_a35dfcebb353a26543dd7247f654b0c0c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35dfcebb353a26543dd7247f654b0c0c\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a35dfcebb353a26543dd7247f654b0c0c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Metadata.  <br /></td></tr>\n<tr class=\"memitem:ae57e14a0741fb2e0627ddc0dd1cbb6c3\" id=\"r_ae57e14a0741fb2e0627ddc0dd1cbb6c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae57e14a0741fb2e0627ddc0dd1cbb6c3\">NumScore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae57e14a0741fb2e0627ddc0dd1cbb6c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The number of submissions to this score record.  <br /></td></tr>\n<tr class=\"memitem:a7da72a3ec5146681730022c74c9be999\" id=\"r_a7da72a3ec5146681730022c74c9be999\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7da72a3ec5146681730022c74c9be999\">OwnerId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7da72a3ec5146681730022c74c9be999\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the score owner, usually a user or group.  <br /></td></tr>\n<tr class=\"memitem:a3267afb94ba15649efb80fc0f86dc0f8\" id=\"r_a3267afb94ba15649efb80fc0f86dc0f8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3267afb94ba15649efb80fc0f86dc0f8\">Rank</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3267afb94ba15649efb80fc0f86dc0f8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The rank of this record.  <br /></td></tr>\n<tr class=\"memitem:a3a95692a81f3262b8ee1867d8e8344a7\" id=\"r_a3a95692a81f3262b8ee1867d8e8344a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a95692a81f3262b8ee1867d8e8344a7\">Score</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3a95692a81f3262b8ee1867d8e8344a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The score value.  <br /></td></tr>\n<tr class=\"memitem:aacb0fe48d0a9f8c1b41031fa38660e0a\" id=\"r_aacb0fe48d0a9f8c1b41031fa38660e0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aacb0fe48d0a9f8c1b41031fa38660e0a\">Subscore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aacb0fe48d0a9f8c1b41031fa38660e0a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An optional subscore value.  <br /></td></tr>\n<tr class=\"memitem:afff6cfb1102c2ac6d02cb930c94fc841\" id=\"r_afff6cfb1102c2ac6d02cb930c94fc841\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afff6cfb1102c2ac6d02cb930c94fc841\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afff6cfb1102c2ac6d02cb930c94fc841\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated.  <br /></td></tr>\n<tr class=\"memitem:ac384ae3388a5e1f9ea1abb5c11ce3966\" id=\"r_ac384ae3388a5e1f9ea1abb5c11ce3966\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac384ae3388a5e1f9ea1abb5c11ce3966\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac384ae3388a5e1f9ea1abb5c11ce3966\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the score owner, if the owner is a user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents a complete leaderboard record with all scores and associated metadata. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aedd0603f88812231f2c6962691c6b972\" name=\"aedd0603f88812231f2c6962691c6b972\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aedd0603f88812231f2c6962691c6b972\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was created. </p>\n\n</div>\n</div>\n<a id=\"a16026f3b43bb76b8f9b7f5b64febecc1\" name=\"a16026f3b43bb76b8f9b7f5b64febecc1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16026f3b43bb76b8f9b7f5b64febecc1\">&#9670;&#160;</a></span>ExpiryTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.ExpiryTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record expires. </p>\n\n</div>\n</div>\n<a id=\"a069024f0680417b6d59ad6023f5c39ac\" name=\"a069024f0680417b6d59ad6023f5c39ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a069024f0680417b6d59ad6023f5c39ac\">&#9670;&#160;</a></span>LeaderboardId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.LeaderboardId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the leaderboard this score belongs to. </p>\n\n</div>\n</div>\n<a id=\"ac7ae9d4daa203421fa4ff6f87e3806a3\" name=\"ac7ae9d4daa203421fa4ff6f87e3806a3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7ae9d4daa203421fa4ff6f87e3806a3\">&#9670;&#160;</a></span>MaxNumScore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiLeaderboardRecord.MaxNumScore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of score updates allowed by the owner. </p>\n\n</div>\n</div>\n<a id=\"a35dfcebb353a26543dd7247f654b0c0c\" name=\"a35dfcebb353a26543dd7247f654b0c0c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35dfcebb353a26543dd7247f654b0c0c\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Metadata. </p>\n\n</div>\n</div>\n<a id=\"ae57e14a0741fb2e0627ddc0dd1cbb6c3\" name=\"ae57e14a0741fb2e0627ddc0dd1cbb6c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae57e14a0741fb2e0627ddc0dd1cbb6c3\">&#9670;&#160;</a></span>NumScore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiLeaderboardRecord.NumScore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The number of submissions to this score record. </p>\n\n</div>\n</div>\n<a id=\"a7da72a3ec5146681730022c74c9be999\" name=\"a7da72a3ec5146681730022c74c9be999\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7da72a3ec5146681730022c74c9be999\">&#9670;&#160;</a></span>OwnerId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.OwnerId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the score owner, usually a user or group. </p>\n\n</div>\n</div>\n<a id=\"a3267afb94ba15649efb80fc0f86dc0f8\" name=\"a3267afb94ba15649efb80fc0f86dc0f8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3267afb94ba15649efb80fc0f86dc0f8\">&#9670;&#160;</a></span>Rank</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.Rank</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The rank of this record. </p>\n\n</div>\n</div>\n<a id=\"a3a95692a81f3262b8ee1867d8e8344a7\" name=\"a3a95692a81f3262b8ee1867d8e8344a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a95692a81f3262b8ee1867d8e8344a7\">&#9670;&#160;</a></span>Score</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.Score</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The score value. </p>\n\n</div>\n</div>\n<a id=\"aacb0fe48d0a9f8c1b41031fa38660e0a\" name=\"aacb0fe48d0a9f8c1b41031fa38660e0a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aacb0fe48d0a9f8c1b41031fa38660e0a\">&#9670;&#160;</a></span>Subscore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.Subscore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>An optional subscore value. </p>\n\n</div>\n</div>\n<a id=\"afff6cfb1102c2ac6d02cb930c94fc841\" name=\"afff6cfb1102c2ac6d02cb930c94fc841\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afff6cfb1102c2ac6d02cb930c94fc841\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the leaderboard record was updated. </p>\n\n</div>\n</div>\n<a id=\"ac384ae3388a5e1f9ea1abb5c11ce3966\" name=\"ac384ae3388a5e1f9ea1abb5c11ce3966\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac384ae3388a5e1f9ea1abb5c11ce3966\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecord.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the score owner, if the owner is a user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record.js",
    "content": "var interface_nakama_1_1_i_api_leaderboard_record =\n[\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\", null ],\n    [ \"ExpiryTime\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\", null ],\n    [ \"LeaderboardId\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\", null ],\n    [ \"MaxNumScore\", \"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\", null ],\n    [ \"NumScore\", \"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\", null ],\n    [ \"OwnerId\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\", null ],\n    [ \"Rank\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\", null ],\n    [ \"Score\", \"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\", null ],\n    [ \"Subscore\", \"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_leaderboard_record_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLeaderboardRecordList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\">NextCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\">OwnerRecords</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\">PrevCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\">RankCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\">Records</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">Nakama.IApiLeaderboardRecordList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiLeaderboardRecordList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_leaderboard_record_list.html','','interface_nakama_1_1_i_api_leaderboard_record_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLeaderboardRecordList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8141377d0ed766e306e767eb670b1d0c\" id=\"r_a8141377d0ed766e306e767eb670b1d0c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8141377d0ed766e306e767eb670b1d0c\">NextCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8141377d0ed766e306e767eb670b1d0c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the next page, if any.  <br /></td></tr>\n<tr class=\"memitem:a0467e17292ce1118bfcb922cb7a3c4aa\" id=\"r_a0467e17292ce1118bfcb922cb7a3c4aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0467e17292ce1118bfcb922cb7a3c4aa\">OwnerRecords</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0467e17292ce1118bfcb922cb7a3c4aa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batched set of leaderboard records belonging to specified owners.  <br /></td></tr>\n<tr class=\"memitem:a3a593d9750f2dc2ea4c2ba3b6c879880\" id=\"r_a3a593d9750f2dc2ea4c2ba3b6c879880\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a593d9750f2dc2ea4c2ba3b6c879880\">PrevCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3a593d9750f2dc2ea4c2ba3b6c879880\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the previous page, if any.  <br /></td></tr>\n<tr class=\"memitem:a12b03e7d1f0135f7af8394dc5ef014b7\" id=\"r_a12b03e7d1f0135f7af8394dc5ef014b7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a12b03e7d1f0135f7af8394dc5ef014b7\">RankCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a12b03e7d1f0135f7af8394dc5ef014b7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The total number of ranks available.  <br /></td></tr>\n<tr class=\"memitem:afc22e53bcc626655097b8ddbe487f2b0\" id=\"r_afc22e53bcc626655097b8ddbe487f2b0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc22e53bcc626655097b8ddbe487f2b0\">Records</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afc22e53bcc626655097b8ddbe487f2b0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of leaderboard records.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8141377d0ed766e306e767eb670b1d0c\" name=\"a8141377d0ed766e306e767eb670b1d0c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8141377d0ed766e306e767eb670b1d0c\">&#9670;&#160;</a></span>NextCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecordList.NextCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the next page, if any. </p>\n\n</div>\n</div>\n<a id=\"a0467e17292ce1118bfcb922cb7a3c4aa\" name=\"a0467e17292ce1118bfcb922cb7a3c4aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0467e17292ce1118bfcb922cb7a3c4aa\">&#9670;&#160;</a></span>OwnerRecords</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a>&gt; Nakama.IApiLeaderboardRecordList.OwnerRecords</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A batched set of leaderboard records belonging to specified owners. </p>\n\n</div>\n</div>\n<a id=\"a3a593d9750f2dc2ea4c2ba3b6c879880\" name=\"a3a593d9750f2dc2ea4c2ba3b6c879880\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a593d9750f2dc2ea4c2ba3b6c879880\">&#9670;&#160;</a></span>PrevCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecordList.PrevCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the previous page, if any. </p>\n\n</div>\n</div>\n<a id=\"a12b03e7d1f0135f7af8394dc5ef014b7\" name=\"a12b03e7d1f0135f7af8394dc5ef014b7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a12b03e7d1f0135f7af8394dc5ef014b7\">&#9670;&#160;</a></span>RankCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiLeaderboardRecordList.RankCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The total number of ranks available. </p>\n\n</div>\n</div>\n<a id=\"afc22e53bcc626655097b8ddbe487f2b0\" name=\"afc22e53bcc626655097b8ddbe487f2b0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc22e53bcc626655097b8ddbe487f2b0\">&#9670;&#160;</a></span>Records</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a>&gt; Nakama.IApiLeaderboardRecordList.Records</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A list of leaderboard records. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_leaderboard_record_list.js",
    "content": "var interface_nakama_1_1_i_api_leaderboard_record_list =\n[\n    [ \"NextCursor\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\", null ],\n    [ \"OwnerRecords\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\", null ],\n    [ \"PrevCursor\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\", null ],\n    [ \"RankCount\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\", null ],\n    [ \"Records\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_link_steam_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_link_steam_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLinkSteamRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">Nakama.IApiLinkSteamRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\">Account</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">Nakama.IApiLinkSteamRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\">Sync</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">Nakama.IApiLinkSteamRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_link_steam_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiLinkSteamRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_link_steam_request.html','','interface_nakama_1_1_i_api_link_steam_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiLinkSteamRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Link Steam to the current user's account.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad508d87c1a7ff1e453c8c5f171adf258\" id=\"r_ad508d87c1a7ff1e453c8c5f171adf258\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">IApiAccountSteam</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad508d87c1a7ff1e453c8c5f171adf258\">Account</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad508d87c1a7ff1e453c8c5f171adf258\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Facebook account details.  <br /></td></tr>\n<tr class=\"memitem:a72801c16022a5c1f9a950225b1af8bd8\" id=\"r_a72801c16022a5c1f9a950225b1af8bd8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a72801c16022a5c1f9a950225b1af8bd8\">Sync</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a72801c16022a5c1f9a950225b1af8bd8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Import Steam friends for the user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Link Steam to the current user's account. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad508d87c1a7ff1e453c8c5f171adf258\" name=\"ad508d87c1a7ff1e453c8c5f171adf258\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad508d87c1a7ff1e453c8c5f171adf258\">&#9670;&#160;</a></span>Account</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">IApiAccountSteam</a> Nakama.IApiLinkSteamRequest.Account</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Facebook account details. </p>\n\n</div>\n</div>\n<a id=\"a72801c16022a5c1f9a950225b1af8bd8\" name=\"a72801c16022a5c1f9a950225b1af8bd8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a72801c16022a5c1f9a950225b1af8bd8\">&#9670;&#160;</a></span>Sync</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiLinkSteamRequest.Sync</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Import Steam friends for the user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_link_steam_request.html\">IApiLinkSteamRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_link_steam_request.js",
    "content": "var interface_nakama_1_1_i_api_link_steam_request =\n[\n    [ \"Account\", \"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\", null ],\n    [ \"Sync\", \"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_list_subscriptions_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_list_subscriptions_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiListSubscriptionsRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">Nakama.IApiListSubscriptionsRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">Nakama.IApiListSubscriptionsRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\">Limit</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">Nakama.IApiListSubscriptionsRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_list_subscriptions_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiListSubscriptionsRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_list_subscriptions_request.html','','interface_nakama_1_1_i_api_list_subscriptions_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiListSubscriptionsRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List user subscriptions.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7fcfaaf2213c0a0c4b2117d3637006d4\" id=\"r_a7fcfaaf2213c0a0c4b2117d3637006d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7fcfaaf2213c0a0c4b2117d3637006d4\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7fcfaaf2213c0a0c4b2117d3637006d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor to retrieve a page of records from.  <br /></td></tr>\n<tr class=\"memitem:a7c750f07a5761a59d1719c6b3db73ac1\" id=\"r_a7c750f07a5761a59d1719c6b3db73ac1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7c750f07a5761a59d1719c6b3db73ac1\">Limit</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7c750f07a5761a59d1719c6b3db73ac1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Max number of results per page.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List user subscriptions. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7fcfaaf2213c0a0c4b2117d3637006d4\" name=\"a7fcfaaf2213c0a0c4b2117d3637006d4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7fcfaaf2213c0a0c4b2117d3637006d4\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiListSubscriptionsRequest.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor to retrieve a page of records from. </p>\n\n</div>\n</div>\n<a id=\"a7c750f07a5761a59d1719c6b3db73ac1\" name=\"a7c750f07a5761a59d1719c6b3db73ac1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7c750f07a5761a59d1719c6b3db73ac1\">&#9670;&#160;</a></span>Limit</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiListSubscriptionsRequest.Limit</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Max number of results per page. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">IApiListSubscriptionsRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_list_subscriptions_request.js",
    "content": "var interface_nakama_1_1_i_api_list_subscriptions_request =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\", null ],\n    [ \"Limit\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_match.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatch Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\">Authoritative</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\">HandlerName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\">MatchId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\">Size</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\">TickRate</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">Nakama.IApiMatch</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiMatch Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_match.html','','interface_nakama_1_1_i_api_match-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatch Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Represents a realtime match.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a102a2515c695ea594b7d20f78c7a7357\" id=\"r_a102a2515c695ea594b7d20f78c7a7357\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a102a2515c695ea594b7d20f78c7a7357\">Authoritative</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a102a2515c695ea594b7d20f78c7a7357\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if it's an server-managed authoritative match, false otherwise.  <br /></td></tr>\n<tr class=\"memitem:afc84c3927f6f889313ec34153c744753\" id=\"r_afc84c3927f6f889313ec34153c744753\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc84c3927f6f889313ec34153c744753\">HandlerName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afc84c3927f6f889313ec34153c744753\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Handler name.  <br /></td></tr>\n<tr class=\"memitem:aa5c09c4a5b4e19d8acb2aa3bc1f555c1\" id=\"r_aa5c09c4a5b4e19d8acb2aa3bc1f555c1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa5c09c4a5b4e19d8acb2aa3bc1f555c1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Match label, if any.  <br /></td></tr>\n<tr class=\"memitem:adeb7ec5cc19e0d6f8e517eeadc044a0d\" id=\"r_adeb7ec5cc19e0d6f8e517eeadc044a0d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adeb7ec5cc19e0d6f8e517eeadc044a0d\">MatchId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adeb7ec5cc19e0d6f8e517eeadc044a0d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the match, can be used to join.  <br /></td></tr>\n<tr class=\"memitem:a54eed534d6eb5fb1b60fbdd09f54e280\" id=\"r_a54eed534d6eb5fb1b60fbdd09f54e280\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a54eed534d6eb5fb1b60fbdd09f54e280\">Size</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a54eed534d6eb5fb1b60fbdd09f54e280\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Current number of users in the match.  <br /></td></tr>\n<tr class=\"memitem:abdd9d1b2e633e702f3e5ef02299e5529\" id=\"r_abdd9d1b2e633e702f3e5ef02299e5529\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abdd9d1b2e633e702f3e5ef02299e5529\">TickRate</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abdd9d1b2e633e702f3e5ef02299e5529\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Tick Rate.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Represents a realtime match. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a102a2515c695ea594b7d20f78c7a7357\" name=\"a102a2515c695ea594b7d20f78c7a7357\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a102a2515c695ea594b7d20f78c7a7357\">&#9670;&#160;</a></span>Authoritative</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiMatch.Authoritative</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if it's an server-managed authoritative match, false otherwise. </p>\n\n</div>\n</div>\n<a id=\"afc84c3927f6f889313ec34153c744753\" name=\"afc84c3927f6f889313ec34153c744753\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc84c3927f6f889313ec34153c744753\">&#9670;&#160;</a></span>HandlerName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatch.HandlerName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Handler name. </p>\n\n</div>\n</div>\n<a id=\"aa5c09c4a5b4e19d8acb2aa3bc1f555c1\" name=\"aa5c09c4a5b4e19d8acb2aa3bc1f555c1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatch.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Match label, if any. </p>\n\n</div>\n</div>\n<a id=\"adeb7ec5cc19e0d6f8e517eeadc044a0d\" name=\"adeb7ec5cc19e0d6f8e517eeadc044a0d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adeb7ec5cc19e0d6f8e517eeadc044a0d\">&#9670;&#160;</a></span>MatchId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatch.MatchId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the match, can be used to join. </p>\n\n</div>\n</div>\n<a id=\"a54eed534d6eb5fb1b60fbdd09f54e280\" name=\"a54eed534d6eb5fb1b60fbdd09f54e280\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a54eed534d6eb5fb1b60fbdd09f54e280\">&#9670;&#160;</a></span>Size</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiMatch.Size</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Current number of users in the match. </p>\n\n</div>\n</div>\n<a id=\"abdd9d1b2e633e702f3e5ef02299e5529\" name=\"abdd9d1b2e633e702f3e5ef02299e5529\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abdd9d1b2e633e702f3e5ef02299e5529\">&#9670;&#160;</a></span>TickRate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiMatch.TickRate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Tick Rate. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_match.html\">IApiMatch</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match.js",
    "content": "var interface_nakama_1_1_i_api_match =\n[\n    [ \"Authoritative\", \"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\", null ],\n    [ \"HandlerName\", \"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\", null ],\n    [ \"Label\", \"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\", null ],\n    [ \"MatchId\", \"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\", null ],\n    [ \"Size\", \"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\", null ],\n    [ \"TickRate\", \"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_match_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">Nakama.IApiMatchList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\">Matches</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">Nakama.IApiMatchList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiMatchList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_match_list.html','','interface_nakama_1_1_i_api_match_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of realtime matches.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a31db7ac1b4df0a496bcf73e17ecd4589\" id=\"r_a31db7ac1b4df0a496bcf73e17ecd4589\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">IApiMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a31db7ac1b4df0a496bcf73e17ecd4589\">Matches</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a31db7ac1b4df0a496bcf73e17ecd4589\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A number of matches corresponding to a list operation.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of realtime matches. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a31db7ac1b4df0a496bcf73e17ecd4589\" name=\"a31db7ac1b4df0a496bcf73e17ecd4589\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a31db7ac1b4df0a496bcf73e17ecd4589\">&#9670;&#160;</a></span>Matches</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">IApiMatch</a>&gt; Nakama.IApiMatchList.Matches</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A number of matches corresponding to a list operation. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_match_list.js",
    "content": "var interface_nakama_1_1_i_api_match_list =\n[\n    [ \"Matches\", \"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_completion_stats-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_matchmaker_completion_stats.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchmakerCompletionStats Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">Nakama.IApiMatchmakerCompletionStats</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\">CompleteTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">Nakama.IApiMatchmakerCompletionStats</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">Nakama.IApiMatchmakerCompletionStats</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_completion_stats.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiMatchmakerCompletionStats Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_matchmaker_completion_stats.html','','interface_nakama_1_1_i_api_matchmaker_completion_stats-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchmakerCompletionStats Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Matchmaker ticket completion stats.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a340777ab3b38b9643d847d04eb15db58\" id=\"r_a340777ab3b38b9643d847d04eb15db58\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a340777ab3b38b9643d847d04eb15db58\">CompleteTime</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a18a42211dec5e03b80dd9b02812b2379\" id=\"r_a18a42211dec5e03b80dd9b02812b2379\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a18a42211dec5e03b80dd9b02812b2379\">CreateTime</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Matchmaker ticket completion stats. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a340777ab3b38b9643d847d04eb15db58\" name=\"a340777ab3b38b9643d847d04eb15db58\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a340777ab3b38b9643d847d04eb15db58\">&#9670;&#160;</a></span>CompleteTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatchmakerCompletionStats.CompleteTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a18a42211dec5e03b80dd9b02812b2379\" name=\"a18a42211dec5e03b80dd9b02812b2379\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a18a42211dec5e03b80dd9b02812b2379\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatchmakerCompletionStats.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">IApiMatchmakerCompletionStats</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_completion_stats.js",
    "content": "var interface_nakama_1_1_i_api_matchmaker_completion_stats =\n[\n    [ \"CompleteTime\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_stats-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_matchmaker_stats.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchmakerStats Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">Nakama.IApiMatchmakerStats</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\">Completions</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">Nakama.IApiMatchmakerStats</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\">OldestTicketCreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">Nakama.IApiMatchmakerStats</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\">TicketCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">Nakama.IApiMatchmakerStats</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_stats.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiMatchmakerStats Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_matchmaker_stats.html','','interface_nakama_1_1_i_api_matchmaker_stats-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiMatchmakerStats Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Matchmaker stats.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aef2da234aa07ddec69bddef80a62baf5\" id=\"r_aef2da234aa07ddec69bddef80a62baf5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">IApiMatchmakerCompletionStats</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aef2da234aa07ddec69bddef80a62baf5\">Completions</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a8a705ebfeec2d53a021543e84883dce6\" id=\"r_a8a705ebfeec2d53a021543e84883dce6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8a705ebfeec2d53a021543e84883dce6\">OldestTicketCreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ae77d82dfea20e696ee544963dbcd9bed\" id=\"r_ae77d82dfea20e696ee544963dbcd9bed\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae77d82dfea20e696ee544963dbcd9bed\">TicketCount</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Matchmaker stats. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aef2da234aa07ddec69bddef80a62baf5\" name=\"aef2da234aa07ddec69bddef80a62baf5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef2da234aa07ddec69bddef80a62baf5\">&#9670;&#160;</a></span>Completions</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">IApiMatchmakerCompletionStats</a>&gt; Nakama.IApiMatchmakerStats.Completions</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a8a705ebfeec2d53a021543e84883dce6\" name=\"a8a705ebfeec2d53a021543e84883dce6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8a705ebfeec2d53a021543e84883dce6\">&#9670;&#160;</a></span>OldestTicketCreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiMatchmakerStats.OldestTicketCreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ae77d82dfea20e696ee544963dbcd9bed\" name=\"ae77d82dfea20e696ee544963dbcd9bed\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae77d82dfea20e696ee544963dbcd9bed\">&#9670;&#160;</a></span>TicketCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiMatchmakerStats.TicketCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">IApiMatchmakerStats</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_matchmaker_stats.js",
    "content": "var interface_nakama_1_1_i_api_matchmaker_stats =\n[\n    [ \"Completions\", \"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\", null ],\n    [ \"OldestTicketCreateTime\", \"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\", null ],\n    [ \"TicketCount\", \"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_notification.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiNotification Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\">Content</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\">Persistent</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\">SenderId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\">Subject</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">Nakama.IApiNotification</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiNotification Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_notification.html','','interface_nakama_1_1_i_api_notification-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiNotification Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A notification in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a28725e838382d3d1626d460104d93f54\" id=\"r_a28725e838382d3d1626d460104d93f54\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28725e838382d3d1626d460104d93f54\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a28725e838382d3d1626d460104d93f54\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Category code for this notification.  <br /></td></tr>\n<tr class=\"memitem:ab598caa08025f1ec0969bebd6f044b8d\" id=\"r_ab598caa08025f1ec0969bebd6f044b8d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab598caa08025f1ec0969bebd6f044b8d\">Content</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab598caa08025f1ec0969bebd6f044b8d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Content of the notification in JSON.  <br /></td></tr>\n<tr class=\"memitem:aade869f44d0cfd07bd51ff88c4c12eab\" id=\"r_aade869f44d0cfd07bd51ff88c4c12eab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aade869f44d0cfd07bd51ff88c4c12eab\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aade869f44d0cfd07bd51ff88c4c12eab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created.  <br /></td></tr>\n<tr class=\"memitem:a10cfb8ec425330ae47354b33285fb0ab\" id=\"r_a10cfb8ec425330ae47354b33285fb0ab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a10cfb8ec425330ae47354b33285fb0ab\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a10cfb8ec425330ae47354b33285fb0ab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">ID of the Notification.  <br /></td></tr>\n<tr class=\"memitem:af4fd12051eb295ce84a65d871a7b8c2a\" id=\"r_af4fd12051eb295ce84a65d871a7b8c2a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4fd12051eb295ce84a65d871a7b8c2a\">Persistent</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af4fd12051eb295ce84a65d871a7b8c2a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if this notification was persisted to the database.  <br /></td></tr>\n<tr class=\"memitem:a61fed141e1c0148f55eb1d8cf3a4a75a\" id=\"r_a61fed141e1c0148f55eb1d8cf3a4a75a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a61fed141e1c0148f55eb1d8cf3a4a75a\">SenderId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a61fed141e1c0148f55eb1d8cf3a4a75a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">ID of the sender, if a user. Otherwise 'null'.  <br /></td></tr>\n<tr class=\"memitem:a170e4f78c5754e9cac88b9791c8eedf7\" id=\"r_a170e4f78c5754e9cac88b9791c8eedf7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a170e4f78c5754e9cac88b9791c8eedf7\">Subject</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a170e4f78c5754e9cac88b9791c8eedf7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subject of the notification.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A notification in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a28725e838382d3d1626d460104d93f54\" name=\"a28725e838382d3d1626d460104d93f54\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28725e838382d3d1626d460104d93f54\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiNotification.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Category code for this notification. </p>\n\n</div>\n</div>\n<a id=\"ab598caa08025f1ec0969bebd6f044b8d\" name=\"ab598caa08025f1ec0969bebd6f044b8d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab598caa08025f1ec0969bebd6f044b8d\">&#9670;&#160;</a></span>Content</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotification.Content</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Content of the notification in JSON. </p>\n\n</div>\n</div>\n<a id=\"aade869f44d0cfd07bd51ff88c4c12eab\" name=\"aade869f44d0cfd07bd51ff88c4c12eab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aade869f44d0cfd07bd51ff88c4c12eab\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotification.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the notification was created. </p>\n\n</div>\n</div>\n<a id=\"a10cfb8ec425330ae47354b33285fb0ab\" name=\"a10cfb8ec425330ae47354b33285fb0ab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a10cfb8ec425330ae47354b33285fb0ab\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotification.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>ID of the Notification. </p>\n\n</div>\n</div>\n<a id=\"af4fd12051eb295ce84a65d871a7b8c2a\" name=\"af4fd12051eb295ce84a65d871a7b8c2a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4fd12051eb295ce84a65d871a7b8c2a\">&#9670;&#160;</a></span>Persistent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiNotification.Persistent</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if this notification was persisted to the database. </p>\n\n</div>\n</div>\n<a id=\"a61fed141e1c0148f55eb1d8cf3a4a75a\" name=\"a61fed141e1c0148f55eb1d8cf3a4a75a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a61fed141e1c0148f55eb1d8cf3a4a75a\">&#9670;&#160;</a></span>SenderId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotification.SenderId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>ID of the sender, if a user. Otherwise 'null'. </p>\n\n</div>\n</div>\n<a id=\"a170e4f78c5754e9cac88b9791c8eedf7\" name=\"a170e4f78c5754e9cac88b9791c8eedf7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a170e4f78c5754e9cac88b9791c8eedf7\">&#9670;&#160;</a></span>Subject</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotification.Subject</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subject of the notification. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification.js",
    "content": "var interface_nakama_1_1_i_api_notification =\n[\n    [ \"Code\", \"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\", null ],\n    [ \"Content\", \"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\", null ],\n    [ \"Persistent\", \"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\", null ],\n    [ \"SenderId\", \"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\", null ],\n    [ \"Subject\", \"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_notification_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiNotificationList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">Nakama.IApiNotificationList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\">CacheableCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">Nakama.IApiNotificationList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\">Notifications</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">Nakama.IApiNotificationList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiNotificationList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_notification_list.html','','interface_nakama_1_1_i_api_notification_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiNotificationList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A collection of zero or more notifications.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad1e1367526b3bb581874a72521c1e80d\" id=\"r_ad1e1367526b3bb581874a72521c1e80d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad1e1367526b3bb581874a72521c1e80d\">CacheableCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad1e1367526b3bb581874a72521c1e80d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Use this cursor to paginate notifications. Cache this to catch up to new notifications.  <br /></td></tr>\n<tr class=\"memitem:ae9af8a0fbf2f772de85683e8dc6c6f72\" id=\"r_ae9af8a0fbf2f772de85683e8dc6c6f72\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae9af8a0fbf2f772de85683e8dc6c6f72\">Notifications</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae9af8a0fbf2f772de85683e8dc6c6f72\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Collection of notifications.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A collection of zero or more notifications. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad1e1367526b3bb581874a72521c1e80d\" name=\"ad1e1367526b3bb581874a72521c1e80d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad1e1367526b3bb581874a72521c1e80d\">&#9670;&#160;</a></span>CacheableCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiNotificationList.CacheableCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Use this cursor to paginate notifications. Cache this to catch up to new notifications. </p>\n\n</div>\n</div>\n<a id=\"ae9af8a0fbf2f772de85683e8dc6c6f72\" name=\"ae9af8a0fbf2f772de85683e8dc6c6f72\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae9af8a0fbf2f772de85683e8dc6c6f72\">&#9670;&#160;</a></span>Notifications</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a>&gt; Nakama.IApiNotificationList.Notifications</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Collection of notifications. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_notification_list.js",
    "content": "var interface_nakama_1_1_i_api_notification_list =\n[\n    [ \"CacheableCursor\", \"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\", null ],\n    [ \"Notifications\", \"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_party.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiParty Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\">MaxSize</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">Nakama.IApiParty</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiParty Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_party.html','','interface_nakama_1_1_i_api_party-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiParty Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Incoming information about a party.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a5828d543377df3c0a5a9d5eb65c10b94\" id=\"r_a5828d543377df3c0a5a9d5eb65c10b94\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5828d543377df3c0a5a9d5eb65c10b94\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5828d543377df3c0a5a9d5eb65c10b94\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The party label, if any.  <br /></td></tr>\n<tr class=\"memitem:aefe8bc926472b015b25f30410def1fcc\" id=\"r_aefe8bc926472b015b25f30410def1fcc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aefe8bc926472b015b25f30410def1fcc\">MaxSize</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aefe8bc926472b015b25f30410def1fcc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Maximum number of party members.  <br /></td></tr>\n<tr class=\"memitem:a01c5cfad3d9f14375b6dab2a164f3f95\" id=\"r_a01c5cfad3d9f14375b6dab2a164f3f95\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a01c5cfad3d9f14375b6dab2a164f3f95\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a01c5cfad3d9f14375b6dab2a164f3f95\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Open flag.  <br /></td></tr>\n<tr class=\"memitem:a24ba54356b60b26f14084eb8bd099eb5\" id=\"r_a24ba54356b60b26f14084eb8bd099eb5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a24ba54356b60b26f14084eb8bd099eb5\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a24ba54356b60b26f14084eb8bd099eb5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unique party identifier.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Incoming information about a party. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a5828d543377df3c0a5a9d5eb65c10b94\" name=\"a5828d543377df3c0a5a9d5eb65c10b94\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5828d543377df3c0a5a9d5eb65c10b94\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiParty.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The party label, if any. </p>\n\n</div>\n</div>\n<a id=\"aefe8bc926472b015b25f30410def1fcc\" name=\"aefe8bc926472b015b25f30410def1fcc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aefe8bc926472b015b25f30410def1fcc\">&#9670;&#160;</a></span>MaxSize</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiParty.MaxSize</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Maximum number of party members. </p>\n\n</div>\n</div>\n<a id=\"a01c5cfad3d9f14375b6dab2a164f3f95\" name=\"a01c5cfad3d9f14375b6dab2a164f3f95\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a01c5cfad3d9f14375b6dab2a164f3f95\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiParty.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Open flag. </p>\n\n</div>\n</div>\n<a id=\"a24ba54356b60b26f14084eb8bd099eb5\" name=\"a24ba54356b60b26f14084eb8bd099eb5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a24ba54356b60b26f14084eb8bd099eb5\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiParty.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Unique party identifier. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_party.html\">IApiParty</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party.js",
    "content": "var interface_nakama_1_1_i_api_party =\n[\n    [ \"Label\", \"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\", null ],\n    [ \"MaxSize\", \"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\", null ],\n    [ \"PartyId\", \"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_party_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiPartyList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">Nakama.IApiPartyList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">Nakama.IApiPartyList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\">Parties</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">Nakama.IApiPartyList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiPartyList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_party_list.html','','interface_nakama_1_1_i_api_party_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiPartyList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of realtime matches.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a249f45dc505eef08d3cb6b92d846a001\" id=\"r_a249f45dc505eef08d3cb6b92d846a001\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a249f45dc505eef08d3cb6b92d846a001\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a249f45dc505eef08d3cb6b92d846a001\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A cursor to send when retrieving the next page, if any.  <br /></td></tr>\n<tr class=\"memitem:aafc0afe39f43d6ed4a023a4e7906c46a\" id=\"r_aafc0afe39f43d6ed4a023a4e7906c46a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">IApiParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aafc0afe39f43d6ed4a023a4e7906c46a\">Parties</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aafc0afe39f43d6ed4a023a4e7906c46a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A number of parties corresponding to a list operation.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of realtime matches. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a249f45dc505eef08d3cb6b92d846a001\" name=\"a249f45dc505eef08d3cb6b92d846a001\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a249f45dc505eef08d3cb6b92d846a001\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiPartyList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A cursor to send when retrieving the next page, if any. </p>\n\n</div>\n</div>\n<a id=\"aafc0afe39f43d6ed4a023a4e7906c46a\" name=\"aafc0afe39f43d6ed4a023a4e7906c46a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aafc0afe39f43d6ed4a023a4e7906c46a\">&#9670;&#160;</a></span>Parties</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">IApiParty</a>&gt; Nakama.IApiPartyList.Parties</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A number of parties corresponding to a list operation. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_party_list.js",
    "content": "var interface_nakama_1_1_i_api_party_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\", null ],\n    [ \"Parties\", \"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_object_id-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_read_storage_object_id.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiReadStorageObjectId Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">Nakama.IApiReadStorageObjectId</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_object_id.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiReadStorageObjectId Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_read_storage_object_id.html','','interface_nakama_1_1_i_api_read_storage_object_id-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiReadStorageObjectId Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Storage objects to get.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.IApiReadStorageObjectId:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_api_read_storage_object_id.png\" usemap=\"#Nakama_2EIApiReadStorageObjectId_map\" alt=\"\"/>\n  <map id=\"Nakama_2EIApiReadStorageObjectId_map\" name=\"Nakama_2EIApiReadStorageObjectId_map\">\n<area href=\"class_nakama_1_1_storage_object_id.html\" title=\"An identifier for a storage object.\" alt=\"Nakama.StorageObjectId\" shape=\"rect\" coords=\"0,56,203,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a978da3d2f7475abb748e153b2e742362\" id=\"r_a978da3d2f7475abb748e153b2e742362\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a978da3d2f7475abb748e153b2e742362\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a978da3d2f7475abb748e153b2e742362\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:af6e84434171da0547ff9d04875c9df1c\" id=\"r_af6e84434171da0547ff9d04875c9df1c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af6e84434171da0547ff9d04875c9df1c\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af6e84434171da0547ff9d04875c9df1c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:a3dc390e319f5ed88de8bd95179b23cc9\" id=\"r_a3dc390e319f5ed88de8bd95179b23cc9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3dc390e319f5ed88de8bd95179b23cc9\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3dc390e319f5ed88de8bd95179b23cc9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user owner of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Storage objects to get. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a978da3d2f7475abb748e153b2e742362\" name=\"a978da3d2f7475abb748e153b2e742362\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a978da3d2f7475abb748e153b2e742362\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiReadStorageObjectId.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"af6e84434171da0547ff9d04875c9df1c\" name=\"af6e84434171da0547ff9d04875c9df1c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af6e84434171da0547ff9d04875c9df1c\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiReadStorageObjectId.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<a id=\"a3dc390e319f5ed88de8bd95179b23cc9\" name=\"a3dc390e319f5ed88de8bd95179b23cc9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3dc390e319f5ed88de8bd95179b23cc9\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiReadStorageObjectId.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user owner of the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\">Nakama.StorageObjectId</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_object_id.js",
    "content": "var interface_nakama_1_1_i_api_read_storage_object_id =\n[\n    [ \"Collection\", \"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\", null ],\n    [ \"Key\", \"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_objects_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_read_storage_objects_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiReadStorageObjectsRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">Nakama.IApiReadStorageObjectsRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\">ObjectIds</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">Nakama.IApiReadStorageObjectsRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_objects_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiReadStorageObjectsRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_read_storage_objects_request.html','','interface_nakama_1_1_i_api_read_storage_objects_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiReadStorageObjectsRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Batch get storage objects.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a045bd0e606650f42b5069a02801cc849\" id=\"r_a045bd0e606650f42b5069a02801cc849\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a045bd0e606650f42b5069a02801cc849\">ObjectIds</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a045bd0e606650f42b5069a02801cc849\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Batch get storage objects. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a045bd0e606650f42b5069a02801cc849\" name=\"a045bd0e606650f42b5069a02801cc849\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a045bd0e606650f42b5069a02801cc849\">&#9670;&#160;</a></span>ObjectIds</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a>&gt; Nakama.IApiReadStorageObjectsRequest.ObjectIds</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Batch of storage objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">IApiReadStorageObjectsRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_read_storage_objects_request.js",
    "content": "var interface_nakama_1_1_i_api_read_storage_objects_request =\n[\n    [ \"ObjectIds\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_rpc-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_rpc.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiRpc Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\">HttpKey</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\">Payload</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">Nakama.IApiRpc</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_rpc.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiRpc Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_rpc.html','','interface_nakama_1_1_i_api_rpc-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiRpc Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Execute an Lua function on the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3a27a1ee6c59781f9e7dfdc101976129\" id=\"r_a3a27a1ee6c59781f9e7dfdc101976129\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a27a1ee6c59781f9e7dfdc101976129\">HttpKey</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3a27a1ee6c59781f9e7dfdc101976129\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The authentication key used when executed as a non-client HTTP request.  <br /></td></tr>\n<tr class=\"memitem:acf92ca725c8b7b3e4c1bfc4e1dbdc274\" id=\"r_acf92ca725c8b7b3e4c1bfc4e1dbdc274\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acf92ca725c8b7b3e4c1bfc4e1dbdc274\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acf92ca725c8b7b3e4c1bfc4e1dbdc274\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The identifier of the function.  <br /></td></tr>\n<tr class=\"memitem:a04baf54b17a8939f330b9549f9297246\" id=\"r_a04baf54b17a8939f330b9549f9297246\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a04baf54b17a8939f330b9549f9297246\">Payload</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a04baf54b17a8939f330b9549f9297246\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The payload of the function which must be a JSON object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Execute an Lua function on the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3a27a1ee6c59781f9e7dfdc101976129\" name=\"a3a27a1ee6c59781f9e7dfdc101976129\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a27a1ee6c59781f9e7dfdc101976129\">&#9670;&#160;</a></span>HttpKey</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiRpc.HttpKey</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The authentication key used when executed as a non-client HTTP request. </p>\n\n</div>\n</div>\n<a id=\"acf92ca725c8b7b3e4c1bfc4e1dbdc274\" name=\"acf92ca725c8b7b3e4c1bfc4e1dbdc274\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acf92ca725c8b7b3e4c1bfc4e1dbdc274\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiRpc.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The identifier of the function. </p>\n\n</div>\n</div>\n<a id=\"a04baf54b17a8939f330b9549f9297246\" name=\"a04baf54b17a8939f330b9549f9297246\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a04baf54b17a8939f330b9549f9297246\">&#9670;&#160;</a></span>Payload</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiRpc.Payload</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The payload of the function which must be a JSON object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_rpc.js",
    "content": "var interface_nakama_1_1_i_api_rpc =\n[\n    [ \"HttpKey\", \"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\", null ],\n    [ \"Payload\", \"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSession Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\">Created</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">Nakama.IApiSession</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiSession Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session.html','','interface_nakama_1_1_i_api_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSession Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A user's session used to authenticate messages.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8bd8f7b82041c368fc60e6dd9ce5f2ce\" id=\"r_a8bd8f7b82041c368fc60e6dd9ce5f2ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8bd8f7b82041c368fc60e6dd9ce5f2ce\">Created</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8bd8f7b82041c368fc60e6dd9ce5f2ce\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the corresponding account was just created, false otherwise.  <br /></td></tr>\n<tr class=\"memitem:a454c959e3d561be5a45da315d99446b3\" id=\"r_a454c959e3d561be5a45da315d99446b3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a454c959e3d561be5a45da315d99446b3\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a454c959e3d561be5a45da315d99446b3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token that can be used for session token renewal.  <br /></td></tr>\n<tr class=\"memitem:ae7eaba760429059845023e94e931a511\" id=\"r_ae7eaba760429059845023e94e931a511\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae7eaba760429059845023e94e931a511\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae7eaba760429059845023e94e931a511\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authentication credentials.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A user's session used to authenticate messages. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8bd8f7b82041c368fc60e6dd9ce5f2ce\" name=\"a8bd8f7b82041c368fc60e6dd9ce5f2ce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8bd8f7b82041c368fc60e6dd9ce5f2ce\">&#9670;&#160;</a></span>Created</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiSession.Created</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the corresponding account was just created, false otherwise. </p>\n\n</div>\n</div>\n<a id=\"a454c959e3d561be5a45da315d99446b3\" name=\"a454c959e3d561be5a45da315d99446b3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a454c959e3d561be5a45da315d99446b3\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSession.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token that can be used for session token renewal. </p>\n\n</div>\n</div>\n<a id=\"ae7eaba760429059845023e94e931a511\" name=\"ae7eaba760429059845023e94e931a511\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae7eaba760429059845023e94e931a511\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSession.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Authentication credentials. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_session.html\">IApiSession</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session.js",
    "content": "var interface_nakama_1_1_i_api_session =\n[\n    [ \"Created\", \"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\", null ],\n    [ \"RefreshToken\", \"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\", null ],\n    [ \"Token\", \"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_logout_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session_logout_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSessionLogoutRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">Nakama.IApiSessionLogoutRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">Nakama.IApiSessionLogoutRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">Nakama.IApiSessionLogoutRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_logout_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiSessionLogoutRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session_logout_request.html','','interface_nakama_1_1_i_api_session_logout_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSessionLogoutRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a922b55c5d0d42e50c5ba0723c90007c2\" id=\"r_a922b55c5d0d42e50c5ba0723c90007c2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a922b55c5d0d42e50c5ba0723c90007c2\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a922b55c5d0d42e50c5ba0723c90007c2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token to invalidate.  <br /></td></tr>\n<tr class=\"memitem:a4d22d391c1f34a8003bde5344524af61\" id=\"r_a4d22d391c1f34a8003bde5344524af61\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4d22d391c1f34a8003bde5344524af61\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4d22d391c1f34a8003bde5344524af61\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Session</a> token to log out.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a922b55c5d0d42e50c5ba0723c90007c2\" name=\"a922b55c5d0d42e50c5ba0723c90007c2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a922b55c5d0d42e50c5ba0723c90007c2\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSessionLogoutRequest.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token to invalidate. </p>\n\n</div>\n</div>\n<a id=\"a4d22d391c1f34a8003bde5344524af61\" name=\"a4d22d391c1f34a8003bde5344524af61\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4d22d391c1f34a8003bde5344524af61\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSessionLogoutRequest.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_nakama_1_1_session.html\">Session</a> token to log out. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_session_logout_request.html\">IApiSessionLogoutRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_logout_request.js",
    "content": "var interface_nakama_1_1_i_api_session_logout_request =\n[\n    [ \"RefreshToken\", \"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\", null ],\n    [ \"Token\", \"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_refresh_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session_refresh_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSessionRefreshRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">Nakama.IApiSessionRefreshRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">Nakama.IApiSessionRefreshRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">Nakama.IApiSessionRefreshRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_refresh_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiSessionRefreshRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_session_refresh_request.html','','interface_nakama_1_1_i_api_session_refresh_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSessionRefreshRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Authenticate against the server with a refresh token.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab38a7f131abc8e234ae3aec7956ae5d5\" id=\"r_ab38a7f131abc8e234ae3aec7956ae5d5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab38a7f131abc8e234ae3aec7956ae5d5\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab38a7f131abc8e234ae3aec7956ae5d5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token.  <br /></td></tr>\n<tr class=\"memitem:a38e9ac3a365044f485fc169e64528369\" id=\"r_a38e9ac3a365044f485fc169e64528369\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a38e9ac3a365044f485fc169e64528369\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a38e9ac3a365044f485fc169e64528369\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Extra information that will be bundled in the session token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Authenticate against the server with a refresh token. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab38a7f131abc8e234ae3aec7956ae5d5\" name=\"ab38a7f131abc8e234ae3aec7956ae5d5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab38a7f131abc8e234ae3aec7956ae5d5\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSessionRefreshRequest.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token. </p>\n\n</div>\n</div>\n<a id=\"a38e9ac3a365044f485fc169e64528369\" name=\"a38e9ac3a365044f485fc169e64528369\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a38e9ac3a365044f485fc169e64528369\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IApiSessionRefreshRequest.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Extra information that will be bundled in the session token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">IApiSessionRefreshRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_session_refresh_request.js",
    "content": "var interface_nakama_1_1_i_api_session_refresh_request =\n[\n    [ \"Token\", \"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\">PermissionRead</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\">PermissionWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">Nakama.IApiStorageObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiStorageObject Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object.html','','interface_nakama_1_1_i_api_storage_object-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObject Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An object within the storage engine.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ace56736c1d5ee02e6c227339cb19aebc\" id=\"r_ace56736c1d5ee02e6c227339cb19aebc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ace56736c1d5ee02e6c227339cb19aebc\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ace56736c1d5ee02e6c227339cb19aebc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:aca1ee4d6d4b72763a50ce4ad49bae35d\" id=\"r_aca1ee4d6d4b72763a50ce4ad49bae35d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aca1ee4d6d4b72763a50ce4ad49bae35d\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aca1ee4d6d4b72763a50ce4ad49bae35d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.  <br /></td></tr>\n<tr class=\"memitem:ae5d7d75e7c6d17a28948a523be66718d\" id=\"r_ae5d7d75e7c6d17a28948a523be66718d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae5d7d75e7c6d17a28948a523be66718d\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae5d7d75e7c6d17a28948a523be66718d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:afe764d8ab0ac13cfe2a55d165ee5611d\" id=\"r_afe764d8ab0ac13cfe2a55d165ee5611d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe764d8ab0ac13cfe2a55d165ee5611d\">PermissionRead</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afe764d8ab0ac13cfe2a55d165ee5611d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The read access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:a2822259e1786821bf38f1ad6172516ef\" id=\"r_a2822259e1786821bf38f1ad6172516ef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2822259e1786821bf38f1ad6172516ef\">PermissionWrite</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2822259e1786821bf38f1ad6172516ef\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The write access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:a67b2c6f4b9dd3f933a885309e91addbc\" id=\"r_a67b2c6f4b9dd3f933a885309e91addbc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a67b2c6f4b9dd3f933a885309e91addbc\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a67b2c6f4b9dd3f933a885309e91addbc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.  <br /></td></tr>\n<tr class=\"memitem:a4659527ac8d99a2f953d3a2a10647390\" id=\"r_a4659527ac8d99a2f953d3a2a10647390\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4659527ac8d99a2f953d3a2a10647390\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4659527ac8d99a2f953d3a2a10647390\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user owner of the object.  <br /></td></tr>\n<tr class=\"memitem:ab0fd9c8504361c8184e254893210afa8\" id=\"r_ab0fd9c8504361c8184e254893210afa8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0fd9c8504361c8184e254893210afa8\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab0fd9c8504361c8184e254893210afa8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The value of the object.  <br /></td></tr>\n<tr class=\"memitem:a350c971007a18d83bc35af8216643023\" id=\"r_a350c971007a18d83bc35af8216643023\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a350c971007a18d83bc35af8216643023\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a350c971007a18d83bc35af8216643023\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An object within the storage engine. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ace56736c1d5ee02e6c227339cb19aebc\" name=\"ace56736c1d5ee02e6c227339cb19aebc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ace56736c1d5ee02e6c227339cb19aebc\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n</div>\n</div>\n<a id=\"aca1ee4d6d4b72763a50ce4ad49bae35d\" name=\"aca1ee4d6d4b72763a50ce4ad49bae35d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aca1ee4d6d4b72763a50ce4ad49bae35d\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. </p>\n\n</div>\n</div>\n<a id=\"ae5d7d75e7c6d17a28948a523be66718d\" name=\"ae5d7d75e7c6d17a28948a523be66718d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae5d7d75e7c6d17a28948a523be66718d\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n</div>\n</div>\n<a id=\"afe764d8ab0ac13cfe2a55d165ee5611d\" name=\"afe764d8ab0ac13cfe2a55d165ee5611d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe764d8ab0ac13cfe2a55d165ee5611d\">&#9670;&#160;</a></span>PermissionRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiStorageObject.PermissionRead</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The read access permissions for the object. </p>\n\n</div>\n</div>\n<a id=\"a2822259e1786821bf38f1ad6172516ef\" name=\"a2822259e1786821bf38f1ad6172516ef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2822259e1786821bf38f1ad6172516ef\">&#9670;&#160;</a></span>PermissionWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiStorageObject.PermissionWrite</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The write access permissions for the object. </p>\n\n</div>\n</div>\n<a id=\"a67b2c6f4b9dd3f933a885309e91addbc\" name=\"a67b2c6f4b9dd3f933a885309e91addbc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a67b2c6f4b9dd3f933a885309e91addbc\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. </p>\n\n</div>\n</div>\n<a id=\"a4659527ac8d99a2f953d3a2a10647390\" name=\"a4659527ac8d99a2f953d3a2a10647390\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4659527ac8d99a2f953d3a2a10647390\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user owner of the object. </p>\n\n</div>\n</div>\n<a id=\"ab0fd9c8504361c8184e254893210afa8\" name=\"ab0fd9c8504361c8184e254893210afa8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0fd9c8504361c8184e254893210afa8\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The value of the object. </p>\n\n</div>\n</div>\n<a id=\"a350c971007a18d83bc35af8216643023\" name=\"a350c971007a18d83bc35af8216643023\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a350c971007a18d83bc35af8216643023\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObject.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object.js",
    "content": "var interface_nakama_1_1_i_api_storage_object =\n[\n    [ \"Collection\", \"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\", null ],\n    [ \"Key\", \"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\", null ],\n    [ \"PermissionRead\", \"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\", null ],\n    [ \"PermissionWrite\", \"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\", null ],\n    [ \"Value\", \"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\", null ],\n    [ \"Version\", \"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_ack-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_ack.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectAck Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">Nakama.IApiStorageObjectAck</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_ack.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiStorageObjectAck Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_ack.html','','interface_nakama_1_1_i_api_storage_object_ack-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectAck Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A storage acknowledgement.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a5303268ed75343c6b41b4ee8bb95a826\" id=\"r_a5303268ed75343c6b41b4ee8bb95a826\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5303268ed75343c6b41b4ee8bb95a826\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5303268ed75343c6b41b4ee8bb95a826\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection which stores the object.  <br /></td></tr>\n<tr class=\"memitem:aaf055ebddc885bafad66089fa2613317\" id=\"r_aaf055ebddc885bafad66089fa2613317\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaf055ebddc885bafad66089fa2613317\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aaf055ebddc885bafad66089fa2613317\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created.  <br /></td></tr>\n<tr class=\"memitem:a67093404b849db0edcaacaf5f5fbd26f\" id=\"r_a67093404b849db0edcaacaf5f5fbd26f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a67093404b849db0edcaacaf5f5fbd26f\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a67093404b849db0edcaacaf5f5fbd26f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key of the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:a05822b6b17154be938e0cb419f7e75ac\" id=\"r_a05822b6b17154be938e0cb419f7e75ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a05822b6b17154be938e0cb419f7e75ac\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a05822b6b17154be938e0cb419f7e75ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated.  <br /></td></tr>\n<tr class=\"memitem:aac969bd5c11233308fe280643109945d\" id=\"r_aac969bd5c11233308fe280643109945d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aac969bd5c11233308fe280643109945d\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aac969bd5c11233308fe280643109945d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The owner of the object.  <br /></td></tr>\n<tr class=\"memitem:a83d288d0b4a11a484e7fe6deee0cd03f\" id=\"r_a83d288d0b4a11a484e7fe6deee0cd03f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a83d288d0b4a11a484e7fe6deee0cd03f\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a83d288d0b4a11a484e7fe6deee0cd03f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A storage acknowledgement. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a5303268ed75343c6b41b4ee8bb95a826\" name=\"a5303268ed75343c6b41b4ee8bb95a826\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5303268ed75343c6b41b4ee8bb95a826\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection which stores the object. </p>\n\n</div>\n</div>\n<a id=\"aaf055ebddc885bafad66089fa2613317\" name=\"aaf055ebddc885bafad66089fa2613317\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaf055ebddc885bafad66089fa2613317\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was created. </p>\n\n</div>\n</div>\n<a id=\"a67093404b849db0edcaacaf5f5fbd26f\" name=\"a67093404b849db0edcaacaf5f5fbd26f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a67093404b849db0edcaacaf5f5fbd26f\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key of the object within the collection. </p>\n\n</div>\n</div>\n<a id=\"a05822b6b17154be938e0cb419f7e75ac\" name=\"a05822b6b17154be938e0cb419f7e75ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a05822b6b17154be938e0cb419f7e75ac\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the object was last updated. </p>\n\n</div>\n</div>\n<a id=\"aac969bd5c11233308fe280643109945d\" name=\"aac969bd5c11233308fe280643109945d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aac969bd5c11233308fe280643109945d\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The owner of the object. </p>\n\n</div>\n</div>\n<a id=\"a83d288d0b4a11a484e7fe6deee0cd03f\" name=\"a83d288d0b4a11a484e7fe6deee0cd03f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a83d288d0b4a11a484e7fe6deee0cd03f\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectAck.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_ack.js",
    "content": "var interface_nakama_1_1_i_api_storage_object_ack =\n[\n    [ \"Collection\", \"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\", null ],\n    [ \"Key\", \"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\", null ],\n    [ \"Version\", \"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_acks-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_acks.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectAcks Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">Nakama.IApiStorageObjectAcks</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\">Acks</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">Nakama.IApiStorageObjectAcks</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_acks.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiStorageObjectAcks Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_acks.html','','interface_nakama_1_1_i_api_storage_object_acks-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectAcks Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Batch of acknowledgements for the storage object write.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a85b2fe1a3f5cffdec69a6ae036e3f456\" id=\"r_a85b2fe1a3f5cffdec69a6ae036e3f456\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a85b2fe1a3f5cffdec69a6ae036e3f456\">Acks</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a85b2fe1a3f5cffdec69a6ae036e3f456\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage write acknowledgements.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Batch of acknowledgements for the storage object write. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a85b2fe1a3f5cffdec69a6ae036e3f456\" name=\"a85b2fe1a3f5cffdec69a6ae036e3f456\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a85b2fe1a3f5cffdec69a6ae036e3f456\">&#9670;&#160;</a></span>Acks</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a>&gt; Nakama.IApiStorageObjectAcks.Acks</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Batch of storage write acknowledgements. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_acks.js",
    "content": "var interface_nakama_1_1_i_api_storage_object_acks =\n[\n    [ \"Acks\", \"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">Nakama.IApiStorageObjectList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">Nakama.IApiStorageObjectList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\">Objects</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">Nakama.IApiStorageObjectList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiStorageObjectList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_object_list.html','','interface_nakama_1_1_i_api_storage_object_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjectList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List of storage objects.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7741b9b18dead8cdc71eceb27940efca\" id=\"r_a7741b9b18dead8cdc71eceb27940efca\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7741b9b18dead8cdc71eceb27940efca\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7741b9b18dead8cdc71eceb27940efca\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:a5cf3f05e26bf01887edc99b2f59d54e4\" id=\"r_a5cf3f05e26bf01887edc99b2f59d54e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5cf3f05e26bf01887edc99b2f59d54e4\">Objects</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5cf3f05e26bf01887edc99b2f59d54e4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The list of storage objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List of storage objects. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7741b9b18dead8cdc71eceb27940efca\" name=\"a7741b9b18dead8cdc71eceb27940efca\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7741b9b18dead8cdc71eceb27940efca\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiStorageObjectList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"a5cf3f05e26bf01887edc99b2f59d54e4\" name=\"a5cf3f05e26bf01887edc99b2f59d54e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5cf3f05e26bf01887edc99b2f59d54e4\">&#9670;&#160;</a></span>Objects</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a>&gt; Nakama.IApiStorageObjectList.Objects</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The list of storage objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_object_list.js",
    "content": "var interface_nakama_1_1_i_api_storage_object_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\", null ],\n    [ \"Objects\", \"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_objects-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_objects.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjects Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">Nakama.IApiStorageObjects</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\">Objects</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">Nakama.IApiStorageObjects</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_objects.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiStorageObjects Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_storage_objects.html','','interface_nakama_1_1_i_api_storage_objects-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiStorageObjects Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Batch of storage objects.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2435b98e1fa0994979d58af1fba71a06\" id=\"r_a2435b98e1fa0994979d58af1fba71a06\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2435b98e1fa0994979d58af1fba71a06\">Objects</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2435b98e1fa0994979d58af1fba71a06\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The batch of storage objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Batch of storage objects. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a2435b98e1fa0994979d58af1fba71a06\" name=\"a2435b98e1fa0994979d58af1fba71a06\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2435b98e1fa0994979d58af1fba71a06\">&#9670;&#160;</a></span>Objects</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a>&gt; Nakama.IApiStorageObjects.Objects</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The batch of storage objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_storage_objects.js",
    "content": "var interface_nakama_1_1_i_api_storage_objects =\n[\n    [ \"Objects\", \"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_subscription_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_subscription_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSubscriptionList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\">PrevCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\">ValidatedSubscriptions</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">Nakama.IApiSubscriptionList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_subscription_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiSubscriptionList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_subscription_list.html','','interface_nakama_1_1_i_api_subscription_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiSubscriptionList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1fc507382f5582df7f7fe0bfaf608c41\" id=\"r_a1fc507382f5582df7f7fe0bfaf608c41\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1fc507382f5582df7f7fe0bfaf608c41\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1fc507382f5582df7f7fe0bfaf608c41\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the next page, if any.  <br /></td></tr>\n<tr class=\"memitem:a27a234d8246232f5e1f80746e495c276\" id=\"r_a27a234d8246232f5e1f80746e495c276\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a27a234d8246232f5e1f80746e495c276\">PrevCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a27a234d8246232f5e1f80746e495c276\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the previous page, if any.  <br /></td></tr>\n<tr class=\"memitem:ac8c1cbe824f3e128a0af4622d1a05906\" id=\"r_ac8c1cbe824f3e128a0af4622d1a05906\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac8c1cbe824f3e128a0af4622d1a05906\">ValidatedSubscriptions</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac8c1cbe824f3e128a0af4622d1a05906\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Stored validated subscriptions.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1fc507382f5582df7f7fe0bfaf608c41\" name=\"a1fc507382f5582df7f7fe0bfaf608c41\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1fc507382f5582df7f7fe0bfaf608c41\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSubscriptionList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the next page, if any. </p>\n\n</div>\n</div>\n<a id=\"a27a234d8246232f5e1f80746e495c276\" name=\"a27a234d8246232f5e1f80746e495c276\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a27a234d8246232f5e1f80746e495c276\">&#9670;&#160;</a></span>PrevCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiSubscriptionList.PrevCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the previous page, if any. </p>\n\n</div>\n</div>\n<a id=\"ac8c1cbe824f3e128a0af4622d1a05906\" name=\"ac8c1cbe824f3e128a0af4622d1a05906\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac8c1cbe824f3e128a0af4622d1a05906\">&#9670;&#160;</a></span>ValidatedSubscriptions</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a>&gt; Nakama.IApiSubscriptionList.ValidatedSubscriptions</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Stored validated subscriptions. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_subscription_list.js",
    "content": "var interface_nakama_1_1_i_api_subscription_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\", null ],\n    [ \"PrevCursor\", \"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\", null ],\n    [ \"ValidatedSubscriptions\", \"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournament Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\">Authoritative</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\">CanEnter</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\">Category</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\">Duration</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\">EndActive</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\">EndTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\">MaxNumScore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\">MaxSize</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\">NextReset</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\">Operator</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\">PrevReset</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\">Size</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\">SortOrder</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\">StartActive</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\">StartTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\">Title</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">Nakama.IApiTournament</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiTournament Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament.html','','interface_nakama_1_1_i_api_tournament-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournament Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A tournament on the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7c912a92804dffad2da1cc975f161665\" id=\"r_a7c912a92804dffad2da1cc975f161665\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7c912a92804dffad2da1cc975f161665\">Authoritative</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7c912a92804dffad2da1cc975f161665\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the leaderboard was created authoritatively or not.  <br /></td></tr>\n<tr class=\"memitem:abca204c196b0a90e4342e18f4c935630\" id=\"r_abca204c196b0a90e4342e18f4c935630\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abca204c196b0a90e4342e18f4c935630\">CanEnter</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abca204c196b0a90e4342e18f4c935630\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the tournament is active and can enter. A computed value.  <br /></td></tr>\n<tr class=\"memitem:ad4d095c5500d084ae1071979320f4803\" id=\"r_ad4d095c5500d084ae1071979320f4803\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad4d095c5500d084ae1071979320f4803\">Category</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad4d095c5500d084ae1071979320f4803\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The category of the tournament. e.g. \"vip\" could be category 1.  <br /></td></tr>\n<tr class=\"memitem:a327d36c0623cd95772505dbde9029671\" id=\"r_a327d36c0623cd95772505dbde9029671\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a327d36c0623cd95772505dbde9029671\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a327d36c0623cd95772505dbde9029671\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament was created.  <br /></td></tr>\n<tr class=\"memitem:aa7ee9f3fa78017bed567b84b7af1d356\" id=\"r_aa7ee9f3fa78017bed567b84b7af1d356\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa7ee9f3fa78017bed567b84b7af1d356\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa7ee9f3fa78017bed567b84b7af1d356\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The description of the tournament. May be blank.  <br /></td></tr>\n<tr class=\"memitem:a8229e8ffce987b19036dd1af156f4748\" id=\"r_a8229e8ffce987b19036dd1af156f4748\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8229e8ffce987b19036dd1af156f4748\">Duration</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8229e8ffce987b19036dd1af156f4748\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Duration of the tournament in seconds.  <br /></td></tr>\n<tr class=\"memitem:a28f939c5594b45c2a8f517b5646f0f06\" id=\"r_a28f939c5594b45c2a8f517b5646f0f06\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28f939c5594b45c2a8f517b5646f0f06\">EndActive</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a28f939c5594b45c2a8f517b5646f0f06\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the tournament stops being active until next reset. A computed value.  <br /></td></tr>\n<tr class=\"memitem:a2fe168cd7f9b5adf8aca1074d14f6bee\" id=\"r_a2fe168cd7f9b5adf8aca1074d14f6bee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2fe168cd7f9b5adf8aca1074d14f6bee\">EndTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2fe168cd7f9b5adf8aca1074d14f6bee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will be stopped.  <br /></td></tr>\n<tr class=\"memitem:a451f344a2984712b711f89e49198fa57\" id=\"r_a451f344a2984712b711f89e49198fa57\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a451f344a2984712b711f89e49198fa57\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a451f344a2984712b711f89e49198fa57\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the tournament.  <br /></td></tr>\n<tr class=\"memitem:a437455a81843911cf56fcb6d2a8a80a7\" id=\"r_a437455a81843911cf56fcb6d2a8a80a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a437455a81843911cf56fcb6d2a8a80a7\">MaxNumScore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a437455a81843911cf56fcb6d2a8a80a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum score updates allowed per player for the current tournament.  <br /></td></tr>\n<tr class=\"memitem:a42f5ceae3569e5d4081a501f08e0b7b9\" id=\"r_a42f5ceae3569e5d4081a501f08e0b7b9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a42f5ceae3569e5d4081a501f08e0b7b9\">MaxSize</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a42f5ceae3569e5d4081a501f08e0b7b9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of players for the tournament.  <br /></td></tr>\n<tr class=\"memitem:a47768bcf7dd97abea99e001f7c9695f7\" id=\"r_a47768bcf7dd97abea99e001f7c9695f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a47768bcf7dd97abea99e001f7c9695f7\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a47768bcf7dd97abea99e001f7c9695f7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Additional information stored as a JSON object.  <br /></td></tr>\n<tr class=\"memitem:a95b05c4d22f3e44c458e082b28696ca1\" id=\"r_a95b05c4d22f3e44c458e082b28696ca1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a95b05c4d22f3e44c458e082b28696ca1\">NextReset</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a95b05c4d22f3e44c458e082b28696ca1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the tournament is next playable. A computed value.  <br /></td></tr>\n<tr class=\"memitem:ac176de4d1c0e1442861bf0de5d64edef\" id=\"r_ac176de4d1c0e1442861bf0de5d64edef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac176de4d1c0e1442861bf0de5d64edef\">Operator</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac176de4d1c0e1442861bf0de5d64edef\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Operator.  <br /></td></tr>\n<tr class=\"memitem:aa9795e55a84d977b4858193f667015fb\" id=\"r_aa9795e55a84d977b4858193f667015fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa9795e55a84d977b4858193f667015fb\">PrevReset</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa9795e55a84d977b4858193f667015fb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the tournament was last reset. A computed value.  <br /></td></tr>\n<tr class=\"memitem:a2b6ac3469abfb67c9cbc6f8929f04bb7\" id=\"r_a2b6ac3469abfb67c9cbc6f8929f04bb7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2b6ac3469abfb67c9cbc6f8929f04bb7\">Size</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2b6ac3469abfb67c9cbc6f8929f04bb7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current number of players in the tournament.  <br /></td></tr>\n<tr class=\"memitem:acb01044753093c9ab2311f51f9c01cdf\" id=\"r_acb01044753093c9ab2311f51f9c01cdf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acb01044753093c9ab2311f51f9c01cdf\">SortOrder</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acb01044753093c9ab2311f51f9c01cdf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">ASC (0) or DESC (1) sort mode of scores in the tournament.  <br /></td></tr>\n<tr class=\"memitem:aceca06fc1dd464d9635399e4add87cbf\" id=\"r_aceca06fc1dd464d9635399e4add87cbf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aceca06fc1dd464d9635399e4add87cbf\">StartActive</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aceca06fc1dd464d9635399e4add87cbf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the tournament start being active. A computed value.  <br /></td></tr>\n<tr class=\"memitem:a02aea8c93c075cbb364bf9215916dfda\" id=\"r_a02aea8c93c075cbb364bf9215916dfda\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a02aea8c93c075cbb364bf9215916dfda\">StartTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a02aea8c93c075cbb364bf9215916dfda\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will start.  <br /></td></tr>\n<tr class=\"memitem:a0d1cdd84f43595345239d58b5a56cd41\" id=\"r_a0d1cdd84f43595345239d58b5a56cd41\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d1cdd84f43595345239d58b5a56cd41\">Title</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0d1cdd84f43595345239d58b5a56cd41\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The title for the tournament.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A tournament on the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7c912a92804dffad2da1cc975f161665\" name=\"a7c912a92804dffad2da1cc975f161665\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7c912a92804dffad2da1cc975f161665\">&#9670;&#160;</a></span>Authoritative</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiTournament.Authoritative</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the leaderboard was created authoritatively or not. </p>\n\n</div>\n</div>\n<a id=\"abca204c196b0a90e4342e18f4c935630\" name=\"abca204c196b0a90e4342e18f4c935630\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abca204c196b0a90e4342e18f4c935630\">&#9670;&#160;</a></span>CanEnter</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiTournament.CanEnter</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the tournament is active and can enter. A computed value. </p>\n\n</div>\n</div>\n<a id=\"ad4d095c5500d084ae1071979320f4803\" name=\"ad4d095c5500d084ae1071979320f4803\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad4d095c5500d084ae1071979320f4803\">&#9670;&#160;</a></span>Category</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.Category</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The category of the tournament. e.g. \"vip\" could be category 1. </p>\n\n</div>\n</div>\n<a id=\"a327d36c0623cd95772505dbde9029671\" name=\"a327d36c0623cd95772505dbde9029671\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a327d36c0623cd95772505dbde9029671\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament was created. </p>\n\n</div>\n</div>\n<a id=\"aa7ee9f3fa78017bed567b84b7af1d356\" name=\"aa7ee9f3fa78017bed567b84b7af1d356\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7ee9f3fa78017bed567b84b7af1d356\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The description of the tournament. May be blank. </p>\n\n</div>\n</div>\n<a id=\"a8229e8ffce987b19036dd1af156f4748\" name=\"a8229e8ffce987b19036dd1af156f4748\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8229e8ffce987b19036dd1af156f4748\">&#9670;&#160;</a></span>Duration</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.Duration</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Duration of the tournament in seconds. </p>\n\n</div>\n</div>\n<a id=\"a28f939c5594b45c2a8f517b5646f0f06\" name=\"a28f939c5594b45c2a8f517b5646f0f06\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28f939c5594b45c2a8f517b5646f0f06\">&#9670;&#160;</a></span>EndActive</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.EndActive</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the tournament stops being active until next reset. A computed value. </p>\n\n</div>\n</div>\n<a id=\"a2fe168cd7f9b5adf8aca1074d14f6bee\" name=\"a2fe168cd7f9b5adf8aca1074d14f6bee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2fe168cd7f9b5adf8aca1074d14f6bee\">&#9670;&#160;</a></span>EndTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.EndTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will be stopped. </p>\n\n</div>\n</div>\n<a id=\"a451f344a2984712b711f89e49198fa57\" name=\"a451f344a2984712b711f89e49198fa57\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a451f344a2984712b711f89e49198fa57\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the tournament. </p>\n\n</div>\n</div>\n<a id=\"a437455a81843911cf56fcb6d2a8a80a7\" name=\"a437455a81843911cf56fcb6d2a8a80a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a437455a81843911cf56fcb6d2a8a80a7\">&#9670;&#160;</a></span>MaxNumScore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.MaxNumScore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum score updates allowed per player for the current tournament. </p>\n\n</div>\n</div>\n<a id=\"a42f5ceae3569e5d4081a501f08e0b7b9\" name=\"a42f5ceae3569e5d4081a501f08e0b7b9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a42f5ceae3569e5d4081a501f08e0b7b9\">&#9670;&#160;</a></span>MaxSize</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.MaxSize</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of players for the tournament. </p>\n\n</div>\n</div>\n<a id=\"a47768bcf7dd97abea99e001f7c9695f7\" name=\"a47768bcf7dd97abea99e001f7c9695f7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a47768bcf7dd97abea99e001f7c9695f7\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Additional information stored as a JSON object. </p>\n\n</div>\n</div>\n<a id=\"a95b05c4d22f3e44c458e082b28696ca1\" name=\"a95b05c4d22f3e44c458e082b28696ca1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a95b05c4d22f3e44c458e082b28696ca1\">&#9670;&#160;</a></span>NextReset</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.NextReset</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the tournament is next playable. A computed value. </p>\n\n</div>\n</div>\n<a id=\"ac176de4d1c0e1442861bf0de5d64edef\" name=\"ac176de4d1c0e1442861bf0de5d64edef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac176de4d1c0e1442861bf0de5d64edef\">&#9670;&#160;</a></span>Operator</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> Nakama.IApiTournament.Operator</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Operator. </p>\n\n</div>\n</div>\n<a id=\"aa9795e55a84d977b4858193f667015fb\" name=\"aa9795e55a84d977b4858193f667015fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa9795e55a84d977b4858193f667015fb\">&#9670;&#160;</a></span>PrevReset</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.PrevReset</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the tournament was last reset. A computed value. </p>\n\n</div>\n</div>\n<a id=\"a2b6ac3469abfb67c9cbc6f8929f04bb7\" name=\"a2b6ac3469abfb67c9cbc6f8929f04bb7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2b6ac3469abfb67c9cbc6f8929f04bb7\">&#9670;&#160;</a></span>Size</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.Size</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current number of players in the tournament. </p>\n\n</div>\n</div>\n<a id=\"acb01044753093c9ab2311f51f9c01cdf\" name=\"acb01044753093c9ab2311f51f9c01cdf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acb01044753093c9ab2311f51f9c01cdf\">&#9670;&#160;</a></span>SortOrder</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.SortOrder</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>ASC (0) or DESC (1) sort mode of scores in the tournament. </p>\n\n</div>\n</div>\n<a id=\"aceca06fc1dd464d9635399e4add87cbf\" name=\"aceca06fc1dd464d9635399e4add87cbf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aceca06fc1dd464d9635399e4add87cbf\">&#9670;&#160;</a></span>StartActive</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiTournament.StartActive</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the tournament start being active. A computed value. </p>\n\n</div>\n</div>\n<a id=\"a02aea8c93c075cbb364bf9215916dfda\" name=\"a02aea8c93c075cbb364bf9215916dfda\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a02aea8c93c075cbb364bf9215916dfda\">&#9670;&#160;</a></span>StartTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.StartTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the tournament will start. </p>\n\n</div>\n</div>\n<a id=\"a0d1cdd84f43595345239d58b5a56cd41\" name=\"a0d1cdd84f43595345239d58b5a56cd41\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d1cdd84f43595345239d58b5a56cd41\">&#9670;&#160;</a></span>Title</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournament.Title</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The title for the tournament. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_tournament.html\">IApiTournament</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament.js",
    "content": "var interface_nakama_1_1_i_api_tournament =\n[\n    [ \"Authoritative\", \"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\", null ],\n    [ \"CanEnter\", \"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\", null ],\n    [ \"Category\", \"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\", null ],\n    [ \"Description\", \"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\", null ],\n    [ \"Duration\", \"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\", null ],\n    [ \"EndActive\", \"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\", null ],\n    [ \"EndTime\", \"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\", null ],\n    [ \"MaxNumScore\", \"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\", null ],\n    [ \"MaxSize\", \"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\", null ],\n    [ \"NextReset\", \"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\", null ],\n    [ \"Operator\", \"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\", null ],\n    [ \"PrevReset\", \"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\", null ],\n    [ \"Size\", \"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\", null ],\n    [ \"SortOrder\", \"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\", null ],\n    [ \"StartActive\", \"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\", null ],\n    [ \"StartTime\", \"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\", null ],\n    [ \"Title\", \"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournamentList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">Nakama.IApiTournamentList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">Nakama.IApiTournamentList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\">Tournaments</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">Nakama.IApiTournamentList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiTournamentList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament_list.html','','interface_nakama_1_1_i_api_tournament_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournamentList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of tournaments.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a26a61ec1b98b82ef3f61c209228a5241\" id=\"r_a26a61ec1b98b82ef3f61c209228a5241\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a26a61ec1b98b82ef3f61c209228a5241\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a26a61ec1b98b82ef3f61c209228a5241\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A pagination cursor (optional).  <br /></td></tr>\n<tr class=\"memitem:ac0e197f155ef68dff3ab4835407651b3\" id=\"r_ac0e197f155ef68dff3ab4835407651b3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">IApiTournament</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0e197f155ef68dff3ab4835407651b3\">Tournaments</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac0e197f155ef68dff3ab4835407651b3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The list of tournaments returned.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of tournaments. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a26a61ec1b98b82ef3f61c209228a5241\" name=\"a26a61ec1b98b82ef3f61c209228a5241\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a26a61ec1b98b82ef3f61c209228a5241\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournamentList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A pagination cursor (optional). </p>\n\n</div>\n</div>\n<a id=\"ac0e197f155ef68dff3ab4835407651b3\" name=\"ac0e197f155ef68dff3ab4835407651b3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0e197f155ef68dff3ab4835407651b3\">&#9670;&#160;</a></span>Tournaments</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">IApiTournament</a>&gt; Nakama.IApiTournamentList.Tournaments</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The list of tournaments returned. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_list.js",
    "content": "var interface_nakama_1_1_i_api_tournament_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\", null ],\n    [ \"Tournaments\", \"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_record_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament_record_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournamentRecordList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\">NextCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\">OwnerRecords</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\">PrevCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\">RankCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\">Records</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">Nakama.IApiTournamentRecordList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_record_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiTournamentRecordList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_tournament_record_list.html','','interface_nakama_1_1_i_api_tournament_record_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiTournamentRecordList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A set of tournament records which may be part of a tournament records page or a batch of individual records.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a16b8f33e3684635d89904c4faadf64a0\" id=\"r_a16b8f33e3684635d89904c4faadf64a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a16b8f33e3684635d89904c4faadf64a0\">NextCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a16b8f33e3684635d89904c4faadf64a0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retireving the next page (optional).  <br /></td></tr>\n<tr class=\"memitem:a25bb923777ed497e6e951d5e3ddb54fe\" id=\"r_a25bb923777ed497e6e951d5e3ddb54fe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a25bb923777ed497e6e951d5e3ddb54fe\">OwnerRecords</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a25bb923777ed497e6e951d5e3ddb54fe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batched set of tournament records belonging to specified owners.  <br /></td></tr>\n<tr class=\"memitem:a56fa396d34225f5b646941f06cc7add8\" id=\"r_a56fa396d34225f5b646941f06cc7add8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a56fa396d34225f5b646941f06cc7add8\">PrevCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a56fa396d34225f5b646941f06cc7add8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the previous page (optional).  <br /></td></tr>\n<tr class=\"memitem:aeabcdeb43c67e9ebf274ac3ded125a16\" id=\"r_aeabcdeb43c67e9ebf274ac3ded125a16\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeabcdeb43c67e9ebf274ac3ded125a16\">RankCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aeabcdeb43c67e9ebf274ac3ded125a16\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The total number of ranks available.  <br /></td></tr>\n<tr class=\"memitem:a1a1021817f86ef4232fa9f539bf9200d\" id=\"r_a1a1021817f86ef4232fa9f539bf9200d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1a1021817f86ef4232fa9f539bf9200d\">Records</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1a1021817f86ef4232fa9f539bf9200d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of tournament records.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A set of tournament records which may be part of a tournament records page or a batch of individual records. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a16b8f33e3684635d89904c4faadf64a0\" name=\"a16b8f33e3684635d89904c4faadf64a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a16b8f33e3684635d89904c4faadf64a0\">&#9670;&#160;</a></span>NextCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournamentRecordList.NextCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retireving the next page (optional). </p>\n\n</div>\n</div>\n<a id=\"a25bb923777ed497e6e951d5e3ddb54fe\" name=\"a25bb923777ed497e6e951d5e3ddb54fe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a25bb923777ed497e6e951d5e3ddb54fe\">&#9670;&#160;</a></span>OwnerRecords</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a>&gt; Nakama.IApiTournamentRecordList.OwnerRecords</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A batched set of tournament records belonging to specified owners. </p>\n\n</div>\n</div>\n<a id=\"a56fa396d34225f5b646941f06cc7add8\" name=\"a56fa396d34225f5b646941f06cc7add8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a56fa396d34225f5b646941f06cc7add8\">&#9670;&#160;</a></span>PrevCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournamentRecordList.PrevCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the previous page (optional). </p>\n\n</div>\n</div>\n<a id=\"aeabcdeb43c67e9ebf274ac3ded125a16\" name=\"aeabcdeb43c67e9ebf274ac3ded125a16\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeabcdeb43c67e9ebf274ac3ded125a16\">&#9670;&#160;</a></span>RankCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiTournamentRecordList.RankCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The total number of ranks available. </p>\n\n</div>\n</div>\n<a id=\"a1a1021817f86ef4232fa9f539bf9200d\" name=\"a1a1021817f86ef4232fa9f539bf9200d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1a1021817f86ef4232fa9f539bf9200d\">&#9670;&#160;</a></span>Records</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a>&gt; Nakama.IApiTournamentRecordList.Records</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A list of tournament records. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_tournament_record_list.js",
    "content": "var interface_nakama_1_1_i_api_tournament_record_list =\n[\n    [ \"NextCursor\", \"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\", null ],\n    [ \"OwnerRecords\", \"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\", null ],\n    [ \"PrevCursor\", \"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\", null ],\n    [ \"RankCount\", \"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\", null ],\n    [ \"Records\", \"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_account_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_update_account_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUpdateAccountRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\">DisplayName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\">Location</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\">Timezone</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">Nakama.IApiUpdateAccountRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_account_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiUpdateAccountRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_update_account_request.html','','interface_nakama_1_1_i_api_update_account_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUpdateAccountRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Update a user's account details.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8d1f3bf3766cd7340ba66ca2a74e7a63\" id=\"r_a8d1f3bf3766cd7340ba66ca2a74e7a63\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8d1f3bf3766cd7340ba66ca2a74e7a63\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8d1f3bf3766cd7340ba66ca2a74e7a63\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:a993356bac470c2c097e3737c592df904\" id=\"r_a993356bac470c2c097e3737c592df904\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a993356bac470c2c097e3737c592df904\">DisplayName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a993356bac470c2c097e3737c592df904\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The display name of the user.  <br /></td></tr>\n<tr class=\"memitem:a7899f3c0f57fd33631e5e255f5b76445\" id=\"r_a7899f3c0f57fd33631e5e255f5b76445\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7899f3c0f57fd33631e5e255f5b76445\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7899f3c0f57fd33631e5e255f5b76445\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:a6a2ab4f61a274f4a618ad7362ebb7708\" id=\"r_a6a2ab4f61a274f4a618ad7362ebb7708\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6a2ab4f61a274f4a618ad7362ebb7708\">Location</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6a2ab4f61a274f4a618ad7362ebb7708\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The location set by the user.  <br /></td></tr>\n<tr class=\"memitem:aa55b972d8c9443ae99e47020d3231665\" id=\"r_aa55b972d8c9443ae99e47020d3231665\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa55b972d8c9443ae99e47020d3231665\">Timezone</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa55b972d8c9443ae99e47020d3231665\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The timezone set by the user.  <br /></td></tr>\n<tr class=\"memitem:a582846f7bdd9a35d8864fc2004b0e26d\" id=\"r_a582846f7bdd9a35d8864fc2004b0e26d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a582846f7bdd9a35d8864fc2004b0e26d\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a582846f7bdd9a35d8864fc2004b0e26d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user's account.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Update a user's account details. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8d1f3bf3766cd7340ba66ca2a74e7a63\" name=\"a8d1f3bf3766cd7340ba66ca2a74e7a63\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8d1f3bf3766cd7340ba66ca2a74e7a63\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"a993356bac470c2c097e3737c592df904\" name=\"a993356bac470c2c097e3737c592df904\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a993356bac470c2c097e3737c592df904\">&#9670;&#160;</a></span>DisplayName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.DisplayName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The display name of the user. </p>\n\n</div>\n</div>\n<a id=\"a7899f3c0f57fd33631e5e255f5b76445\" name=\"a7899f3c0f57fd33631e5e255f5b76445\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7899f3c0f57fd33631e5e255f5b76445\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"a6a2ab4f61a274f4a618ad7362ebb7708\" name=\"a6a2ab4f61a274f4a618ad7362ebb7708\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6a2ab4f61a274f4a618ad7362ebb7708\">&#9670;&#160;</a></span>Location</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.Location</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The location set by the user. </p>\n\n</div>\n</div>\n<a id=\"aa55b972d8c9443ae99e47020d3231665\" name=\"aa55b972d8c9443ae99e47020d3231665\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa55b972d8c9443ae99e47020d3231665\">&#9670;&#160;</a></span>Timezone</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.Timezone</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The timezone set by the user. </p>\n\n</div>\n</div>\n<a id=\"a582846f7bdd9a35d8864fc2004b0e26d\" name=\"a582846f7bdd9a35d8864fc2004b0e26d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a582846f7bdd9a35d8864fc2004b0e26d\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateAccountRequest.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user's account. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_update_account_request.html\">IApiUpdateAccountRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_account_request.js",
    "content": "var interface_nakama_1_1_i_api_update_account_request =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\", null ],\n    [ \"DisplayName\", \"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\", null ],\n    [ \"Location\", \"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\", null ],\n    [ \"Timezone\", \"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_group_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_update_group_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUpdateGroupRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">Nakama.IApiUpdateGroupRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_group_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiUpdateGroupRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_update_group_request.html','','interface_nakama_1_1_i_api_update_group_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUpdateGroupRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Update fields in a given group.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a144112a79ce69e6fe3ad8802b6ce82e7\" id=\"r_a144112a79ce69e6fe3ad8802b6ce82e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a144112a79ce69e6fe3ad8802b6ce82e7\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a144112a79ce69e6fe3ad8802b6ce82e7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Avatar URL.  <br /></td></tr>\n<tr class=\"memitem:affe1c70151669abaf57777cf84b4acab\" id=\"r_affe1c70151669abaf57777cf84b4acab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#affe1c70151669abaf57777cf84b4acab\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:affe1c70151669abaf57777cf84b4acab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Description string.  <br /></td></tr>\n<tr class=\"memitem:ace7628056b6e1eab29b3ff8ff2a8ca4d\" id=\"r_ace7628056b6e1eab29b3ff8ff2a8ca4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ace7628056b6e1eab29b3ff8ff2a8ca4d\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ace7628056b6e1eab29b3ff8ff2a8ca4d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Lang tag.  <br /></td></tr>\n<tr class=\"memitem:a1415bb059f6c75ea9e22f87de398c660\" id=\"r_a1415bb059f6c75ea9e22f87de398c660\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1415bb059f6c75ea9e22f87de398c660\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1415bb059f6c75ea9e22f87de398c660\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Name.  <br /></td></tr>\n<tr class=\"memitem:a7bf227165843823761670f54a4e4f262\" id=\"r_a7bf227165843823761670f54a4e4f262\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7bf227165843823761670f54a4e4f262\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7bf227165843823761670f54a4e4f262\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Update fields in a given group. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a144112a79ce69e6fe3ad8802b6ce82e7\" name=\"a144112a79ce69e6fe3ad8802b6ce82e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a144112a79ce69e6fe3ad8802b6ce82e7\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateGroupRequest.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Avatar URL. </p>\n\n</div>\n</div>\n<a id=\"affe1c70151669abaf57777cf84b4acab\" name=\"affe1c70151669abaf57777cf84b4acab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#affe1c70151669abaf57777cf84b4acab\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateGroupRequest.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Description string. </p>\n\n</div>\n</div>\n<a id=\"ace7628056b6e1eab29b3ff8ff2a8ca4d\" name=\"ace7628056b6e1eab29b3ff8ff2a8ca4d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ace7628056b6e1eab29b3ff8ff2a8ca4d\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateGroupRequest.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Lang tag. </p>\n\n</div>\n</div>\n<a id=\"a1415bb059f6c75ea9e22f87de398c660\" name=\"a1415bb059f6c75ea9e22f87de398c660\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1415bb059f6c75ea9e22f87de398c660\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUpdateGroupRequest.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Name. </p>\n\n</div>\n</div>\n<a id=\"a7bf227165843823761670f54a4e4f262\" name=\"a7bf227165843823761670f54a4e4f262\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7bf227165843823761670f54a4e4f262\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiUpdateGroupRequest.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_update_group_request.html\">IApiUpdateGroupRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_update_group_request.js",
    "content": "var interface_nakama_1_1_i_api_update_group_request =\n[\n    [ \"AvatarUrl\", \"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\", null ],\n    [ \"Description\", \"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\", null ],\n    [ \"Name\", \"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_user.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUser Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\">AppleId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\">AvatarUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\">DisplayName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\">EdgeCount</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\">FacebookId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\">FacebookInstantGameId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\">GamecenterId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\">GoogleId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\">LangTag</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\">Location</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\">Online</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\">SteamId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\">Timezone</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">Nakama.IApiUser</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiUser Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_user.html','','interface_nakama_1_1_i_api_user-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUser Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A user in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab0198bc70ded313e6c9c6763eb8ceb2c\" id=\"r_ab0198bc70ded313e6c9c6763eb8ceb2c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab0198bc70ded313e6c9c6763eb8ceb2c\">AppleId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab0198bc70ded313e6c9c6763eb8ceb2c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Apple Sign In ID in the user's account.  <br /></td></tr>\n<tr class=\"memitem:afb7372669926e49e84d65eda35d96e57\" id=\"r_afb7372669926e49e84d65eda35d96e57\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afb7372669926e49e84d65eda35d96e57\">AvatarUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afb7372669926e49e84d65eda35d96e57\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A URL for an avatar image.  <br /></td></tr>\n<tr class=\"memitem:a6116a031588ee6664cdd6b65ca3e3a35\" id=\"r_a6116a031588ee6664cdd6b65ca3e3a35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6116a031588ee6664cdd6b65ca3e3a35\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6116a031588ee6664cdd6b65ca3e3a35\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created.  <br /></td></tr>\n<tr class=\"memitem:ac93d01ededb4f9a2105ab9f828288554\" id=\"r_ac93d01ededb4f9a2105ab9f828288554\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac93d01ededb4f9a2105ab9f828288554\">DisplayName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac93d01ededb4f9a2105ab9f828288554\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The display name of the user.  <br /></td></tr>\n<tr class=\"memitem:a7f2b29d0beac44418db1fe0a91d28f4a\" id=\"r_a7f2b29d0beac44418db1fe0a91d28f4a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f2b29d0beac44418db1fe0a91d28f4a\">EdgeCount</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7f2b29d0beac44418db1fe0a91d28f4a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Number of related edges to this user.  <br /></td></tr>\n<tr class=\"memitem:afd987c60472977cc3bd5f8b0da50f194\" id=\"r_afd987c60472977cc3bd5f8b0da50f194\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afd987c60472977cc3bd5f8b0da50f194\">FacebookId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afd987c60472977cc3bd5f8b0da50f194\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Facebook id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a798294cd46d9dd22fd9eee3596f8454f\" id=\"r_a798294cd46d9dd22fd9eee3596f8454f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a798294cd46d9dd22fd9eee3596f8454f\">FacebookInstantGameId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a798294cd46d9dd22fd9eee3596f8454f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Facebook Instant Game ID in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a0071dbc7def5d61dc862bf299cd539fd\" id=\"r_a0071dbc7def5d61dc862bf299cd539fd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0071dbc7def5d61dc862bf299cd539fd\">GamecenterId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0071dbc7def5d61dc862bf299cd539fd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Apple Game Center in of the user's account.  <br /></td></tr>\n<tr class=\"memitem:a9d9808e7de09665a27a3c80c5b0528c6\" id=\"r_a9d9808e7de09665a27a3c80c5b0528c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9d9808e7de09665a27a3c80c5b0528c6\">GoogleId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9d9808e7de09665a27a3c80c5b0528c6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Google id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:a27ba5e2dff5807febaf5efae3d5e1a05\" id=\"r_a27ba5e2dff5807febaf5efae3d5e1a05\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a27ba5e2dff5807febaf5efae3d5e1a05\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a27ba5e2dff5807febaf5efae3d5e1a05\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of the user's account.  <br /></td></tr>\n<tr class=\"memitem:a122a8e64057ff866cf1f70d56250bbc3\" id=\"r_a122a8e64057ff866cf1f70d56250bbc3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a122a8e64057ff866cf1f70d56250bbc3\">LangTag</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a122a8e64057ff866cf1f70d56250bbc3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The language expected to be a tag which follows the BCP-47 spec.  <br /></td></tr>\n<tr class=\"memitem:ae1da0ac24e130205f709f5866c9eab40\" id=\"r_ae1da0ac24e130205f709f5866c9eab40\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae1da0ac24e130205f709f5866c9eab40\">Location</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae1da0ac24e130205f709f5866c9eab40\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The location set by the user.  <br /></td></tr>\n<tr class=\"memitem:a4b152a1c6dedc1d5153073752d745ee4\" id=\"r_a4b152a1c6dedc1d5153073752d745ee4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4b152a1c6dedc1d5153073752d745ee4\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4b152a1c6dedc1d5153073752d745ee4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Additional information stored as a JSON object.  <br /></td></tr>\n<tr class=\"memitem:ad0cde265702684b22c011e5ad50bc623\" id=\"r_ad0cde265702684b22c011e5ad50bc623\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad0cde265702684b22c011e5ad50bc623\">Online</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad0cde265702684b22c011e5ad50bc623\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Indicates whether the user is currently online.  <br /></td></tr>\n<tr class=\"memitem:a4d5ae38271c94c784a6109eb75b445c9\" id=\"r_a4d5ae38271c94c784a6109eb75b445c9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4d5ae38271c94c784a6109eb75b445c9\">SteamId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4d5ae38271c94c784a6109eb75b445c9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Steam id in the user's account.  <br /></td></tr>\n<tr class=\"memitem:ae873fe0750aa08303676c1f21ef55dd5\" id=\"r_ae873fe0750aa08303676c1f21ef55dd5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae873fe0750aa08303676c1f21ef55dd5\">Timezone</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae873fe0750aa08303676c1f21ef55dd5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The timezone set by the user.  <br /></td></tr>\n<tr class=\"memitem:a8aff59a5e341fe445578d2f108a80ddd\" id=\"r_a8aff59a5e341fe445578d2f108a80ddd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8aff59a5e341fe445578d2f108a80ddd\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8aff59a5e341fe445578d2f108a80ddd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated.  <br /></td></tr>\n<tr class=\"memitem:a0c91538eea10c6fa05fc5ea8271ef266\" id=\"r_a0c91538eea10c6fa05fc5ea8271ef266\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0c91538eea10c6fa05fc5ea8271ef266\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0c91538eea10c6fa05fc5ea8271ef266\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user's account.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A user in the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab0198bc70ded313e6c9c6763eb8ceb2c\" name=\"ab0198bc70ded313e6c9c6763eb8ceb2c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab0198bc70ded313e6c9c6763eb8ceb2c\">&#9670;&#160;</a></span>AppleId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.AppleId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Apple Sign In ID in the user's account. </p>\n\n</div>\n</div>\n<a id=\"afb7372669926e49e84d65eda35d96e57\" name=\"afb7372669926e49e84d65eda35d96e57\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afb7372669926e49e84d65eda35d96e57\">&#9670;&#160;</a></span>AvatarUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.AvatarUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A URL for an avatar image. </p>\n\n</div>\n</div>\n<a id=\"a6116a031588ee6664cdd6b65ca3e3a35\" name=\"a6116a031588ee6664cdd6b65ca3e3a35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6116a031588ee6664cdd6b65ca3e3a35\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was created. </p>\n\n</div>\n</div>\n<a id=\"ac93d01ededb4f9a2105ab9f828288554\" name=\"ac93d01ededb4f9a2105ab9f828288554\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac93d01ededb4f9a2105ab9f828288554\">&#9670;&#160;</a></span>DisplayName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.DisplayName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The display name of the user. </p>\n\n</div>\n</div>\n<a id=\"a7f2b29d0beac44418db1fe0a91d28f4a\" name=\"a7f2b29d0beac44418db1fe0a91d28f4a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f2b29d0beac44418db1fe0a91d28f4a\">&#9670;&#160;</a></span>EdgeCount</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiUser.EdgeCount</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Number of related edges to this user. </p>\n\n</div>\n</div>\n<a id=\"afd987c60472977cc3bd5f8b0da50f194\" name=\"afd987c60472977cc3bd5f8b0da50f194\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afd987c60472977cc3bd5f8b0da50f194\">&#9670;&#160;</a></span>FacebookId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.FacebookId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Facebook id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a798294cd46d9dd22fd9eee3596f8454f\" name=\"a798294cd46d9dd22fd9eee3596f8454f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a798294cd46d9dd22fd9eee3596f8454f\">&#9670;&#160;</a></span>FacebookInstantGameId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.FacebookInstantGameId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Facebook Instant Game ID in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a0071dbc7def5d61dc862bf299cd539fd\" name=\"a0071dbc7def5d61dc862bf299cd539fd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0071dbc7def5d61dc862bf299cd539fd\">&#9670;&#160;</a></span>GamecenterId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.GamecenterId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Apple Game Center in of the user's account. </p>\n\n</div>\n</div>\n<a id=\"a9d9808e7de09665a27a3c80c5b0528c6\" name=\"a9d9808e7de09665a27a3c80c5b0528c6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d9808e7de09665a27a3c80c5b0528c6\">&#9670;&#160;</a></span>GoogleId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.GoogleId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Google id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"a27ba5e2dff5807febaf5efae3d5e1a05\" name=\"a27ba5e2dff5807febaf5efae3d5e1a05\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a27ba5e2dff5807febaf5efae3d5e1a05\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of the user's account. </p>\n\n</div>\n</div>\n<a id=\"a122a8e64057ff866cf1f70d56250bbc3\" name=\"a122a8e64057ff866cf1f70d56250bbc3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a122a8e64057ff866cf1f70d56250bbc3\">&#9670;&#160;</a></span>LangTag</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.LangTag</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The language expected to be a tag which follows the BCP-47 spec. </p>\n\n</div>\n</div>\n<a id=\"ae1da0ac24e130205f709f5866c9eab40\" name=\"ae1da0ac24e130205f709f5866c9eab40\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae1da0ac24e130205f709f5866c9eab40\">&#9670;&#160;</a></span>Location</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.Location</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The location set by the user. </p>\n\n</div>\n</div>\n<a id=\"a4b152a1c6dedc1d5153073752d745ee4\" name=\"a4b152a1c6dedc1d5153073752d745ee4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b152a1c6dedc1d5153073752d745ee4\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Additional information stored as a JSON object. </p>\n\n</div>\n</div>\n<a id=\"ad0cde265702684b22c011e5ad50bc623\" name=\"ad0cde265702684b22c011e5ad50bc623\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0cde265702684b22c011e5ad50bc623\">&#9670;&#160;</a></span>Online</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiUser.Online</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Indicates whether the user is currently online. </p>\n\n</div>\n</div>\n<a id=\"a4d5ae38271c94c784a6109eb75b445c9\" name=\"a4d5ae38271c94c784a6109eb75b445c9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4d5ae38271c94c784a6109eb75b445c9\">&#9670;&#160;</a></span>SteamId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.SteamId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The Steam id in the user's account. </p>\n\n</div>\n</div>\n<a id=\"ae873fe0750aa08303676c1f21ef55dd5\" name=\"ae873fe0750aa08303676c1f21ef55dd5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae873fe0750aa08303676c1f21ef55dd5\">&#9670;&#160;</a></span>Timezone</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.Timezone</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The timezone set by the user. </p>\n\n</div>\n</div>\n<a id=\"a8aff59a5e341fe445578d2f108a80ddd\" name=\"a8aff59a5e341fe445578d2f108a80ddd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8aff59a5e341fe445578d2f108a80ddd\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time (for gRPC clients) or ISO string (for REST clients) when the user was last updated. </p>\n\n</div>\n</div>\n<a id=\"a0c91538eea10c6fa05fc5ea8271ef266\" name=\"a0c91538eea10c6fa05fc5ea8271ef266\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0c91538eea10c6fa05fc5ea8271ef266\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUser.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user's account. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user.js",
    "content": "var interface_nakama_1_1_i_api_user =\n[\n    [ \"AppleId\", \"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\", null ],\n    [ \"AvatarUrl\", \"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\", null ],\n    [ \"DisplayName\", \"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\", null ],\n    [ \"EdgeCount\", \"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\", null ],\n    [ \"FacebookId\", \"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\", null ],\n    [ \"FacebookInstantGameId\", \"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\", null ],\n    [ \"GamecenterId\", \"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\", null ],\n    [ \"GoogleId\", \"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\", null ],\n    [ \"LangTag\", \"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\", null ],\n    [ \"Location\", \"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\", null ],\n    [ \"Metadata\", \"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\", null ],\n    [ \"Online\", \"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\", null ],\n    [ \"SteamId\", \"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\", null ],\n    [ \"Timezone\", \"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user_group_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_user_group_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUserGroupList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">Nakama.IApiUserGroupList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\">Cursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">Nakama.IApiUserGroupList</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\">UserGroups</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">Nakama.IApiUserGroupList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user_group_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiUserGroupList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_user_group_list.html','','interface_nakama_1_1_i_api_user_group_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUserGroupList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A list of groups belonging to a user, along with the user's role in each group.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab8631f083296460a22008ed1d4c5f3de\" id=\"r_ab8631f083296460a22008ed1d4c5f3de\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab8631f083296460a22008ed1d4c5f3de\">Cursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab8631f083296460a22008ed1d4c5f3de\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cursor for the next page of results, if any.  <br /></td></tr>\n<tr class=\"memitem:a9fb7bd1ab9624d212aa94cc12023c201\" id=\"r_a9fb7bd1ab9624d212aa94cc12023c201\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9fb7bd1ab9624d212aa94cc12023c201\">UserGroups</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9fb7bd1ab9624d212aa94cc12023c201\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Group-role pairs for a user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A list of groups belonging to a user, along with the user's role in each group. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab8631f083296460a22008ed1d4c5f3de\" name=\"ab8631f083296460a22008ed1d4c5f3de\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab8631f083296460a22008ed1d4c5f3de\">&#9670;&#160;</a></span>Cursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiUserGroupList.Cursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cursor for the next page of results, if any. </p>\n\n</div>\n</div>\n<a id=\"a9fb7bd1ab9624d212aa94cc12023c201\" name=\"a9fb7bd1ab9624d212aa94cc12023c201\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9fb7bd1ab9624d212aa94cc12023c201\">&#9670;&#160;</a></span>UserGroups</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a>&gt; Nakama.IApiUserGroupList.UserGroups</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Group-role pairs for a user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_user_group_list.js",
    "content": "var interface_nakama_1_1_i_api_user_group_list =\n[\n    [ \"Cursor\", \"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\", null ],\n    [ \"UserGroups\", \"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_users-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_users.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUsers Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">Nakama.IApiUsers</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\">Users</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">Nakama.IApiUsers</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_users.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiUsers Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_users.html','','interface_nakama_1_1_i_api_users-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiUsers Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A collection of zero or more users.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad55f30878df5930844ed1d7ece6cf30e\" id=\"r_ad55f30878df5930844ed1d7ece6cf30e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad55f30878df5930844ed1d7ece6cf30e\">Users</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad55f30878df5930844ed1d7ece6cf30e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The User objects.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A collection of zero or more users. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad55f30878df5930844ed1d7ece6cf30e\" name=\"ad55f30878df5930844ed1d7ece6cf30e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad55f30878df5930844ed1d7ece6cf30e\">&#9670;&#160;</a></span>Users</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a>&gt; Nakama.IApiUsers.Users</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The User objects. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_users.js",
    "content": "var interface_nakama_1_1_i_api_users =\n[\n    [ \"Users\", \"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_apple_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_apple_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseAppleRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">Nakama.IApiValidatePurchaseAppleRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">Nakama.IApiValidatePurchaseAppleRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\">Receipt</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">Nakama.IApiValidatePurchaseAppleRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_apple_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatePurchaseAppleRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_apple_request.html','','interface_nakama_1_1_i_api_validate_purchase_apple_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseAppleRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Apple IAP Purchases validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a29eafeeb27bbd3712cae61a661446274\" id=\"r_a29eafeeb27bbd3712cae61a661446274\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29eafeeb27bbd3712cae61a661446274\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a29eafeeb27bbd3712cae61a661446274\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the purchase.  <br /></td></tr>\n<tr class=\"memitem:aa6721f9ea220bce44e5274fcf335a4b6\" id=\"r_aa6721f9ea220bce44e5274fcf335a4b6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa6721f9ea220bce44e5274fcf335a4b6\">Receipt</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa6721f9ea220bce44e5274fcf335a4b6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Base64 encoded Apple receipt data payload.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Apple IAP Purchases validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a29eafeeb27bbd3712cae61a661446274\" name=\"a29eafeeb27bbd3712cae61a661446274\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29eafeeb27bbd3712cae61a661446274\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatePurchaseAppleRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the purchase. </p>\n\n</div>\n</div>\n<a id=\"aa6721f9ea220bce44e5274fcf335a4b6\" name=\"aa6721f9ea220bce44e5274fcf335a4b6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa6721f9ea220bce44e5274fcf335a4b6\">&#9670;&#160;</a></span>Receipt</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatePurchaseAppleRequest.Receipt</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Base64 encoded Apple receipt data payload. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">IApiValidatePurchaseAppleRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_apple_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_purchase_apple_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\", null ],\n    [ \"Receipt\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseFacebookInstantRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\">SignedRequest</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">Nakama.IApiValidatePurchaseFacebookInstantRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatePurchaseFacebookInstantRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html','','interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseFacebookInstantRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Facebook Instant IAP Purchase validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a658bf336bac89d6cc80fb30ca707c766\" id=\"r_a658bf336bac89d6cc80fb30ca707c766\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a658bf336bac89d6cc80fb30ca707c766\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a658bf336bac89d6cc80fb30ca707c766\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the purchase.  <br /></td></tr>\n<tr class=\"memitem:a6c1c5723de1efb7deb731d931e9a086e\" id=\"r_a6c1c5723de1efb7deb731d931e9a086e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6c1c5723de1efb7deb731d931e9a086e\">SignedRequest</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6c1c5723de1efb7deb731d931e9a086e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Base64 encoded Facebook Instant signedRequest receipt data payload.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Facebook Instant IAP Purchase validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a658bf336bac89d6cc80fb30ca707c766\" name=\"a658bf336bac89d6cc80fb30ca707c766\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a658bf336bac89d6cc80fb30ca707c766\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatePurchaseFacebookInstantRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the purchase. </p>\n\n</div>\n</div>\n<a id=\"a6c1c5723de1efb7deb731d931e9a086e\" name=\"a6c1c5723de1efb7deb731d931e9a086e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6c1c5723de1efb7deb731d931e9a086e\">&#9670;&#160;</a></span>SignedRequest</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatePurchaseFacebookInstantRequest.SignedRequest</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Base64 encoded Facebook Instant signedRequest receipt data payload. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">IApiValidatePurchaseFacebookInstantRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\", null ],\n    [ \"SignedRequest\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_google_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_google_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseGoogleRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">Nakama.IApiValidatePurchaseGoogleRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">Nakama.IApiValidatePurchaseGoogleRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\">Purchase</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">Nakama.IApiValidatePurchaseGoogleRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_google_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatePurchaseGoogleRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_google_request.html','','interface_nakama_1_1_i_api_validate_purchase_google_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseGoogleRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Google IAP Purchase validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad24968b3a0dc1595776465da70f0ee97\" id=\"r_ad24968b3a0dc1595776465da70f0ee97\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad24968b3a0dc1595776465da70f0ee97\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad24968b3a0dc1595776465da70f0ee97\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the purchase.  <br /></td></tr>\n<tr class=\"memitem:adbb2be238e1fda23e46502e541909437\" id=\"r_adbb2be238e1fda23e46502e541909437\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adbb2be238e1fda23e46502e541909437\">Purchase</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adbb2be238e1fda23e46502e541909437\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">JSON encoded Google purchase payload.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Google IAP Purchase validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad24968b3a0dc1595776465da70f0ee97\" name=\"ad24968b3a0dc1595776465da70f0ee97\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad24968b3a0dc1595776465da70f0ee97\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatePurchaseGoogleRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the purchase. </p>\n\n</div>\n</div>\n<a id=\"adbb2be238e1fda23e46502e541909437\" name=\"adbb2be238e1fda23e46502e541909437\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adbb2be238e1fda23e46502e541909437\">&#9670;&#160;</a></span>Purchase</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatePurchaseGoogleRequest.Purchase</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>JSON encoded Google purchase payload. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">IApiValidatePurchaseGoogleRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_google_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_purchase_google_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\", null ],\n    [ \"Purchase\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_huawei_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_huawei_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseHuaweiRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\">Purchase</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\">Signature</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">Nakama.IApiValidatePurchaseHuaweiRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_huawei_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatePurchaseHuaweiRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_huawei_request.html','','interface_nakama_1_1_i_api_validate_purchase_huawei_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseHuaweiRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Huawei IAP Purchase validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a65bb03ffbc75254960de1019c98fdf7a\" id=\"r_a65bb03ffbc75254960de1019c98fdf7a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a65bb03ffbc75254960de1019c98fdf7a\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a65bb03ffbc75254960de1019c98fdf7a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the purchase.  <br /></td></tr>\n<tr class=\"memitem:ac3306d845f2efbb81bcedf36605d9670\" id=\"r_ac3306d845f2efbb81bcedf36605d9670\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3306d845f2efbb81bcedf36605d9670\">Purchase</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac3306d845f2efbb81bcedf36605d9670\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">JSON encoded Huawei InAppPurchaseData.  <br /></td></tr>\n<tr class=\"memitem:a7b98a33ae94db920a247eb5f1c618489\" id=\"r_a7b98a33ae94db920a247eb5f1c618489\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b98a33ae94db920a247eb5f1c618489\">Signature</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7b98a33ae94db920a247eb5f1c618489\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">InAppPurchaseData signature.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Huawei IAP Purchase validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a65bb03ffbc75254960de1019c98fdf7a\" name=\"a65bb03ffbc75254960de1019c98fdf7a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a65bb03ffbc75254960de1019c98fdf7a\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatePurchaseHuaweiRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the purchase. </p>\n\n</div>\n</div>\n<a id=\"ac3306d845f2efbb81bcedf36605d9670\" name=\"ac3306d845f2efbb81bcedf36605d9670\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3306d845f2efbb81bcedf36605d9670\">&#9670;&#160;</a></span>Purchase</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatePurchaseHuaweiRequest.Purchase</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>JSON encoded Huawei InAppPurchaseData. </p>\n\n</div>\n</div>\n<a id=\"a7b98a33ae94db920a247eb5f1c618489\" name=\"a7b98a33ae94db920a247eb5f1c618489\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b98a33ae94db920a247eb5f1c618489\">&#9670;&#160;</a></span>Signature</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatePurchaseHuaweiRequest.Signature</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>InAppPurchaseData signature. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">IApiValidatePurchaseHuaweiRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_huawei_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_purchase_huawei_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\", null ],\n    [ \"Purchase\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\", null ],\n    [ \"Signature\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_response-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_response.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseResponse Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">Nakama.IApiValidatePurchaseResponse</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\">ValidatedPurchases</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">Nakama.IApiValidatePurchaseResponse</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_response.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatePurchaseResponse Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_purchase_response.html','','interface_nakama_1_1_i_api_validate_purchase_response-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatePurchaseResponse Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Validate IAP response.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac515e00701e7a9e955b59940109844c3\" id=\"r_ac515e00701e7a9e955b59940109844c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">IApiValidatedPurchase</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac515e00701e7a9e955b59940109844c3\">ValidatedPurchases</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac515e00701e7a9e955b59940109844c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Newly seen validated purchases.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Validate IAP response. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac515e00701e7a9e955b59940109844c3\" name=\"ac515e00701e7a9e955b59940109844c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac515e00701e7a9e955b59940109844c3\">&#9670;&#160;</a></span>ValidatedPurchases</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">IApiValidatedPurchase</a>&gt; Nakama.IApiValidatePurchaseResponse.ValidatedPurchases</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Newly seen validated purchases. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_purchase_response.js",
    "content": "var interface_nakama_1_1_i_api_validate_purchase_response =\n[\n    [ \"ValidatedPurchases\", \"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_apple_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_apple_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionAppleRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">Nakama.IApiValidateSubscriptionAppleRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">Nakama.IApiValidateSubscriptionAppleRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\">Receipt</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">Nakama.IApiValidateSubscriptionAppleRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_apple_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidateSubscriptionAppleRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_apple_request.html','','interface_nakama_1_1_i_api_validate_subscription_apple_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionAppleRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Apple Subscription validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac3678f34874a815bfbe6d81b8fe25779\" id=\"r_ac3678f34874a815bfbe6d81b8fe25779\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac3678f34874a815bfbe6d81b8fe25779\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac3678f34874a815bfbe6d81b8fe25779\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the subscription.  <br /></td></tr>\n<tr class=\"memitem:aea80877b3c4ab065ec156c2e5e97edc9\" id=\"r_aea80877b3c4ab065ec156c2e5e97edc9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea80877b3c4ab065ec156c2e5e97edc9\">Receipt</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aea80877b3c4ab065ec156c2e5e97edc9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Base64 encoded Apple receipt data payload.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Apple Subscription validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac3678f34874a815bfbe6d81b8fe25779\" name=\"ac3678f34874a815bfbe6d81b8fe25779\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac3678f34874a815bfbe6d81b8fe25779\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidateSubscriptionAppleRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the subscription. </p>\n\n</div>\n</div>\n<a id=\"aea80877b3c4ab065ec156c2e5e97edc9\" name=\"aea80877b3c4ab065ec156c2e5e97edc9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea80877b3c4ab065ec156c2e5e97edc9\">&#9670;&#160;</a></span>Receipt</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidateSubscriptionAppleRequest.Receipt</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Base64 encoded Apple receipt data payload. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">IApiValidateSubscriptionAppleRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_apple_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_subscription_apple_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\", null ],\n    [ \"Receipt\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_google_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_google_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionGoogleRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">Nakama.IApiValidateSubscriptionGoogleRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\">Persist</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">Nakama.IApiValidateSubscriptionGoogleRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\">Receipt</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">Nakama.IApiValidateSubscriptionGoogleRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_google_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidateSubscriptionGoogleRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_google_request.html','','interface_nakama_1_1_i_api_validate_subscription_google_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionGoogleRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Google Subscription validation request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1b0a2361edbd84507267d9cacf2a2602\" id=\"r_a1b0a2361edbd84507267d9cacf2a2602\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b0a2361edbd84507267d9cacf2a2602\">Persist</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1b0a2361edbd84507267d9cacf2a2602\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Persist the subscription.  <br /></td></tr>\n<tr class=\"memitem:a9b163d346293af62efe1bc1be55628dc\" id=\"r_a9b163d346293af62efe1bc1be55628dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9b163d346293af62efe1bc1be55628dc\">Receipt</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9b163d346293af62efe1bc1be55628dc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">JSON encoded Google purchase payload.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Google Subscription validation request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1b0a2361edbd84507267d9cacf2a2602\" name=\"a1b0a2361edbd84507267d9cacf2a2602\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b0a2361edbd84507267d9cacf2a2602\">&#9670;&#160;</a></span>Persist</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidateSubscriptionGoogleRequest.Persist</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Persist the subscription. </p>\n\n</div>\n</div>\n<a id=\"a9b163d346293af62efe1bc1be55628dc\" name=\"a9b163d346293af62efe1bc1be55628dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9b163d346293af62efe1bc1be55628dc\">&#9670;&#160;</a></span>Receipt</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidateSubscriptionGoogleRequest.Receipt</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>JSON encoded Google purchase payload. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">IApiValidateSubscriptionGoogleRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_google_request.js",
    "content": "var interface_nakama_1_1_i_api_validate_subscription_google_request =\n[\n    [ \"Persist\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\", null ],\n    [ \"Receipt\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_response-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_response.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionResponse Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">Nakama.IApiValidateSubscriptionResponse</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\">ValidatedSubscription</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">Nakama.IApiValidateSubscriptionResponse</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_response.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidateSubscriptionResponse Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validate_subscription_response.html','','interface_nakama_1_1_i_api_validate_subscription_response-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidateSubscriptionResponse Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Validate Subscription response.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6580631e345803ccb37fc9835078bdb1\" id=\"r_a6580631e345803ccb37fc9835078bdb1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6580631e345803ccb37fc9835078bdb1\">ValidatedSubscription</a><code> [get]</code></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Validate Subscription response. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6580631e345803ccb37fc9835078bdb1\" name=\"a6580631e345803ccb37fc9835078bdb1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6580631e345803ccb37fc9835078bdb1\">&#9670;&#160;</a></span>ValidatedSubscription</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> Nakama.IApiValidateSubscriptionResponse.ValidatedSubscription</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validate_subscription_response.js",
    "content": "var interface_nakama_1_1_i_api_validate_subscription_response =\n[\n    [ \"ValidatedSubscription\", \"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_purchase-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validated_purchase.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatedPurchase Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\">Environment</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\">ProductId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\">ProviderResponse</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\">PurchaseTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\">RefundTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\">SeenBefore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\">Store</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\">TransactionId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">Nakama.IApiValidatedPurchase</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_purchase.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatedPurchase Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validated_purchase.html','','interface_nakama_1_1_i_api_validated_purchase-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatedPurchase Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab522c40c8f1cffedcd9b3ad45c5f8fd5\" id=\"r_ab522c40c8f1cffedcd9b3ad45c5f8fd5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab522c40c8f1cffedcd9b3ad45c5f8fd5\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab522c40c8f1cffedcd9b3ad45c5f8fd5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Timestamp when the receipt validation was stored in DB.  <br /></td></tr>\n<tr class=\"memitem:a5171b7d837aa864e97317c7f13919b33\" id=\"r_a5171b7d837aa864e97317c7f13919b33\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">ApiStoreEnvironment</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5171b7d837aa864e97317c7f13919b33\">Environment</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5171b7d837aa864e97317c7f13919b33\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the purchase was done in production or sandbox environment.  <br /></td></tr>\n<tr class=\"memitem:a9e77eff1ebd7d0c2c55d8df258365810\" id=\"r_a9e77eff1ebd7d0c2c55d8df258365810\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e77eff1ebd7d0c2c55d8df258365810\">ProductId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9e77eff1ebd7d0c2c55d8df258365810\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Purchase Product ID.  <br /></td></tr>\n<tr class=\"memitem:a4b6f8451926587ea57801a8461e3199d\" id=\"r_a4b6f8451926587ea57801a8461e3199d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4b6f8451926587ea57801a8461e3199d\">ProviderResponse</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4b6f8451926587ea57801a8461e3199d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raw provider validation response.  <br /></td></tr>\n<tr class=\"memitem:abcd7b40de1b2e332e03cb32fb3c42395\" id=\"r_abcd7b40de1b2e332e03cb32fb3c42395\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abcd7b40de1b2e332e03cb32fb3c42395\">PurchaseTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abcd7b40de1b2e332e03cb32fb3c42395\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Timestamp when the purchase was done.  <br /></td></tr>\n<tr class=\"memitem:a7eacca40ebdb0ce36135c6dbd90a7faf\" id=\"r_a7eacca40ebdb0ce36135c6dbd90a7faf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7eacca40ebdb0ce36135c6dbd90a7faf\">RefundTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7eacca40ebdb0ce36135c6dbd90a7faf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Timestamp when the purchase was refunded. Set to UNIX.  <br /></td></tr>\n<tr class=\"memitem:ac09207aebbde21f6c3e0fdd90f88f5f4\" id=\"r_ac09207aebbde21f6c3e0fdd90f88f5f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac09207aebbde21f6c3e0fdd90f88f5f4\">SeenBefore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac09207aebbde21f6c3e0fdd90f88f5f4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the purchase had already been validated by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> before.  <br /></td></tr>\n<tr class=\"memitem:a82b03837923ce9da25df12a6e72962e1\" id=\"r_a82b03837923ce9da25df12a6e72962e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">ApiStoreProvider</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a82b03837923ce9da25df12a6e72962e1\">Store</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a82b03837923ce9da25df12a6e72962e1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Store identifier.  <br /></td></tr>\n<tr class=\"memitem:a6b3f6c488bf5a83524e8b09e19dd1427\" id=\"r_a6b3f6c488bf5a83524e8b09e19dd1427\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6b3f6c488bf5a83524e8b09e19dd1427\">TransactionId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6b3f6c488bf5a83524e8b09e19dd1427\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Purchase Transaction ID.  <br /></td></tr>\n<tr class=\"memitem:ae4607e3920b05740205f5149166ff23f\" id=\"r_ae4607e3920b05740205f5149166ff23f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae4607e3920b05740205f5149166ff23f\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae4607e3920b05740205f5149166ff23f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Timestamp when the receipt validation was updated in DB.  <br /></td></tr>\n<tr class=\"memitem:aab70c17c433976a74b19ae8fb4babdd5\" id=\"r_aab70c17c433976a74b19ae8fb4babdd5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aab70c17c433976a74b19ae8fb4babdd5\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aab70c17c433976a74b19ae8fb4babdd5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Purchase User ID.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab522c40c8f1cffedcd9b3ad45c5f8fd5\" name=\"ab522c40c8f1cffedcd9b3ad45c5f8fd5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab522c40c8f1cffedcd9b3ad45c5f8fd5\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Timestamp when the receipt validation was stored in DB. </p>\n\n</div>\n</div>\n<a id=\"a5171b7d837aa864e97317c7f13919b33\" name=\"a5171b7d837aa864e97317c7f13919b33\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5171b7d837aa864e97317c7f13919b33\">&#9670;&#160;</a></span>Environment</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">ApiStoreEnvironment</a> Nakama.IApiValidatedPurchase.Environment</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the purchase was done in production or sandbox environment. </p>\n\n</div>\n</div>\n<a id=\"a9e77eff1ebd7d0c2c55d8df258365810\" name=\"a9e77eff1ebd7d0c2c55d8df258365810\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e77eff1ebd7d0c2c55d8df258365810\">&#9670;&#160;</a></span>ProductId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.ProductId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Purchase Product ID. </p>\n\n</div>\n</div>\n<a id=\"a4b6f8451926587ea57801a8461e3199d\" name=\"a4b6f8451926587ea57801a8461e3199d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b6f8451926587ea57801a8461e3199d\">&#9670;&#160;</a></span>ProviderResponse</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.ProviderResponse</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Raw provider validation response. </p>\n\n</div>\n</div>\n<a id=\"abcd7b40de1b2e332e03cb32fb3c42395\" name=\"abcd7b40de1b2e332e03cb32fb3c42395\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abcd7b40de1b2e332e03cb32fb3c42395\">&#9670;&#160;</a></span>PurchaseTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.PurchaseTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Timestamp when the purchase was done. </p>\n\n</div>\n</div>\n<a id=\"a7eacca40ebdb0ce36135c6dbd90a7faf\" name=\"a7eacca40ebdb0ce36135c6dbd90a7faf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7eacca40ebdb0ce36135c6dbd90a7faf\">&#9670;&#160;</a></span>RefundTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.RefundTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Timestamp when the purchase was refunded. Set to UNIX. </p>\n\n</div>\n</div>\n<a id=\"ac09207aebbde21f6c3e0fdd90f88f5f4\" name=\"ac09207aebbde21f6c3e0fdd90f88f5f4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac09207aebbde21f6c3e0fdd90f88f5f4\">&#9670;&#160;</a></span>SeenBefore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatedPurchase.SeenBefore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the purchase had already been validated by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> before. </p>\n\n</div>\n</div>\n<a id=\"a82b03837923ce9da25df12a6e72962e1\" name=\"a82b03837923ce9da25df12a6e72962e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a82b03837923ce9da25df12a6e72962e1\">&#9670;&#160;</a></span>Store</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">ApiStoreProvider</a> Nakama.IApiValidatedPurchase.Store</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Store identifier. </p>\n\n</div>\n</div>\n<a id=\"a6b3f6c488bf5a83524e8b09e19dd1427\" name=\"a6b3f6c488bf5a83524e8b09e19dd1427\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6b3f6c488bf5a83524e8b09e19dd1427\">&#9670;&#160;</a></span>TransactionId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.TransactionId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Purchase Transaction ID. </p>\n\n</div>\n</div>\n<a id=\"ae4607e3920b05740205f5149166ff23f\" name=\"ae4607e3920b05740205f5149166ff23f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae4607e3920b05740205f5149166ff23f\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Timestamp when the receipt validation was updated in DB. </p>\n\n</div>\n</div>\n<a id=\"aab70c17c433976a74b19ae8fb4babdd5\" name=\"aab70c17c433976a74b19ae8fb4babdd5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aab70c17c433976a74b19ae8fb4babdd5\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedPurchase.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Purchase User ID. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validated_purchase.html\">IApiValidatedPurchase</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_purchase.js",
    "content": "var interface_nakama_1_1_i_api_validated_purchase =\n[\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\", null ],\n    [ \"Environment\", \"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\", null ],\n    [ \"ProductId\", \"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\", null ],\n    [ \"ProviderResponse\", \"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\", null ],\n    [ \"PurchaseTime\", \"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\", null ],\n    [ \"RefundTime\", \"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\", null ],\n    [ \"SeenBefore\", \"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\", null ],\n    [ \"Store\", \"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\", null ],\n    [ \"TransactionId\", \"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_subscription-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validated_subscription.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatedSubscription Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\">Active</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\">Environment</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\">ExpiryTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\">OriginalTransactionId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\">ProductId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\">ProviderNotification</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\">ProviderResponse</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\">PurchaseTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\">RefundTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\">Store</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">Nakama.IApiValidatedSubscription</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_subscription.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiValidatedSubscription Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_validated_subscription.html','','interface_nakama_1_1_i_api_validated_subscription-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiValidatedSubscription Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad295f4a89fa4d5b54a691e086cfdb013\" id=\"r_ad295f4a89fa4d5b54a691e086cfdb013\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad295f4a89fa4d5b54a691e086cfdb013\">Active</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad295f4a89fa4d5b54a691e086cfdb013\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the subscription is currently active or not.  <br /></td></tr>\n<tr class=\"memitem:a2d25263a204ac800dfcab8a1f24bcfc6\" id=\"r_a2d25263a204ac800dfcab8a1f24bcfc6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2d25263a204ac800dfcab8a1f24bcfc6\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2d25263a204ac800dfcab8a1f24bcfc6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">UNIX Timestamp when the receipt validation was stored in DB.  <br /></td></tr>\n<tr class=\"memitem:a85d85cc53beb77e429f8f5416f7e2ee3\" id=\"r_a85d85cc53beb77e429f8f5416f7e2ee3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">ApiStoreEnvironment</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a85d85cc53beb77e429f8f5416f7e2ee3\">Environment</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a85d85cc53beb77e429f8f5416f7e2ee3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the purchase was done in production or sandbox environment.  <br /></td></tr>\n<tr class=\"memitem:a0d0a1443f00326171a35e53cd9294b73\" id=\"r_a0d0a1443f00326171a35e53cd9294b73\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d0a1443f00326171a35e53cd9294b73\">ExpiryTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0d0a1443f00326171a35e53cd9294b73\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further.  <br /></td></tr>\n<tr class=\"memitem:afae954930e5534383653571ba5261a8a\" id=\"r_afae954930e5534383653571ba5261a8a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afae954930e5534383653571ba5261a8a\">OriginalTransactionId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afae954930e5534383653571ba5261a8a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals).  <br /></td></tr>\n<tr class=\"memitem:a27b8546445c82ef0ec29e2e19e7012bb\" id=\"r_a27b8546445c82ef0ec29e2e19e7012bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a27b8546445c82ef0ec29e2e19e7012bb\">ProductId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a27b8546445c82ef0ec29e2e19e7012bb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Purchase Product ID.  <br /></td></tr>\n<tr class=\"memitem:a22188aad0160083f087900f9d554d87e\" id=\"r_a22188aad0160083f087900f9d554d87e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a22188aad0160083f087900f9d554d87e\">ProviderNotification</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a22188aad0160083f087900f9d554d87e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raw provider notification body.  <br /></td></tr>\n<tr class=\"memitem:a7b55020a1c03c9d86938b681091fb72c\" id=\"r_a7b55020a1c03c9d86938b681091fb72c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b55020a1c03c9d86938b681091fb72c\">ProviderResponse</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7b55020a1c03c9d86938b681091fb72c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raw provider validation response body.  <br /></td></tr>\n<tr class=\"memitem:a1f5e26f1891e4ec02d7f977e924a5e3f\" id=\"r_a1f5e26f1891e4ec02d7f977e924a5e3f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1f5e26f1891e4ec02d7f977e924a5e3f\">PurchaseTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1f5e26f1891e4ec02d7f977e924a5e3f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">UNIX Timestamp when the purchase was done.  <br /></td></tr>\n<tr class=\"memitem:a73caac906cb652ba66eaf244f16aad29\" id=\"r_a73caac906cb652ba66eaf244f16aad29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a73caac906cb652ba66eaf244f16aad29\">RefundTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a73caac906cb652ba66eaf244f16aad29\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscription refund time. If this time is set, the subscription was refunded.  <br /></td></tr>\n<tr class=\"memitem:a0823f4340d5db22b3e765c624df8ad24\" id=\"r_a0823f4340d5db22b3e765c624df8ad24\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">ApiStoreProvider</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0823f4340d5db22b3e765c624df8ad24\">Store</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0823f4340d5db22b3e765c624df8ad24\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Store identifier.  <br /></td></tr>\n<tr class=\"memitem:a491121c001aceae5d066dd6fa71a2695\" id=\"r_a491121c001aceae5d066dd6fa71a2695\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a491121c001aceae5d066dd6fa71a2695\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a491121c001aceae5d066dd6fa71a2695\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">UNIX Timestamp when the receipt validation was updated in DB.  <br /></td></tr>\n<tr class=\"memitem:a4d24d3aa8f3d61b53778bed50830a249\" id=\"r_a4d24d3aa8f3d61b53778bed50830a249\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4d24d3aa8f3d61b53778bed50830a249\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4d24d3aa8f3d61b53778bed50830a249\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscription User ID.  <br /></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad295f4a89fa4d5b54a691e086cfdb013\" name=\"ad295f4a89fa4d5b54a691e086cfdb013\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad295f4a89fa4d5b54a691e086cfdb013\">&#9670;&#160;</a></span>Active</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IApiValidatedSubscription.Active</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the subscription is currently active or not. </p>\n\n</div>\n</div>\n<a id=\"a2d25263a204ac800dfcab8a1f24bcfc6\" name=\"a2d25263a204ac800dfcab8a1f24bcfc6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2d25263a204ac800dfcab8a1f24bcfc6\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>UNIX Timestamp when the receipt validation was stored in DB. </p>\n\n</div>\n</div>\n<a id=\"a85d85cc53beb77e429f8f5416f7e2ee3\" name=\"a85d85cc53beb77e429f8f5416f7e2ee3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a85d85cc53beb77e429f8f5416f7e2ee3\">&#9670;&#160;</a></span>Environment</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">ApiStoreEnvironment</a> Nakama.IApiValidatedSubscription.Environment</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the purchase was done in production or sandbox environment. </p>\n\n</div>\n</div>\n<a id=\"a0d0a1443f00326171a35e53cd9294b73\" name=\"a0d0a1443f00326171a35e53cd9294b73\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d0a1443f00326171a35e53cd9294b73\">&#9670;&#160;</a></span>ExpiryTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.ExpiryTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subscription expiration time. The subscription can still be auto-renewed to extend the expiration time further. </p>\n\n</div>\n</div>\n<a id=\"afae954930e5534383653571ba5261a8a\" name=\"afae954930e5534383653571ba5261a8a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afae954930e5534383653571ba5261a8a\">&#9670;&#160;</a></span>OriginalTransactionId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.OriginalTransactionId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals). </p>\n\n</div>\n</div>\n<a id=\"a27b8546445c82ef0ec29e2e19e7012bb\" name=\"a27b8546445c82ef0ec29e2e19e7012bb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a27b8546445c82ef0ec29e2e19e7012bb\">&#9670;&#160;</a></span>ProductId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.ProductId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Purchase Product ID. </p>\n\n</div>\n</div>\n<a id=\"a22188aad0160083f087900f9d554d87e\" name=\"a22188aad0160083f087900f9d554d87e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a22188aad0160083f087900f9d554d87e\">&#9670;&#160;</a></span>ProviderNotification</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.ProviderNotification</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Raw provider notification body. </p>\n\n</div>\n</div>\n<a id=\"a7b55020a1c03c9d86938b681091fb72c\" name=\"a7b55020a1c03c9d86938b681091fb72c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b55020a1c03c9d86938b681091fb72c\">&#9670;&#160;</a></span>ProviderResponse</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.ProviderResponse</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Raw provider validation response body. </p>\n\n</div>\n</div>\n<a id=\"a1f5e26f1891e4ec02d7f977e924a5e3f\" name=\"a1f5e26f1891e4ec02d7f977e924a5e3f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1f5e26f1891e4ec02d7f977e924a5e3f\">&#9670;&#160;</a></span>PurchaseTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.PurchaseTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>UNIX Timestamp when the purchase was done. </p>\n\n</div>\n</div>\n<a id=\"a73caac906cb652ba66eaf244f16aad29\" name=\"a73caac906cb652ba66eaf244f16aad29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a73caac906cb652ba66eaf244f16aad29\">&#9670;&#160;</a></span>RefundTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.RefundTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subscription refund time. If this time is set, the subscription was refunded. </p>\n\n</div>\n</div>\n<a id=\"a0823f4340d5db22b3e765c624df8ad24\" name=\"a0823f4340d5db22b3e765c624df8ad24\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0823f4340d5db22b3e765c624df8ad24\">&#9670;&#160;</a></span>Store</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">ApiStoreProvider</a> Nakama.IApiValidatedSubscription.Store</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Store identifier. </p>\n\n</div>\n</div>\n<a id=\"a491121c001aceae5d066dd6fa71a2695\" name=\"a491121c001aceae5d066dd6fa71a2695\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a491121c001aceae5d066dd6fa71a2695\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>UNIX Timestamp when the receipt validation was updated in DB. </p>\n\n</div>\n</div>\n<a id=\"a4d24d3aa8f3d61b53778bed50830a249\" name=\"a4d24d3aa8f3d61b53778bed50830a249\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4d24d3aa8f3d61b53778bed50830a249\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiValidatedSubscription.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Subscription User ID. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_validated_subscription.js",
    "content": "var interface_nakama_1_1_i_api_validated_subscription =\n[\n    [ \"Active\", \"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\", null ],\n    [ \"Environment\", \"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\", null ],\n    [ \"ExpiryTime\", \"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\", null ],\n    [ \"OriginalTransactionId\", \"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\", null ],\n    [ \"ProductId\", \"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\", null ],\n    [ \"ProviderNotification\", \"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\", null ],\n    [ \"ProviderResponse\", \"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\", null ],\n    [ \"PurchaseTime\", \"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\", null ],\n    [ \"RefundTime\", \"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\", null ],\n    [ \"Store\", \"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_write_storage_object.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiWriteStorageObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\">Collection</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\">Key</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\">PermissionRead</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\">PermissionWrite</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\">Version</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">Nakama.IApiWriteStorageObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiWriteStorageObject Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_write_storage_object.html','','interface_nakama_1_1_i_api_write_storage_object-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiWriteStorageObject Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The object to store.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.IApiWriteStorageObject:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_api_write_storage_object.png\" usemap=\"#Nakama_2EIApiWriteStorageObject_map\" alt=\"\"/>\n  <map id=\"Nakama_2EIApiWriteStorageObject_map\" name=\"Nakama_2EIApiWriteStorageObject_map\">\n<area href=\"class_nakama_1_1_write_storage_object.html\" alt=\"Nakama.WriteStorageObject\" shape=\"rect\" coords=\"0,56,193,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:acb00e14d09ac57ee6244e42bb7e8a521\" id=\"r_acb00e14d09ac57ee6244e42bb7e8a521\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acb00e14d09ac57ee6244e42bb7e8a521\">Collection</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acb00e14d09ac57ee6244e42bb7e8a521\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The collection to store the object.  <br /></td></tr>\n<tr class=\"memitem:a3126c1e5831a1984900be2ad8b51f757\" id=\"r_a3126c1e5831a1984900be2ad8b51f757\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3126c1e5831a1984900be2ad8b51f757\">Key</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3126c1e5831a1984900be2ad8b51f757\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key for the object within the collection.  <br /></td></tr>\n<tr class=\"memitem:a89e035c6b6f1fff5e890c1124039cc14\" id=\"r_a89e035c6b6f1fff5e890c1124039cc14\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a89e035c6b6f1fff5e890c1124039cc14\">PermissionRead</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a89e035c6b6f1fff5e890c1124039cc14\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The read access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:a818dfc3d3c371095958a182635bd9fad\" id=\"r_a818dfc3d3c371095958a182635bd9fad\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a818dfc3d3c371095958a182635bd9fad\">PermissionWrite</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a818dfc3d3c371095958a182635bd9fad\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The write access permissions for the object.  <br /></td></tr>\n<tr class=\"memitem:aefddcaddc15b913e27fcebe9d655c5f5\" id=\"r_aefddcaddc15b913e27fcebe9d655c5f5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aefddcaddc15b913e27fcebe9d655c5f5\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aefddcaddc15b913e27fcebe9d655c5f5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The value of the object.  <br /></td></tr>\n<tr class=\"memitem:aa5c76e4c2e3d5a0b5e514553bed16068\" id=\"r_aa5c76e4c2e3d5a0b5e514553bed16068\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa5c76e4c2e3d5a0b5e514553bed16068\">Version</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa5c76e4c2e3d5a0b5e514553bed16068\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The version hash of the object to check. Possible values are: [\"\", \"*\", \"#hash#\"]. if-match and if-none-match.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The object to store. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"acb00e14d09ac57ee6244e42bb7e8a521\" name=\"acb00e14d09ac57ee6244e42bb7e8a521\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acb00e14d09ac57ee6244e42bb7e8a521\">&#9670;&#160;</a></span>Collection</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiWriteStorageObject.Collection</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The collection to store the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a3126c1e5831a1984900be2ad8b51f757\" name=\"a3126c1e5831a1984900be2ad8b51f757\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3126c1e5831a1984900be2ad8b51f757\">&#9670;&#160;</a></span>Key</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiWriteStorageObject.Key</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key for the object within the collection. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a89e035c6b6f1fff5e890c1124039cc14\" name=\"a89e035c6b6f1fff5e890c1124039cc14\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a89e035c6b6f1fff5e890c1124039cc14\">&#9670;&#160;</a></span>PermissionRead</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiWriteStorageObject.PermissionRead</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The read access permissions for the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"a818dfc3d3c371095958a182635bd9fad\" name=\"a818dfc3d3c371095958a182635bd9fad\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a818dfc3d3c371095958a182635bd9fad\">&#9670;&#160;</a></span>PermissionWrite</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IApiWriteStorageObject.PermissionWrite</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The write access permissions for the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"aefddcaddc15b913e27fcebe9d655c5f5\" name=\"aefddcaddc15b913e27fcebe9d655c5f5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aefddcaddc15b913e27fcebe9d655c5f5\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiWriteStorageObject.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The value of the object. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<a id=\"aa5c76e4c2e3d5a0b5e514553bed16068\" name=\"aa5c76e4c2e3d5a0b5e514553bed16068\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa5c76e4c2e3d5a0b5e514553bed16068\">&#9670;&#160;</a></span>Version</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IApiWriteStorageObject.Version</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The version hash of the object to check. Possible values are: [\"\", \"*\", \"#hash#\"]. if-match and if-none-match. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\">Nakama.WriteStorageObject</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_object.js",
    "content": "var interface_nakama_1_1_i_api_write_storage_object =\n[\n    [ \"Collection\", \"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\", null ],\n    [ \"Key\", \"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\", null ],\n    [ \"PermissionRead\", \"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\", null ],\n    [ \"PermissionWrite\", \"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\", null ],\n    [ \"Value\", \"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\", null ],\n    [ \"Version\", \"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_objects_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_write_storage_objects_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiWriteStorageObjectsRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">Nakama.IApiWriteStorageObjectsRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\">Objects</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">Nakama.IApiWriteStorageObjectsRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_objects_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IApiWriteStorageObjectsRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_api_write_storage_objects_request.html','','interface_nakama_1_1_i_api_write_storage_objects_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IApiWriteStorageObjectsRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Write objects to the storage engine.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a5ee63d82d0bd76b8159983642c7142e2\" id=\"r_a5ee63d82d0bd76b8159983642c7142e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5ee63d82d0bd76b8159983642c7142e2\">Objects</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5ee63d82d0bd76b8159983642c7142e2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The objects to store on the server.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Write objects to the storage engine. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a5ee63d82d0bd76b8159983642c7142e2\" name=\"a5ee63d82d0bd76b8159983642c7142e2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ee63d82d0bd76b8159983642c7142e2\">&#9670;&#160;</a></span>Objects</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a>&gt; Nakama.IApiWriteStorageObjectsRequest.Objects</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The objects to store on the server. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">IApiWriteStorageObjectsRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_api_write_storage_objects_request.js",
    "content": "var interface_nakama_1_1_i_api_write_storage_objects_request =\n[\n    [ \"Objects\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannel Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\">GroupId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\">Presences</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\">RoomName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\">Self</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\">UserIdOne</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\">UserIdTwo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">Nakama.IChannel</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IChannel Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel.html','','interface_nakama_1_1_i_channel-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannel Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A chat channel on the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a39fb9c483de665ac5ccd75617952dea5\" id=\"r_a39fb9c483de665ac5ccd75617952dea5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a39fb9c483de665ac5ccd75617952dea5\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a39fb9c483de665ac5ccd75617952dea5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The server-assigned channel ID.  <br /></td></tr>\n<tr class=\"memitem:a24d5000cdeddf45977f9a9c4e2c186db\" id=\"r_a24d5000cdeddf45977f9a9c4e2c186db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a24d5000cdeddf45977f9a9c4e2c186db\">Presences</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a24d5000cdeddf45977f9a9c4e2c186db\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The presences visible on the chat channel.  <br /></td></tr>\n<tr class=\"memitem:ad3b8547c0ca2c322236dc640e648410f\" id=\"r_ad3b8547c0ca2c322236dc640e648410f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad3b8547c0ca2c322236dc640e648410f\">Self</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad3b8547c0ca2c322236dc640e648410f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The presence of the current user. i.e. Your self.  <br /></td></tr>\n<tr class=\"memitem:a0a47216873656bccbae97ada995780fc\" id=\"r_a0a47216873656bccbae97ada995780fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0a47216873656bccbae97ada995780fc\">RoomName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0a47216873656bccbae97ada995780fc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the chat room, or an empty string if this message was not sent through a chat room.  <br /></td></tr>\n<tr class=\"memitem:a7a285328ca09f9521f495bfebc6e1312\" id=\"r_a7a285328ca09f9521f495bfebc6e1312\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7a285328ca09f9521f495bfebc6e1312\">GroupId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7a285328ca09f9521f495bfebc6e1312\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the group, or an empty string if this message was not sent through a group channel.  <br /></td></tr>\n<tr class=\"memitem:aaec45628d3ca0dbd873657fba3ce65f8\" id=\"r_aaec45628d3ca0dbd873657fba3ce65f8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaec45628d3ca0dbd873657fba3ce65f8\">UserIdOne</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aaec45628d3ca0dbd873657fba3ce65f8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:a5ab925c1def55a23abf66fce013f0bf8\" id=\"r_a5ab925c1def55a23abf66fce013f0bf8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5ab925c1def55a23abf66fce013f0bf8\">UserIdTwo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5ab925c1def55a23abf66fce013f0bf8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A chat channel on the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7a285328ca09f9521f495bfebc6e1312\" name=\"a7a285328ca09f9521f495bfebc6e1312\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7a285328ca09f9521f495bfebc6e1312\">&#9670;&#160;</a></span>GroupId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannel.GroupId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the group, or an empty string if this message was not sent through a group channel. </p>\n\n</div>\n</div>\n<a id=\"a39fb9c483de665ac5ccd75617952dea5\" name=\"a39fb9c483de665ac5ccd75617952dea5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a39fb9c483de665ac5ccd75617952dea5\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannel.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The server-assigned channel ID. </p>\n\n</div>\n</div>\n<a id=\"a24d5000cdeddf45977f9a9c4e2c186db\" name=\"a24d5000cdeddf45977f9a9c4e2c186db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a24d5000cdeddf45977f9a9c4e2c186db\">&#9670;&#160;</a></span>Presences</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IChannel.Presences</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The presences visible on the chat channel. </p>\n\n</div>\n</div>\n<a id=\"a0a47216873656bccbae97ada995780fc\" name=\"a0a47216873656bccbae97ada995780fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0a47216873656bccbae97ada995780fc\">&#9670;&#160;</a></span>RoomName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannel.RoomName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the chat room, or an empty string if this message was not sent through a chat room. </p>\n\n</div>\n</div>\n<a id=\"ad3b8547c0ca2c322236dc640e648410f\" name=\"ad3b8547c0ca2c322236dc640e648410f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad3b8547c0ca2c322236dc640e648410f\">&#9670;&#160;</a></span>Self</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IChannel.Self</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The presence of the current user. i.e. Your self. </p>\n\n</div>\n</div>\n<a id=\"aaec45628d3ca0dbd873657fba3ce65f8\" name=\"aaec45628d3ca0dbd873657fba3ce65f8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaec45628d3ca0dbd873657fba3ce65f8\">&#9670;&#160;</a></span>UserIdOne</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannel.UserIdOne</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the first DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"a5ab925c1def55a23abf66fce013f0bf8\" name=\"a5ab925c1def55a23abf66fce013f0bf8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ab925c1def55a23abf66fce013f0bf8\">&#9670;&#160;</a></span>UserIdTwo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannel.UserIdTwo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the second DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_channel_8cs.html\">IChannel.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel.js",
    "content": "var interface_nakama_1_1_i_channel =\n[\n    [ \"GroupId\", \"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\", null ],\n    [ \"Presences\", \"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\", null ],\n    [ \"RoomName\", \"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\", null ],\n    [ \"Self\", \"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\", null ],\n    [ \"UserIdOne\", \"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\", null ],\n    [ \"UserIdTwo\", \"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_message_ack-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel_message_ack.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannelMessageAck Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\">ChannelId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\">GroupId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\">MessageId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\">Persistent</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\">RoomName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\">UserIdOne</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\">UserIdTwo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">Nakama.IChannelMessageAck</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_message_ack.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IChannelMessageAck Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel_message_ack.html','','interface_nakama_1_1_i_channel_message_ack-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannelMessageAck Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An acknowledgement from the server when a chat message is delivered to a channel.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab36b2166bedb2f2351928c522625e98c\" id=\"r_ab36b2166bedb2f2351928c522625e98c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab36b2166bedb2f2351928c522625e98c\">ChannelId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab36b2166bedb2f2351928c522625e98c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The server-assigned channel ID.  <br /></td></tr>\n<tr class=\"memitem:a744bd46919f589756c68de87742d2d7f\" id=\"r_a744bd46919f589756c68de87742d2d7f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a744bd46919f589756c68de87742d2d7f\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a744bd46919f589756c68de87742d2d7f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user-defined code for the chat message.  <br /></td></tr>\n<tr class=\"memitem:a81d7672e04b8754dcf092e7da18a2029\" id=\"r_a81d7672e04b8754dcf092e7da18a2029\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a81d7672e04b8754dcf092e7da18a2029\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a81d7672e04b8754dcf092e7da18a2029\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the message was created.  <br /></td></tr>\n<tr class=\"memitem:a60f3a5535d86d01fc98faa1855416671\" id=\"r_a60f3a5535d86d01fc98faa1855416671\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60f3a5535d86d01fc98faa1855416671\">MessageId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a60f3a5535d86d01fc98faa1855416671\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A unique ID for the chat message.  <br /></td></tr>\n<tr class=\"memitem:a5f9c378b048f1385c56ac13c5ba0a2bd\" id=\"r_a5f9c378b048f1385c56ac13c5ba0a2bd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5f9c378b048f1385c56ac13c5ba0a2bd\">Persistent</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5f9c378b048f1385c56ac13c5ba0a2bd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the chat message has been stored in history.  <br /></td></tr>\n<tr class=\"memitem:a6fa47244793ad1dafc89693e5300e8b3\" id=\"r_a6fa47244793ad1dafc89693e5300e8b3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6fa47244793ad1dafc89693e5300e8b3\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6fa47244793ad1dafc89693e5300e8b3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX time when the message was updated.  <br /></td></tr>\n<tr class=\"memitem:a56bc2256e0ca3ad47b75db8768a66517\" id=\"r_a56bc2256e0ca3ad47b75db8768a66517\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a56bc2256e0ca3ad47b75db8768a66517\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a56bc2256e0ca3ad47b75db8768a66517\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the sender of the message.  <br /></td></tr>\n<tr class=\"memitem:a5227455826725648e96df53f9e6130aa\" id=\"r_a5227455826725648e96df53f9e6130aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5227455826725648e96df53f9e6130aa\">RoomName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5227455826725648e96df53f9e6130aa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the chat room, or an empty string if this message was not sent through a chat room.  <br /></td></tr>\n<tr class=\"memitem:a5db4380a1a4c44165c8bcc8e32eebcbf\" id=\"r_a5db4380a1a4c44165c8bcc8e32eebcbf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5db4380a1a4c44165c8bcc8e32eebcbf\">GroupId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5db4380a1a4c44165c8bcc8e32eebcbf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the group, or an empty string if this message was not sent through a group channel.  <br /></td></tr>\n<tr class=\"memitem:a38b5540111c8089d37403631f21e27b4\" id=\"r_a38b5540111c8089d37403631f21e27b4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a38b5540111c8089d37403631f21e27b4\">UserIdOne</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a38b5540111c8089d37403631f21e27b4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:a80b2ccd63418af2d2498d47e3bc815d1\" id=\"r_a80b2ccd63418af2d2498d47e3bc815d1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a80b2ccd63418af2d2498d47e3bc815d1\">UserIdTwo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a80b2ccd63418af2d2498d47e3bc815d1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An acknowledgement from the server when a chat message is delivered to a channel. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab36b2166bedb2f2351928c522625e98c\" name=\"ab36b2166bedb2f2351928c522625e98c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab36b2166bedb2f2351928c522625e98c\">&#9670;&#160;</a></span>ChannelId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.ChannelId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The server-assigned channel ID. </p>\n\n</div>\n</div>\n<a id=\"a744bd46919f589756c68de87742d2d7f\" name=\"a744bd46919f589756c68de87742d2d7f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a744bd46919f589756c68de87742d2d7f\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IChannelMessageAck.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A user-defined code for the chat message. </p>\n\n</div>\n</div>\n<a id=\"a81d7672e04b8754dcf092e7da18a2029\" name=\"a81d7672e04b8754dcf092e7da18a2029\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a81d7672e04b8754dcf092e7da18a2029\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the message was created. </p>\n\n</div>\n</div>\n<a id=\"a5db4380a1a4c44165c8bcc8e32eebcbf\" name=\"a5db4380a1a4c44165c8bcc8e32eebcbf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5db4380a1a4c44165c8bcc8e32eebcbf\">&#9670;&#160;</a></span>GroupId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.GroupId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the group, or an empty string if this message was not sent through a group channel. </p>\n\n</div>\n</div>\n<a id=\"a60f3a5535d86d01fc98faa1855416671\" name=\"a60f3a5535d86d01fc98faa1855416671\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60f3a5535d86d01fc98faa1855416671\">&#9670;&#160;</a></span>MessageId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.MessageId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A unique ID for the chat message. </p>\n\n</div>\n</div>\n<a id=\"a5f9c378b048f1385c56ac13c5ba0a2bd\" name=\"a5f9c378b048f1385c56ac13c5ba0a2bd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5f9c378b048f1385c56ac13c5ba0a2bd\">&#9670;&#160;</a></span>Persistent</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IChannelMessageAck.Persistent</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the chat message has been stored in history. </p>\n\n</div>\n</div>\n<a id=\"a5227455826725648e96df53f9e6130aa\" name=\"a5227455826725648e96df53f9e6130aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5227455826725648e96df53f9e6130aa\">&#9670;&#160;</a></span>RoomName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.RoomName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the chat room, or an empty string if this message was not sent through a chat room. </p>\n\n</div>\n</div>\n<a id=\"a6fa47244793ad1dafc89693e5300e8b3\" name=\"a6fa47244793ad1dafc89693e5300e8b3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6fa47244793ad1dafc89693e5300e8b3\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX time when the message was updated. </p>\n\n</div>\n</div>\n<a id=\"a38b5540111c8089d37403631f21e27b4\" name=\"a38b5540111c8089d37403631f21e27b4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a38b5540111c8089d37403631f21e27b4\">&#9670;&#160;</a></span>UserIdOne</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.UserIdOne</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the first DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"a80b2ccd63418af2d2498d47e3bc815d1\" name=\"a80b2ccd63418af2d2498d47e3bc815d1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a80b2ccd63418af2d2498d47e3bc815d1\">&#9670;&#160;</a></span>UserIdTwo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.UserIdTwo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the second DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"a56bc2256e0ca3ad47b75db8768a66517\" name=\"a56bc2256e0ca3ad47b75db8768a66517\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a56bc2256e0ca3ad47b75db8768a66517\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelMessageAck.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the sender of the message. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_channel_message_ack_8cs.html\">IChannelMessageAck.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_message_ack.js",
    "content": "var interface_nakama_1_1_i_channel_message_ack =\n[\n    [ \"ChannelId\", \"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\", null ],\n    [ \"Code\", \"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\", null ],\n    [ \"GroupId\", \"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\", null ],\n    [ \"MessageId\", \"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\", null ],\n    [ \"Persistent\", \"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\", null ],\n    [ \"RoomName\", \"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\", null ],\n    [ \"UpdateTime\", \"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\", null ],\n    [ \"UserIdOne\", \"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\", null ],\n    [ \"UserIdTwo\", \"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_presence_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel_presence_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannelPresenceEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\">ChannelId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\">GroupId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\">Joins</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\">Leaves</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\">RoomName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\">UserIdOne</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\">UserIdTwo</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">Nakama.IChannelPresenceEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_presence_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IChannelPresenceEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_channel_presence_event.html','','interface_nakama_1_1_i_channel_presence_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IChannelPresenceEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A batch of join and leave presences on a chat channel.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a996e95fc400397a4d2cbf1ee8da5dc29\" id=\"r_a996e95fc400397a4d2cbf1ee8da5dc29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a996e95fc400397a4d2cbf1ee8da5dc29\">ChannelId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a996e95fc400397a4d2cbf1ee8da5dc29\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique identifier of the chat channel.  <br /></td></tr>\n<tr class=\"memitem:a4c6bf34c8e899b37feea0a6ed5affb29\" id=\"r_a4c6bf34c8e899b37feea0a6ed5affb29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4c6bf34c8e899b37feea0a6ed5affb29\">Joins</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4c6bf34c8e899b37feea0a6ed5affb29\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of the users who joined the channel.  <br /></td></tr>\n<tr class=\"memitem:a25f9a3fb8301ae6085da103bfad01fc4\" id=\"r_a25f9a3fb8301ae6085da103bfad01fc4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a25f9a3fb8301ae6085da103bfad01fc4\">Leaves</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a25f9a3fb8301ae6085da103bfad01fc4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who left the channel.  <br /></td></tr>\n<tr class=\"memitem:ada1acc95b4a8614a040e08148ce20873\" id=\"r_ada1acc95b4a8614a040e08148ce20873\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ada1acc95b4a8614a040e08148ce20873\">RoomName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ada1acc95b4a8614a040e08148ce20873\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the chat room, or an empty string if this message was not sent through a chat room.  <br /></td></tr>\n<tr class=\"memitem:ac2c7e729b0c9f75fc633eed8b9cfe000\" id=\"r_ac2c7e729b0c9f75fc633eed8b9cfe000\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac2c7e729b0c9f75fc633eed8b9cfe000\">GroupId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac2c7e729b0c9f75fc633eed8b9cfe000\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the group, or an empty string if this message was not sent through a group channel.  <br /></td></tr>\n<tr class=\"memitem:a03e876ef3172ebb954ec55628dd4ddbd\" id=\"r_a03e876ef3172ebb954ec55628dd4ddbd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a03e876ef3172ebb954ec55628dd4ddbd\">UserIdOne</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a03e876ef3172ebb954ec55628dd4ddbd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n<tr class=\"memitem:ad0e554d3f8037a8e03f0572d0f21422e\" id=\"r_ad0e554d3f8037a8e03f0572d0f21422e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad0e554d3f8037a8e03f0572d0f21422e\">UserIdTwo</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad0e554d3f8037a8e03f0572d0f21422e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A batch of join and leave presences on a chat channel. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a996e95fc400397a4d2cbf1ee8da5dc29\" name=\"a996e95fc400397a4d2cbf1ee8da5dc29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a996e95fc400397a4d2cbf1ee8da5dc29\">&#9670;&#160;</a></span>ChannelId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelPresenceEvent.ChannelId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique identifier of the chat channel. </p>\n\n</div>\n</div>\n<a id=\"ac2c7e729b0c9f75fc633eed8b9cfe000\" name=\"ac2c7e729b0c9f75fc633eed8b9cfe000\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac2c7e729b0c9f75fc633eed8b9cfe000\">&#9670;&#160;</a></span>GroupId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelPresenceEvent.GroupId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the group, or an empty string if this message was not sent through a group channel. </p>\n\n</div>\n</div>\n<a id=\"a4c6bf34c8e899b37feea0a6ed5affb29\" name=\"a4c6bf34c8e899b37feea0a6ed5affb29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4c6bf34c8e899b37feea0a6ed5affb29\">&#9670;&#160;</a></span>Joins</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IChannelPresenceEvent.Joins</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of the users who joined the channel. </p>\n\n</div>\n</div>\n<a id=\"a25f9a3fb8301ae6085da103bfad01fc4\" name=\"a25f9a3fb8301ae6085da103bfad01fc4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a25f9a3fb8301ae6085da103bfad01fc4\">&#9670;&#160;</a></span>Leaves</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IChannelPresenceEvent.Leaves</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who left the channel. </p>\n\n</div>\n</div>\n<a id=\"ada1acc95b4a8614a040e08148ce20873\" name=\"ada1acc95b4a8614a040e08148ce20873\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ada1acc95b4a8614a040e08148ce20873\">&#9670;&#160;</a></span>RoomName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelPresenceEvent.RoomName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the chat room, or an empty string if this message was not sent through a chat room. </p>\n\n</div>\n</div>\n<a id=\"a03e876ef3172ebb954ec55628dd4ddbd\" name=\"a03e876ef3172ebb954ec55628dd4ddbd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a03e876ef3172ebb954ec55628dd4ddbd\">&#9670;&#160;</a></span>UserIdOne</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelPresenceEvent.UserIdOne</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the first DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<a id=\"ad0e554d3f8037a8e03f0572d0f21422e\" name=\"ad0e554d3f8037a8e03f0572d0f21422e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0e554d3f8037a8e03f0572d0f21422e\">&#9670;&#160;</a></span>UserIdTwo</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IChannelPresenceEvent.UserIdTwo</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the second DM user, or an empty string if this message was not sent through a DM chat. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_channel_presence_event_8cs.html\">IChannelPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_channel_presence_event.js",
    "content": "var interface_nakama_1_1_i_channel_presence_event =\n[\n    [ \"ChannelId\", \"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\", null ],\n    [ \"GroupId\", \"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\", null ],\n    [ \"Joins\", \"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\", null ],\n    [ \"Leaves\", \"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\", null ],\n    [ \"RoomName\", \"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\", null ],\n    [ \"UserIdOne\", \"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\", null ],\n    [ \"UserIdTwo\", \"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_client-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_client.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IClient Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\">AddFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, string metadata=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\">AddGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\">AuthenticateAppleAsync</a>(string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\">AuthenticateCustomAsync</a>(string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">AuthenticateDeviceAsync</a>(string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\">AuthenticateEmailAsync</a>(string email, string password, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\">AuthenticateFacebookAsync</a>(string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\">AuthenticateGameCenterAsync</a>(string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\">AuthenticateGoogleAsync</a>(string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\">AuthenticateSteamAsync</a>(string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\">AutoRefreshSession</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\">BanGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\">BlockFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\">CreateGroupAsync</a>(ISession session, string name, string description=&quot;&quot;, string avatarUrl=null, string langTag=null, bool open=true, int maxCount=100, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\">DeleteAccountAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\">DeleteFriendsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\">DeleteGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\">DeleteLeaderboardRecordAsync</a>(ISession session, string leaderboardId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\">DeleteNotificationsAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\">DeleteStorageObjectsAsync</a>(ISession session, StorageObjectId[] ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\">DeleteTournamentRecordAsync</a>(ISession session, string tournamentId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\">DemoteGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; userIds, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\">EventAsync</a>(ISession session, string name, Dictionary&lt; string, string &gt; properties, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\">GetAccountAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">GetSubscriptionAsync</a>(ISession session, string productId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\">GetUsersAsync</a>(ISession session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, IEnumerable&lt; string &gt; facebookIds=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\">GlobalRetryConfiguration</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\">Host</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\">ImportFacebookFriendsAsync</a>(ISession session, string token, bool? reset=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\">ImportSteamFriendsAsync</a>(ISession session, string token, bool? reset=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\">JoinGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\">JoinTournamentAsync</a>(ISession session, string tournamentId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\">KickGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\">LeaveGroupAsync</a>(ISession session, string groupId, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\">LinkAppleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\">LinkCustomAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\">LinkDeviceAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\">LinkEmailAsync</a>(ISession session, string email, string password, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\">LinkFacebookAsync</a>(ISession session, string token, bool? import=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\">LinkGameCenterAsync</a>(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\">LinkGoogleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\">LinkSteamAsync</a>(ISession session, string token, bool import, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\">ListChannelMessagesAsync</a>(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\">ListChannelMessagesAsync</a>(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\">ListFriendsAsync</a>(ISession session, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\">ListGroupsAsync</a>(ISession session, string name=null, int limit=1, string cursor=null, string langTag=null, int? members=null, bool? open=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\">ListGroupUsersAsync</a>(ISession session, string groupId, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\">ListLeaderboardRecordsAroundOwnerAsync</a>(ISession session, string leaderboardId, string ownerId, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\">ListLeaderboardRecordsAsync</a>(ISession session, string leaderboardId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\">ListMatchesAsync</a>(ISession session, int min, int max, int limit, bool authoritative, string label, string query, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\">ListNotificationsAsync</a>(ISession session, int limit=1, string cacheableCursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\">ListPartiesAsync</a>(ISession session, int limit, bool? open, string query=null, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\">ListStorageObjects</a>(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\">ListStorageObjectsAsync</a>(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\">ListSubscriptionsAsync</a>(ISession session, int limit, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\">ListTournamentRecordsAroundOwnerAsync</a>(ISession session, string tournamentId, string ownerId, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\">ListTournamentRecordsAsync</a>(ISession session, string tournamentId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\">ListTournamentsAsync</a>(ISession session, int categoryStart, int categoryEnd, int? startTime=null, int? endTime=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\">ListUserGroupsAsync</a>(ISession session, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\">ListUserGroupsAsync</a>(ISession session, string userId, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">ListUsersStorageObjectsAsync</a>(ISession session, string collection, string userId, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\">Port</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\">PromoteGroupUsersAsync</a>(ISession session, string groupId, IEnumerable&lt; string &gt; ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\">ReadStorageObjectsAsync</a>(ISession session, IApiReadStorageObjectId[] ids, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\">ReceivedSessionUpdated</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\">RpcAsync</a>(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\">RpcAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\">RpcAsync</a>(string httpKey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\">RpcAsync</a>(string httpKey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\">Scheme</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\">ServerKey</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\">SessionLogoutAsync</a>(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\">SessionLogoutAsync</a>(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\">SessionRefreshAsync</a>(ISession session, Dictionary&lt; string, string &gt; vars=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\">Timeout</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\">UnlinkAppleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\">UnlinkCustomAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\">UnlinkDeviceAsync</a>(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\">UnlinkEmailAsync</a>(ISession session, string email, string password, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\">UnlinkFacebookAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\">UnlinkGameCenterAsync</a>(ISession session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\">UnlinkGoogleAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\">UnlinkSteamAsync</a>(ISession session, string token, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\">UpdateAccountAsync</a>(ISession session, string username, string displayName=null, string avatarUrl=null, string langTag=null, string location=null, string timezone=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\">UpdateGroupAsync</a>(ISession session, string groupId, string name, bool open, string description=null, string avatarUrl=null, string langTag=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\">ValidatePurchaseAppleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\">ValidatePurchaseFacebookInstantAsync</a>(ISession session, string signedRequest, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\">ValidatePurchaseGoogleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\">ValidatePurchaseHuaweiAsync</a>(ISession session, string receipt, string signature, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\">ValidateSubscriptionAppleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\">ValidateSubscriptionGoogleAsync</a>(ISession session, string receipt, bool persist=true, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\">WriteLeaderboardRecordAsync</a>(ISession session, string leaderboardId, long score, long subScore=0L, string metadata=null, ApiOperator apiOperator=ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\">WriteStorageObjectsAsync</a>(ISession session, IApiWriteStorageObject[] objects, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\">WriteTournamentRecordAsync</a>(ISession session, string tournamentId, long score, long subScore=0L, string metadata=null, ApiOperator apiOperator=ApiOperator.NO_OVERRIDE, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">Nakama.IClient</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_client.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IClient Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_client.html','','interface_nakama_1_1_i_client-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IClient Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.IClient:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_client.png\" usemap=\"#Nakama_2EIClient_map\" alt=\"\"/>\n  <map id=\"Nakama_2EIClient_map\" name=\"Nakama_2EIClient_map\">\n<area href=\"class_nakama_1_1_client.html\" alt=\"Nakama.Client\" shape=\"rect\" coords=\"0,56,96,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aae3144e0e3d8ea9a2c6d5df25b647e23\" id=\"r_aae3144e0e3d8ea9a2c6d5df25b647e23\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aae3144e0e3d8ea9a2c6d5df25b647e23\">AddFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, string metadata=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aae3144e0e3d8ea9a2c6d5df25b647e23\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add one or more friends by id or username.  <br /></td></tr>\n<tr class=\"memitem:abec54a30d216a009e04cb7df410e15f3\" id=\"r_abec54a30d216a009e04cb7df410e15f3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abec54a30d216a009e04cb7df410e15f3\">AddGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:abec54a30d216a009e04cb7df410e15f3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add one or more users to the group.  <br /></td></tr>\n<tr class=\"memitem:af56a59b69e6416645041852198bbc220\" id=\"r_af56a59b69e6416645041852198bbc220\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af56a59b69e6416645041852198bbc220\">AuthenticateAppleAsync</a> (string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af56a59b69e6416645041852198bbc220\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with an Apple ID against the server.  <br /></td></tr>\n<tr class=\"memitem:a1081470b3d1dc65a43e57e158118dde0\" id=\"r_a1081470b3d1dc65a43e57e158118dde0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1081470b3d1dc65a43e57e158118dde0\">AuthenticateCustomAsync</a> (string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1081470b3d1dc65a43e57e158118dde0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a custom id.  <br /></td></tr>\n<tr class=\"memitem:ad9a6d4b73bc4ac965a7d913fcc7d5ee3\" id=\"r_ad9a6d4b73bc4ac965a7d913fcc7d5ee3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">AuthenticateDeviceAsync</a> (string id, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad9a6d4b73bc4ac965a7d913fcc7d5ee3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a device id.  <br /></td></tr>\n<tr class=\"memitem:a1b77958ff52a879a27a5bfd0b97dfa6b\" id=\"r_a1b77958ff52a879a27a5bfd0b97dfa6b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b77958ff52a879a27a5bfd0b97dfa6b\">AuthenticateEmailAsync</a> (string email, string password, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1b77958ff52a879a27a5bfd0b97dfa6b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with an email and password.  <br /></td></tr>\n<tr class=\"memitem:a94137b0b4dd44bae5fcf4d112d4cab4d\" id=\"r_a94137b0b4dd44bae5fcf4d112d4cab4d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a94137b0b4dd44bae5fcf4d112d4cab4d\">AuthenticateFacebookAsync</a> (string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a94137b0b4dd44bae5fcf4d112d4cab4d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Facebook auth token.  <br /></td></tr>\n<tr class=\"memitem:ab1b035116f1e0a1cf22d2f5fd8ed9233\" id=\"r_ab1b035116f1e0a1cf22d2f5fd8ed9233\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab1b035116f1e0a1cf22d2f5fd8ed9233\">AuthenticateGameCenterAsync</a> (string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ab1b035116f1e0a1cf22d2f5fd8ed9233\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with Apple Game Center.  <br /></td></tr>\n<tr class=\"memitem:aa7d5ea6ff35652864256236b6a298e16\" id=\"r_aa7d5ea6ff35652864256236b6a298e16\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa7d5ea6ff35652864256236b6a298e16\">AuthenticateGoogleAsync</a> (string token, string username=null, bool create=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aa7d5ea6ff35652864256236b6a298e16\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Google auth token.  <br /></td></tr>\n<tr class=\"memitem:a2f1dee9bd5c5761d55e5ab5a4d12690c\" id=\"r_a2f1dee9bd5c5761d55e5ab5a4d12690c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2f1dee9bd5c5761d55e5ab5a4d12690c\">AuthenticateSteamAsync</a> (string token, string username=null, bool create=true, bool import=true, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2f1dee9bd5c5761d55e5ab5a4d12690c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a user with a Steam auth token.  <br /></td></tr>\n<tr class=\"memitem:ab22184136c797808a2aebe53100804e2\" id=\"r_ab22184136c797808a2aebe53100804e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab22184136c797808a2aebe53100804e2\">BanGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ab22184136c797808a2aebe53100804e2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ban a set of users from a group.  <br /></td></tr>\n<tr class=\"memitem:a625ec426d7062f4c118f3f014dd6e378\" id=\"r_a625ec426d7062f4c118f3f014dd6e378\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a625ec426d7062f4c118f3f014dd6e378\">BlockFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a625ec426d7062f4c118f3f014dd6e378\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Block one or more friends by id or username.  <br /></td></tr>\n<tr class=\"memitem:aae0252ef30e7b6f9a1e2dc518f7478ee\" id=\"r_aae0252ef30e7b6f9a1e2dc518f7478ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aae0252ef30e7b6f9a1e2dc518f7478ee\">CreateGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name, string description=&quot;&quot;, string avatarUrl=null, string langTag=null, bool open=true, int maxCount=100, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aae0252ef30e7b6f9a1e2dc518f7478ee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a group.  <br /></td></tr>\n<tr class=\"memitem:acc6d8f02d597837cf8e891a9016be613\" id=\"r_acc6d8f02d597837cf8e891a9016be613\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc6d8f02d597837cf8e891a9016be613\">DeleteAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:acc6d8f02d597837cf8e891a9016be613\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the current user's account. Note that this will invalidate your session, requiring you to reauthenticate.  <br /></td></tr>\n<tr class=\"memitem:a6c9418726e8c74b0cefff24bccf335e1\" id=\"r_a6c9418726e8c74b0cefff24bccf335e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6c9418726e8c74b0cefff24bccf335e1\">DeleteFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6c9418726e8c74b0cefff24bccf335e1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one more or users by id or username from friends.  <br /></td></tr>\n<tr class=\"memitem:a90a221604c5aee514bae83bfce921005\" id=\"r_a90a221604c5aee514bae83bfce921005\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a90a221604c5aee514bae83bfce921005\">DeleteGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a90a221604c5aee514bae83bfce921005\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a group by id.  <br /></td></tr>\n<tr class=\"memitem:ae50039a13b1b5d75613030d130f9d5e3\" id=\"r_ae50039a13b1b5d75613030d130f9d5e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae50039a13b1b5d75613030d130f9d5e3\">DeleteLeaderboardRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae50039a13b1b5d75613030d130f9d5e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a leaderboard record.  <br /></td></tr>\n<tr class=\"memitem:adab62219d9b6f091995738a8746b8bcb\" id=\"r_adab62219d9b6f091995738a8746b8bcb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adab62219d9b6f091995738a8746b8bcb\">DeleteNotificationsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:adab62219d9b6f091995738a8746b8bcb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one or more notifications by id.  <br /></td></tr>\n<tr class=\"memitem:a359f19ae1aad413e47565b355380b63a\" id=\"r_a359f19ae1aad413e47565b355380b63a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a359f19ae1aad413e47565b355380b63a\">DeleteStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a>[] ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a359f19ae1aad413e47565b355380b63a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete one or more storage objects.  <br /></td></tr>\n<tr class=\"memitem:a071b39c59ef92a84774e06dc102a5fe8\" id=\"r_a071b39c59ef92a84774e06dc102a5fe8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a071b39c59ef92a84774e06dc102a5fe8\">DeleteTournamentRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a071b39c59ef92a84774e06dc102a5fe8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the user's tournament record.  <br /></td></tr>\n<tr class=\"memitem:a134eedfe28270dc3086b490fd16c5efb\" id=\"r_a134eedfe28270dc3086b490fd16c5efb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a134eedfe28270dc3086b490fd16c5efb\">DemoteGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; userIds, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a134eedfe28270dc3086b490fd16c5efb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Demote a set of users in a group to the next role down. </p><dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">groupId</td><td>The group to demote users in.</td></tr>\n    <tr><td class=\"paramname\">userIds</td><td>The users to demote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n <br /></td></tr>\n<tr class=\"memitem:a5a255470f06a9004673ba8fc6f8af682\" id=\"r_a5a255470f06a9004673ba8fc6f8af682\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5a255470f06a9004673ba8fc6f8af682\">EventAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name, Dictionary&lt; string, string &gt; properties, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a5a255470f06a9004673ba8fc6f8af682\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Submit an event for processing in the server's registered runtime custom events handler.  <br /></td></tr>\n<tr class=\"memitem:a291886d28a053ef9db0d231b1f74140e\" id=\"r_a291886d28a053ef9db0d231b1f74140e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a291886d28a053ef9db0d231b1f74140e\">GetAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a291886d28a053ef9db0d231b1f74140e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\" id=\"r_a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">GetSubscriptionAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string productId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get the subscription represented by the provided product id.  <br /></td></tr>\n<tr class=\"memitem:a8b4075bc49ee57670e94a56557be05d2\" id=\"r_a8b4075bc49ee57670e94a56557be05d2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8b4075bc49ee57670e94a56557be05d2\">GetUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; ids, IEnumerable&lt; string &gt; usernames=null, IEnumerable&lt; string &gt; facebookIds=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8b4075bc49ee57670e94a56557be05d2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch one or more users by id, usernames, and Facebook ids.  <br /></td></tr>\n<tr class=\"memitem:ad63c0cfb18480592c8eff4583cc16233\" id=\"r_ad63c0cfb18480592c8eff4583cc16233\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad63c0cfb18480592c8eff4583cc16233\">ImportFacebookFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? reset=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ad63c0cfb18480592c8eff4583cc16233\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Import Facebook friends and add them to the user's account.  <br /></td></tr>\n<tr class=\"memitem:a8ff7dfd40f14d3161d7fc4426e078214\" id=\"r_a8ff7dfd40f14d3161d7fc4426e078214\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8ff7dfd40f14d3161d7fc4426e078214\">ImportSteamFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? reset=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8ff7dfd40f14d3161d7fc4426e078214\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Import Steam friends and add them to the user's account.  <br /></td></tr>\n<tr class=\"memitem:a6662dc402c9867c647ea300eae380bc0\" id=\"r_a6662dc402c9867c647ea300eae380bc0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6662dc402c9867c647ea300eae380bc0\">JoinGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6662dc402c9867c647ea300eae380bc0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a group if it has open membership or request to join it.  <br /></td></tr>\n<tr class=\"memitem:a8520e2e99a83f3cac309f2a0354c2e65\" id=\"r_a8520e2e99a83f3cac309f2a0354c2e65\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8520e2e99a83f3cac309f2a0354c2e65\">JoinTournamentAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8520e2e99a83f3cac309f2a0354c2e65\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a tournament by ID.  <br /></td></tr>\n<tr class=\"memitem:ae1643a627d5b2733349b2a3eb8811829\" id=\"r_ae1643a627d5b2733349b2a3eb8811829\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae1643a627d5b2733349b2a3eb8811829\">KickGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae1643a627d5b2733349b2a3eb8811829\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick one or more users from the group.  <br /></td></tr>\n<tr class=\"memitem:abe13990afd23fbf8257ff448970e1bfa\" id=\"r_abe13990afd23fbf8257ff448970e1bfa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abe13990afd23fbf8257ff448970e1bfa\">LeaveGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:abe13990afd23fbf8257ff448970e1bfa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a group by ID.  <br /></td></tr>\n<tr class=\"memitem:aed84d3ba843ee53c3fc62bfac3d56aef\" id=\"r_aed84d3ba843ee53c3fc62bfac3d56aef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aed84d3ba843ee53c3fc62bfac3d56aef\">LinkAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aed84d3ba843ee53c3fc62bfac3d56aef\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link an Apple ID to the social profiles on the current user's account.  <br /></td></tr>\n<tr class=\"memitem:ab18171e22bdc5d997ff5d87a206fbc18\" id=\"r_ab18171e22bdc5d997ff5d87a206fbc18\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab18171e22bdc5d997ff5d87a206fbc18\">LinkCustomAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ab18171e22bdc5d997ff5d87a206fbc18\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a custom ID to the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:accadcf9970bbc108cae1eaa386b2ad0c\" id=\"r_accadcf9970bbc108cae1eaa386b2ad0c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#accadcf9970bbc108cae1eaa386b2ad0c\">LinkDeviceAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:accadcf9970bbc108cae1eaa386b2ad0c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a device ID to the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:ae6bd9267c215b0df2246862d566c6d63\" id=\"r_ae6bd9267c215b0df2246862d566c6d63\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae6bd9267c215b0df2246862d566c6d63\">LinkEmailAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string email, string password, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ae6bd9267c215b0df2246862d566c6d63\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link an email with password to the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a68926218392683fb7112bf26d7b1814c\" id=\"r_a68926218392683fb7112bf26d7b1814c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a68926218392683fb7112bf26d7b1814c\">LinkFacebookAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool? import=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a68926218392683fb7112bf26d7b1814c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Facebook profile to a user account.  <br /></td></tr>\n<tr class=\"memitem:a15277cc6c181d77784a87da9383df7e4\" id=\"r_a15277cc6c181d77784a87da9383df7e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a15277cc6c181d77784a87da9383df7e4\">LinkGameCenterAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a15277cc6c181d77784a87da9383df7e4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Game Center profile to a user account.  <br /></td></tr>\n<tr class=\"memitem:a3fa471a46116248041a080016ad181cf\" id=\"r_a3fa471a46116248041a080016ad181cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3fa471a46116248041a080016ad181cf\">LinkGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3fa471a46116248041a080016ad181cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Google profile to a user account.  <br /></td></tr>\n<tr class=\"memitem:aaa180e86df389caf7cc42d82760aabf0\" id=\"r_aaa180e86df389caf7cc42d82760aabf0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaa180e86df389caf7cc42d82760aabf0\">LinkSteamAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, bool import, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aaa180e86df389caf7cc42d82760aabf0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link a Steam profile to a user account.  <br /></td></tr>\n<tr class=\"memitem:ac7cad85806c3824a967959455d828440\" id=\"r_ac7cad85806c3824a967959455d828440\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac7cad85806c3824a967959455d828440\">ListChannelMessagesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, int limit=1, bool forward=true, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac7cad85806c3824a967959455d828440\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List messages from a chat channel.  <br /></td></tr>\n<tr class=\"memitem:a0fd095e04016f75de9d589891a1518ac\" id=\"r_a0fd095e04016f75de9d589891a1518ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0fd095e04016f75de9d589891a1518ac\">ListChannelMessagesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string channelId, int limit=1, bool forward=true, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a0fd095e04016f75de9d589891a1518ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List messages from a chat channel.  <br /></td></tr>\n<tr class=\"memitem:af4b8829ce42c75274ab62e4692b748a8\" id=\"r_af4b8829ce42c75274ab62e4692b748a8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4b8829ce42c75274ab62e4692b748a8\">ListFriendsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int? state=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af4b8829ce42c75274ab62e4692b748a8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of friends of the current user.  <br /></td></tr>\n<tr class=\"memitem:ac77e1bbf873d728d622b627943e64351\" id=\"r_ac77e1bbf873d728d622b627943e64351\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac77e1bbf873d728d622b627943e64351\">ListGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, int? state=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac77e1bbf873d728d622b627943e64351\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List all users part of the group.  <br /></td></tr>\n<tr class=\"memitem:a93b462ed1236ba5839cdb811b19524bc\" id=\"r_a93b462ed1236ba5839cdb811b19524bc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a93b462ed1236ba5839cdb811b19524bc\">ListGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string name=null, int limit=1, string cursor=null, string langTag=null, int? members=null, bool? open=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a93b462ed1236ba5839cdb811b19524bc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List groups on the server.  <br /></td></tr>\n<tr class=\"memitem:a90b33da885f5fee1267420a0acbc1e87\" id=\"r_a90b33da885f5fee1267420a0acbc1e87\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a90b33da885f5fee1267420a0acbc1e87\">ListLeaderboardRecordsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a90b33da885f5fee1267420a0acbc1e87\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List records from a leaderboard.  <br /></td></tr>\n<tr class=\"memitem:a67141bad68b73fdee3e99d6b1564c7b8\" id=\"r_a67141bad68b73fdee3e99d6b1564c7b8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a67141bad68b73fdee3e99d6b1564c7b8\">ListLeaderboardRecordsAroundOwnerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, string ownerId, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a67141bad68b73fdee3e99d6b1564c7b8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List leaderboard records that belong to a user.  <br /></td></tr>\n<tr class=\"memitem:af52b743a4d334b23a43fad156f0eb54c\" id=\"r_af52b743a4d334b23a43fad156f0eb54c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af52b743a4d334b23a43fad156f0eb54c\">ListMatchesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int min, int max, int limit, bool authoritative, string label, string query, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af52b743a4d334b23a43fad156f0eb54c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Fetch a list of matches active on the server.  <br /></td></tr>\n<tr class=\"memitem:a9443bb244b7a51c6a493900822c654f1\" id=\"r_a9443bb244b7a51c6a493900822c654f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9443bb244b7a51c6a493900822c654f1\">ListNotificationsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit=1, string cacheableCursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a9443bb244b7a51c6a493900822c654f1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List notifications for the user with an optional cursor.  <br /></td></tr>\n<tr class=\"memitem:a0dae35b8820b90e23303cdb58336dddc\" id=\"r_a0dae35b8820b90e23303cdb58336dddc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0dae35b8820b90e23303cdb58336dddc\">ListStorageObjects</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memitem:afeec7a75562cfc1c9f51d35095580046\" id=\"r_afeec7a75562cfc1c9f51d35095580046\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afeec7a75562cfc1c9f51d35095580046\">ListStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:afeec7a75562cfc1c9f51d35095580046\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List storage objects in a collection which have public read access.  <br /></td></tr>\n<tr class=\"memitem:a3e2cf89415aebbfdecb0f7015b37ba37\" id=\"r_a3e2cf89415aebbfdecb0f7015b37ba37\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3e2cf89415aebbfdecb0f7015b37ba37\">ListSubscriptionsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3e2cf89415aebbfdecb0f7015b37ba37\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List the user's subscriptions.  <br /></td></tr>\n<tr class=\"memitem:a2b6310aeccea818af3fe8b3dcae95ec3\" id=\"r_a2b6310aeccea818af3fe8b3dcae95ec3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2b6310aeccea818af3fe8b3dcae95ec3\">ListTournamentRecordsAroundOwnerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, string ownerId, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2b6310aeccea818af3fe8b3dcae95ec3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List tournament records around the owner.  <br /></td></tr>\n<tr class=\"memitem:ac4a420dab57716222bbb8151700b1cdc\" id=\"r_ac4a420dab57716222bbb8151700b1cdc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac4a420dab57716222bbb8151700b1cdc\">ListTournamentRecordsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, IEnumerable&lt; string &gt; ownerIds=null, long? expiry=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac4a420dab57716222bbb8151700b1cdc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List records from a tournament.  <br /></td></tr>\n<tr class=\"memitem:a43e7575784efc55785124576651ac617\" id=\"r_a43e7575784efc55785124576651ac617\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a43e7575784efc55785124576651ac617\">ListTournamentsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int categoryStart, int categoryEnd, int? startTime=null, int? endTime=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a43e7575784efc55785124576651ac617\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List current or upcoming tournaments.  <br /></td></tr>\n<tr class=\"memitem:a20b9a6e164506988f758a00d0dd68efe\" id=\"r_a20b9a6e164506988f758a00d0dd68efe\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a20b9a6e164506988f758a00d0dd68efe\">ListUserGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int? state=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a20b9a6e164506988f758a00d0dd68efe\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of groups the current user is a member of.  <br /></td></tr>\n<tr class=\"memitem:aceddfd721720890ee6de3d4c67d699f6\" id=\"r_aceddfd721720890ee6de3d4c67d699f6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aceddfd721720890ee6de3d4c67d699f6\">ListUserGroupsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string userId, int? state=null, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aceddfd721720890ee6de3d4c67d699f6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List groups a user is a member of.  <br /></td></tr>\n<tr class=\"memitem:aeb5b5a9f8920ee2e287fc15e6dbae5d9\" id=\"r_aeb5b5a9f8920ee2e287fc15e6dbae5d9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">ListUsersStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string collection, string userId, int limit=1, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aeb5b5a9f8920ee2e287fc15e6dbae5d9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List storage objects in a collection which belong to a specific user and have public read access.  <br /></td></tr>\n<tr class=\"memitem:a34a46495479d8a2c38ebcfe0dfe77f8b\" id=\"r_a34a46495479d8a2c38ebcfe0dfe77f8b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a34a46495479d8a2c38ebcfe0dfe77f8b\">ListPartiesAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, int limit, bool? open, string query=null, string cursor=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a34a46495479d8a2c38ebcfe0dfe77f8b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List advertised parties and optionally filter them by label.  <br /></td></tr>\n<tr class=\"memitem:a6f9bf7b5dc74dfab741e7aadfba89e4b\" id=\"r_a6f9bf7b5dc74dfab741e7aadfba89e4b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6f9bf7b5dc74dfab741e7aadfba89e4b\">PromoteGroupUsersAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, IEnumerable&lt; string &gt; ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6f9bf7b5dc74dfab741e7aadfba89e4b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote one or more users in the group.  <br /></td></tr>\n<tr class=\"memitem:a1b2f0ed3a7a73e8263d98036d53817fc\" id=\"r_a1b2f0ed3a7a73e8263d98036d53817fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b2f0ed3a7a73e8263d98036d53817fc\">ReadStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a>[] ids, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1b2f0ed3a7a73e8263d98036d53817fc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Read one or more objects from the storage engine.  <br /></td></tr>\n<tr class=\"memitem:a29b2534c256578fc1868d488e8f553f8\" id=\"r_a29b2534c256578fc1868d488e8f553f8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29b2534c256578fc1868d488e8f553f8\">RpcAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, string payload, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a29b2534c256578fc1868d488e8f553f8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function with an input payload on the server.  <br /></td></tr>\n<tr class=\"memitem:a3b15daa0defb16913157e3fed94b1aab\" id=\"r_a3b15daa0defb16913157e3fed94b1aab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3b15daa0defb16913157e3fed94b1aab\">RpcAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3b15daa0defb16913157e3fed94b1aab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server.  <br /></td></tr>\n<tr class=\"memitem:a9674590588d453c43bdd810afa430538\" id=\"r_a9674590588d453c43bdd810afa430538\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9674590588d453c43bdd810afa430538\">RpcAsync</a> (string httpKey, string id, string payload, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a9674590588d453c43bdd810afa430538\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server without a session.  <br /></td></tr>\n<tr class=\"memitem:a2678da1ed1dadda85f5d8e76ddbe2a0a\" id=\"r_a2678da1ed1dadda85f5d8e76ddbe2a0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2678da1ed1dadda85f5d8e76ddbe2a0a\">RpcAsync</a> (string httpKey, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2678da1ed1dadda85f5d8e76ddbe2a0a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute a function on the server without a session.  <br /></td></tr>\n<tr class=\"memitem:ac0bf64fd0de7fe6a73a737b5ef514d93\" id=\"r_ac0bf64fd0de7fe6a73a737b5ef514d93\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0bf64fd0de7fe6a73a737b5ef514d93\">SessionLogoutAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ac0bf64fd0de7fe6a73a737b5ef514d93\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session which invalidates the authorization and refresh token.  <br /></td></tr>\n<tr class=\"memitem:a6c53fa09b45cde7987ca6e3dc1f877bc\" id=\"r_a6c53fa09b45cde7987ca6e3dc1f877bc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6c53fa09b45cde7987ca6e3dc1f877bc\">SessionLogoutAsync</a> (string authToken, string refreshToken, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a6c53fa09b45cde7987ca6e3dc1f877bc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session which optionally invalidates the authorization and/or refresh tokens.  <br /></td></tr>\n<tr class=\"memitem:af75a6a3aceaddf452fb714e08b0d3b0b\" id=\"r_af75a6a3aceaddf452fb714e08b0d3b0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af75a6a3aceaddf452fb714e08b0d3b0b\">SessionRefreshAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, Dictionary&lt; string, string &gt; vars=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:af75a6a3aceaddf452fb714e08b0d3b0b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token.  <br /></td></tr>\n<tr class=\"memitem:a4ba0c6637b9685eb0474352de1797a2e\" id=\"r_a4ba0c6637b9685eb0474352de1797a2e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4ba0c6637b9685eb0474352de1797a2e\">UnlinkAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a4ba0c6637b9685eb0474352de1797a2e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the Apple ID from the social profiles on the current user's account.  <br /></td></tr>\n<tr class=\"memitem:a2c4af0c1a411fff04f6f68427d9c82ae\" id=\"r_a2c4af0c1a411fff04f6f68427d9c82ae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2c4af0c1a411fff04f6f68427d9c82ae\">UnlinkCustomAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a2c4af0c1a411fff04f6f68427d9c82ae\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a custom ID from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a4be577065a26f40b5c8fcf501b83c7fc\" id=\"r_a4be577065a26f40b5c8fcf501b83c7fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4be577065a26f40b5c8fcf501b83c7fc\">UnlinkDeviceAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string id, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a4be577065a26f40b5c8fcf501b83c7fc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a device ID from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a94c94fa13db5528abe5fc6a13cb469f1\" id=\"r_a94c94fa13db5528abe5fc6a13cb469f1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a94c94fa13db5528abe5fc6a13cb469f1\">UnlinkEmailAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string email, string password, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a94c94fa13db5528abe5fc6a13cb469f1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink an email with password from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a9209cbf097fc5d612df113dc1f7a380e\" id=\"r_a9209cbf097fc5d612df113dc1f7a380e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9209cbf097fc5d612df113dc1f7a380e\">UnlinkFacebookAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a9209cbf097fc5d612df113dc1f7a380e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Facebook profile from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a8db620f585a3b1c6b33c83ffa959759c\" id=\"r_a8db620f585a3b1c6b33c83ffa959759c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8db620f585a3b1c6b33c83ffa959759c\">UnlinkGameCenterAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string bundleId, string playerId, string publicKeyUrl, string salt, string signature, string timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a8db620f585a3b1c6b33c83ffa959759c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Game Center profile from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:aec2588fcb68ad3807af840f6886f79e7\" id=\"r_aec2588fcb68ad3807af840f6886f79e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aec2588fcb68ad3807af840f6886f79e7\">UnlinkGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:aec2588fcb68ad3807af840f6886f79e7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Google profile from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a0b5ce7e1a9d3707e2a098ea531a26b5d\" id=\"r_a0b5ce7e1a9d3707e2a098ea531a26b5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0b5ce7e1a9d3707e2a098ea531a26b5d\">UnlinkSteamAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string token, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a0b5ce7e1a9d3707e2a098ea531a26b5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a Steam profile from the user account owned by the session.  <br /></td></tr>\n<tr class=\"memitem:a981b2780f9f9bf2b8e2b4f423680013f\" id=\"r_a981b2780f9f9bf2b8e2b4f423680013f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a981b2780f9f9bf2b8e2b4f423680013f\">UpdateAccountAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string username, string displayName=null, string avatarUrl=null, string langTag=null, string location=null, string timezone=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a981b2780f9f9bf2b8e2b4f423680013f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the current user's account on the server.  <br /></td></tr>\n<tr class=\"memitem:a1ab56488f06c34d4c8e7a184ef923176\" id=\"r_a1ab56488f06c34d4c8e7a184ef923176\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1ab56488f06c34d4c8e7a184ef923176\">UpdateGroupAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string groupId, string name, bool open, string description=null, string avatarUrl=null, string langTag=null, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a1ab56488f06c34d4c8e7a184ef923176\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a group.  <br /></td></tr>\n<tr class=\"memitem:a3b4319cfed8f66406e01105fcbd46286\" id=\"r_a3b4319cfed8f66406e01105fcbd46286\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3b4319cfed8f66406e01105fcbd46286\">ValidatePurchaseAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a3b4319cfed8f66406e01105fcbd46286\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Apple App Store.  <br /></td></tr>\n<tr class=\"memitem:a4a8c0bf42e908cb3a71865c89877a035\" id=\"r_a4a8c0bf42e908cb3a71865c89877a035\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4a8c0bf42e908cb3a71865c89877a035\">ValidatePurchaseFacebookInstantAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string signedRequest, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a4a8c0bf42e908cb3a71865c89877a035\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against Facebook Instant Games.  <br /></td></tr>\n<tr class=\"memitem:a58ec876cf25e2c0a096fa02dac977985\" id=\"r_a58ec876cf25e2c0a096fa02dac977985\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a58ec876cf25e2c0a096fa02dac977985\">ValidatePurchaseGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a58ec876cf25e2c0a096fa02dac977985\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Google Play Store.  <br /></td></tr>\n<tr class=\"memitem:a04cd45c9b6e5cc2333f7299a55a182a3\" id=\"r_a04cd45c9b6e5cc2333f7299a55a182a3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a04cd45c9b6e5cc2333f7299a55a182a3\">ValidatePurchaseHuaweiAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, string signature, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a04cd45c9b6e5cc2333f7299a55a182a3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a purchase receipt against the Huawei AppGallery.  <br /></td></tr>\n<tr class=\"memitem:abc626bfa5a312f23033b1dcce16abe90\" id=\"r_abc626bfa5a312f23033b1dcce16abe90\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abc626bfa5a312f23033b1dcce16abe90\">ValidateSubscriptionAppleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:abc626bfa5a312f23033b1dcce16abe90\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate an Apple subscription receipt.  <br /></td></tr>\n<tr class=\"memitem:abdceffcc291e56bf4de8683fb6386fe9\" id=\"r_abdceffcc291e56bf4de8683fb6386fe9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abdceffcc291e56bf4de8683fb6386fe9\">ValidateSubscriptionGoogleAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string receipt, bool persist=true, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:abdceffcc291e56bf4de8683fb6386fe9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate a Google subscription receipt.  <br /></td></tr>\n<tr class=\"memitem:a75172b3237e2c1a0dd2df2d1e0a19ec1\" id=\"r_a75172b3237e2c1a0dd2df2d1e0a19ec1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a75172b3237e2c1a0dd2df2d1e0a19ec1\">WriteLeaderboardRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string leaderboardId, long score, long subScore=0L, string metadata=null, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> apiOperator=<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a>, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a75172b3237e2c1a0dd2df2d1e0a19ec1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a record to a leaderboard.  <br /></td></tr>\n<tr class=\"memitem:adc8f34b5cacc6e61d0240d53c1383935\" id=\"r_adc8f34b5cacc6e61d0240d53c1383935\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adc8f34b5cacc6e61d0240d53c1383935\">WriteStorageObjectsAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a>[] objects, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:adc8f34b5cacc6e61d0240d53c1383935\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write objects to the storage engine.  <br /></td></tr>\n<tr class=\"memitem:a0e18257ebdd85c9a0d56c501e221e90a\" id=\"r_a0e18257ebdd85c9a0d56c501e221e90a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0e18257ebdd85c9a0d56c501e221e90a\">WriteTournamentRecordAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, string tournamentId, long score, long subScore=0L, string metadata=null, <a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> apiOperator=<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a>, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:a0e18257ebdd85c9a0d56c501e221e90a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a record to a tournament.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a65ce1849bf8c639c0d11853be12f22f8\" id=\"r_a65ce1849bf8c639c0d11853be12f22f8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a65ce1849bf8c639c0d11853be12f22f8\">AutoRefreshSession</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a65ce1849bf8c639c0d11853be12f22f8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the session should be refreshed with an active refresh token.  <br /></td></tr>\n<tr class=\"memitem:ad86bc2c00a137d35243e977086a00ffa\" id=\"r_ad86bc2c00a137d35243e977086a00ffa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad86bc2c00a137d35243e977086a00ffa\">GlobalRetryConfiguration</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ad86bc2c00a137d35243e977086a00ffa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The global retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>.  <br /></td></tr>\n<tr class=\"memitem:a93e9759631f1a3106dc4ec47477f3eb8\" id=\"r_a93e9759631f1a3106dc4ec47477f3eb8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a93e9759631f1a3106dc4ec47477f3eb8\">Host</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a93e9759631f1a3106dc4ec47477f3eb8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The host address of the server. Defaults to \"127.0.0.1\".  <br /></td></tr>\n<tr class=\"memitem:ad5d7b98d99d381d0340e7d8e90a54d26\" id=\"r_ad5d7b98d99d381d0340e7d8e90a54d26\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad5d7b98d99d381d0340e7d8e90a54d26\">Port</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad5d7b98d99d381d0340e7d8e90a54d26\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The port number of the server. Defaults to 7350.  <br /></td></tr>\n<tr class=\"memitem:a5ce30e2720c3b831e249bf19452eb340\" id=\"r_a5ce30e2720c3b831e249bf19452eb340\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5ce30e2720c3b831e249bf19452eb340\">Scheme</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5ce30e2720c3b831e249bf19452eb340\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".  <br /></td></tr>\n<tr class=\"memitem:a6b13274c171e19e07f26ea5334f8ab23\" id=\"r_a6b13274c171e19e07f26ea5334f8ab23\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6b13274c171e19e07f26ea5334f8ab23\">ServerKey</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6b13274c171e19e07f26ea5334f8ab23\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key used to authenticate with the server without a session. Defaults to \"defaultkey\".  <br /></td></tr>\n<tr class=\"memitem:aadcfb5308770d73098d9ba66534074af\" id=\"r_aadcfb5308770d73098d9ba66534074af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aadcfb5308770d73098d9ba66534074af\">Timeout</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:aadcfb5308770d73098d9ba66534074af\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Set the timeout in seconds on requests sent to the server.  <br /></td></tr>\n<tr class=\"memitem:a3a4173ec3a9af39e3de97d66027ff74d\" id=\"r_a3a4173ec3a9af39e3de97d66027ff74d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a4173ec3a9af39e3de97d66027ff74d\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a3a4173ec3a9af39e3de97d66027ff74d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the client.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a9d6c9e57b47566fe3b5184166786a30b\" id=\"r_a9d6c9e57b47566fe3b5184166786a30b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9d6c9e57b47566fe3b5184166786a30b\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"memdesc:a9d6c9e57b47566fe3b5184166786a30b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new session after the current one has expired.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"aae3144e0e3d8ea9a2c6d5df25b647e23\" name=\"aae3144e0e3d8ea9a2c6d5df25b647e23\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aae3144e0e3d8ea9a2c6d5df25b647e23\">&#9670;&#160;</a></span>AddFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.AddFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Add one or more friends by id or username. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to add as friends.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>Optional metadata to add to the friendship edge.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"abec54a30d216a009e04cb7df410e15f3\" name=\"abec54a30d216a009e04cb7df410e15f3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abec54a30d216a009e04cb7df410e15f3\">&#9670;&#160;</a></span>AddGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.AddGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Add one or more users to the group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The id of the group to add users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to add or invite to the group.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af56a59b69e6416645041852198bbc220\" name=\"af56a59b69e6416645041852198bbc220\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af56a59b69e6416645041852198bbc220\">&#9670;&#160;</a></span>AuthenticateAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with an Apple ID against the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a1081470b3d1dc65a43e57e158118dde0\" name=\"a1081470b3d1dc65a43e57e158118dde0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1081470b3d1dc65a43e57e158118dde0\">&#9670;&#160;</a></span>AuthenticateCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a custom id. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad9a6d4b73bc4ac965a7d913fcc7d5ee3\" name=\"ad9a6d4b73bc4ac965a7d913fcc7d5ee3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\">&#9670;&#160;</a></span>AuthenticateDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a device id. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a1b77958ff52a879a27a5bfd0b97dfa6b\" name=\"a1b77958ff52a879a27a5bfd0b97dfa6b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b77958ff52a879a27a5bfd0b97dfa6b\">&#9670;&#160;</a></span>AuthenticateEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with an email and password. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a94137b0b4dd44bae5fcf4d112d4cab4d\" name=\"a94137b0b4dd44bae5fcf4d112d4cab4d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a94137b0b4dd44bae5fcf4d112d4cab4d\">&#9670;&#160;</a></span>AuthenticateFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Facebook auth token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab1b035116f1e0a1cf22d2f5fd8ed9233\" name=\"ab1b035116f1e0a1cf22d2f5fd8ed9233\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab1b035116f1e0a1cf22d2f5fd8ed9233\">&#9670;&#160;</a></span>AuthenticateGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with Apple Game Center. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle id of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player id of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aa7d5ea6ff35652864256236b6a298e16\" name=\"aa7d5ea6ff35652864256236b6a298e16\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7d5ea6ff35652864256236b6a298e16\">&#9670;&#160;</a></span>AuthenticateGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Google auth token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a2f1dee9bd5c5761d55e5ab5a4d12690c\" name=\"a2f1dee9bd5c5761d55e5ab5a4d12690c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2f1dee9bd5c5761d55e5ab5a4d12690c\">&#9670;&#160;</a></span>AuthenticateSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.AuthenticateSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>create</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate a user with a Steam auth token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>A username used to create the user. May be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">create</td><td>If the user should be created when authenticated.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information that will be bundled in the session token.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab22184136c797808a2aebe53100804e2\" name=\"ab22184136c797808a2aebe53100804e2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab22184136c797808a2aebe53100804e2\">&#9670;&#160;</a></span>BanGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.BanGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Ban a set of users from a group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group to ban the users from.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to ban.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a625ec426d7062f4c118f3f014dd6e378\" name=\"a625ec426d7062f4c118f3f014dd6e378\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a625ec426d7062f4c118f3f014dd6e378\">&#9670;&#160;</a></span>BlockFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.BlockFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Block one or more friends by id or username. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the users to block.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to block.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aae0252ef30e7b6f9a1e2dc518f7478ee\" name=\"aae0252ef30e7b6f9a1e2dc518f7478ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aae0252ef30e7b6f9a1e2dc518f7478ee\">&#9670;&#160;</a></span>CreateGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> &gt; Nakama.IClient.CreateGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>description</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;&quot;</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">100</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Create a group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name for the group.</td></tr>\n    <tr><td class=\"paramname\">description</td><td>A description for the group.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>An avatar url for the group.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A language tag in BCP-47 format for the group.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>If the group should have open membership.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of members allowed.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new group object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"acc6d8f02d597837cf8e891a9016be613\" name=\"acc6d8f02d597837cf8e891a9016be613\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc6d8f02d597837cf8e891a9016be613\">&#9670;&#160;</a></span>DeleteAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete the current user's account. Note that this will invalidate your session, requiring you to reauthenticate. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a6c9418726e8c74b0cefff24bccf335e1\" name=\"a6c9418726e8c74b0cefff24bccf335e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6c9418726e8c74b0cefff24bccf335e1\">&#9670;&#160;</a></span>DeleteFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete one more or users by id or username from friends. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The user ids to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames to remove as friends.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a90a221604c5aee514bae83bfce921005\" name=\"a90a221604c5aee514bae83bfce921005\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a90a221604c5aee514bae83bfce921005\">&#9670;&#160;</a></span>DeleteGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete a group by id. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The group id to to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ae50039a13b1b5d75613030d130f9d5e3\" name=\"ae50039a13b1b5d75613030d130f9d5e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae50039a13b1b5d75613030d130f9d5e3\">&#9670;&#160;</a></span>DeleteLeaderboardRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteLeaderboardRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete a leaderboard record. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The id of the leaderboard with the record to be deleted.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"adab62219d9b6f091995738a8746b8bcb\" name=\"adab62219d9b6f091995738a8746b8bcb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adab62219d9b6f091995738a8746b8bcb\">&#9670;&#160;</a></span>DeleteNotificationsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteNotificationsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete one or more notifications by id. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The notification ids to remove.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a359f19ae1aad413e47565b355380b63a\" name=\"a359f19ae1aad413e47565b355380b63a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a359f19ae1aad413e47565b355380b63a\">&#9670;&#160;</a></span>DeleteStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete one or more storage objects. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The ids of the objects to delete.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a071b39c59ef92a84774e06dc102a5fe8\" name=\"a071b39c59ef92a84774e06dc102a5fe8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a071b39c59ef92a84774e06dc102a5fe8\">&#9670;&#160;</a></span>DeleteTournamentRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DeleteTournamentRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete the user's tournament record. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The id of the tournament to delete from.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a134eedfe28270dc3086b490fd16c5efb\" name=\"a134eedfe28270dc3086b490fd16c5efb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a134eedfe28270dc3086b490fd16c5efb\">&#9670;&#160;</a></span>DemoteGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.DemoteGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userIds</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Demote a set of users in a group to the next role down. </p><dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">groupId</td><td>The group to demote users in.</td></tr>\n    <tr><td class=\"paramname\">userIds</td><td>The users to demote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n</p>\n<p>Members who are already at the lowest rank will be skipped.</p>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a5a255470f06a9004673ba8fc6f8af682\" name=\"a5a255470f06a9004673ba8fc6f8af682\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5a255470f06a9004673ba8fc6f8af682\">&#9670;&#160;</a></span>EventAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.EventAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>properties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Submit an event for processing in the server's registered runtime custom events handler. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the event.</td></tr>\n    <tr><td class=\"paramname\">properties</td><td>The properties of the event.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a291886d28a053ef9db0d231b1f74140e\" name=\"a291886d28a053ef9db0d231b1f74140e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a291886d28a053ef9db0d231b1f74140e\">&#9670;&#160;</a></span>GetAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a> &gt; Nakama.IClient.GetAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Fetch the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the account object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\" name=\"a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\">&#9670;&#160;</a></span>GetSubscriptionAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a> &gt; Nakama.IClient.GetSubscriptionAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>productId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get the subscription represented by the provided product id. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">productId</td><td>The product id.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a8b4075bc49ee57670e94a56557be05d2\" name=\"a8b4075bc49ee57670e94a56557be05d2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8b4075bc49ee57670e94a56557be05d2\">&#9670;&#160;</a></span>GetUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a> &gt; Nakama.IClient.GetUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>facebookIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Fetch one or more users by id, usernames, and Facebook ids. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">facebookIds</td><td>The facebook IDs of the users to retrieve.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a collection of user objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad63c0cfb18480592c8eff4583cc16233\" name=\"ad63c0cfb18480592c8eff4583cc16233\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad63c0cfb18480592c8eff4583cc16233\">&#9670;&#160;</a></span>ImportFacebookFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.ImportFacebookFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reset</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Import Facebook friends and add them to the user's account. </p>\n<p>The server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">reset</td><td>If the Facebook friend import for the user should be reset.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a8ff7dfd40f14d3161d7fc4426e078214\" name=\"a8ff7dfd40f14d3161d7fc4426e078214\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ff7dfd40f14d3161d7fc4426e078214\">&#9670;&#160;</a></span>ImportSteamFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.ImportSteamFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reset</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Import Steam friends and add them to the user's account. </p>\n<p>The server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An access token from Steam.</td></tr>\n    <tr><td class=\"paramname\">reset</td><td>If the Steam friend import for the user should be reset.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a6662dc402c9867c647ea300eae380bc0\" name=\"a6662dc402c9867c647ea300eae380bc0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6662dc402c9867c647ea300eae380bc0\">&#9670;&#160;</a></span>JoinGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.JoinGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a group if it has open membership or request to join it. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a8520e2e99a83f3cac309f2a0354c2e65\" name=\"a8520e2e99a83f3cac309f2a0354c2e65\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8520e2e99a83f3cac309f2a0354c2e65\">&#9670;&#160;</a></span>JoinTournamentAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.JoinTournamentAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a tournament by ID. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to join.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ae1643a627d5b2733349b2a3eb8811829\" name=\"ae1643a627d5b2733349b2a3eb8811829\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae1643a627d5b2733349b2a3eb8811829\">&#9670;&#160;</a></span>KickGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.KickGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Kick one or more users from the group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to kick.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"abe13990afd23fbf8257ff448970e1bfa\" name=\"abe13990afd23fbf8257ff448970e1bfa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abe13990afd23fbf8257ff448970e1bfa\">&#9670;&#160;</a></span>LeaveGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LeaveGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a group by ID. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to leave.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aed84d3ba843ee53c3fc62bfac3d56aef\" name=\"aed84d3ba843ee53c3fc62bfac3d56aef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aed84d3ba843ee53c3fc62bfac3d56aef\">&#9670;&#160;</a></span>LinkAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link an Apple ID to the social profiles on the current user's account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple to validate.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab18171e22bdc5d997ff5d87a206fbc18\" name=\"ab18171e22bdc5d997ff5d87a206fbc18\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab18171e22bdc5d997ff5d87a206fbc18\">&#9670;&#160;</a></span>LinkCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a custom ID to the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"accadcf9970bbc108cae1eaa386b2ad0c\" name=\"accadcf9970bbc108cae1eaa386b2ad0c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#accadcf9970bbc108cae1eaa386b2ad0c\">&#9670;&#160;</a></span>LinkDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a device ID to the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ae6bd9267c215b0df2246862d566c6d63\" name=\"ae6bd9267c215b0df2246862d566c6d63\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae6bd9267c215b0df2246862d566c6d63\">&#9670;&#160;</a></span>LinkEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link an email with password to the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a68926218392683fb7112bf26d7b1814c\" name=\"a68926218392683fb7112bf26d7b1814c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a68926218392683fb7112bf26d7b1814c\">&#9670;&#160;</a></span>LinkFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a Facebook profile to a user account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Facebook friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a15277cc6c181d77784a87da9383df7e4\" name=\"a15277cc6c181d77784a87da9383df7e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a15277cc6c181d77784a87da9383df7e4\">&#9670;&#160;</a></span>LinkGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a Game Center profile to a user account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a3fa471a46116248041a080016ad181cf\" name=\"a3fa471a46116248041a080016ad181cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3fa471a46116248041a080016ad181cf\">&#9670;&#160;</a></span>LinkGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a Google profile to a user account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aaa180e86df389caf7cc42d82760aabf0\" name=\"aaa180e86df389caf7cc42d82760aabf0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaa180e86df389caf7cc42d82760aabf0\">&#9670;&#160;</a></span>LinkSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.LinkSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>import</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Link a Steam profile to a user account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">import</td><td>If the Steam friends should be imported.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ac7cad85806c3824a967959455d828440\" name=\"ac7cad85806c3824a967959455d828440\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac7cad85806c3824a967959455d828440\">&#9670;&#160;</a></span>ListChannelMessagesAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt; Nakama.IClient.ListChannelMessagesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List messages from a chat channel. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channel</td><td>The chat channel object.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a0fd095e04016f75de9d589891a1518ac\" name=\"a0fd095e04016f75de9d589891a1518ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0fd095e04016f75de9d589891a1518ac\">&#9670;&#160;</a></span>ListChannelMessagesAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a> &gt; Nakama.IClient.ListChannelMessagesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List messages from a chat channel. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">channelId</td><td>A channel identifier.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of chat messages to list.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>Fetch messages forward from the current cursor (or the start, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default).</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the messages history to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the channel message list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af4b8829ce42c75274ab62e4692b748a8\" name=\"af4b8829ce42c75274ab62e4692b748a8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4b8829ce42c75274ab62e4692b748a8\">&#9670;&#160;</a></span>ListFriendsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a> &gt; Nakama.IClient.ListFriendsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List of friends of the current user. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by friendship state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of friends to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the friends list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the friend objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a93b462ed1236ba5839cdb811b19524bc\" name=\"a93b462ed1236ba5839cdb811b19524bc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a93b462ed1236ba5839cdb811b19524bc\">&#9670;&#160;</a></span>ListGroupsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a> &gt; Nakama.IClient.ListGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>members</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List groups on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of groups to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the groups to list.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">members</td><td>The number of group members filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>The open/closed filter to apply to the group list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve group objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ac77e1bbf873d728d622b627943e64351\" name=\"ac77e1bbf873d728d622b627943e64351\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac77e1bbf873d728d622b627943e64351\">&#9670;&#160;</a></span>ListGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a> &gt; Nakama.IClient.ListGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List all users part of the group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of groups to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the group listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group user objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a67141bad68b73fdee3e99d6b1564c7b8\" name=\"a67141bad68b73fdee3e99d6b1564c7b8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a67141bad68b73fdee3e99d6b1564c7b8\">&#9670;&#160;</a></span>ListLeaderboardRecordsAroundOwnerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt; Nakama.IClient.ListLeaderboardRecordsAroundOwnerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List leaderboard records that belong to a user. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to list.</td></tr>\n    <tr><td class=\"paramname\">ownerId</td><td>The ID of the user to list around.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The limit of the listings.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a90b33da885f5fee1267420a0acbc1e87\" name=\"a90b33da885f5fee1267420a0acbc1e87\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a90b33da885f5fee1267420a0acbc1e87\">&#9670;&#160;</a></span>ListLeaderboardRecordsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a> &gt; Nakama.IClient.ListLeaderboardRecordsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List records from a leaderboard. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to list.</td></tr>\n    <tr><td class=\"paramname\">ownerIds</td><td>Record owners to fetch with the list of records.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the leaderboard records to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af52b743a4d334b23a43fad156f0eb54c\" name=\"af52b743a4d334b23a43fad156f0eb54c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af52b743a4d334b23a43fad156f0eb54c\">&#9670;&#160;</a></span>ListMatchesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a> &gt; Nakama.IClient.ListMatchesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>min</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>max</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authoritative</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Fetch a list of matches active on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">min</td><td>The minimum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">max</td><td>The maximum number of match participants.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of matches to list.</td></tr>\n    <tr><td class=\"paramname\">authoritative</td><td>If authoritative matches should be included.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>The label to filter the match list on.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>A query for the matches to filter.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the match list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a9443bb244b7a51c6a493900822c654f1\" name=\"a9443bb244b7a51c6a493900822c654f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9443bb244b7a51c6a493900822c654f1\">&#9670;&#160;</a></span>ListNotificationsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a> &gt; Nakama.IClient.ListNotificationsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cacheableCursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List notifications for the user with an optional cursor. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of notifications to list.</td></tr>\n    <tr><td class=\"paramname\">cacheableCursor</td><td>A cursor for the current position in notifications to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve notifications objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a34a46495479d8a2c38ebcfe0dfe77f8b\" name=\"a34a46495479d8a2c38ebcfe0dfe77f8b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a34a46495479d8a2c38ebcfe0dfe77f8b\">&#9670;&#160;</a></span>ListPartiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a> &gt; Nakama.IClient.ListPartiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List advertised parties and optionally filter them by label. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>Optionally filter by party open status.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Optionally provide a query to filter via custom party labels.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to fetch the next page of results, if any.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the party object list.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a0dae35b8820b90e23303cdb58336dddc\" name=\"a0dae35b8820b90e23303cdb58336dddc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0dae35b8820b90e23303cdb58336dddc\">&#9670;&#160;</a></span>ListStorageObjects()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.IClient.ListStorageObjects </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"afeec7a75562cfc1c9f51d35095580046\" name=\"afeec7a75562cfc1c9f51d35095580046\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afeec7a75562cfc1c9f51d35095580046\">&#9670;&#160;</a></span>ListStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.IClient.ListStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List storage objects in a collection which have public read access. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list. Maximum 100.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection. May be null.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a3e2cf89415aebbfdecb0f7015b37ba37\" name=\"a3e2cf89415aebbfdecb0f7015b37ba37\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3e2cf89415aebbfdecb0f7015b37ba37\">&#9670;&#160;</a></span>ListSubscriptionsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a> &gt; Nakama.IClient.ListSubscriptionsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List the user's subscriptions. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of subscriptions to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of subscriptions.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription list.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a2b6310aeccea818af3fe8b3dcae95ec3\" name=\"a2b6310aeccea818af3fe8b3dcae95ec3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2b6310aeccea818af3fe8b3dcae95ec3\">&#9670;&#160;</a></span>ListTournamentRecordsAroundOwnerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt; Nakama.IClient.ListTournamentRecordsAroundOwnerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List tournament records around the owner. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament.</td></tr>\n    <tr><td class=\"paramname\">ownerId</td><td>The ID of the owner to pivot around.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the tournament record list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ac4a420dab57716222bbb8151700b1cdc\" name=\"ac4a420dab57716222bbb8151700b1cdc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac4a420dab57716222bbb8151700b1cdc\">&#9670;&#160;</a></span>ListTournamentRecordsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a> &gt; Nakama.IClient.ListTournamentRecordsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ownerIds</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>expiry</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List records from a tournament. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament.</td></tr>\n    <tr><td class=\"paramname\">ownerIds</td><td>The IDs of the record owners to return in the result.</td></tr>\n    <tr><td class=\"paramname\">expiry</td><td>Expiry in seconds (since epoch) to begin fetching records from.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of tournament records.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the list of tournament records.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a43e7575784efc55785124576651ac617\" name=\"a43e7575784efc55785124576651ac617\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a43e7575784efc55785124576651ac617\">&#9670;&#160;</a></span>ListTournamentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a> &gt; Nakama.IClient.ListTournamentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>categoryStart</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>categoryEnd</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>startTime</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>endTime</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List current or upcoming tournaments. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">categoryStart</td><td>The start of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">categoryEnd</td><td>The end of the category of tournaments to include.</td></tr>\n    <tr><td class=\"paramname\">startTime</td><td>The start time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by start time.</td></tr>\n    <tr><td class=\"paramname\">endTime</td><td>The end time of the tournaments. (UNIX timestamp, <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a> retryConfiguration = null, CancellationToken canceller = default). If null, tournaments will not be filtered by end time.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of tournaments to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>An optional cursor for the next page of tournaments.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the list of tournament objects.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a20b9a6e164506988f758a00d0dd68efe\" name=\"a20b9a6e164506988f758a00d0dd68efe\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a20b9a6e164506988f758a00d0dd68efe\">&#9670;&#160;</a></span>ListUserGroupsAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt; Nakama.IClient.ListUserGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List of groups the current user is a member of. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aceddfd721720890ee6de3d4c67d699f6\" name=\"aceddfd721720890ee6de3d4c67d699f6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aceddfd721720890ee6de3d4c67d699f6\">&#9670;&#160;</a></span>ListUserGroupsAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a> &gt; Nakama.IClient.ListUserGroupsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List groups a user is a member of. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The ID of the user whose groups to list.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>Filter by group membership state.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of records to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor for the current position in the listing.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the group list object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aeb5b5a9f8920ee2e287fc15e6dbae5d9\" name=\"aeb5b5a9f8920ee2e287fc15e6dbae5d9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb5b5a9f8920ee2e287fc15e6dbae5d9\">&#9670;&#160;</a></span>ListUsersStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a> &gt; Nakama.IClient.ListUsersStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>collection</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List storage objects in a collection which belong to a specific user and have public read access. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">collection</td><td>The collection to list over.</td></tr>\n    <tr><td class=\"paramname\">userId</td><td>The user ID of the user to list objects for.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>The number of objects to list.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A cursor to paginate over the collection.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage object list.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a6f9bf7b5dc74dfab741e7aadfba89e4b\" name=\"a6f9bf7b5dc74dfab741e7aadfba89e4b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6f9bf7b5dc74dfab741e7aadfba89e4b\">&#9670;&#160;</a></span>PromoteGroupUsersAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.PromoteGroupUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Promote one or more users in the group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to promote users into.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The IDs of the users to promote.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a1b2f0ed3a7a73e8263d98036d53817fc\" name=\"a1b2f0ed3a7a73e8263d98036d53817fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b2f0ed3a7a73e8263d98036d53817fc\">&#9670;&#160;</a></span>ReadStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a> &gt; Nakama.IClient.ReadStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ids</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Read one or more objects from the storage engine. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">ids</td><td>The objects to read.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage batch object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a3b15daa0defb16913157e3fed94b1aab\" name=\"a3b15daa0defb16913157e3fed94b1aab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3b15daa0defb16913157e3fed94b1aab\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[1/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.IClient.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a29b2534c256578fc1868d488e8f553f8\" name=\"a29b2534c256578fc1868d488e8f553f8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29b2534c256578fc1868d488e8f553f8\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[2/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.IClient.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function with an input payload on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The ID of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>The payload to send with the function call.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a2678da1ed1dadda85f5d8e76ddbe2a0a\" name=\"a2678da1ed1dadda85f5d8e76ddbe2a0a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2678da1ed1dadda85f5d8e76ddbe2a0a\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[3/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.IClient.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server without a session. </p>\n<p>This function is usually used with server side code. DO NOT USE client side. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">httpKey</td><td>The secure HTTP key used to authenticate.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The id of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve an RPC response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a9674590588d453c43bdd810afa430538\" name=\"a9674590588d453c43bdd810afa430538\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9674590588d453c43bdd810afa430538\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[4/4]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.IClient.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>httpKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute a function on the server without a session. </p>\n<p>This function is usually used with server side code. DO NOT USE client side. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">httpKey</td><td>The secure HTTP key used to authenticate.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The id of the function to execute on the server.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>A payload to send with the function call.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to resolve an RPC response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ac0bf64fd0de7fe6a73a737b5ef514d93\" name=\"ac0bf64fd0de7fe6a73a737b5ef514d93\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0bf64fd0de7fe6a73a737b5ef514d93\">&#9670;&#160;</a></span>SessionLogoutAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.SessionLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session which invalidates the authorization and refresh token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session to logout.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a6c53fa09b45cde7987ca6e3dc1f877bc\" name=\"a6c53fa09b45cde7987ca6e3dc1f877bc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6c53fa09b45cde7987ca6e3dc1f877bc\">&#9670;&#160;</a></span>SessionLogoutAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.SessionLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>authToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>refreshToken</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session which optionally invalidates the authorization and/or refresh tokens. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">authToken</td><td>The authorization token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">refreshToken</td><td>The refresh token to invalidate, may be <code>null</code>.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af75a6a3aceaddf452fb714e08b0d3b0b\" name=\"af75a6a3aceaddf452fb714e08b0d3b0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af75a6a3aceaddf452fb714e08b0d3b0b\">&#9670;&#160;</a></span>SessionRefreshAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> &gt; Nakama.IClient.SessionRefreshAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>vars</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">vars</td><td>Extra information which should be bundled inside the session token.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a4ba0c6637b9685eb0474352de1797a2e\" name=\"a4ba0c6637b9685eb0474352de1797a2e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4ba0c6637b9685eb0474352de1797a2e\">&#9670;&#160;</a></span>UnlinkAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Remove the Apple ID from the social profiles on the current user's account. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The ID token received from Apple.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a new session object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a2c4af0c1a411fff04f6f68427d9c82ae\" name=\"a2c4af0c1a411fff04f6f68427d9c82ae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2c4af0c1a411fff04f6f68427d9c82ae\">&#9670;&#160;</a></span>UnlinkCustomAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkCustomAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a custom ID from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A custom identifier usually obtained from an external authentication service.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a4be577065a26f40b5c8fcf501b83c7fc\" name=\"a4be577065a26f40b5c8fcf501b83c7fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4be577065a26f40b5c8fcf501b83c7fc\">&#9670;&#160;</a></span>UnlinkDeviceAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkDeviceAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a device ID from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>A device identifier usually obtained from a platform API.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a94c94fa13db5528abe5fc6a13cb469f1\" name=\"a94c94fa13db5528abe5fc6a13cb469f1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a94c94fa13db5528abe5fc6a13cb469f1\">&#9670;&#160;</a></span>UnlinkEmailAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkEmailAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>email</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>password</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink an email with password from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">email</td><td>The email address of the user.</td></tr>\n    <tr><td class=\"paramname\">password</td><td>The password for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a9209cbf097fc5d612df113dc1f7a380e\" name=\"a9209cbf097fc5d612df113dc1f7a380e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9209cbf097fc5d612df113dc1f7a380e\">&#9670;&#160;</a></span>UnlinkFacebookAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkFacebookAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Facebook profile from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Facebook SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a8db620f585a3b1c6b33c83ffa959759c\" name=\"a8db620f585a3b1c6b33c83ffa959759c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8db620f585a3b1c6b33c83ffa959759c\">&#9670;&#160;</a></span>UnlinkGameCenterAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkGameCenterAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>bundleId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>playerId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>publicKeyUrl</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>salt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timestamp</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Game Center profile from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">bundleId</td><td>The bundle ID of the Game Center application.</td></tr>\n    <tr><td class=\"paramname\">playerId</td><td>The player ID of the user in Game Center.</td></tr>\n    <tr><td class=\"paramname\">publicKeyUrl</td><td>The URL for the public encryption key.</td></tr>\n    <tr><td class=\"paramname\">salt</td><td>A random <code>NSString</code> used to compute the hash and keep it randomized.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The verification signature data generated.</td></tr>\n    <tr><td class=\"paramname\">timestamp</td><td>The date and time that the signature was created.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aec2588fcb68ad3807af840f6886f79e7\" name=\"aec2588fcb68ad3807af840f6886f79e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aec2588fcb68ad3807af840f6886f79e7\">&#9670;&#160;</a></span>UnlinkGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Google profile from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An OAuth access token from the Google SDK.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a0b5ce7e1a9d3707e2a098ea531a26b5d\" name=\"a0b5ce7e1a9d3707e2a098ea531a26b5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0b5ce7e1a9d3707e2a098ea531a26b5d\">&#9670;&#160;</a></span>UnlinkSteamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UnlinkSteamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unlink a Steam profile from the user account owned by the session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">token</td><td>An authentication token from the Steam network.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a981b2780f9f9bf2b8e2b4f423680013f\" name=\"a981b2780f9f9bf2b8e2b4f423680013f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a981b2780f9f9bf2b8e2b4f423680013f\">&#9670;&#160;</a></span>UpdateAccountAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UpdateAccountAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>username</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>displayName</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>location</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timezone</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update the current user's account on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">username</td><td>The new username for the user.</td></tr>\n    <tr><td class=\"paramname\">displayName</td><td>A new display name for the user.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>A new avatar url for the user.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A new language tag in BCP-47 format for the user.</td></tr>\n    <tr><td class=\"paramname\">location</td><td>A new location for the user.</td></tr>\n    <tr><td class=\"paramname\">timezone</td><td>New timezone information for the user.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a1ab56488f06c34d4c8e7a184ef923176\" name=\"a1ab56488f06c34d4c8e7a184ef923176\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1ab56488f06c34d4c8e7a184ef923176\">&#9670;&#160;</a></span>UpdateGroupAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.IClient.UpdateGroupAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>groupId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>description</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>avatarUrl</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update a group. </p>\n<p>The user must have the correct access permissions for the group. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">groupId</td><td>The ID of the group to update.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>A new name for the group.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>If the group should have open membership.</td></tr>\n    <tr><td class=\"paramname\">description</td><td>A new description for the group.</td></tr>\n    <tr><td class=\"paramname\">avatarUrl</td><td>A new avatar url for the group.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>A new language tag in BCP-47 format for the group.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a3b4319cfed8f66406e01105fcbd46286\" name=\"a3b4319cfed8f66406e01105fcbd46286\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3b4319cfed8f66406e01105fcbd46286\">&#9670;&#160;</a></span>ValidatePurchaseAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.IClient.ValidatePurchaseAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Apple App Store. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a4a8c0bf42e908cb3a71865c89877a035\" name=\"a4a8c0bf42e908cb3a71865c89877a035\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a8c0bf42e908cb3a71865c89877a035\">&#9670;&#160;</a></span>ValidatePurchaseFacebookInstantAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.IClient.ValidatePurchaseFacebookInstantAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signedRequest</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against Facebook Instant Games. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">signedRequest</td><td>Base64 encoded Facebook Instant receipt data payload.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a58ec876cf25e2c0a096fa02dac977985\" name=\"a58ec876cf25e2c0a096fa02dac977985\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a58ec876cf25e2c0a096fa02dac977985\">&#9670;&#160;</a></span>ValidatePurchaseGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.IClient.ValidatePurchaseGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Google Play Store. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a04cd45c9b6e5cc2333f7299a55a182a3\" name=\"a04cd45c9b6e5cc2333f7299a55a182a3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a04cd45c9b6e5cc2333f7299a55a182a3\">&#9670;&#160;</a></span>ValidatePurchaseHuaweiAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a> &gt; Nakama.IClient.ValidatePurchaseHuaweiAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>signature</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate a purchase receipt against the Huawei AppGallery. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The purchase receipt to be validated.</td></tr>\n    <tr><td class=\"paramname\">signature</td><td>The signature of the purchase receipt.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to track the receipt in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the validated list of purchase receipts.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"abc626bfa5a312f23033b1dcce16abe90\" name=\"abc626bfa5a312f23033b1dcce16abe90\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abc626bfa5a312f23033b1dcce16abe90\">&#9670;&#160;</a></span>ValidateSubscriptionAppleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt; Nakama.IClient.ValidateSubscriptionAppleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate an Apple subscription receipt. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The receipt to validate.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to persist the receipt to <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>'s database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription validation response. </dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"abdceffcc291e56bf4de8683fb6386fe9\" name=\"abdceffcc291e56bf4de8683fb6386fe9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abdceffcc291e56bf4de8683fb6386fe9\">&#9670;&#160;</a></span>ValidateSubscriptionGoogleAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a> &gt; Nakama.IClient.ValidateSubscriptionGoogleAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>receipt</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persist</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validate a Google subscription receipt. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">receipt</td><td>The receipt to validate.</td></tr>\n    <tr><td class=\"paramname\">persist</td><td>Whether or not to persist the receipt to <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>'s database.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the subscription validation response. </dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a75172b3237e2c1a0dd2df2d1e0a19ec1\" name=\"a75172b3237e2c1a0dd2df2d1e0a19ec1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a75172b3237e2c1a0dd2df2d1e0a19ec1\">&#9670;&#160;</a></span>WriteLeaderboardRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt; Nakama.IClient.WriteLeaderboardRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>leaderboardId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>score</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>subScore</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">0L</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiOperator</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Write a record to a leaderboard. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session for the user.</td></tr>\n    <tr><td class=\"paramname\">leaderboardId</td><td>The ID of the leaderboard to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the leaderboard record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the leaderboard. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the leaderboard record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"adc8f34b5cacc6e61d0240d53c1383935\" name=\"adc8f34b5cacc6e61d0240d53c1383935\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adc8f34b5cacc6e61d0240d53c1383935\">&#9670;&#160;</a></span>WriteStorageObjectsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a> &gt; Nakama.IClient.WriteStorageObjectsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a>[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>objects</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Write objects to the storage engine. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">objects</td><td>The objects to write.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the storage write acknowledgements.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a0e18257ebdd85c9a0d56c501e221e90a\" name=\"a0e18257ebdd85c9a0d56c501e221e90a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0e18257ebdd85c9a0d56c501e221e90a\">&#9670;&#160;</a></span>WriteTournamentRecordAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a> &gt; Nakama.IClient.WriteTournamentRecordAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>tournamentId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>score</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>subScore</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">0L</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>apiOperator</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">ApiOperator.NO_OVERRIDE</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Write a record to a tournament. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">tournamentId</td><td>The ID of the tournament to write.</td></tr>\n    <tr><td class=\"paramname\">score</td><td>The score of the tournament record.</td></tr>\n    <tr><td class=\"paramname\">subScore</td><td>The sub score for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>The metadata for the tournament record.</td></tr>\n    <tr><td class=\"paramname\">operator</td><td>The operator for the record that can be used to override the one set in the tournament. <dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the tournament record object written.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a65ce1849bf8c639c0d11853be12f22f8\" name=\"a65ce1849bf8c639c0d11853be12f22f8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a65ce1849bf8c639c0d11853be12f22f8\">&#9670;&#160;</a></span>AutoRefreshSession</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IClient.AutoRefreshSession</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the session should be refreshed with an active refresh token. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad86bc2c00a137d35243e977086a00ffa\" name=\"ad86bc2c00a137d35243e977086a00ffa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad86bc2c00a137d35243e977086a00ffa\">&#9670;&#160;</a></span>GlobalRetryConfiguration</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a> Nakama.IClient.GlobalRetryConfiguration</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The global retry configuration. See <a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a93e9759631f1a3106dc4ec47477f3eb8\" name=\"a93e9759631f1a3106dc4ec47477f3eb8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a93e9759631f1a3106dc4ec47477f3eb8\">&#9670;&#160;</a></span>Host</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IClient.Host</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The host address of the server. Defaults to \"127.0.0.1\". </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a3a4173ec3a9af39e3de97d66027ff74d\" name=\"a3a4173ec3a9af39e3de97d66027ff74d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a4173ec3a9af39e3de97d66027ff74d\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.IClient.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the client. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad5d7b98d99d381d0340e7d8e90a54d26\" name=\"ad5d7b98d99d381d0340e7d8e90a54d26\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad5d7b98d99d381d0340e7d8e90a54d26\">&#9670;&#160;</a></span>Port</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IClient.Port</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The port number of the server. Defaults to 7350. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a5ce30e2720c3b831e249bf19452eb340\" name=\"a5ce30e2720c3b831e249bf19452eb340\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5ce30e2720c3b831e249bf19452eb340\">&#9670;&#160;</a></span>Scheme</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IClient.Scheme</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The protocol scheme used to connect with the server. Must be either \"http\" or \"https\". </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a6b13274c171e19e07f26ea5334f8ab23\" name=\"a6b13274c171e19e07f26ea5334f8ab23\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6b13274c171e19e07f26ea5334f8ab23\">&#9670;&#160;</a></span>ServerKey</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IClient.ServerKey</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key used to authenticate with the server without a session. Defaults to \"defaultkey\". </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aadcfb5308770d73098d9ba66534074af\" name=\"aadcfb5308770d73098d9ba66534074af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aadcfb5308770d73098d9ba66534074af\">&#9670;&#160;</a></span>Timeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IClient.Timeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Set the timeout in seconds on requests sent to the server. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\">Nakama.Client</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a9d6c9e57b47566fe3b5184166786a30b\" name=\"a9d6c9e57b47566fe3b5184166786a30b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d6c9e57b47566fe3b5184166786a30b\">&#9670;&#160;</a></span>ReceivedSessionUpdated</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a>&gt; Nakama.IClient.ReceivedSessionUpdated</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a new session after the current one has expired. </p>\n<p>This event will only be sent when <code>SessionRefreshAsync</code> is called which also happens automatically if <code>AutoRefreshSession</code> is enabled. </p>\n<p><a class=\"el\" href=\"#af75a6a3aceaddf452fb714e08b0d3b0b\" title=\"Refresh the session unless the current refresh token has expired. If vars are specified they will rep...\">SessionRefreshAsync</a> </p><dl class=\"section see\"><dt>See also</dt><dd><a class=\"el\" href=\"#a65ce1849bf8c639c0d11853be12f22f8\" title=\"True if the session should be refreshed with an active refresh token.\">AutoRefreshSession</a></dd></dl>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_i_client_8cs.html\">Nakama/IClient.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_client.html\">IClient</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_client.js",
    "content": "var interface_nakama_1_1_i_client =\n[\n    [ \"AddFriendsAsync\", \"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\", null ],\n    [ \"AddGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\", null ],\n    [ \"AuthenticateAppleAsync\", \"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\", null ],\n    [ \"AuthenticateCustomAsync\", \"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\", null ],\n    [ \"AuthenticateDeviceAsync\", \"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\", null ],\n    [ \"AuthenticateEmailAsync\", \"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\", null ],\n    [ \"AuthenticateFacebookAsync\", \"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\", null ],\n    [ \"AuthenticateGameCenterAsync\", \"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\", null ],\n    [ \"AuthenticateGoogleAsync\", \"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\", null ],\n    [ \"AuthenticateSteamAsync\", \"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\", null ],\n    [ \"BanGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\", null ],\n    [ \"BlockFriendsAsync\", \"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\", null ],\n    [ \"CreateGroupAsync\", \"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\", null ],\n    [ \"DeleteAccountAsync\", \"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\", null ],\n    [ \"DeleteFriendsAsync\", \"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\", null ],\n    [ \"DeleteGroupAsync\", \"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\", null ],\n    [ \"DeleteLeaderboardRecordAsync\", \"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\", null ],\n    [ \"DeleteNotificationsAsync\", \"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\", null ],\n    [ \"DeleteStorageObjectsAsync\", \"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\", null ],\n    [ \"DeleteTournamentRecordAsync\", \"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\", null ],\n    [ \"DemoteGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\", null ],\n    [ \"EventAsync\", \"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\", null ],\n    [ \"GetAccountAsync\", \"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\", null ],\n    [ \"GetSubscriptionAsync\", \"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\", null ],\n    [ \"GetUsersAsync\", \"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\", null ],\n    [ \"ImportFacebookFriendsAsync\", \"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\", null ],\n    [ \"ImportSteamFriendsAsync\", \"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\", null ],\n    [ \"JoinGroupAsync\", \"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\", null ],\n    [ \"JoinTournamentAsync\", \"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\", null ],\n    [ \"KickGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\", null ],\n    [ \"LeaveGroupAsync\", \"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\", null ],\n    [ \"LinkAppleAsync\", \"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\", null ],\n    [ \"LinkCustomAsync\", \"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\", null ],\n    [ \"LinkDeviceAsync\", \"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\", null ],\n    [ \"LinkEmailAsync\", \"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\", null ],\n    [ \"LinkFacebookAsync\", \"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\", null ],\n    [ \"LinkGameCenterAsync\", \"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\", null ],\n    [ \"LinkGoogleAsync\", \"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\", null ],\n    [ \"LinkSteamAsync\", \"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\", null ],\n    [ \"ListChannelMessagesAsync\", \"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\", null ],\n    [ \"ListChannelMessagesAsync\", \"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\", null ],\n    [ \"ListFriendsAsync\", \"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\", null ],\n    [ \"ListGroupsAsync\", \"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\", null ],\n    [ \"ListGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\", null ],\n    [ \"ListLeaderboardRecordsAroundOwnerAsync\", \"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\", null ],\n    [ \"ListLeaderboardRecordsAsync\", \"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\", null ],\n    [ \"ListMatchesAsync\", \"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\", null ],\n    [ \"ListNotificationsAsync\", \"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\", null ],\n    [ \"ListPartiesAsync\", \"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\", null ],\n    [ \"ListStorageObjects\", \"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\", null ],\n    [ \"ListStorageObjectsAsync\", \"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\", null ],\n    [ \"ListSubscriptionsAsync\", \"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\", null ],\n    [ \"ListTournamentRecordsAroundOwnerAsync\", \"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\", null ],\n    [ \"ListTournamentRecordsAsync\", \"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\", null ],\n    [ \"ListTournamentsAsync\", \"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\", null ],\n    [ \"ListUserGroupsAsync\", \"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\", null ],\n    [ \"ListUserGroupsAsync\", \"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\", null ],\n    [ \"ListUsersStorageObjectsAsync\", \"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\", null ],\n    [ \"PromoteGroupUsersAsync\", \"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\", null ],\n    [ \"ReadStorageObjectsAsync\", \"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\", null ],\n    [ \"SessionLogoutAsync\", \"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\", null ],\n    [ \"SessionLogoutAsync\", \"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\", null ],\n    [ \"SessionRefreshAsync\", \"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\", null ],\n    [ \"UnlinkAppleAsync\", \"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\", null ],\n    [ \"UnlinkCustomAsync\", \"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\", null ],\n    [ \"UnlinkDeviceAsync\", \"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\", null ],\n    [ \"UnlinkEmailAsync\", \"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\", null ],\n    [ \"UnlinkFacebookAsync\", \"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\", null ],\n    [ \"UnlinkGameCenterAsync\", \"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\", null ],\n    [ \"UnlinkGoogleAsync\", \"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\", null ],\n    [ \"UnlinkSteamAsync\", \"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\", null ],\n    [ \"UpdateAccountAsync\", \"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\", null ],\n    [ \"UpdateGroupAsync\", \"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\", null ],\n    [ \"ValidatePurchaseAppleAsync\", \"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\", null ],\n    [ \"ValidatePurchaseFacebookInstantAsync\", \"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\", null ],\n    [ \"ValidatePurchaseGoogleAsync\", \"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\", null ],\n    [ \"ValidatePurchaseHuaweiAsync\", \"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\", null ],\n    [ \"ValidateSubscriptionAppleAsync\", \"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\", null ],\n    [ \"ValidateSubscriptionGoogleAsync\", \"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\", null ],\n    [ \"WriteLeaderboardRecordAsync\", \"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\", null ],\n    [ \"WriteStorageObjectsAsync\", \"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\", null ],\n    [ \"WriteTournamentRecordAsync\", \"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\", null ],\n    [ \"AutoRefreshSession\", \"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\", null ],\n    [ \"GlobalRetryConfiguration\", \"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\", null ],\n    [ \"Host\", \"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\", null ],\n    [ \"Logger\", \"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\", null ],\n    [ \"Port\", \"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\", null ],\n    [ \"Scheme\", \"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\", null ],\n    [ \"ServerKey\", \"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\", null ],\n    [ \"Timeout\", \"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\", null ],\n    [ \"ReceivedSessionUpdated\", \"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IFriendsOfFriendsListFriendOfFriend Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">Nakama.IFriendsOfFriendsListFriendOfFriend</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\">Referrer</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">Nakama.IFriendsOfFriendsListFriendOfFriend</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IFriendsOfFriendsListFriendOfFriend Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html','','interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IFriendsOfFriendsListFriendOfFriend Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A friend of a friend.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a753becc7f509c104f04ad96c184b3cf3\" id=\"r_a753becc7f509c104f04ad96c184b3cf3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a753becc7f509c104f04ad96c184b3cf3\">Referrer</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a753becc7f509c104f04ad96c184b3cf3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user who referred its friend.  <br /></td></tr>\n<tr class=\"memitem:ae93e1bb6498b10c995d3d4b0adde8c10\" id=\"r_ae93e1bb6498b10c995d3d4b0adde8c10\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae93e1bb6498b10c995d3d4b0adde8c10\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae93e1bb6498b10c995d3d4b0adde8c10\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A friend of a friend. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a753becc7f509c104f04ad96c184b3cf3\" name=\"a753becc7f509c104f04ad96c184b3cf3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a753becc7f509c104f04ad96c184b3cf3\">&#9670;&#160;</a></span>Referrer</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IFriendsOfFriendsListFriendOfFriend.Referrer</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user who referred its friend. </p>\n\n</div>\n</div>\n<a id=\"ae93e1bb6498b10c995d3d4b0adde8c10\" name=\"ae93e1bb6498b10c995d3d4b0adde8c10\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae93e1bb6498b10c995d3d4b0adde8c10\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> Nakama.IFriendsOfFriendsListFriendOfFriend.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">IFriendsOfFriendsListFriendOfFriend</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.js",
    "content": "var interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend =\n[\n    [ \"Referrer\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\", null ],\n    [ \"User\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_group_user_list_group_user-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_group_user_list_group_user.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IGroupUserListGroupUser Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">Nakama.IGroupUserListGroupUser</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">Nakama.IGroupUserListGroupUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\">User</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">Nakama.IGroupUserListGroupUser</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_group_user_list_group_user.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IGroupUserListGroupUser Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_group_user_list_group_user.html','','interface_nakama_1_1_i_group_user_list_group_user-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IGroupUserListGroupUser Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A single user-role pair.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab3c0a5153f49c9713449835993cf6bb9\" id=\"r_ab3c0a5153f49c9713449835993cf6bb9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab3c0a5153f49c9713449835993cf6bb9\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab3c0a5153f49c9713449835993cf6bb9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Their relationship to the group.  <br /></td></tr>\n<tr class=\"memitem:aef07d68b38175190826739a236457bb1\" id=\"r_aef07d68b38175190826739a236457bb1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aef07d68b38175190826739a236457bb1\">User</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aef07d68b38175190826739a236457bb1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">User.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A single user-role pair. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab3c0a5153f49c9713449835993cf6bb9\" name=\"ab3c0a5153f49c9713449835993cf6bb9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab3c0a5153f49c9713449835993cf6bb9\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IGroupUserListGroupUser.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Their relationship to the group. </p>\n\n</div>\n</div>\n<a id=\"aef07d68b38175190826739a236457bb1\" name=\"aef07d68b38175190826739a236457bb1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef07d68b38175190826739a236457bb1\">&#9670;&#160;</a></span>User</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> Nakama.IGroupUserListGroupUser.User</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>User. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">IGroupUserListGroupUser</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_group_user_list_group_user.js",
    "content": "var interface_nakama_1_1_i_group_user_list_group_user =\n[\n    [ \"State\", \"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\", null ],\n    [ \"User\", \"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_http_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_http_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IHttpAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\">SendAsync</a>(string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeoutSec=3, CancellationToken? userCancelToken=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\">TransientExceptionDelegate</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">Nakama.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_http_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IHttpAdapter Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_http_adapter.html','','interface_nakama_1_1_i_http_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IHttpAdapter Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which implements the HTTP protocol.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.IHttpAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_http_adapter.png\" usemap=\"#Nakama_2EIHttpAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama_2EIHttpAdapter_map\" name=\"Nakama_2EIHttpAdapter_map\">\n<area href=\"class_nakama_1_1_http_request_adapter.html\" title=\"HTTP Request adapter which uses the .NET HttpClient to send requests.\" alt=\"Nakama.HttpRequestAdapter\" shape=\"rect\" coords=\"0,56,172,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:af4eea04aef9ed0ccf2ee990bcb294b53\" id=\"r_af4eea04aef9ed0ccf2ee990bcb294b53\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af4eea04aef9ed0ccf2ee990bcb294b53\">SendAsync</a> (string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeoutSec=3, CancellationToken? userCancelToken=null)</td></tr>\n<tr class=\"memdesc:af4eea04aef9ed0ccf2ee990bcb294b53\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a HTTP request.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a276f20c0cdbc85177ace2cc336579cf8\" id=\"r_a276f20c0cdbc85177ace2cc336579cf8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a276f20c0cdbc85177ace2cc336579cf8\">TransientExceptionDelegate</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ad0514214ba7fce3b8c0697d70874ff1e\" id=\"r_ad0514214ba7fce3b8c0697d70874ff1e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad0514214ba7fce3b8c0697d70874ff1e\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ad0514214ba7fce3b8c0697d70874ff1e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An adapter which implements the HTTP protocol. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"af4eea04aef9ed0ccf2ee990bcb294b53\" name=\"af4eea04aef9ed0ccf2ee990bcb294b53\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af4eea04aef9ed0ccf2ee990bcb294b53\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; string &gt; Nakama.IHttpAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>method</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>headers</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>body</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">3</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userCancelToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a HTTP request. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\">Nakama.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad0514214ba7fce3b8c0697d70874ff1e\" name=\"ad0514214ba7fce3b8c0697d70874ff1e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad0514214ba7fce3b8c0697d70874ff1e\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a> Nakama.IHttpAdapter.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the adapter. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\">Nakama.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a276f20c0cdbc85177ace2cc336579cf8\" name=\"a276f20c0cdbc85177ace2cc336579cf8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a276f20c0cdbc85177ace2cc336579cf8\">&#9670;&#160;</a></span>TransientExceptionDelegate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TransientExceptionDelegate Nakama.IHttpAdapter.TransientExceptionDelegate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\">Nakama.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_i_http_adapter_8cs.html\">Nakama/IHttpAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_http_adapter.js",
    "content": "var interface_nakama_1_1_i_http_adapter =\n[\n    [ \"SendAsync\", \"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\", null ],\n    [ \"Logger\", \"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\", null ],\n    [ \"TransientExceptionDelegate\", \"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_logger-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_logger.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ILogger Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\">DebugFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\">ErrorFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\">InfoFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\">WarnFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">Nakama.ILogger</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_logger.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.ILogger Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_logger.html','','interface_nakama_1_1_i_logger-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ILogger Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A simple logger to write log messages to an output sink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7b8a076d052336b4bc965caba104d091\" id=\"r_a7b8a076d052336b4bc965caba104d091\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b8a076d052336b4bc965caba104d091\">DebugFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a7b8a076d052336b4bc965caba104d091\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the DEBUG level.  <br /></td></tr>\n<tr class=\"memitem:a7a32d0f6eadfce1dcdcd1884767978e8\" id=\"r_a7a32d0f6eadfce1dcdcd1884767978e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7a32d0f6eadfce1dcdcd1884767978e8\">ErrorFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a7a32d0f6eadfce1dcdcd1884767978e8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the ERROR level.  <br /></td></tr>\n<tr class=\"memitem:a04590700134fcc96228f9595c09cc901\" id=\"r_a04590700134fcc96228f9595c09cc901\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a04590700134fcc96228f9595c09cc901\">InfoFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a04590700134fcc96228f9595c09cc901\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the INFO level.  <br /></td></tr>\n<tr class=\"memitem:aea853b29e33993f4fbfe55ff9413e7c3\" id=\"r_aea853b29e33993f4fbfe55ff9413e7c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea853b29e33993f4fbfe55ff9413e7c3\">WarnFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:aea853b29e33993f4fbfe55ff9413e7c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the WARN level.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A simple logger to write log messages to an output sink. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a7b8a076d052336b4bc965caba104d091\" name=\"a7b8a076d052336b4bc965caba104d091\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b8a076d052336b4bc965caba104d091\">&#9670;&#160;</a></span>DebugFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.ILogger.DebugFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the DEBUG level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a7a32d0f6eadfce1dcdcd1884767978e8\" name=\"a7a32d0f6eadfce1dcdcd1884767978e8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7a32d0f6eadfce1dcdcd1884767978e8\">&#9670;&#160;</a></span>ErrorFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.ILogger.ErrorFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the ERROR level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a04590700134fcc96228f9595c09cc901\" name=\"a04590700134fcc96228f9595c09cc901\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a04590700134fcc96228f9595c09cc901\">&#9670;&#160;</a></span>InfoFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.ILogger.InfoFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the INFO level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"aea853b29e33993f4fbfe55ff9413e7c3\" name=\"aea853b29e33993f4fbfe55ff9413e7c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea853b29e33993f4fbfe55ff9413e7c3\">&#9670;&#160;</a></span>WarnFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.ILogger.WarnFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the WARN level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_i_logger_8cs.html\">Nakama/ILogger.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_logger.html\">ILogger</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_logger.js",
    "content": "var interface_nakama_1_1_i_logger =\n[\n    [ \"DebugFormat\", \"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\", null ],\n    [ \"ErrorFormat\", \"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\", null ],\n    [ \"InfoFormat\", \"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\", null ],\n    [ \"WarnFormat\", \"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatch Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\">Authoritative</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\">Presences</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\">Self</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\">Size</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\">UpdatePresences</a>(IMatchPresenceEvent presenceEvent)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">Nakama.IMatch</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatch Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match.html','','interface_nakama_1_1_i_match-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatch Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A multiplayer match.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7f2202fa2cf096415690d99c716f3cd1\" id=\"r_a7f2202fa2cf096415690d99c716f3cd1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f2202fa2cf096415690d99c716f3cd1\">UpdatePresences</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a> presenceEvent)</td></tr>\n<tr class=\"memdesc:a7f2202fa2cf096415690d99c716f3cd1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apply the joins and leaves from a presence event to the presences tracked by the match.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae082ee8c9b89c975ba3a4ae8365c631b\" id=\"r_ae082ee8c9b89c975ba3a4ae8365c631b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae082ee8c9b89c975ba3a4ae8365c631b\">Authoritative</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae082ee8c9b89c975ba3a4ae8365c631b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If this match has an authoritative handler on the server.  <br /></td></tr>\n<tr class=\"memitem:a70ec08c29ae2f928e191fc13c5694ccb\" id=\"r_a70ec08c29ae2f928e191fc13c5694ccb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a70ec08c29ae2f928e191fc13c5694ccb\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a70ec08c29ae2f928e191fc13c5694ccb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique match identifier.  <br /></td></tr>\n<tr class=\"memitem:ae26c0fcd9c1f2f8473125a5a64da5a91\" id=\"r_ae26c0fcd9c1f2f8473125a5a64da5a91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae26c0fcd9c1f2f8473125a5a64da5a91\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae26c0fcd9c1f2f8473125a5a64da5a91\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A label for the match which can be filtered on.  <br /></td></tr>\n<tr class=\"memitem:a507c528b18eb5cb4c8efb6b86361961e\" id=\"r_a507c528b18eb5cb4c8efb6b86361961e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a507c528b18eb5cb4c8efb6b86361961e\">Presences</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a507c528b18eb5cb4c8efb6b86361961e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The presences already in the match.  <br /></td></tr>\n<tr class=\"memitem:aafdd659e29dd31f2360657d2703d63e5\" id=\"r_aafdd659e29dd31f2360657d2703d63e5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aafdd659e29dd31f2360657d2703d63e5\">Size</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aafdd659e29dd31f2360657d2703d63e5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The number of users currently in the match.  <br /></td></tr>\n<tr class=\"memitem:a007362b403742126106c65e023a9185f\" id=\"r_a007362b403742126106c65e023a9185f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a007362b403742126106c65e023a9185f\">Self</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a007362b403742126106c65e023a9185f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current user in this match. i.e. Yourself.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A multiplayer match. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a7f2202fa2cf096415690d99c716f3cd1\" name=\"a7f2202fa2cf096415690d99c716f3cd1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f2202fa2cf096415690d99c716f3cd1\">&#9670;&#160;</a></span>UpdatePresences()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.IMatch.UpdatePresences </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presenceEvent</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Apply the joins and leaves from a presence event to the presences tracked by the match. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae082ee8c9b89c975ba3a4ae8365c631b\" name=\"ae082ee8c9b89c975ba3a4ae8365c631b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae082ee8c9b89c975ba3a4ae8365c631b\">&#9670;&#160;</a></span>Authoritative</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IMatch.Authoritative</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If this match has an authoritative handler on the server. </p>\n\n</div>\n</div>\n<a id=\"a70ec08c29ae2f928e191fc13c5694ccb\" name=\"a70ec08c29ae2f928e191fc13c5694ccb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a70ec08c29ae2f928e191fc13c5694ccb\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatch.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique match identifier. </p>\n\n</div>\n</div>\n<a id=\"ae26c0fcd9c1f2f8473125a5a64da5a91\" name=\"ae26c0fcd9c1f2f8473125a5a64da5a91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae26c0fcd9c1f2f8473125a5a64da5a91\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatch.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A label for the match which can be filtered on. </p>\n\n</div>\n</div>\n<a id=\"a507c528b18eb5cb4c8efb6b86361961e\" name=\"a507c528b18eb5cb4c8efb6b86361961e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a507c528b18eb5cb4c8efb6b86361961e\">&#9670;&#160;</a></span>Presences</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IMatch.Presences</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The presences already in the match. </p>\n\n</div>\n</div>\n<a id=\"a007362b403742126106c65e023a9185f\" name=\"a007362b403742126106c65e023a9185f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a007362b403742126106c65e023a9185f\">&#9670;&#160;</a></span>Self</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IMatch.Self</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current user in this match. i.e. Yourself. </p>\n\n</div>\n</div>\n<a id=\"aafdd659e29dd31f2360657d2703d63e5\" name=\"aafdd659e29dd31f2360657d2703d63e5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aafdd659e29dd31f2360657d2703d63e5\">&#9670;&#160;</a></span>Size</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IMatch.Size</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The number of users currently in the match. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_match_8cs.html\">IMatch.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_match.html\">IMatch</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match.js",
    "content": "var interface_nakama_1_1_i_match =\n[\n    [ \"UpdatePresences\", \"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\", null ],\n    [ \"Authoritative\", \"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\", null ],\n    [ \"Label\", \"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\", null ],\n    [ \"Presences\", \"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\", null ],\n    [ \"Self\", \"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\", null ],\n    [ \"Size\", \"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_presence_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match_presence_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchPresenceEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">Nakama.IMatchPresenceEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\">Joins</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">Nakama.IMatchPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\">Leaves</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">Nakama.IMatchPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\">MatchId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">Nakama.IMatchPresenceEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_presence_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatchPresenceEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match_presence_event.html','','interface_nakama_1_1_i_match_presence_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchPresenceEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A batch of join and leave presences for a match.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7105d09667d2a472acc060dc23b7be1d\" id=\"r_a7105d09667d2a472acc060dc23b7be1d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7105d09667d2a472acc060dc23b7be1d\">Joins</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7105d09667d2a472acc060dc23b7be1d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who joined the match.  <br /></td></tr>\n<tr class=\"memitem:a5f98c541a38afdadd16143ef5c4e6e81\" id=\"r_a5f98c541a38afdadd16143ef5c4e6e81\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5f98c541a38afdadd16143ef5c4e6e81\">Leaves</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5f98c541a38afdadd16143ef5c4e6e81\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who left the match.  <br /></td></tr>\n<tr class=\"memitem:a2d6558e1628576b6de1a8a596090104f\" id=\"r_a2d6558e1628576b6de1a8a596090104f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2d6558e1628576b6de1a8a596090104f\">MatchId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2d6558e1628576b6de1a8a596090104f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique match identifier.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A batch of join and leave presences for a match. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7105d09667d2a472acc060dc23b7be1d\" name=\"a7105d09667d2a472acc060dc23b7be1d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7105d09667d2a472acc060dc23b7be1d\">&#9670;&#160;</a></span>Joins</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IMatchPresenceEvent.Joins</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who joined the match. </p>\n\n</div>\n</div>\n<a id=\"a5f98c541a38afdadd16143ef5c4e6e81\" name=\"a5f98c541a38afdadd16143ef5c4e6e81\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5f98c541a38afdadd16143ef5c4e6e81\">&#9670;&#160;</a></span>Leaves</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IMatchPresenceEvent.Leaves</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who left the match. </p>\n\n</div>\n</div>\n<a id=\"a2d6558e1628576b6de1a8a596090104f\" name=\"a2d6558e1628576b6de1a8a596090104f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2d6558e1628576b6de1a8a596090104f\">&#9670;&#160;</a></span>MatchId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchPresenceEvent.MatchId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique match identifier. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_match_presence_event_8cs.html\">IMatchPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_presence_event.js",
    "content": "var interface_nakama_1_1_i_match_presence_event =\n[\n    [ \"Joins\", \"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\", null ],\n    [ \"Leaves\", \"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\", null ],\n    [ \"MatchId\", \"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_state-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match_state.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchState Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\">MatchId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\">OpCode</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\">UserPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">Nakama.IMatchState</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_state.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatchState Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_match_state.html','','interface_nakama_1_1_i_match_state-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchState Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Some game state update in a match.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2050d924ff200392b7a20e9d92ed8d73\" id=\"r_a2050d924ff200392b7a20e9d92ed8d73\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2050d924ff200392b7a20e9d92ed8d73\">MatchId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2050d924ff200392b7a20e9d92ed8d73\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique match identifier.  <br /></td></tr>\n<tr class=\"memitem:adc672df3ed004ec960eb94389d850cca\" id=\"r_adc672df3ed004ec960eb94389d850cca\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adc672df3ed004ec960eb94389d850cca\">OpCode</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adc672df3ed004ec960eb94389d850cca\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The operation code for the state change.  <br /></td></tr>\n<tr class=\"memitem:a381837d92c6e9af9f0d777f8afec5aae\" id=\"r_a381837d92c6e9af9f0d777f8afec5aae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">byte[]&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a381837d92c6e9af9f0d777f8afec5aae\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a381837d92c6e9af9f0d777f8afec5aae\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The byte contents of the state change.  <br /></td></tr>\n<tr class=\"memitem:aea019216d3cf58b88b5511b0d6790bc3\" id=\"r_aea019216d3cf58b88b5511b0d6790bc3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea019216d3cf58b88b5511b0d6790bc3\">UserPresence</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aea019216d3cf58b88b5511b0d6790bc3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Information on the user who sent the state change.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Some game state update in a match. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a2050d924ff200392b7a20e9d92ed8d73\" name=\"a2050d924ff200392b7a20e9d92ed8d73\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2050d924ff200392b7a20e9d92ed8d73\">&#9670;&#160;</a></span>MatchId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchState.MatchId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique match identifier. </p>\n\n</div>\n</div>\n<a id=\"adc672df3ed004ec960eb94389d850cca\" name=\"adc672df3ed004ec960eb94389d850cca\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adc672df3ed004ec960eb94389d850cca\">&#9670;&#160;</a></span>OpCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.IMatchState.OpCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The operation code for the state change. </p>\n<p>This value can be used to mark the type of the contents of the state. </p>\n\n</div>\n</div>\n<a id=\"a381837d92c6e9af9f0d777f8afec5aae\" name=\"a381837d92c6e9af9f0d777f8afec5aae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a381837d92c6e9af9f0d777f8afec5aae\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">byte [] Nakama.IMatchState.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The byte contents of the state change. </p>\n\n</div>\n</div>\n<a id=\"aea019216d3cf58b88b5511b0d6790bc3\" name=\"aea019216d3cf58b88b5511b0d6790bc3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea019216d3cf58b88b5511b0d6790bc3\">&#9670;&#160;</a></span>UserPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IMatchState.UserPresence</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Information on the user who sent the state change. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_match_state_8cs.html\">IMatchState.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_match_state.js",
    "content": "var interface_nakama_1_1_i_match_state =\n[\n    [ \"MatchId\", \"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\", null ],\n    [ \"OpCode\", \"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\", null ],\n    [ \"State\", \"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\", null ],\n    [ \"UserPresence\", \"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_matched-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_matched.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerMatched Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\">MatchId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\">Self</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\">Ticket</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\">Users</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">Nakama.IMatchmakerMatched</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_matched.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatchmakerMatched Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_matched.html','','interface_nakama_1_1_i_matchmaker_matched-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerMatched Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The result of a successful matchmaker operation sent to the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a020c0a5d0df34669a87d2d133456b15e\" id=\"r_a020c0a5d0df34669a87d2d133456b15e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a020c0a5d0df34669a87d2d133456b15e\">MatchId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a020c0a5d0df34669a87d2d133456b15e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id used to join the match.  <br /></td></tr>\n<tr class=\"memitem:a4521a2a0e267c0a5947d70b3fd1f67c7\" id=\"r_a4521a2a0e267c0a5947d70b3fd1f67c7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4521a2a0e267c0a5947d70b3fd1f67c7\">Ticket</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4521a2a0e267c0a5947d70b3fd1f67c7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ticket sent by the server when the user requested to matchmake for other players.  <br /></td></tr>\n<tr class=\"memitem:a39bbcf32c0c6aec47c7ea1b2d92f93f7\" id=\"r_a39bbcf32c0c6aec47c7ea1b2d92f93f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a39bbcf32c0c6aec47c7ea1b2d92f93f7\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a39bbcf32c0c6aec47c7ea1b2d92f93f7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The token used to join a match.  <br /></td></tr>\n<tr class=\"memitem:a117f1d2bb525478f0eed417453877e10\" id=\"r_a117f1d2bb525478f0eed417453877e10\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a117f1d2bb525478f0eed417453877e10\">Users</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a117f1d2bb525478f0eed417453877e10\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The other users matched with this user and the parameters they sent.  <br /></td></tr>\n<tr class=\"memitem:a5716c374d85fb7b2f2f7d41c0fefd848\" id=\"r_a5716c374d85fb7b2f2f7d41c0fefd848\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5716c374d85fb7b2f2f7d41c0fefd848\">Self</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5716c374d85fb7b2f2f7d41c0fefd848\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current user who matched with opponents.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The result of a successful matchmaker operation sent to the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a020c0a5d0df34669a87d2d133456b15e\" name=\"a020c0a5d0df34669a87d2d133456b15e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a020c0a5d0df34669a87d2d133456b15e\">&#9670;&#160;</a></span>MatchId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchmakerMatched.MatchId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id used to join the match. </p>\n<p>A match ID used to join the match. </p>\n\n</div>\n</div>\n<a id=\"a5716c374d85fb7b2f2f7d41c0fefd848\" name=\"a5716c374d85fb7b2f2f7d41c0fefd848\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5716c374d85fb7b2f2f7d41c0fefd848\">&#9670;&#160;</a></span>Self</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a> Nakama.IMatchmakerMatched.Self</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current user who matched with opponents. </p>\n\n</div>\n</div>\n<a id=\"a4521a2a0e267c0a5947d70b3fd1f67c7\" name=\"a4521a2a0e267c0a5947d70b3fd1f67c7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4521a2a0e267c0a5947d70b3fd1f67c7\">&#9670;&#160;</a></span>Ticket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchmakerMatched.Ticket</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ticket sent by the server when the user requested to matchmake for other players. </p>\n\n</div>\n</div>\n<a id=\"a39bbcf32c0c6aec47c7ea1b2d92f93f7\" name=\"a39bbcf32c0c6aec47c7ea1b2d92f93f7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a39bbcf32c0c6aec47c7ea1b2d92f93f7\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchmakerMatched.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The token used to join a match. </p>\n\n</div>\n</div>\n<a id=\"a117f1d2bb525478f0eed417453877e10\" name=\"a117f1d2bb525478f0eed417453877e10\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a117f1d2bb525478f0eed417453877e10\">&#9670;&#160;</a></span>Users</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a>&gt; Nakama.IMatchmakerMatched.Users</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The other users matched with this user and the parameters they sent. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_matchmaker_matched_8cs.html\">IMatchmakerMatched.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_matched.js",
    "content": "var interface_nakama_1_1_i_matchmaker_matched =\n[\n    [ \"MatchId\", \"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\", null ],\n    [ \"Self\", \"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\", null ],\n    [ \"Ticket\", \"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\", null ],\n    [ \"Token\", \"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\", null ],\n    [ \"Users\", \"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_ticket-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_ticket.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerTicket Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">Nakama.IMatchmakerTicket</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\">Ticket</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">Nakama.IMatchmakerTicket</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_ticket.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatchmakerTicket Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_ticket.html','','interface_nakama_1_1_i_matchmaker_ticket-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerTicket Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The matchmaker ticket received from the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a8f9d6e24b7a71bb40e18d374203b9eef\" id=\"r_a8f9d6e24b7a71bb40e18d374203b9eef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8f9d6e24b7a71bb40e18d374203b9eef\">Ticket</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8f9d6e24b7a71bb40e18d374203b9eef\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ticket generated by the matchmaker.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The matchmaker ticket received from the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a8f9d6e24b7a71bb40e18d374203b9eef\" name=\"a8f9d6e24b7a71bb40e18d374203b9eef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8f9d6e24b7a71bb40e18d374203b9eef\">&#9670;&#160;</a></span>Ticket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IMatchmakerTicket.Ticket</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ticket generated by the matchmaker. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_matchmaker_ticket_8cs.html\">IMatchmakerTicket.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_ticket.js",
    "content": "var interface_nakama_1_1_i_matchmaker_ticket =\n[\n    [ \"Ticket\", \"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_user-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_user.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerUser Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">Nakama.IMatchmakerUser</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\">NumericProperties</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">Nakama.IMatchmakerUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\">Presence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">Nakama.IMatchmakerUser</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\">StringProperties</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">Nakama.IMatchmakerUser</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_user.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IMatchmakerUser Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_matchmaker_user.html','','interface_nakama_1_1_i_matchmaker_user-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IMatchmakerUser Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The user with the parameters they sent to the server when asking for opponents.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a4466b6db559bdc6432d15df937c39a96\" id=\"r_a4466b6db559bdc6432d15df937c39a96\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, double &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4466b6db559bdc6432d15df937c39a96\">NumericProperties</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4466b6db559bdc6432d15df937c39a96\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The numeric properties which this user asked to matchmake with.  <br /></td></tr>\n<tr class=\"memitem:a733ad4dc6253d6b01a3e3893b3b55d62\" id=\"r_a733ad4dc6253d6b01a3e3893b3b55d62\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a733ad4dc6253d6b01a3e3893b3b55d62\">Presence</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a733ad4dc6253d6b01a3e3893b3b55d62\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The presence of the user.  <br /></td></tr>\n<tr class=\"memitem:a89a88598a9affd0f7597b800816899fa\" id=\"r_a89a88598a9affd0f7597b800816899fa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a89a88598a9affd0f7597b800816899fa\">StringProperties</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a89a88598a9affd0f7597b800816899fa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The string properties which this user asked to matchmake with.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The user with the parameters they sent to the server when asking for opponents. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a4466b6db559bdc6432d15df937c39a96\" name=\"a4466b6db559bdc6432d15df937c39a96\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4466b6db559bdc6432d15df937c39a96\">&#9670;&#160;</a></span>NumericProperties</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, double&gt; Nakama.IMatchmakerUser.NumericProperties</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The numeric properties which this user asked to matchmake with. </p>\n\n</div>\n</div>\n<a id=\"a733ad4dc6253d6b01a3e3893b3b55d62\" name=\"a733ad4dc6253d6b01a3e3893b3b55d62\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a733ad4dc6253d6b01a3e3893b3b55d62\">&#9670;&#160;</a></span>Presence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IMatchmakerUser.Presence</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The presence of the user. </p>\n\n</div>\n</div>\n<a id=\"a89a88598a9affd0f7597b800816899fa\" name=\"a89a88598a9affd0f7597b800816899fa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a89a88598a9affd0f7597b800816899fa\">&#9670;&#160;</a></span>StringProperties</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.IMatchmakerUser.StringProperties</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The string properties which this user asked to matchmake with. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_matchmaker_matched_8cs.html\">IMatchmakerMatched.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_matchmaker_user.js",
    "content": "var interface_nakama_1_1_i_matchmaker_user =\n[\n    [ \"NumericProperties\", \"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\", null ],\n    [ \"Presence\", \"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\", null ],\n    [ \"StringProperties\", \"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IParty Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\">Hidden</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\">Leader</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\">MaxSize</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\">Presences</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\">Self</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\">UpdatePresences</a>(IPartyPresenceEvent presenceEvent)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">Nakama.IParty</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IParty Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party.html','','interface_nakama_1_1_i_party-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IParty Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Incoming information about a party.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a7b2c8949ded6a0fd6f2e075a4d13fdac\" id=\"r_a7b2c8949ded6a0fd6f2e075a4d13fdac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b2c8949ded6a0fd6f2e075a4d13fdac\">UpdatePresences</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a> presenceEvent)</td></tr>\n<tr class=\"memdesc:a7b2c8949ded6a0fd6f2e075a4d13fdac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apply the joins and leaves from a presence event to the presences tracked by the party.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3d156d302a3f421438e0dc35425c97bf\" id=\"r_a3d156d302a3f421438e0dc35425c97bf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3d156d302a3f421438e0dc35425c97bf\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3d156d302a3f421438e0dc35425c97bf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique party identifier.  <br /></td></tr>\n<tr class=\"memitem:a9e8a6732f73a4d6b73a082cc08d7202e\" id=\"r_a9e8a6732f73a4d6b73a082cc08d7202e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e8a6732f73a4d6b73a082cc08d7202e\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9e8a6732f73a4d6b73a082cc08d7202e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True, if the party is open to join.  <br /></td></tr>\n<tr class=\"memitem:a6fdb92d4edf0942dfd1db557182bc66e\" id=\"r_a6fdb92d4edf0942dfd1db557182bc66e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6fdb92d4edf0942dfd1db557182bc66e\">Hidden</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6fdb92d4edf0942dfd1db557182bc66e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True, if the party is hidden from listing.  <br /></td></tr>\n<tr class=\"memitem:a0d31a7df38955d4114f7eec2e0223869\" id=\"r_a0d31a7df38955d4114f7eec2e0223869\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d31a7df38955d4114f7eec2e0223869\">MaxSize</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0d31a7df38955d4114f7eec2e0223869\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The maximum number of party members.  <br /></td></tr>\n<tr class=\"memitem:a77d573882e8cc40b0475b6b3967bb2cb\" id=\"r_a77d573882e8cc40b0475b6b3967bb2cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a77d573882e8cc40b0475b6b3967bb2cb\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a77d573882e8cc40b0475b6b3967bb2cb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Label to filter results in Party listing.  <br /></td></tr>\n<tr class=\"memitem:a7be0281272b44f71b4306592ff2470e2\" id=\"r_a7be0281272b44f71b4306592ff2470e2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7be0281272b44f71b4306592ff2470e2\">Self</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7be0281272b44f71b4306592ff2470e2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current user in this party. i.e. Yourself.  <br /></td></tr>\n<tr class=\"memitem:a393481bb0a4026dc26adf8522e339991\" id=\"r_a393481bb0a4026dc26adf8522e339991\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a393481bb0a4026dc26adf8522e339991\">Leader</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a393481bb0a4026dc26adf8522e339991\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current party leader.  <br /></td></tr>\n<tr class=\"memitem:a9e44c485a4773c8b44056ec160ad1e7e\" id=\"r_a9e44c485a4773c8b44056ec160ad1e7e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e44c485a4773c8b44056ec160ad1e7e\">Presences</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9e44c485a4773c8b44056ec160ad1e7e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All members currently in the party.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Incoming information about a party. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a7b2c8949ded6a0fd6f2e075a4d13fdac\" name=\"a7b2c8949ded6a0fd6f2e075a4d13fdac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b2c8949ded6a0fd6f2e075a4d13fdac\">&#9670;&#160;</a></span>UpdatePresences()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Nakama.IParty.UpdatePresences </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presenceEvent</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Apply the joins and leaves from a presence event to the presences tracked by the party. </p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6fdb92d4edf0942dfd1db557182bc66e\" name=\"a6fdb92d4edf0942dfd1db557182bc66e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6fdb92d4edf0942dfd1db557182bc66e\">&#9670;&#160;</a></span>Hidden</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IParty.Hidden</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True, if the party is hidden from listing. </p>\n\n</div>\n</div>\n<a id=\"a3d156d302a3f421438e0dc35425c97bf\" name=\"a3d156d302a3f421438e0dc35425c97bf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3d156d302a3f421438e0dc35425c97bf\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IParty.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique party identifier. </p>\n\n</div>\n</div>\n<a id=\"a77d573882e8cc40b0475b6b3967bb2cb\" name=\"a77d573882e8cc40b0475b6b3967bb2cb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a77d573882e8cc40b0475b6b3967bb2cb\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IParty.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Label to filter results in Party listing. </p>\n\n</div>\n</div>\n<a id=\"a393481bb0a4026dc26adf8522e339991\" name=\"a393481bb0a4026dc26adf8522e339991\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a393481bb0a4026dc26adf8522e339991\">&#9670;&#160;</a></span>Leader</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IParty.Leader</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current party leader. </p>\n\n</div>\n</div>\n<a id=\"a0d31a7df38955d4114f7eec2e0223869\" name=\"a0d31a7df38955d4114f7eec2e0223869\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d31a7df38955d4114f7eec2e0223869\">&#9670;&#160;</a></span>MaxSize</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IParty.MaxSize</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The maximum number of party members. </p>\n\n</div>\n</div>\n<a id=\"a9e8a6732f73a4d6b73a082cc08d7202e\" name=\"a9e8a6732f73a4d6b73a082cc08d7202e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e8a6732f73a4d6b73a082cc08d7202e\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IParty.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True, if the party is open to join. </p>\n\n</div>\n</div>\n<a id=\"a9e44c485a4773c8b44056ec160ad1e7e\" name=\"a9e44c485a4773c8b44056ec160ad1e7e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e44c485a4773c8b44056ec160ad1e7e\">&#9670;&#160;</a></span>Presences</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IParty.Presences</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>All members currently in the party. </p>\n\n</div>\n</div>\n<a id=\"a7be0281272b44f71b4306592ff2470e2\" name=\"a7be0281272b44f71b4306592ff2470e2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7be0281272b44f71b4306592ff2470e2\">&#9670;&#160;</a></span>Self</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IParty.Self</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The current user in this party. i.e. Yourself. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_8cs.html\">IParty.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party.html\">IParty</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party.js",
    "content": "var interface_nakama_1_1_i_party =\n[\n    [ \"UpdatePresences\", \"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\", null ],\n    [ \"Hidden\", \"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\", null ],\n    [ \"Id\", \"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\", null ],\n    [ \"Label\", \"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\", null ],\n    [ \"Leader\", \"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\", null ],\n    [ \"MaxSize\", \"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\", null ],\n    [ \"Presences\", \"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\", null ],\n    [ \"Self\", \"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_close-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_close.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyClose Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">Nakama.IPartyClose</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">Nakama.IPartyClose</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_close.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyClose Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_close.html','','interface_nakama_1_1_i_party_close-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyClose Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>End a party, kicking all party members and closing it.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a437b58653186c594f8e676967eace80b\" id=\"r_a437b58653186c594f8e676967eace80b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a437b58653186c594f8e676967eace80b\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a437b58653186c594f8e676967eace80b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party to close.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>End a party, kicking all party members and closing it. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a437b58653186c594f8e676967eace80b\" name=\"a437b58653186c594f8e676967eace80b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a437b58653186c594f8e676967eace80b\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyClose.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party to close. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_close_8cs.html\">IPartyClose.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_close.js",
    "content": "var interface_nakama_1_1_i_party_close =\n[\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_data-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_data.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyData Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\">Data</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\">OpCode</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\">Presence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">Nakama.IPartyData</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_data.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyData Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_data.html','','interface_nakama_1_1_i_party_data-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyData Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Incoming party data delivered from the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af879054b576df0b0756c151726214314\" id=\"r_af879054b576df0b0756c151726214314\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af879054b576df0b0756c151726214314\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af879054b576df0b0756c151726214314\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party.  <br /></td></tr>\n<tr class=\"memitem:a0f856779340e95f45c63bc5a6e9bc6f5\" id=\"r_a0f856779340e95f45c63bc5a6e9bc6f5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f856779340e95f45c63bc5a6e9bc6f5\">Presence</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0f856779340e95f45c63bc5a6e9bc6f5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A reference to the user presence that sent this data, if any.  <br /></td></tr>\n<tr class=\"memitem:a85bc60d970922aea6a58c3662b6142e1\" id=\"r_a85bc60d970922aea6a58c3662b6142e1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a85bc60d970922aea6a58c3662b6142e1\">OpCode</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a85bc60d970922aea6a58c3662b6142e1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The operation code the message was sent with.  <br /></td></tr>\n<tr class=\"memitem:ae5fba3ce723e573b0e87a328718b186e\" id=\"r_ae5fba3ce723e573b0e87a328718b186e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">byte[]&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae5fba3ce723e573b0e87a328718b186e\">Data</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae5fba3ce723e573b0e87a328718b186e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Data payload, if any.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Incoming party data delivered from the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae5fba3ce723e573b0e87a328718b186e\" name=\"ae5fba3ce723e573b0e87a328718b186e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae5fba3ce723e573b0e87a328718b186e\">&#9670;&#160;</a></span>Data</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">byte [] Nakama.IPartyData.Data</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Data payload, if any. </p>\n\n</div>\n</div>\n<a id=\"a85bc60d970922aea6a58c3662b6142e1\" name=\"a85bc60d970922aea6a58c3662b6142e1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a85bc60d970922aea6a58c3662b6142e1\">&#9670;&#160;</a></span>OpCode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.IPartyData.OpCode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The operation code the message was sent with. </p>\n\n</div>\n</div>\n<a id=\"af879054b576df0b0756c151726214314\" name=\"af879054b576df0b0756c151726214314\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af879054b576df0b0756c151726214314\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyData.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party. </p>\n\n</div>\n</div>\n<a id=\"a0f856779340e95f45c63bc5a6e9bc6f5\" name=\"a0f856779340e95f45c63bc5a6e9bc6f5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f856779340e95f45c63bc5a6e9bc6f5\">&#9670;&#160;</a></span>Presence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IPartyData.Presence</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A reference to the user presence that sent this data, if any. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_data_8cs.html\">IPartyData.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_data.js",
    "content": "var interface_nakama_1_1_i_party_data =\n[\n    [ \"Data\", \"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\", null ],\n    [ \"OpCode\", \"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\", null ],\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\", null ],\n    [ \"Presence\", \"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_join_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_join_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyJoinRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">Nakama.IPartyJoinRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">Nakama.IPartyJoinRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\">Presences</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">Nakama.IPartyJoinRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_join_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyJoinRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_join_request.html','','interface_nakama_1_1_i_party_join_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyJoinRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Incoming notification for one or more new presences attempting to join the party.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a6be31d8ce7c551aabced57f808c4483d\" id=\"r_a6be31d8ce7c551aabced57f808c4483d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6be31d8ce7c551aabced57f808c4483d\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6be31d8ce7c551aabced57f808c4483d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party to get a list of join requests for.  <br /></td></tr>\n<tr class=\"memitem:aca309629a8fec83d7895d4f66565ae29\" id=\"r_aca309629a8fec83d7895d4f66565ae29\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aca309629a8fec83d7895d4f66565ae29\">Presences</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aca309629a8fec83d7895d4f66565ae29\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences attempting to join, or who have joined.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Incoming notification for one or more new presences attempting to join the party. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a6be31d8ce7c551aabced57f808c4483d\" name=\"a6be31d8ce7c551aabced57f808c4483d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6be31d8ce7c551aabced57f808c4483d\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyJoinRequest.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party to get a list of join requests for. </p>\n\n</div>\n</div>\n<a id=\"aca309629a8fec83d7895d4f66565ae29\" name=\"aca309629a8fec83d7895d4f66565ae29\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aca309629a8fec83d7895d4f66565ae29\">&#9670;&#160;</a></span>Presences</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IPartyJoinRequest.Presences</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences attempting to join, or who have joined. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_join_request_8cs.html\">IPartyJoinRequest.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_join_request.js",
    "content": "var interface_nakama_1_1_i_party_join_request =\n[\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\", null ],\n    [ \"Presences\", \"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_leader-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_leader.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyLeader Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">Nakama.IPartyLeader</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">Nakama.IPartyLeader</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\">Presence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">Nakama.IPartyLeader</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_leader.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyLeader Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_leader.html','','interface_nakama_1_1_i_party_leader-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyLeader Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Announcement of a new party leader.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a944e79a62b9e234a8d3207bca6be04a8\" id=\"r_a944e79a62b9e234a8d3207bca6be04a8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a944e79a62b9e234a8d3207bca6be04a8\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a944e79a62b9e234a8d3207bca6be04a8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party to announce the new leader for.  <br /></td></tr>\n<tr class=\"memitem:ac2a714b4b180259071077b8e500307b7\" id=\"r_ac2a714b4b180259071077b8e500307b7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac2a714b4b180259071077b8e500307b7\">Presence</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac2a714b4b180259071077b8e500307b7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The presence of the new party leader.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Announcement of a new party leader. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a944e79a62b9e234a8d3207bca6be04a8\" name=\"a944e79a62b9e234a8d3207bca6be04a8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a944e79a62b9e234a8d3207bca6be04a8\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyLeader.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party to announce the new leader for. </p>\n\n</div>\n</div>\n<a id=\"ac2a714b4b180259071077b8e500307b7\" name=\"ac2a714b4b180259071077b8e500307b7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac2a714b4b180259071077b8e500307b7\">&#9670;&#160;</a></span>Presence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IPartyLeader.Presence</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The presence of the new party leader. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_leader_8cs.html\">IPartyLeader.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_leader.js",
    "content": "var interface_nakama_1_1_i_party_leader =\n[\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\", null ],\n    [ \"Presence\", \"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_matchmaker_ticket-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_matchmaker_ticket.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyMatchmakerTicket Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">Nakama.IPartyMatchmakerTicket</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">Nakama.IPartyMatchmakerTicket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\">Ticket</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">Nakama.IPartyMatchmakerTicket</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_matchmaker_ticket.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyMatchmakerTicket Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_matchmaker_ticket.html','','interface_nakama_1_1_i_party_matchmaker_ticket-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyMatchmakerTicket Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A response from starting a new party matchmaking process.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1ef8dc7b33d43eff238c54f5f25fb12c\" id=\"r_a1ef8dc7b33d43eff238c54f5f25fb12c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1ef8dc7b33d43eff238c54f5f25fb12c\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1ef8dc7b33d43eff238c54f5f25fb12c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party.  <br /></td></tr>\n<tr class=\"memitem:a11b143c9e178fc5d9b1986071b9b95af\" id=\"r_a11b143c9e178fc5d9b1986071b9b95af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a11b143c9e178fc5d9b1986071b9b95af\">Ticket</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a11b143c9e178fc5d9b1986071b9b95af\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ticket that can be used to cancel matchmaking.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A response from starting a new party matchmaking process. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1ef8dc7b33d43eff238c54f5f25fb12c\" name=\"a1ef8dc7b33d43eff238c54f5f25fb12c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1ef8dc7b33d43eff238c54f5f25fb12c\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyMatchmakerTicket.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party. </p>\n\n</div>\n</div>\n<a id=\"a11b143c9e178fc5d9b1986071b9b95af\" name=\"a11b143c9e178fc5d9b1986071b9b95af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a11b143c9e178fc5d9b1986071b9b95af\">&#9670;&#160;</a></span>Ticket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyMatchmakerTicket.Ticket</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ticket that can be used to cancel matchmaking. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_matchmaker_ticket_8cs.html\">IPartyMatchmakerTicket.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_matchmaker_ticket.js",
    "content": "var interface_nakama_1_1_i_party_matchmaker_ticket =\n[\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\", null ],\n    [ \"Ticket\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_presence_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_presence_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyPresenceEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">Nakama.IPartyPresenceEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\">Joins</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">Nakama.IPartyPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\">Leaves</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">Nakama.IPartyPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">Nakama.IPartyPresenceEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_presence_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyPresenceEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_presence_event.html','','interface_nakama_1_1_i_party_presence_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyPresenceEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Presence update for a particular party.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a2935ce617eca766d6bed0592cd15da83\" id=\"r_a2935ce617eca766d6bed0592cd15da83\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2935ce617eca766d6bed0592cd15da83\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2935ce617eca766d6bed0592cd15da83\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the party.  <br /></td></tr>\n<tr class=\"memitem:a7b50a413e790ec2d0a71614a2f4f15ce\" id=\"r_a7b50a413e790ec2d0a71614a2f4f15ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7b50a413e790ec2d0a71614a2f4f15ce\">Joins</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7b50a413e790ec2d0a71614a2f4f15ce\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user presences that have just joined the party.  <br /></td></tr>\n<tr class=\"memitem:a4ff05fb37ee002a68b07aa558f960447\" id=\"r_a4ff05fb37ee002a68b07aa558f960447\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4ff05fb37ee002a68b07aa558f960447\">Leaves</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4ff05fb37ee002a68b07aa558f960447\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user presences that have just left the party.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Presence update for a particular party. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7b50a413e790ec2d0a71614a2f4f15ce\" name=\"a7b50a413e790ec2d0a71614a2f4f15ce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7b50a413e790ec2d0a71614a2f4f15ce\">&#9670;&#160;</a></span>Joins</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IPartyPresenceEvent.Joins</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user presences that have just joined the party. </p>\n\n</div>\n</div>\n<a id=\"a4ff05fb37ee002a68b07aa558f960447\" name=\"a4ff05fb37ee002a68b07aa558f960447\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4ff05fb37ee002a68b07aa558f960447\">&#9670;&#160;</a></span>Leaves</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IPartyPresenceEvent.Leaves</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user presences that have just left the party. </p>\n\n</div>\n</div>\n<a id=\"a2935ce617eca766d6bed0592cd15da83\" name=\"a2935ce617eca766d6bed0592cd15da83\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2935ce617eca766d6bed0592cd15da83\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyPresenceEvent.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the party. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_presence_event_8cs.html\">IPartyPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_presence_event.js",
    "content": "var interface_nakama_1_1_i_party_presence_event =\n[\n    [ \"Joins\", \"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\", null ],\n    [ \"Leaves\", \"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\", null ],\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_update-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_update.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyUpdate Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\">Hidden</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\">Open</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\">PartyId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">Nakama.IPartyUpdate</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_update.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IPartyUpdate Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_party_update.html','','interface_nakama_1_1_i_party_update-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IPartyUpdate Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Incoming information about a party.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0a68d089856f1a8b2d3027b2032bc547\" id=\"r_a0a68d089856f1a8b2d3027b2032bc547\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0a68d089856f1a8b2d3027b2032bc547\">PartyId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0a68d089856f1a8b2d3027b2032bc547\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The unique party identifier.  <br /></td></tr>\n<tr class=\"memitem:aa9febdb20f83da88868d91d0f960c4e6\" id=\"r_aa9febdb20f83da88868d91d0f960c4e6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa9febdb20f83da88868d91d0f960c4e6\">Open</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa9febdb20f83da88868d91d0f960c4e6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True, if the party is open to join.  <br /></td></tr>\n<tr class=\"memitem:a29708582bcec9fd3dd11314910eeac9d\" id=\"r_a29708582bcec9fd3dd11314910eeac9d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29708582bcec9fd3dd11314910eeac9d\">Hidden</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a29708582bcec9fd3dd11314910eeac9d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True, if the party is show in listing.  <br /></td></tr>\n<tr class=\"memitem:ab57ed6105d885891a22275f3a07104d7\" id=\"r_ab57ed6105d885891a22275f3a07104d7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab57ed6105d885891a22275f3a07104d7\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab57ed6105d885891a22275f3a07104d7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Label to filter results in Party listing.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Incoming information about a party. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a29708582bcec9fd3dd11314910eeac9d\" name=\"a29708582bcec9fd3dd11314910eeac9d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29708582bcec9fd3dd11314910eeac9d\">&#9670;&#160;</a></span>Hidden</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IPartyUpdate.Hidden</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True, if the party is show in listing. </p>\n\n</div>\n</div>\n<a id=\"ab57ed6105d885891a22275f3a07104d7\" name=\"ab57ed6105d885891a22275f3a07104d7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab57ed6105d885891a22275f3a07104d7\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyUpdate.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Label to filter results in Party listing. </p>\n\n</div>\n</div>\n<a id=\"aa9febdb20f83da88868d91d0f960c4e6\" name=\"aa9febdb20f83da88868d91d0f960c4e6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa9febdb20f83da88868d91d0f960c4e6\">&#9670;&#160;</a></span>Open</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IPartyUpdate.Open</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True, if the party is open to join. </p>\n\n</div>\n</div>\n<a id=\"a0a68d089856f1a8b2d3027b2032bc547\" name=\"a0a68d089856f1a8b2d3027b2032bc547\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0a68d089856f1a8b2d3027b2032bc547\">&#9670;&#160;</a></span>PartyId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IPartyUpdate.PartyId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The unique party identifier. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_party_update_8cs.html\">IPartyUpdate.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_party_update.js",
    "content": "var interface_nakama_1_1_i_party_update =\n[\n    [ \"Hidden\", \"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\", null ],\n    [ \"Label\", \"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\", null ],\n    [ \"Open\", \"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\", null ],\n    [ \"PartyId\", \"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_protobuf_any-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_protobuf_any.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IProtobufAny Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">Nakama.IProtobufAny</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\">type</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">Nakama.IProtobufAny</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_protobuf_any.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IProtobufAny Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_protobuf_any.html','','interface_nakama_1_1_i_protobuf_any-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IProtobufAny Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae781aedea35e5e653ab922960e545423\" id=\"r_ae781aedea35e5e653ab922960e545423\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae781aedea35e5e653ab922960e545423\">type</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae781aedea35e5e653ab922960e545423\" name=\"ae781aedea35e5e653ab922960e545423\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae781aedea35e5e653ab922960e545423\">&#9670;&#160;</a></span>type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IProtobufAny.type</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_protobuf_any.html\">IProtobufAny</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_protobuf_any.js",
    "content": "var interface_nakama_1_1_i_protobuf_any =\n[\n    [ \"type\", \"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_rpc_status-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_rpc_status.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IRpcStatus Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\">Details</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\">Message</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">Nakama.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_rpc_status.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IRpcStatus Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_rpc_status.html','','interface_nakama_1_1_i_rpc_status-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IRpcStatus Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a04e9ad1b13fc6247f341b354ac13bf69\" id=\"r_a04e9ad1b13fc6247f341b354ac13bf69\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a04e9ad1b13fc6247f341b354ac13bf69\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memitem:a0d06a965ab9ee4dc04346be0bc331471\" id=\"r_a0d06a965ab9ee4dc04346be0bc331471\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">IProtobufAny</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0d06a965ab9ee4dc04346be0bc331471\">Details</a><code> [get]</code></td></tr>\n<tr class=\"memitem:accfc753caa1c6c051acfe8d6cd028487\" id=\"r_accfc753caa1c6c051acfe8d6cd028487\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#accfc753caa1c6c051acfe8d6cd028487\">Message</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a04e9ad1b13fc6247f341b354ac13bf69\" name=\"a04e9ad1b13fc6247f341b354ac13bf69\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a04e9ad1b13fc6247f341b354ac13bf69\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IRpcStatus.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"a0d06a965ab9ee4dc04346be0bc331471\" name=\"a0d06a965ab9ee4dc04346be0bc331471\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0d06a965ab9ee4dc04346be0bc331471\">&#9670;&#160;</a></span>Details</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">IProtobufAny</a>&gt; Nakama.IRpcStatus.Details</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"accfc753caa1c6c051acfe8d6cd028487\" name=\"accfc753caa1c6c051acfe8d6cd028487\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#accfc753caa1c6c051acfe8d6cd028487\">&#9670;&#160;</a></span>Message</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IRpcStatus.Message</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_rpc_status.html\">IRpcStatus</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_rpc_status.js",
    "content": "var interface_nakama_1_1_i_rpc_status =\n[\n    [ \"Code\", \"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\", null ],\n    [ \"Details\", \"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\", null ],\n    [ \"Message\", \"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISession Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\">AuthToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\">Created</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\">ExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\">HasExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\">HasRefreshExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\">IsExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\">IsRefreshExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\">RefreshExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\">Vars</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">Nakama.ISession</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.ISession Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_session.html','','interface_nakama_1_1_i_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISession Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.ISession:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_session.png\" usemap=\"#Nakama_2EISession_map\" alt=\"\"/>\n  <map id=\"Nakama_2EISession_map\" name=\"Nakama_2EISession_map\">\n<area href=\"class_nakama_1_1_session.html\" alt=\"Nakama.Session\" shape=\"rect\" coords=\"0,56,108,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aea82fdba74d6b20eb203b4fc2ccd19e6\" id=\"r_aea82fdba74d6b20eb203b4fc2ccd19e6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea82fdba74d6b20eb203b4fc2ccd19e6\">HasExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:aea82fdba74d6b20eb203b4fc2ccd19e6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check the session has expired against the offset time.  <br /></td></tr>\n<tr class=\"memitem:a8c7f2700402ab995544a4ff852ad5f35\" id=\"r_a8c7f2700402ab995544a4ff852ad5f35\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8c7f2700402ab995544a4ff852ad5f35\">HasRefreshExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:a8c7f2700402ab995544a4ff852ad5f35\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check if the refresh token has expired against the offset time.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a49d091792a2145d7dbc72cbf36a60d91\" id=\"r_a49d091792a2145d7dbc72cbf36a60d91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a49d091792a2145d7dbc72cbf36a60d91\">AuthToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a49d091792a2145d7dbc72cbf36a60d91\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The authorization token used to construct this session.  <br /></td></tr>\n<tr class=\"memitem:a37d250a03d534d84538f4aa9473427bd\" id=\"r_a37d250a03d534d84538f4aa9473427bd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a37d250a03d534d84538f4aa9473427bd\">Created</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a37d250a03d534d84538f4aa9473427bd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the user account for this session was just created.  <br /></td></tr>\n<tr class=\"memitem:a0b12e1f2b4c2095ec96bc3c63e4177d7\" id=\"r_a0b12e1f2b4c2095ec96bc3c63e4177d7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0b12e1f2b4c2095ec96bc3c63e4177d7\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0b12e1f2b4c2095ec96bc3c63e4177d7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session was created.  <br /></td></tr>\n<tr class=\"memitem:ae66907a1582b6c57eb96358cc27c93fc\" id=\"r_ae66907a1582b6c57eb96358cc27c93fc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae66907a1582b6c57eb96358cc27c93fc\">ExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae66907a1582b6c57eb96358cc27c93fc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session will expire.  <br /></td></tr>\n<tr class=\"memitem:abe374a4f8e250ffb5207740ee935e791\" id=\"r_abe374a4f8e250ffb5207740ee935e791\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abe374a4f8e250ffb5207740ee935e791\">IsExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abe374a4f8e250ffb5207740ee935e791\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the session has expired.  <br /></td></tr>\n<tr class=\"memitem:a34a46ea21fd6d69cab5130eda5dee813\" id=\"r_a34a46ea21fd6d69cab5130eda5dee813\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a34a46ea21fd6d69cab5130eda5dee813\">IsRefreshExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a34a46ea21fd6d69cab5130eda5dee813\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the refresh token has expired.  <br /></td></tr>\n<tr class=\"memitem:a8a56822b1939c90ba048c64a5522a83f\" id=\"r_a8a56822b1939c90ba048c64a5522a83f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8a56822b1939c90ba048c64a5522a83f\">RefreshExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8a56822b1939c90ba048c64a5522a83f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when the refresh token will expire.  <br /></td></tr>\n<tr class=\"memitem:add730c3a5733264132cc63f39eb53b31\" id=\"r_add730c3a5733264132cc63f39eb53b31\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#add730c3a5733264132cc63f39eb53b31\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:add730c3a5733264132cc63f39eb53b31\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token that can be used for session token renewal.  <br /></td></tr>\n<tr class=\"memitem:a35d8154eb7deff8e2bf953b23561bf19\" id=\"r_a35d8154eb7deff8e2bf953b23561bf19\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35d8154eb7deff8e2bf953b23561bf19\">Vars</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a35d8154eb7deff8e2bf953b23561bf19\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Any custom properties associated with this session.  <br /></td></tr>\n<tr class=\"memitem:a29cddbd0cb5b8ec5cbffa1ec028e4ee5\" id=\"r_a29cddbd0cb5b8ec5cbffa1ec028e4ee5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a29cddbd0cb5b8ec5cbffa1ec028e4ee5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username of the user who owns this session.  <br /></td></tr>\n<tr class=\"memitem:aa830ae1045ddd2590e36f8c4feef7c9d\" id=\"r_aa830ae1045ddd2590e36f8c4feef7c9d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa830ae1045ddd2590e36f8c4feef7c9d\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa830ae1045ddd2590e36f8c4feef7c9d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the user who owns this session.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"aea82fdba74d6b20eb203b4fc2ccd19e6\" name=\"aea82fdba74d6b20eb203b4fc2ccd19e6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea82fdba74d6b20eb203b4fc2ccd19e6\">&#9670;&#160;</a></span>HasExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISession.HasExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Check the session has expired against the offset time. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a8c7f2700402ab995544a4ff852ad5f35\" name=\"a8c7f2700402ab995544a4ff852ad5f35\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8c7f2700402ab995544a4ff852ad5f35\">&#9670;&#160;</a></span>HasRefreshExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISession.HasRefreshExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Check if the refresh token has expired against the offset time. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a49d091792a2145d7dbc72cbf36a60d91\" name=\"a49d091792a2145d7dbc72cbf36a60d91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a49d091792a2145d7dbc72cbf36a60d91\">&#9670;&#160;</a></span>AuthToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.ISession.AuthToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The authorization token used to construct this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a37d250a03d534d84538f4aa9473427bd\" name=\"a37d250a03d534d84538f4aa9473427bd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a37d250a03d534d84538f4aa9473427bd\">&#9670;&#160;</a></span>Created</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISession.Created</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the user account for this session was just created. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a0b12e1f2b4c2095ec96bc3c63e4177d7\" name=\"a0b12e1f2b4c2095ec96bc3c63e4177d7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0b12e1f2b4c2095ec96bc3c63e4177d7\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.ISession.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session was created. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"ae66907a1582b6c57eb96358cc27c93fc\" name=\"ae66907a1582b6c57eb96358cc27c93fc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae66907a1582b6c57eb96358cc27c93fc\">&#9670;&#160;</a></span>ExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.ISession.ExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session will expire. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"abe374a4f8e250ffb5207740ee935e791\" name=\"abe374a4f8e250ffb5207740ee935e791\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abe374a4f8e250ffb5207740ee935e791\">&#9670;&#160;</a></span>IsExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISession.IsExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the session has expired. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a34a46ea21fd6d69cab5130eda5dee813\" name=\"a34a46ea21fd6d69cab5130eda5dee813\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a34a46ea21fd6d69cab5130eda5dee813\">&#9670;&#160;</a></span>IsRefreshExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISession.IsRefreshExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the refresh token has expired. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a8a56822b1939c90ba048c64a5522a83f\" name=\"a8a56822b1939c90ba048c64a5522a83f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8a56822b1939c90ba048c64a5522a83f\">&#9670;&#160;</a></span>RefreshExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Nakama.ISession.RefreshExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when the refresh token will expire. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"add730c3a5733264132cc63f39eb53b31\" name=\"add730c3a5733264132cc63f39eb53b31\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#add730c3a5733264132cc63f39eb53b31\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.ISession.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token that can be used for session token renewal. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"aa830ae1045ddd2590e36f8c4feef7c9d\" name=\"aa830ae1045ddd2590e36f8c4feef7c9d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa830ae1045ddd2590e36f8c4feef7c9d\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.ISession.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the user who owns this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a29cddbd0cb5b8ec5cbffa1ec028e4ee5\" name=\"a29cddbd0cb5b8ec5cbffa1ec028e4ee5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.ISession.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username of the user who owns this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a35d8154eb7deff8e2bf953b23561bf19\" name=\"a35d8154eb7deff8e2bf953b23561bf19\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35d8154eb7deff8e2bf953b23561bf19\">&#9670;&#160;</a></span>Vars</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Nakama.ISession.Vars</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Any custom properties associated with this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\">Nakama.Session</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_i_session_8cs.html\">Nakama/ISession.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_session.html\">ISession</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_session.js",
    "content": "var interface_nakama_1_1_i_session =\n[\n    [ \"HasExpired\", \"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\", null ],\n    [ \"HasRefreshExpired\", \"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\", null ],\n    [ \"AuthToken\", \"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\", null ],\n    [ \"Created\", \"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\", null ],\n    [ \"CreateTime\", \"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\", null ],\n    [ \"ExpireTime\", \"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\", null ],\n    [ \"IsExpired\", \"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\", null ],\n    [ \"IsRefreshExpired\", \"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\", null ],\n    [ \"RefreshExpireTime\", \"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\", null ],\n    [ \"RefreshToken\", \"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\", null ],\n    [ \"Vars\", \"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_socket.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISocket Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\">AcceptPartyMemberAsync</a>(string partyId, IUserPresence presence)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\">AddMatchmakerAsync</a>(string query=&quot;*&quot;, int minCount=2, int maxCount=8, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\">AddMatchmakerPartyAsync</a>(string partyId, string query, int minCount, int maxCount, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\">CloseAsync</a>()</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\">Closed</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\">ClosePartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\">ConnectAsync</a>(ISession session, bool appearOnline=false, int connectTimeout=Socket.DefaultConnectTimeout, string langTag=&quot;en&quot;)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\">Connected</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\">CreateMatchAsync</a>(string matchName=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\">CreatePartyAsync</a>(bool open, bool hidden, int maxSize, string label=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">FollowUsersAsync</a>(IEnumerable&lt; IApiUser &gt; users)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\">FollowUsersAsync</a>(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\">IsConnected</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\">IsConnecting</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\">JoinChatAsync</a>(string target, ChannelType type, bool persistence=false, bool hidden=false)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\">JoinMatchAsync</a>(IMatchmakerMatched matched)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\">JoinMatchAsync</a>(string matchId, IDictionary&lt; string, string &gt; metadata=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\">JoinPartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\">LeaveChatAsync</a>(IChannel channel)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\">LeaveChatAsync</a>(string channelId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\">LeaveMatchAsync</a>(IMatch match)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\">LeaveMatchAsync</a>(string matchId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\">LeavePartyAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\">ListPartyJoinRequestsAsync</a>(string partyId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\">PromotePartyMemberAsync</a>(string partyId, IUserPresence partyMember)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\">ReceivedChannelMessage</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\">ReceivedChannelPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\">ReceivedError</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\">ReceivedMatchmakerMatched</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\">ReceivedMatchPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\">ReceivedMatchState</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\">ReceivedNotification</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\">ReceivedParty</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\">ReceivedPartyClose</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\">ReceivedPartyData</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\">ReceivedPartyJoinRequest</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\">ReceivedPartyLeader</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\">ReceivedPartyMatchmakerTicket</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\">ReceivedPartyPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\">ReceivedPartyUpdate</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\">ReceivedStatusPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\">ReceivedStreamPresence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\">ReceivedStreamState</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\">RemoveChatMessageAsync</a>(IChannel channel, string messageId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\">RemoveChatMessageAsync</a>(string channelId, string messageId)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\">RemoveMatchmakerAsync</a>(IMatchmakerTicket ticket)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\">RemoveMatchmakerAsync</a>(string ticket)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\">RemoveMatchmakerPartyAsync</a>(string partyId, string ticket)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\">RemovePartyMemberAsync</a>(string partyId, IUserPresence presence)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\">RpcAsync</a>(string funcId, string payload=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\">RpcAsync</a>(string funcId, ArraySegment&lt; byte &gt; payload)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\">SendMatchStateAsync</a>(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\">SendMatchStateAsync</a>(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\">SendMatchStateAsync</a>(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\">SendPartyDataAsync</a>(string partyId, long opCode, ArraySegment&lt; byte &gt; data)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\">SendPartyDataAsync</a>(string partyId, long opCode, string data)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\">SendPartyDataAsync</a>(string partyId, long opCode, byte[] data)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\">UnfollowUsersAsync</a>(IEnumerable&lt; IApiUser &gt; users)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\">UnfollowUsersAsync</a>(IEnumerable&lt; string &gt; userIDs)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\">UpdateChatMessageAsync</a>(IChannel channel, string messageId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\">UpdateChatMessageAsync</a>(string channelId, string messageId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\">UpdatePartyAsync</a>(string partyId, bool open, bool hidden, string label=&quot;&quot;)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\">UpdateStatusAsync</a>(string status)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\">WriteChatMessageAsync</a>(IChannel channel, string content)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\">WriteChatMessageAsync</a>(string channelId, string content)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">Nakama.ISocket</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.ISocket Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_socket.html','','interface_nakama_1_1_i_socket-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISocket Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.ISocket:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_socket.png\" usemap=\"#Nakama_2EISocket_map\" alt=\"\"/>\n  <map id=\"Nakama_2EISocket_map\" name=\"Nakama_2EISocket_map\">\n<area href=\"class_nakama_1_1_socket.html\" title=\"A socket which implements the Nakama realtime API.\" alt=\"Nakama.Socket\" shape=\"rect\" coords=\"0,56,102,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a1bde1efda48cb1aac4d0e049dbe05e51\" id=\"r_a1bde1efda48cb1aac4d0e049dbe05e51\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1bde1efda48cb1aac4d0e049dbe05e51\">AcceptPartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> presence)</td></tr>\n<tr class=\"memdesc:a1bde1efda48cb1aac4d0e049dbe05e51\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept a party member's request to join the party.  <br /></td></tr>\n<tr class=\"memitem:a162c3e3aae5243cd0d8aa39b588f6d96\" id=\"r_a162c3e3aae5243cd0d8aa39b588f6d96\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a162c3e3aae5243cd0d8aa39b588f6d96\">AddMatchmakerAsync</a> (string query=&quot;*&quot;, int minCount=2, int maxCount=8, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td></tr>\n<tr class=\"memdesc:a162c3e3aae5243cd0d8aa39b588f6d96\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join the matchmaker pool and search for opponents on the server.  <br /></td></tr>\n<tr class=\"memitem:a4309cafc8d3b17ddfdbeb3196bad98d5\" id=\"r_a4309cafc8d3b17ddfdbeb3196bad98d5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4309cafc8d3b17ddfdbeb3196bad98d5\">AddMatchmakerPartyAsync</a> (string partyId, string query, int minCount, int maxCount, Dictionary&lt; string, string &gt; stringProperties=null, Dictionary&lt; string, double &gt; numericProperties=null, int? countMultiple=null)</td></tr>\n<tr class=\"memdesc:a4309cafc8d3b17ddfdbeb3196bad98d5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Begin matchmaking as a party.  <br /></td></tr>\n<tr class=\"memitem:a1e0dfa45e55ac98a90bd61ba68b3739c\" id=\"r_a1e0dfa45e55ac98a90bd61ba68b3739c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1e0dfa45e55ac98a90bd61ba68b3739c\">ClosePartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a1e0dfa45e55ac98a90bd61ba68b3739c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members and closing it.  <br /></td></tr>\n<tr class=\"memitem:a47d4805e5bc797be4640b9b40fd0a1ff\" id=\"r_a47d4805e5bc797be4640b9b40fd0a1ff\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a47d4805e5bc797be4640b9b40fd0a1ff\">CloseAsync</a> ()</td></tr>\n<tr class=\"memdesc:a47d4805e5bc797be4640b9b40fd0a1ff\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Close the socket connection to the server.  <br /></td></tr>\n<tr class=\"memitem:afce0421b802a0610d5ba0df073c76118\" id=\"r_afce0421b802a0610d5ba0df073c76118\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afce0421b802a0610d5ba0df073c76118\">ConnectAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a> session, bool appearOnline=false, int connectTimeout=<a class=\"el\" href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\">Socket.DefaultConnectTimeout</a>, string langTag=&quot;en&quot;)</td></tr>\n<tr class=\"memdesc:afce0421b802a0610d5ba0df073c76118\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect to the server.  <br /></td></tr>\n<tr class=\"memitem:a82169726f5414f591824413d3a38f49c\" id=\"r_a82169726f5414f591824413d3a38f49c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a82169726f5414f591824413d3a38f49c\">CreateMatchAsync</a> (string matchName=null)</td></tr>\n<tr class=\"memdesc:a82169726f5414f591824413d3a38f49c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:ad69ab381962fee86f0a583fac8acd5ce\" id=\"r_ad69ab381962fee86f0a583fac8acd5ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad69ab381962fee86f0a583fac8acd5ce\">CreatePartyAsync</a> (bool open, bool hidden, int maxSize, string label=null)</td></tr>\n<tr class=\"memdesc:ad69ab381962fee86f0a583fac8acd5ce\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a party.  <br /></td></tr>\n<tr class=\"memitem:a35fcf5e7221f3f4fb99629c7f7ffe2cf\" id=\"r_a35fcf5e7221f3f4fb99629c7f7ffe2cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">FollowUsersAsync</a> (IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt; users)</td></tr>\n<tr class=\"memdesc:a35fcf5e7221f3f4fb99629c7f7ffe2cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscribe to one or more users for their status updates.  <br /></td></tr>\n<tr class=\"memitem:aa1fc00a1c5e65035102d69c0da9c9bcf\" id=\"r_aa1fc00a1c5e65035102d69c0da9c9bcf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa1fc00a1c5e65035102d69c0da9c9bcf\">FollowUsersAsync</a> (IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)</td></tr>\n<tr class=\"memdesc:aa1fc00a1c5e65035102d69c0da9c9bcf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Subscribe to one or more users for their status updates.  <br /></td></tr>\n<tr class=\"memitem:ae30f0d0d5f72817bc5a477c4c105b950\" id=\"r_ae30f0d0d5f72817bc5a477c4c105b950\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae30f0d0d5f72817bc5a477c4c105b950\">JoinChatAsync</a> (string target, <a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">ChannelType</a> type, bool persistence=false, bool hidden=false)</td></tr>\n<tr class=\"memdesc:ae30f0d0d5f72817bc5a477c4c105b950\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a7004ef370a75ed96cee268191ef82670\" id=\"r_a7004ef370a75ed96cee268191ef82670\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7004ef370a75ed96cee268191ef82670\">JoinPartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a7004ef370a75ed96cee268191ef82670\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a party.  <br /></td></tr>\n<tr class=\"memitem:a459b0786a266bd8599b9435e5f45ea34\" id=\"r_a459b0786a266bd8599b9435e5f45ea34\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a459b0786a266bd8599b9435e5f45ea34\">JoinMatchAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> matched)</td></tr>\n<tr class=\"memdesc:a459b0786a266bd8599b9435e5f45ea34\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a multiplayer match with the matchmaker matched object.  <br /></td></tr>\n<tr class=\"memitem:ac6fe282b44ef6bed9179fe5766de5b27\" id=\"r_ac6fe282b44ef6bed9179fe5766de5b27\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac6fe282b44ef6bed9179fe5766de5b27\">JoinMatchAsync</a> (string matchId, IDictionary&lt; string, string &gt; metadata=null)</td></tr>\n<tr class=\"memdesc:ac6fe282b44ef6bed9179fe5766de5b27\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a multiplayer match by ID.  <br /></td></tr>\n<tr class=\"memitem:a647667ebb59e491e9462417bf96f6f41\" id=\"r_a647667ebb59e491e9462417bf96f6f41\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a647667ebb59e491e9462417bf96f6f41\">LeaveChatAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel)</td></tr>\n<tr class=\"memdesc:a647667ebb59e491e9462417bf96f6f41\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a9ec279ff4873da0b9c9a90b9cfd0eada\" id=\"r_a9ec279ff4873da0b9c9a90b9cfd0eada\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9ec279ff4873da0b9c9a90b9cfd0eada\">LeaveChatAsync</a> (string channelId)</td></tr>\n<tr class=\"memdesc:a9ec279ff4873da0b9c9a90b9cfd0eada\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a094fbace93957878a94815d38967aaf3\" id=\"r_a094fbace93957878a94815d38967aaf3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a094fbace93957878a94815d38967aaf3\">LeaveMatchAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> match)</td></tr>\n<tr class=\"memdesc:a094fbace93957878a94815d38967aaf3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:af7bc9c33420ac5c873f68d92058b1a2d\" id=\"r_af7bc9c33420ac5c873f68d92058b1a2d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af7bc9c33420ac5c873f68d92058b1a2d\">LeaveMatchAsync</a> (string matchId)</td></tr>\n<tr class=\"memdesc:af7bc9c33420ac5c873f68d92058b1a2d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:a9f157fc83e6dfeb5d32c82f0d71c603b\" id=\"r_a9f157fc83e6dfeb5d32c82f0d71c603b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9f157fc83e6dfeb5d32c82f0d71c603b\">LeavePartyAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a9f157fc83e6dfeb5d32c82f0d71c603b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the party.  <br /></td></tr>\n<tr class=\"memitem:a3290abc231fbc13d10a279e9df4e3ef4\" id=\"r_a3290abc231fbc13d10a279e9df4e3ef4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3290abc231fbc13d10a279e9df4e3ef4\">ListPartyJoinRequestsAsync</a> (string partyId)</td></tr>\n<tr class=\"memdesc:a3290abc231fbc13d10a279e9df4e3ef4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Request a list of pending join requests for a party.  <br /></td></tr>\n<tr class=\"memitem:a747dddd036256e29cdb5a0f9cbfffe1e\" id=\"r_a747dddd036256e29cdb5a0f9cbfffe1e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a747dddd036256e29cdb5a0f9cbfffe1e\">PromotePartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> partyMember)</td></tr>\n<tr class=\"memdesc:a747dddd036256e29cdb5a0f9cbfffe1e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote a new party leader.  <br /></td></tr>\n<tr class=\"memitem:a2e0d2258668b6a23ab8ef898a859b607\" id=\"r_a2e0d2258668b6a23ab8ef898a859b607\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2e0d2258668b6a23ab8ef898a859b607\">RemoveChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string messageId)</td></tr>\n<tr class=\"memdesc:a2e0d2258668b6a23ab8ef898a859b607\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a chat message from a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a72b9923abc413441524248fb3dbaa6d2\" id=\"r_a72b9923abc413441524248fb3dbaa6d2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a72b9923abc413441524248fb3dbaa6d2\">RemoveChatMessageAsync</a> (string channelId, string messageId)</td></tr>\n<tr class=\"memdesc:a72b9923abc413441524248fb3dbaa6d2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a chat message from a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a1c4a81177c160384ef79eb0c4ae59b47\" id=\"r_a1c4a81177c160384ef79eb0c4ae59b47\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1c4a81177c160384ef79eb0c4ae59b47\">RemoveMatchmakerAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> ticket)</td></tr>\n<tr class=\"memdesc:a1c4a81177c160384ef79eb0c4ae59b47\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the matchmaker pool with the ticket.  <br /></td></tr>\n<tr class=\"memitem:acda6e90c3bf82f29c849404a53583bae\" id=\"r_acda6e90c3bf82f29c849404a53583bae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acda6e90c3bf82f29c849404a53583bae\">RemoveMatchmakerAsync</a> (string ticket)</td></tr>\n<tr class=\"memdesc:acda6e90c3bf82f29c849404a53583bae\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave the matchmaker pool with the ticket contents.  <br /></td></tr>\n<tr class=\"memitem:ac07a04f376786f2d74404b755b0d2d3c\" id=\"r_ac07a04f376786f2d74404b755b0d2d3c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac07a04f376786f2d74404b755b0d2d3c\">RemoveMatchmakerPartyAsync</a> (string partyId, string ticket)</td></tr>\n<tr class=\"memdesc:ac07a04f376786f2d74404b755b0d2d3c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cancel a party matchmaking process using a ticket.  <br /></td></tr>\n<tr class=\"memitem:aedd8b717ab06cb2e1a293cc65eaef503\" id=\"r_aedd8b717ab06cb2e1a293cc65eaef503\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aedd8b717ab06cb2e1a293cc65eaef503\">RemovePartyMemberAsync</a> (string partyId, <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> presence)</td></tr>\n<tr class=\"memdesc:aedd8b717ab06cb2e1a293cc65eaef503\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick a party member, or decline a request to join.  <br /></td></tr>\n<tr class=\"memitem:a5d5e0936be90aac974a7beb908c086c6\" id=\"r_a5d5e0936be90aac974a7beb908c086c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5d5e0936be90aac974a7beb908c086c6\">RpcAsync</a> (string funcId, string payload=null)</td></tr>\n<tr class=\"memdesc:a5d5e0936be90aac974a7beb908c086c6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an RPC function to the server.  <br /></td></tr>\n<tr class=\"memitem:a862ba5aa777eebba3d86aa1c882e9c0a\" id=\"r_a862ba5aa777eebba3d86aa1c882e9c0a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a862ba5aa777eebba3d86aa1c882e9c0a\">RpcAsync</a> (string funcId, ArraySegment&lt; byte &gt; payload)</td></tr>\n<tr class=\"memdesc:a862ba5aa777eebba3d86aa1c882e9c0a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an RPC function to the server.  <br /></td></tr>\n<tr class=\"memitem:aea679f2d9b9623d527cf6d5b58ecd5ef\" id=\"r_aea679f2d9b9623d527cf6d5b58ecd5ef\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aea679f2d9b9623d527cf6d5b58ecd5ef\">SendMatchStateAsync</a> (string matchId, long opCode, string state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:aea679f2d9b9623d527cf6d5b58ecd5ef\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:a035e541530d517125c5770d68765cd83\" id=\"r_a035e541530d517125c5770d68765cd83\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a035e541530d517125c5770d68765cd83\">SendMatchStateAsync</a> (string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:a035e541530d517125c5770d68765cd83\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:ae594151407277c8c4689bfc4587cc7fb\" id=\"r_ae594151407277c8c4689bfc4587cc7fb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae594151407277c8c4689bfc4587cc7fb\">SendMatchStateAsync</a> (string matchId, long opCode, byte[] state, IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt; presences=null)</td></tr>\n<tr class=\"memdesc:ae594151407277c8c4689bfc4587cc7fb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send input to a multiplayer match on the server.  <br /></td></tr>\n<tr class=\"memitem:ae90675f58de4722900b1b1b139485120\" id=\"r_ae90675f58de4722900b1b1b139485120\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae90675f58de4722900b1b1b139485120\">SendPartyDataAsync</a> (string partyId, long opCode, ArraySegment&lt; byte &gt; data)</td></tr>\n<tr class=\"memdesc:ae90675f58de4722900b1b1b139485120\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.  <br /></td></tr>\n<tr class=\"memitem:a20ec2fbcae378c8d46c6309dc87c41a9\" id=\"r_a20ec2fbcae378c8d46c6309dc87c41a9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a20ec2fbcae378c8d46c6309dc87c41a9\">SendPartyDataAsync</a> (string partyId, long opCode, string data)</td></tr>\n<tr class=\"memdesc:a20ec2fbcae378c8d46c6309dc87c41a9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.  <br /></td></tr>\n<tr class=\"memitem:af59ab771e89bb0dce237df3e316f1e63\" id=\"r_af59ab771e89bb0dce237df3e316f1e63\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af59ab771e89bb0dce237df3e316f1e63\">SendPartyDataAsync</a> (string partyId, long opCode, byte[] data)</td></tr>\n<tr class=\"memdesc:af59ab771e89bb0dce237df3e316f1e63\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party.  <br /></td></tr>\n<tr class=\"memitem:a89c6778b3357f5c3d305b291847cb44a\" id=\"r_a89c6778b3357f5c3d305b291847cb44a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a89c6778b3357f5c3d305b291847cb44a\">UnfollowUsersAsync</a> (IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt; users)</td></tr>\n<tr class=\"memdesc:a89c6778b3357f5c3d305b291847cb44a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users from their status updates.  <br /></td></tr>\n<tr class=\"memitem:a8266f3c4803246a46e4066703ae62d37\" id=\"r_a8266f3c4803246a46e4066703ae62d37\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8266f3c4803246a46e4066703ae62d37\">UnfollowUsersAsync</a> (IEnumerable&lt; string &gt; userIDs)</td></tr>\n<tr class=\"memdesc:a8266f3c4803246a46e4066703ae62d37\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users from their status updates.  <br /></td></tr>\n<tr class=\"memitem:aceed2d36c564cb6eb71d060a07c9c041\" id=\"r_aceed2d36c564cb6eb71d060a07c9c041\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aceed2d36c564cb6eb71d060a07c9c041\">UpdateChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string messageId, string content)</td></tr>\n<tr class=\"memdesc:aceed2d36c564cb6eb71d060a07c9c041\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message on a chat channel in the server.  <br /></td></tr>\n<tr class=\"memitem:abda0b03723050cdcba1c765f501f1ce0\" id=\"r_abda0b03723050cdcba1c765f501f1ce0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abda0b03723050cdcba1c765f501f1ce0\">UpdateChatMessageAsync</a> (string channelId, string messageId, string content)</td></tr>\n<tr class=\"memdesc:abda0b03723050cdcba1c765f501f1ce0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message on a chat channel in the server.  <br /></td></tr>\n<tr class=\"memitem:a07a0201f9d1eb3e810eaaf80df0222c5\" id=\"r_a07a0201f9d1eb3e810eaaf80df0222c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a07a0201f9d1eb3e810eaaf80df0222c5\">UpdatePartyAsync</a> (string partyId, bool open, bool hidden, string label=&quot;&quot;)</td></tr>\n<tr class=\"memdesc:a07a0201f9d1eb3e810eaaf80df0222c5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update party label and optionally whether it is open or closed.  <br /></td></tr>\n<tr class=\"memitem:aaf666992ffd841ac9486a9433aab6614\" id=\"r_aaf666992ffd841ac9486a9433aab6614\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aaf666992ffd841ac9486a9433aab6614\">UpdateStatusAsync</a> (string status)</td></tr>\n<tr class=\"memdesc:aaf666992ffd841ac9486a9433aab6614\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status for the current user online.  <br /></td></tr>\n<tr class=\"memitem:aabcd26e73944cfdb51a1c3585c9348db\" id=\"r_aabcd26e73944cfdb51a1c3585c9348db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aabcd26e73944cfdb51a1c3585c9348db\">WriteChatMessageAsync</a> (<a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> channel, string content)</td></tr>\n<tr class=\"memdesc:aabcd26e73944cfdb51a1c3585c9348db\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a chat channel on the server.  <br /></td></tr>\n<tr class=\"memitem:a7f6f7d4e31a11b3a2cf9284b86568210\" id=\"r_a7f6f7d4e31a11b3a2cf9284b86568210\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f6f7d4e31a11b3a2cf9284b86568210\">WriteChatMessageAsync</a> (string channelId, string content)</td></tr>\n<tr class=\"memdesc:a7f6f7d4e31a11b3a2cf9284b86568210\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a chat channel on the server.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ad2e3682e09ff2df296a9e26367fa9943\" id=\"r_ad2e3682e09ff2df296a9e26367fa9943\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad2e3682e09ff2df296a9e26367fa9943\">IsConnected</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad2e3682e09ff2df296a9e26367fa9943\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:adbde619842d6576575adaa0ee0947140\" id=\"r_adbde619842d6576575adaa0ee0947140\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adbde619842d6576575adaa0ee0947140\">IsConnecting</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adbde619842d6576575adaa0ee0947140\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connecting.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:afe4d8fe65118a41d40732a82908ab483\" id=\"r_afe4d8fe65118a41d40732a82908ab483\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe4d8fe65118a41d40732a82908ab483\">Closed</a></td></tr>\n<tr class=\"memdesc:afe4d8fe65118a41d40732a82908ab483\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when a socket is closed.  <br /></td></tr>\n<tr class=\"memitem:a66bcbfecb40518837510e12cd48b7acd\" id=\"r_a66bcbfecb40518837510e12cd48b7acd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a66bcbfecb40518837510e12cd48b7acd\">Connected</a></td></tr>\n<tr class=\"memdesc:a66bcbfecb40518837510e12cd48b7acd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when a socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a0cc3f5be403f1189d4e72c51b96d9680\" id=\"r_a0cc3f5be403f1189d4e72c51b96d9680\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0cc3f5be403f1189d4e72c51b96d9680\">ReceivedChannelMessage</a></td></tr>\n<tr class=\"memdesc:a0cc3f5be403f1189d4e72c51b96d9680\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a chat channel message.  <br /></td></tr>\n<tr class=\"memitem:a515084ae8f6466b60570292eadf4c700\" id=\"r_a515084ae8f6466b60570292eadf4c700\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a515084ae8f6466b60570292eadf4c700\">ReceivedChannelPresence</a></td></tr>\n<tr class=\"memdesc:a515084ae8f6466b60570292eadf4c700\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves with users in a chat channel.  <br /></td></tr>\n<tr class=\"memitem:a8318c9b7e2709e8306d00bc2a0d03e86\" id=\"r_a8318c9b7e2709e8306d00bc2a0d03e86\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8318c9b7e2709e8306d00bc2a0d03e86\">ReceivedError</a></td></tr>\n<tr class=\"memdesc:a8318c9b7e2709e8306d00bc2a0d03e86\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received when an error occurs on the socket.  <br /></td></tr>\n<tr class=\"memitem:aee6beff734538a19c915d37fcf703834\" id=\"r_aee6beff734538a19c915d37fcf703834\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aee6beff734538a19c915d37fcf703834\">ReceivedMatchmakerMatched</a></td></tr>\n<tr class=\"memdesc:aee6beff734538a19c915d37fcf703834\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a matchmaker matched message.  <br /></td></tr>\n<tr class=\"memitem:a17b98d2b0b33fcf3e0d956d05fddcdf2\" id=\"r_a17b98d2b0b33fcf3e0d956d05fddcdf2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a17b98d2b0b33fcf3e0d956d05fddcdf2\">ReceivedMatchState</a></td></tr>\n<tr class=\"memdesc:a17b98d2b0b33fcf3e0d956d05fddcdf2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a message from a multiplayer match.  <br /></td></tr>\n<tr class=\"memitem:ac02519653c675729d70dbf70ed84d57b\" id=\"r_ac02519653c675729d70dbf70ed84d57b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac02519653c675729d70dbf70ed84d57b\">ReceivedMatchPresence</a></td></tr>\n<tr class=\"memdesc:ac02519653c675729d70dbf70ed84d57b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves of users in a multiplayer match.  <br /></td></tr>\n<tr class=\"memitem:a21c8dec048d4d59faef0f5177d5dd57c\" id=\"r_a21c8dec048d4d59faef0f5177d5dd57c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a21c8dec048d4d59faef0f5177d5dd57c\">ReceivedNotification</a></td></tr>\n<tr class=\"memdesc:a21c8dec048d4d59faef0f5177d5dd57c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a notification for the current user.  <br /></td></tr>\n<tr class=\"memitem:aef9916951402f7727f07f6964412738c\" id=\"r_aef9916951402f7727f07f6964412738c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aef9916951402f7727f07f6964412738c\">ReceivedParty</a></td></tr>\n<tr class=\"memdesc:aef9916951402f7727f07f6964412738c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party event. This will occur when the current user's invitation request is accepted by the party leader of a closed party.  <br /></td></tr>\n<tr class=\"memitem:a689062bafabff8c4ef43eb778e28ccc3\" id=\"r_a689062bafabff8c4ef43eb778e28ccc3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a689062bafabff8c4ef43eb778e28ccc3\">ReceivedPartyClose</a></td></tr>\n<tr class=\"memdesc:a689062bafabff8c4ef43eb778e28ccc3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party close event.  <br /></td></tr>\n<tr class=\"memitem:aa857c8d6d11304b468fd20f8201dcc2a\" id=\"r_aa857c8d6d11304b468fd20f8201dcc2a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa857c8d6d11304b468fd20f8201dcc2a\">ReceivedPartyData</a></td></tr>\n<tr class=\"memdesc:aa857c8d6d11304b468fd20f8201dcc2a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received custom party data.  <br /></td></tr>\n<tr class=\"memitem:ae8b2267febd5ee639429aa65fcc774e3\" id=\"r_ae8b2267febd5ee639429aa65fcc774e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae8b2267febd5ee639429aa65fcc774e3\">ReceivedPartyJoinRequest</a></td></tr>\n<tr class=\"memdesc:ae8b2267febd5ee639429aa65fcc774e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a request to join the party.  <br /></td></tr>\n<tr class=\"memitem:a8ac582863e0349af106020bddea8aca3\" id=\"r_a8ac582863e0349af106020bddea8aca3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8ac582863e0349af106020bddea8aca3\">ReceivedPartyLeader</a></td></tr>\n<tr class=\"memdesc:a8ac582863e0349af106020bddea8aca3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a change in the party leader.  <br /></td></tr>\n<tr class=\"memitem:a6537de9e92b9e3073d425178c88fbfe7\" id=\"r_a6537de9e92b9e3073d425178c88fbfe7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6537de9e92b9e3073d425178c88fbfe7\">ReceivedPartyMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:a6537de9e92b9e3073d425178c88fbfe7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new matchmaker ticket for the party.  <br /></td></tr>\n<tr class=\"memitem:a826e3c85c992db9c009ad30a31280f5d\" id=\"r_a826e3c85c992db9c009ad30a31280f5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a826e3c85c992db9c009ad30a31280f5d\">ReceivedPartyPresence</a></td></tr>\n<tr class=\"memdesc:a826e3c85c992db9c009ad30a31280f5d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new presence event in the party.  <br /></td></tr>\n<tr class=\"memitem:a9927bfe41792b4791f1fb4d2eb5cbc00\" id=\"r_a9927bfe41792b4791f1fb4d2eb5cbc00\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9927bfe41792b4791f1fb4d2eb5cbc00\">ReceivedPartyUpdate</a></td></tr>\n<tr class=\"memdesc:a9927bfe41792b4791f1fb4d2eb5cbc00\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a party label and/or open/closed change.  <br /></td></tr>\n<tr class=\"memitem:a8ffa8e010664063ab88ffd2b5db472ce\" id=\"r_a8ffa8e010664063ab88ffd2b5db472ce\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8ffa8e010664063ab88ffd2b5db472ce\">ReceivedStatusPresence</a></td></tr>\n<tr class=\"memdesc:a8ffa8e010664063ab88ffd2b5db472ce\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for when a user updated their online status.  <br /></td></tr>\n<tr class=\"memitem:af79cb677935c51a7271a9cb95f84353a\" id=\"r_af79cb677935c51a7271a9cb95f84353a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af79cb677935c51a7271a9cb95f84353a\">ReceivedStreamPresence</a></td></tr>\n<tr class=\"memdesc:af79cb677935c51a7271a9cb95f84353a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a presence change for joins and leaves on a realtime stream.  <br /></td></tr>\n<tr class=\"memitem:ac38386b65fb4b5a4a0cd96a22e20cefb\" id=\"r_ac38386b65fb4b5a4a0cd96a22e20cefb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac38386b65fb4b5a4a0cd96a22e20cefb\">ReceivedStreamState</a></td></tr>\n<tr class=\"memdesc:ac38386b65fb4b5a4a0cd96a22e20cefb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a message from a realtime stream.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a1bde1efda48cb1aac4d0e049dbe05e51\" name=\"a1bde1efda48cb1aac4d0e049dbe05e51\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1bde1efda48cb1aac4d0e049dbe05e51\">&#9670;&#160;</a></span>AcceptPartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.AcceptPartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presence</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Accept a party member's request to join the party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The party ID to accept the join request for.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to accept as a party member. </td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a162c3e3aae5243cd0d8aa39b588f6d96\" name=\"a162c3e3aae5243cd0d8aa39b588f6d96\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a162c3e3aae5243cd0d8aa39b588f6d96\">&#9670;&#160;</a></span>AddMatchmakerAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a> &gt; Nakama.ISocket.AddMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;*&quot;</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>minCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">2</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">8</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stringProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, double &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numericProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>countMultiple</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join the matchmaker pool and search for opponents on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">query</td><td>The matchmaker query to search for opponents.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>The minimum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>The maximum number of players to compete against in a match.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>A set of key/value properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>A set of key/value numeric properties to provide to searches.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a matchmaker ticket object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a4309cafc8d3b17ddfdbeb3196bad98d5\" name=\"a4309cafc8d3b17ddfdbeb3196bad98d5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4309cafc8d3b17ddfdbeb3196bad98d5\">&#9670;&#160;</a></span>AddMatchmakerPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a> &gt; Nakama.ISocket.AddMatchmakerPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>query</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>minCount</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxCount</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stringProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, double &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numericProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>countMultiple</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Begin matchmaking as a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">query</td><td>Filter query used to identify suitable users.</td></tr>\n    <tr><td class=\"paramname\">minCount</td><td>Minimum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">maxCount</td><td>Maximum total user count to match together.</td></tr>\n    <tr><td class=\"paramname\">stringProperties</td><td>String properties.</td></tr>\n    <tr><td class=\"paramname\">numericProperties</td><td>Numeric properties.</td></tr>\n    <tr><td class=\"paramname\">countMultiple</td><td>An optional integer to force the matchmaker to match in multiples of.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a party matchmaker ticket object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a47d4805e5bc797be4640b9b40fd0a1ff\" name=\"a47d4805e5bc797be4640b9b40fd0a1ff\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a47d4805e5bc797be4640b9b40fd0a1ff\">&#9670;&#160;</a></span>CloseAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.CloseAsync </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Close the socket connection to the server. </p>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a1e0dfa45e55ac98a90bd61ba68b3739c\" name=\"a1e0dfa45e55ac98a90bd61ba68b3739c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1e0dfa45e55ac98a90bd61ba68b3739c\">&#9670;&#160;</a></span>ClosePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.ClosePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>End a party, kicking all party members and closing it. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The ID of the party.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"afce0421b802a0610d5ba0df073c76118\" name=\"afce0421b802a0610d5ba0df073c76118\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afce0421b802a0610d5ba0df073c76118\">&#9670;&#160;</a></span>ConnectAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>appearOnline</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>connectTimeout</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\"><a class=\"el\" href=\"class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216\">Socket.DefaultConnectTimeout</a></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>langTag</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;en&quot;</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Connect to the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">appearOnline</td><td>If the user who appear online to other users.</td></tr>\n    <tr><td class=\"paramname\">connectTimeout</td><td>The time allowed for the socket connection to be established.</td></tr>\n    <tr><td class=\"paramname\">langTag</td><td>The language tag of the user on the connected socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a82169726f5414f591824413d3a38f49c\" name=\"a82169726f5414f591824413d3a38f49c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a82169726f5414f591824413d3a38f49c\">&#9670;&#160;</a></span>CreateMatchAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.ISocket.CreateMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchName</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Create a multiplayer match on the server. </p>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ad69ab381962fee86f0a583fac8acd5ce\" name=\"ad69ab381962fee86f0a583fac8acd5ce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad69ab381962fee86f0a583fac8acd5ce\">&#9670;&#160;</a></span>CreatePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a> &gt; Nakama.ISocket.CreatePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>maxSize</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Create a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">open</td><td>Whether the party will require join requests to be approved by the party leader.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>Whether the party should be hidden from client listing.</td></tr>\n    <tr><td class=\"paramname\">maxSize</td><td>Maximum number of party members.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>An optional label to set for party listing.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a35fcf5e7221f3f4fb99629c7f7ffe2cf\" name=\"a35fcf5e7221f3f4fb99629c7f7ffe2cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35fcf5e7221f3f4fb99629c7f7ffe2cf\">&#9670;&#160;</a></span>FollowUsersAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt; Nakama.ISocket.FollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>users</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Subscribe to one or more users for their status updates. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aa1fc00a1c5e65035102d69c0da9c9bcf\" name=\"aa1fc00a1c5e65035102d69c0da9c9bcf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa1fc00a1c5e65035102d69c0da9c9bcf\">&#9670;&#160;</a></span>FollowUsersAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a> &gt; Nakama.ISocket.FollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userIDs</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>usernames</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Subscribe to one or more users for their status updates. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of users.</td></tr>\n    <tr><td class=\"paramname\">usernames</td><td>The usernames of the users.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the current statuses for the users.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ae30f0d0d5f72817bc5a477c4c105b950\" name=\"ae30f0d0d5f72817bc5a477c4c105b950\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae30f0d0d5f72817bc5a477c4c105b950\">&#9670;&#160;</a></span>JoinChatAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a> &gt; Nakama.ISocket.JoinChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>target</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">ChannelType</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>type</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>persistence</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">false</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">target</td><td>The target channel to join.</td></tr>\n    <tr><td class=\"paramname\">type</td><td>The type of channel to join.</td></tr>\n    <tr><td class=\"paramname\">persistence</td><td>If chat messages should be stored.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>If the current user should be hidden on the channel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a chat channel object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a459b0786a266bd8599b9435e5f45ea34\" name=\"a459b0786a266bd8599b9435e5f45ea34\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a459b0786a266bd8599b9435e5f45ea34\">&#9670;&#160;</a></span>JoinMatchAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.ISocket.JoinMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>matched</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a multiplayer match with the matchmaker matched object. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matched</td><td>A matchmaker matched object.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ac6fe282b44ef6bed9179fe5766de5b27\" name=\"ac6fe282b44ef6bed9179fe5766de5b27\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac6fe282b44ef6bed9179fe5766de5b27\">&#9670;&#160;</a></span>JoinMatchAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a> &gt; Nakama.ISocket.JoinMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>metadata</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a multiplayer match by ID. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match to attempt to join.</td></tr>\n    <tr><td class=\"paramname\">metadata</td><td>An optional set of key-value metadata pairs to be passed to the match handler.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a multiplayer match.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a7004ef370a75ed96cee268191ef82670\" name=\"a7004ef370a75ed96cee268191ef82670\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7004ef370a75ed96cee268191ef82670\">&#9670;&#160;</a></span>JoinPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.JoinPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Join a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a647667ebb59e491e9462417bf96f6f41\" name=\"a647667ebb59e491e9462417bf96f6f41\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a647667ebb59e491e9462417bf96f6f41\">&#9670;&#160;</a></span>LeaveChatAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.LeaveChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a9ec279ff4873da0b9c9a90b9cfd0eada\" name=\"a9ec279ff4873da0b9c9a90b9cfd0eada\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9ec279ff4873da0b9c9a90b9cfd0eada\">&#9670;&#160;</a></span>LeaveChatAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.LeaveChatAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a094fbace93957878a94815d38967aaf3\" name=\"a094fbace93957878a94815d38967aaf3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a094fbace93957878a94815d38967aaf3\">&#9670;&#160;</a></span>LeaveMatchAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.LeaveMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>match</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a multiplayer match on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">match</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"af7bc9c33420ac5c873f68d92058b1a2d\" name=\"af7bc9c33420ac5c873f68d92058b1a2d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af7bc9c33420ac5c873f68d92058b1a2d\">&#9670;&#160;</a></span>LeaveMatchAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.LeaveMatchAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave a multiplayer match on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The multiplayer match to leave.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a9f157fc83e6dfeb5d32c82f0d71c603b\" name=\"a9f157fc83e6dfeb5d32c82f0d71c603b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9f157fc83e6dfeb5d32c82f0d71c603b\">&#9670;&#160;</a></span>LeavePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.LeavePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave the party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task to represent the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a3290abc231fbc13d10a279e9df4e3ef4\" name=\"a3290abc231fbc13d10a279e9df4e3ef4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3290abc231fbc13d10a279e9df4e3ef4\">&#9670;&#160;</a></span>ListPartyJoinRequestsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a> &gt; Nakama.ISocket.ListPartyJoinRequestsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Request a list of pending join requests for a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of all party join requests.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a747dddd036256e29cdb5a0f9cbfffe1e\" name=\"a747dddd036256e29cdb5a0f9cbfffe1e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a747dddd036256e29cdb5a0f9cbfffe1e\">&#9670;&#160;</a></span>PromotePartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.PromotePartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyMember</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Promote a new party leader. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">partyMember</td><td>The presence of an existing party member to promote as the new leader.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an announcement of a new party leader.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a2e0d2258668b6a23ab8ef898a859b607\" name=\"a2e0d2258668b6a23ab8ef898a859b607\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2e0d2258668b6a23ab8ef898a859b607\">&#9670;&#160;</a></span>RemoveChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.RemoveChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Remove a chat message from a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a72b9923abc413441524248fb3dbaa6d2\" name=\"a72b9923abc413441524248fb3dbaa6d2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a72b9923abc413441524248fb3dbaa6d2\">&#9670;&#160;</a></span>RemoveChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.RemoveChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Remove a chat message from a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to remove.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the chat message to remove.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the removed message.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a1c4a81177c160384ef79eb0c4ae59b47\" name=\"a1c4a81177c160384ef79eb0c4ae59b47\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1c4a81177c160384ef79eb0c4ae59b47\">&#9670;&#160;</a></span>RemoveMatchmakerAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.RemoveMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave the matchmaker pool with the ticket. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"acda6e90c3bf82f29c849404a53583bae\" name=\"acda6e90c3bf82f29c849404a53583bae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acda6e90c3bf82f29c849404a53583bae\">&#9670;&#160;</a></span>RemoveMatchmakerAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.RemoveMatchmakerAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Leave the matchmaker pool with the ticket contents. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">ticket</td><td>The contents of the ticket returned by the matchmaker on join.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ac07a04f376786f2d74404b755b0d2d3c\" name=\"ac07a04f376786f2d74404b755b0d2d3c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac07a04f376786f2d74404b755b0d2d3c\">&#9670;&#160;</a></span>RemoveMatchmakerPartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.RemoveMatchmakerPartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>ticket</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Cancel a party matchmaking process using a ticket. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID.</td></tr>\n    <tr><td class=\"paramname\">ticket</td><td>The ticket to cancel.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aedd8b717ab06cb2e1a293cc65eaef503\" name=\"aedd8b717ab06cb2e1a293cc65eaef503\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aedd8b717ab06cb2e1a293cc65eaef503\">&#9670;&#160;</a></span>RemovePartyMemberAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.RemovePartyMemberAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>presence</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Kick a party member, or decline a request to join. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to remove/reject from.</td></tr>\n    <tr><td class=\"paramname\">presence</td><td>The presence to remove or reject.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a862ba5aa777eebba3d86aa1c882e9c0a\" name=\"a862ba5aa777eebba3d86aa1c882e9c0a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a862ba5aa777eebba3d86aa1c882e9c0a\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.ISocket.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>funcId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute an RPC function to the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload sent to the server from the byte buffer.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a5d5e0936be90aac974a7beb908c086c6\" name=\"a5d5e0936be90aac974a7beb908c086c6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5d5e0936be90aac974a7beb908c086c6\">&#9670;&#160;</a></span>RpcAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a> &gt; Nakama.ISocket.RpcAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>funcId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Execute an RPC function to the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">funcId</td><td>The ID of the function to execute.</td></tr>\n    <tr><td class=\"paramname\">payload</td><td>An (optional) payload to send to the server.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the RPC function response object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a035e541530d517125c5770d68765cd83\" name=\"a035e541530d517125c5770d68765cd83\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a035e541530d517125c5770d68765cd83\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>An operation code for the input.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>The input data to send from the byte buffer.</td></tr>\n    <tr><td class=\"paramname\">presences</td><td>The presences in the match who should receive the input.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ae594151407277c8c4689bfc4587cc7fb\" name=\"ae594151407277c8c4689bfc4587cc7fb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae594151407277c8c4689bfc4587cc7fb\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server. </p>\n<p>/// </p>\n<p>When no presences are supplied the new match state will be sent to all presences. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>An operation code for the input.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>The input data to send.</td></tr>\n    <tr><td class=\"paramname\">presences</td><td>The presences in the match who should receive the input.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aea679f2d9b9623d527cf6d5b58ecd5ef\" name=\"aea679f2d9b9623d527cf6d5b58ecd5ef\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aea679f2d9b9623d527cf6d5b58ecd5ef\">&#9670;&#160;</a></span>SendMatchStateAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendMatchStateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>matchId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>state</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>presences</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send input to a multiplayer match on the server. </p>\n<p>/// </p>\n<p>When no presences are supplied the new match state will be sent to all presences. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">matchId</td><td>The ID of the match.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>An operation code for the input.</td></tr>\n    <tr><td class=\"paramname\">state</td><td>The input data to send.</td></tr>\n    <tr><td class=\"paramname\">presences</td><td>The presences in the match who should receive the input.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"ae90675f58de4722900b1b1b139485120\" name=\"ae90675f58de4722900b1b1b139485120\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae90675f58de4722900b1b1b139485120\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>The input data to send from the byte buffer, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"af59ab771e89bb0dce237df3e316f1e63\" name=\"af59ab771e89bb0dce237df3e316f1e63\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af59ab771e89bb0dce237df3e316f1e63\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a20ec2fbcae378c8d46c6309dc87c41a9\" name=\"a20ec2fbcae378c8d46c6309dc87c41a9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a20ec2fbcae378c8d46c6309dc87c41a9\">&#9670;&#160;</a></span>SendPartyDataAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.SendPartyDataAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">long</td>          <td class=\"paramname\"><span class=\"paramname\"><em>opCode</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>data</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send data to a party. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>Party ID to send to.</td></tr>\n    <tr><td class=\"paramname\">opCode</td><td>Op code value.</td></tr>\n    <tr><td class=\"paramname\">data</td><td>Data payload, if any.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a89c6778b3357f5c3d305b291847cb44a\" name=\"a89c6778b3357f5c3d305b291847cb44a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a89c6778b3357f5c3d305b291847cb44a\">&#9670;&#160;</a></span>UnfollowUsersAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.UnfollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>users</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unfollow one or more users from their status updates. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">users</td><td>The users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a8266f3c4803246a46e4066703ae62d37\" name=\"a8266f3c4803246a46e4066703ae62d37\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8266f3c4803246a46e4066703ae62d37\">&#9670;&#160;</a></span>UnfollowUsersAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.UnfollowUsersAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userIDs</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Unfollow one or more users from their status updates. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">userIDs</td><td>The IDs of the users to unfollow.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aceed2d36c564cb6eb71d060a07c9c041\" name=\"aceed2d36c564cb6eb71d060a07c9c041\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aceed2d36c564cb6eb71d060a07c9c041\">&#9670;&#160;</a></span>UpdateChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.UpdateChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update a chat message on a chat channel in the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"abda0b03723050cdcba1c765f501f1ce0\" name=\"abda0b03723050cdcba1c765f501f1ce0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abda0b03723050cdcba1c765f501f1ce0\">&#9670;&#160;</a></span>UpdateChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.UpdateChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>messageId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update a chat message on a chat channel in the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel with the message to update.</td></tr>\n    <tr><td class=\"paramname\">messageId</td><td>The ID of the message to update.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The new contents of the chat message.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to an acknowledgement of the updated message.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a07a0201f9d1eb3e810eaaf80df0222c5\" name=\"a07a0201f9d1eb3e810eaaf80df0222c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a07a0201f9d1eb3e810eaaf80df0222c5\">&#9670;&#160;</a></span>UpdatePartyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a> &gt; Nakama.ISocket.UpdatePartyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>partyId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>open</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>hidden</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>label</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">&quot;&quot;</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update party label and optionally whether it is open or closed. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">partyId</td><td>The Party ID.</td></tr>\n    <tr><td class=\"paramname\">open</td><td>Whether the party is open or closed.</td></tr>\n    <tr><td class=\"paramname\">hidden</td><td>Whether the party should be hidden from client listing.</td></tr>\n    <tr><td class=\"paramname\">label</td><td>The new custom label to set to the party.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd></dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aaf666992ffd841ac9486a9433aab6614\" name=\"aaf666992ffd841ac9486a9433aab6614\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aaf666992ffd841ac9486a9433aab6614\">&#9670;&#160;</a></span>UpdateStatusAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocket.UpdateStatusAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>status</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update the status for the current user online. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">status</td><td>The new status for the user.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"aabcd26e73944cfdb51a1c3585c9348db\" name=\"aabcd26e73944cfdb51a1c3585c9348db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aabcd26e73944cfdb51a1c3585c9348db\">&#9670;&#160;</a></span>WriteChatMessageAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.WriteChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>channel</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a chat message to a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channel</td><td>The chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"a7f6f7d4e31a11b3a2cf9284b86568210\" name=\"a7f6f7d4e31a11b3a2cf9284b86568210\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f6f7d4e31a11b3a2cf9284b86568210\">&#9670;&#160;</a></span>WriteChatMessageAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a> &gt; Nakama.ISocket.WriteChatMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>channelId</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>content</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a chat message to a chat channel on the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">channelId</td><td>The ID of the chat channel to send onto.</td></tr>\n    <tr><td class=\"paramname\">content</td><td>The contents of the message to send.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the acknowledgement of the chat message write.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ad2e3682e09ff2df296a9e26367fa9943\" name=\"ad2e3682e09ff2df296a9e26367fa9943\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad2e3682e09ff2df296a9e26367fa9943\">&#9670;&#160;</a></span>IsConnected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISocket.IsConnected</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connected. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a id=\"adbde619842d6576575adaa0ee0947140\" name=\"adbde619842d6576575adaa0ee0947140\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adbde619842d6576575adaa0ee0947140\">&#9670;&#160;</a></span>IsConnecting</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISocket.IsConnecting</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connecting. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\">Nakama.Socket</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"afe4d8fe65118a41d40732a82908ab483\" name=\"afe4d8fe65118a41d40732a82908ab483\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe4d8fe65118a41d40732a82908ab483\">&#9670;&#160;</a></span>Closed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.ISocket.Closed</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received when a socket is closed. </p>\n\n</div>\n</div>\n<a id=\"a66bcbfecb40518837510e12cd48b7acd\" name=\"a66bcbfecb40518837510e12cd48b7acd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a66bcbfecb40518837510e12cd48b7acd\">&#9670;&#160;</a></span>Connected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.ISocket.Connected</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received when a socket is connected. </p>\n\n</div>\n</div>\n<a id=\"a0cc3f5be403f1189d4e72c51b96d9680\" name=\"a0cc3f5be403f1189d4e72c51b96d9680\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0cc3f5be403f1189d4e72c51b96d9680\">&#9670;&#160;</a></span>ReceivedChannelMessage</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a>&gt; Nakama.ISocket.ReceivedChannelMessage</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a chat channel message. </p>\n\n</div>\n</div>\n<a id=\"a515084ae8f6466b60570292eadf4c700\" name=\"a515084ae8f6466b60570292eadf4c700\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a515084ae8f6466b60570292eadf4c700\">&#9670;&#160;</a></span>ReceivedChannelPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a>&gt; Nakama.ISocket.ReceivedChannelPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a presence change for joins and leaves with users in a chat channel. </p>\n\n</div>\n</div>\n<a id=\"a8318c9b7e2709e8306d00bc2a0d03e86\" name=\"a8318c9b7e2709e8306d00bc2a0d03e86\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8318c9b7e2709e8306d00bc2a0d03e86\">&#9670;&#160;</a></span>ReceivedError</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;Exception&gt; Nakama.ISocket.ReceivedError</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received when an error occurs on the socket. </p>\n\n</div>\n</div>\n<a id=\"aee6beff734538a19c915d37fcf703834\" name=\"aee6beff734538a19c915d37fcf703834\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aee6beff734538a19c915d37fcf703834\">&#9670;&#160;</a></span>ReceivedMatchmakerMatched</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a>&gt; Nakama.ISocket.ReceivedMatchmakerMatched</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a matchmaker matched message. </p>\n\n</div>\n</div>\n<a id=\"ac02519653c675729d70dbf70ed84d57b\" name=\"ac02519653c675729d70dbf70ed84d57b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac02519653c675729d70dbf70ed84d57b\">&#9670;&#160;</a></span>ReceivedMatchPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a>&gt; Nakama.ISocket.ReceivedMatchPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a presence change for joins and leaves of users in a multiplayer match. </p>\n\n</div>\n</div>\n<a id=\"a17b98d2b0b33fcf3e0d956d05fddcdf2\" name=\"a17b98d2b0b33fcf3e0d956d05fddcdf2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a17b98d2b0b33fcf3e0d956d05fddcdf2\">&#9670;&#160;</a></span>ReceivedMatchState</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a>&gt; Nakama.ISocket.ReceivedMatchState</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a message from a multiplayer match. </p>\n\n</div>\n</div>\n<a id=\"a21c8dec048d4d59faef0f5177d5dd57c\" name=\"a21c8dec048d4d59faef0f5177d5dd57c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a21c8dec048d4d59faef0f5177d5dd57c\">&#9670;&#160;</a></span>ReceivedNotification</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a>&gt; Nakama.ISocket.ReceivedNotification</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a notification for the current user. </p>\n\n</div>\n</div>\n<a id=\"aef9916951402f7727f07f6964412738c\" name=\"aef9916951402f7727f07f6964412738c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aef9916951402f7727f07f6964412738c\">&#9670;&#160;</a></span>ReceivedParty</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a>&gt; Nakama.ISocket.ReceivedParty</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a party event. This will occur when the current user's invitation request is accepted by the party leader of a closed party. </p>\n\n</div>\n</div>\n<a id=\"a689062bafabff8c4ef43eb778e28ccc3\" name=\"a689062bafabff8c4ef43eb778e28ccc3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a689062bafabff8c4ef43eb778e28ccc3\">&#9670;&#160;</a></span>ReceivedPartyClose</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a>&gt; Nakama.ISocket.ReceivedPartyClose</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a party close event. </p>\n\n</div>\n</div>\n<a id=\"aa857c8d6d11304b468fd20f8201dcc2a\" name=\"aa857c8d6d11304b468fd20f8201dcc2a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa857c8d6d11304b468fd20f8201dcc2a\">&#9670;&#160;</a></span>ReceivedPartyData</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a>&gt; Nakama.ISocket.ReceivedPartyData</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received custom party data. </p>\n\n</div>\n</div>\n<a id=\"ae8b2267febd5ee639429aa65fcc774e3\" name=\"ae8b2267febd5ee639429aa65fcc774e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae8b2267febd5ee639429aa65fcc774e3\">&#9670;&#160;</a></span>ReceivedPartyJoinRequest</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a>&gt; Nakama.ISocket.ReceivedPartyJoinRequest</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a request to join the party. </p>\n\n</div>\n</div>\n<a id=\"a8ac582863e0349af106020bddea8aca3\" name=\"a8ac582863e0349af106020bddea8aca3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ac582863e0349af106020bddea8aca3\">&#9670;&#160;</a></span>ReceivedPartyLeader</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a>&gt; Nakama.ISocket.ReceivedPartyLeader</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a change in the party leader. </p>\n\n</div>\n</div>\n<a id=\"a6537de9e92b9e3073d425178c88fbfe7\" name=\"a6537de9e92b9e3073d425178c88fbfe7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6537de9e92b9e3073d425178c88fbfe7\">&#9670;&#160;</a></span>ReceivedPartyMatchmakerTicket</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a>&gt; Nakama.ISocket.ReceivedPartyMatchmakerTicket</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a new matchmaker ticket for the party. </p>\n\n</div>\n</div>\n<a id=\"a826e3c85c992db9c009ad30a31280f5d\" name=\"a826e3c85c992db9c009ad30a31280f5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a826e3c85c992db9c009ad30a31280f5d\">&#9670;&#160;</a></span>ReceivedPartyPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a>&gt; Nakama.ISocket.ReceivedPartyPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a new presence event in the party. </p>\n\n</div>\n</div>\n<a id=\"a9927bfe41792b4791f1fb4d2eb5cbc00\" name=\"a9927bfe41792b4791f1fb4d2eb5cbc00\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9927bfe41792b4791f1fb4d2eb5cbc00\">&#9670;&#160;</a></span>ReceivedPartyUpdate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a>&gt; Nakama.ISocket.ReceivedPartyUpdate</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a party label and/or open/closed change. </p>\n\n</div>\n</div>\n<a id=\"a8ffa8e010664063ab88ffd2b5db472ce\" name=\"a8ffa8e010664063ab88ffd2b5db472ce\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8ffa8e010664063ab88ffd2b5db472ce\">&#9670;&#160;</a></span>ReceivedStatusPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a>&gt; Nakama.ISocket.ReceivedStatusPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a presence change for when a user updated their online status. </p>\n\n</div>\n</div>\n<a id=\"af79cb677935c51a7271a9cb95f84353a\" name=\"af79cb677935c51a7271a9cb95f84353a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af79cb677935c51a7271a9cb95f84353a\">&#9670;&#160;</a></span>ReceivedStreamPresence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a>&gt; Nakama.ISocket.ReceivedStreamPresence</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a presence change for joins and leaves on a realtime stream. </p>\n\n</div>\n</div>\n<a id=\"ac38386b65fb4b5a4a0cd96a22e20cefb\" name=\"ac38386b65fb4b5a4a0cd96a22e20cefb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac38386b65fb4b5a4a0cd96a22e20cefb\">&#9670;&#160;</a></span>ReceivedStreamState</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a>&gt; Nakama.ISocket.ReceivedStreamState</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a message from a realtime stream. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_socket_8cs.html\">ISocket.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_socket.html\">ISocket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket.js",
    "content": "var interface_nakama_1_1_i_socket =\n[\n    [ \"AcceptPartyMemberAsync\", \"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\", null ],\n    [ \"AddMatchmakerAsync\", \"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\", null ],\n    [ \"AddMatchmakerPartyAsync\", \"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\", null ],\n    [ \"CloseAsync\", \"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\", null ],\n    [ \"ClosePartyAsync\", \"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\", null ],\n    [ \"ConnectAsync\", \"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\", null ],\n    [ \"CreateMatchAsync\", \"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\", null ],\n    [ \"CreatePartyAsync\", \"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\", null ],\n    [ \"FollowUsersAsync\", \"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\", null ],\n    [ \"FollowUsersAsync\", \"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\", null ],\n    [ \"JoinChatAsync\", \"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\", null ],\n    [ \"JoinMatchAsync\", \"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\", null ],\n    [ \"JoinMatchAsync\", \"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\", null ],\n    [ \"JoinPartyAsync\", \"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\", null ],\n    [ \"LeaveChatAsync\", \"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\", null ],\n    [ \"LeaveChatAsync\", \"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\", null ],\n    [ \"LeaveMatchAsync\", \"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\", null ],\n    [ \"LeaveMatchAsync\", \"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\", null ],\n    [ \"LeavePartyAsync\", \"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\", null ],\n    [ \"ListPartyJoinRequestsAsync\", \"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\", null ],\n    [ \"PromotePartyMemberAsync\", \"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\", null ],\n    [ \"RemoveChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\", null ],\n    [ \"RemoveChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\", null ],\n    [ \"RemoveMatchmakerAsync\", \"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\", null ],\n    [ \"RemoveMatchmakerAsync\", \"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\", null ],\n    [ \"RemoveMatchmakerPartyAsync\", \"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\", null ],\n    [ \"RemovePartyMemberAsync\", \"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\", null ],\n    [ \"RpcAsync\", \"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\", null ],\n    [ \"SendMatchStateAsync\", \"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\", null ],\n    [ \"SendMatchStateAsync\", \"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\", null ],\n    [ \"SendMatchStateAsync\", \"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\", null ],\n    [ \"SendPartyDataAsync\", \"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\", null ],\n    [ \"SendPartyDataAsync\", \"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\", null ],\n    [ \"SendPartyDataAsync\", \"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\", null ],\n    [ \"UnfollowUsersAsync\", \"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\", null ],\n    [ \"UnfollowUsersAsync\", \"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\", null ],\n    [ \"UpdateChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\", null ],\n    [ \"UpdateChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\", null ],\n    [ \"UpdatePartyAsync\", \"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\", null ],\n    [ \"UpdateStatusAsync\", \"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\", null ],\n    [ \"WriteChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\", null ],\n    [ \"WriteChatMessageAsync\", \"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\", null ],\n    [ \"IsConnected\", \"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\", null ],\n    [ \"IsConnecting\", \"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\", null ],\n    [ \"Closed\", \"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\", null ],\n    [ \"Connected\", \"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\", null ],\n    [ \"ReceivedChannelMessage\", \"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\", null ],\n    [ \"ReceivedChannelPresence\", \"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\", null ],\n    [ \"ReceivedError\", \"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\", null ],\n    [ \"ReceivedMatchmakerMatched\", \"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\", null ],\n    [ \"ReceivedMatchPresence\", \"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\", null ],\n    [ \"ReceivedMatchState\", \"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\", null ],\n    [ \"ReceivedNotification\", \"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\", null ],\n    [ \"ReceivedParty\", \"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\", null ],\n    [ \"ReceivedPartyClose\", \"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\", null ],\n    [ \"ReceivedPartyData\", \"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\", null ],\n    [ \"ReceivedPartyJoinRequest\", \"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\", null ],\n    [ \"ReceivedPartyLeader\", \"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\", null ],\n    [ \"ReceivedPartyMatchmakerTicket\", \"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\", null ],\n    [ \"ReceivedPartyPresence\", \"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\", null ],\n    [ \"ReceivedPartyUpdate\", \"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\", null ],\n    [ \"ReceivedStatusPresence\", \"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\", null ],\n    [ \"ReceivedStreamPresence\", \"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\", null ],\n    [ \"ReceivedStreamState\", \"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_socket_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISocketAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\">CloseAsync</a>()</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\">Closed</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\">ConnectAsync</a>(Uri uri, int timeout)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\">Connected</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\">IsConnected</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\">IsConnecting</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\">Received</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\">ReceivedError</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\">SendAsync</a>(ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">Nakama.ISocketAdapter</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.ISocketAdapter Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_socket_adapter.html','','interface_nakama_1_1_i_socket_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.ISocketAdapter Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.ISocketAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_i_socket_adapter.png\" usemap=\"#Nakama_2EISocketAdapter_map\" alt=\"\"/>\n  <map id=\"Nakama_2EISocketAdapter_map\" name=\"Nakama_2EISocketAdapter_map\">\n<area href=\"class_nakama_1_1_web_socket_adapter.html\" title=\"An adapter which uses the WebSocket protocol with Nakama server.\" alt=\"Nakama.WebSocketAdapter\" shape=\"rect\" coords=\"0,56,200,80\"/>\n<area href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\" title=\"An adapter which uses the WebSocket protocol with Nakama server.\" alt=\"Nakama.WebSocketStdlibAdapter\" shape=\"rect\" coords=\"210,56,410,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:ac4fdf85f7e31f3ef6fb573656081130e\" id=\"r_ac4fdf85f7e31f3ef6fb573656081130e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac4fdf85f7e31f3ef6fb573656081130e\">CloseAsync</a> ()</td></tr>\n<tr class=\"memdesc:ac4fdf85f7e31f3ef6fb573656081130e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Close the socket with an asynchronous operation.  <br /></td></tr>\n<tr class=\"memitem:a98391b86100741424b89284cd2db8e06\" id=\"r_a98391b86100741424b89284cd2db8e06\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a98391b86100741424b89284cd2db8e06\">ConnectAsync</a> (Uri uri, int timeout)</td></tr>\n<tr class=\"memdesc:a98391b86100741424b89284cd2db8e06\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect to the server with an asynchronous operation.  <br /></td></tr>\n<tr class=\"memitem:ab814436b863363b8f8991c01336d77e4\" id=\"r_ab814436b863363b8f8991c01336d77e4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab814436b863363b8f8991c01336d77e4\">SendAsync</a> (ArraySegment&lt; byte &gt; buffer, bool reliable=true, CancellationToken canceller=default)</td></tr>\n<tr class=\"memdesc:ab814436b863363b8f8991c01336d77e4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to the server with an asynchronous operation.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae42c16c31ecc0e7db8ad53b427cc7fb2\" id=\"r_ae42c16c31ecc0e7db8ad53b427cc7fb2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae42c16c31ecc0e7db8ad53b427cc7fb2\">IsConnected</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae42c16c31ecc0e7db8ad53b427cc7fb2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a9ef33b94d5bc9e6a343f21b1b01229a2\" id=\"r_a9ef33b94d5bc9e6a343f21b1b01229a2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9ef33b94d5bc9e6a343f21b1b01229a2\">IsConnecting</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9ef33b94d5bc9e6a343f21b1b01229a2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the socket is connecting.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a130b25217829edc3307fb83d665eacea\" id=\"r_a130b25217829edc3307fb83d665eacea\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a130b25217829edc3307fb83d665eacea\">Connected</a></td></tr>\n<tr class=\"memdesc:a130b25217829edc3307fb83d665eacea\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is connected.  <br /></td></tr>\n<tr class=\"memitem:a711266e5d8ab7fe8ca6feb1c70a79679\" id=\"r_a711266e5d8ab7fe8ca6feb1c70a79679\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a711266e5d8ab7fe8ca6feb1c70a79679\">Closed</a></td></tr>\n<tr class=\"memdesc:a711266e5d8ab7fe8ca6feb1c70a79679\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket is disconnected.  <br /></td></tr>\n<tr class=\"memitem:a60e05f18eda93116edb329193b7c20a6\" id=\"r_a60e05f18eda93116edb329193b7c20a6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; Exception &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60e05f18eda93116edb329193b7c20a6\">ReceivedError</a></td></tr>\n<tr class=\"memdesc:a60e05f18eda93116edb329193b7c20a6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket has an error when connected.  <br /></td></tr>\n<tr class=\"memitem:a0c9baa386c7cba1edc6bf1d6765fc008\" id=\"r_a0c9baa386c7cba1edc6bf1d6765fc008\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; ArraySegment&lt; byte &gt; &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0c9baa386c7cba1edc6bf1d6765fc008\">Received</a></td></tr>\n<tr class=\"memdesc:a0c9baa386c7cba1edc6bf1d6765fc008\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event dispatched when the socket receives a message.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"ac4fdf85f7e31f3ef6fb573656081130e\" name=\"ac4fdf85f7e31f3ef6fb573656081130e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac4fdf85f7e31f3ef6fb573656081130e\">&#9670;&#160;</a></span>CloseAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocketAdapter.CloseAsync </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Close the socket with an asynchronous operation. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\">Nakama.WebSocketAdapter</a>, and <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\">Nakama.WebSocketStdlibAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a98391b86100741424b89284cd2db8e06\" name=\"a98391b86100741424b89284cd2db8e06\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a98391b86100741424b89284cd2db8e06\">&#9670;&#160;</a></span>ConnectAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocketAdapter.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeout</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Connect to the server with an asynchronous operation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The URI of the server.</td></tr>\n    <tr><td class=\"paramname\">timeout</td><td>The timeout for the connect attempt on the socket.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\">Nakama.WebSocketAdapter</a>, and <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\">Nakama.WebSocketStdlibAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"ab814436b863363b8f8991c01336d77e4\" name=\"ab814436b863363b8f8991c01336d77e4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab814436b863363b8f8991c01336d77e4\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.ISocketAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>buffer</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>reliable</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>canceller</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send data to the server with an asynchronous operation. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">buffer</td><td>The buffer with the message to send.</td></tr>\n    <tr><td class=\"paramname\">reliable</td><td>If the message should be sent reliably (will be ignored by some protocols).</td></tr>\n    <tr><td class=\"paramname\">canceller</td><td>A cancellation token used to propagate when the operation should be canceled.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\">Nakama.WebSocketAdapter</a>, and <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\">Nakama.WebSocketStdlibAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae42c16c31ecc0e7db8ad53b427cc7fb2\" name=\"ae42c16c31ecc0e7db8ad53b427cc7fb2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae42c16c31ecc0e7db8ad53b427cc7fb2\">&#9670;&#160;</a></span>IsConnected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISocketAdapter.IsConnected</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connected. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\">Nakama.WebSocketAdapter</a>, and <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\">Nakama.WebSocketStdlibAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a9ef33b94d5bc9e6a343f21b1b01229a2\" name=\"a9ef33b94d5bc9e6a343f21b1b01229a2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9ef33b94d5bc9e6a343f21b1b01229a2\">&#9670;&#160;</a></span>IsConnecting</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.ISocketAdapter.IsConnecting</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the socket is connecting. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\">Nakama.WebSocketAdapter</a>, and <a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\">Nakama.WebSocketStdlibAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a711266e5d8ab7fe8ca6feb1c70a79679\" name=\"a711266e5d8ab7fe8ca6feb1c70a79679\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a711266e5d8ab7fe8ca6feb1c70a79679\">&#9670;&#160;</a></span>Closed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.ISocketAdapter.Closed</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>An event dispatched when the socket is disconnected. </p>\n\n</div>\n</div>\n<a id=\"a130b25217829edc3307fb83d665eacea\" name=\"a130b25217829edc3307fb83d665eacea\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a130b25217829edc3307fb83d665eacea\">&#9670;&#160;</a></span>Connected</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action Nakama.ISocketAdapter.Connected</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>An event dispatched when the socket is connected. </p>\n\n</div>\n</div>\n<a id=\"a0c9baa386c7cba1edc6bf1d6765fc008\" name=\"a0c9baa386c7cba1edc6bf1d6765fc008\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0c9baa386c7cba1edc6bf1d6765fc008\">&#9670;&#160;</a></span>Received</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;ArraySegment&lt;byte&gt; &gt; Nakama.ISocketAdapter.Received</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>An event dispatched when the socket receives a message. </p>\n\n</div>\n</div>\n<a id=\"a60e05f18eda93116edb329193b7c20a6\" name=\"a60e05f18eda93116edb329193b7c20a6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60e05f18eda93116edb329193b7c20a6\">&#9670;&#160;</a></span>ReceivedError</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;Exception&gt; Nakama.ISocketAdapter.ReceivedError</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>An event dispatched when the socket has an error when connected. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_socket_adapter_8cs.html\">ISocketAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_socket_adapter.js",
    "content": "var interface_nakama_1_1_i_socket_adapter =\n[\n    [ \"CloseAsync\", \"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\", null ],\n    [ \"ConnectAsync\", \"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\", null ],\n    [ \"SendAsync\", \"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\", null ],\n    [ \"IsConnected\", \"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\", null ],\n    [ \"IsConnecting\", \"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\", null ],\n    [ \"Closed\", \"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\", null ],\n    [ \"Connected\", \"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\", null ],\n    [ \"Received\", \"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\", null ],\n    [ \"ReceivedError\", \"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_status.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStatus Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">Nakama.IStatus</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\">Presences</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">Nakama.IStatus</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IStatus Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_status.html','','interface_nakama_1_1_i_status-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStatus Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Receive status updates for users.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3257d37a09f2d48bfdce7d40234369ae\" id=\"r_a3257d37a09f2d48bfdce7d40234369ae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3257d37a09f2d48bfdce7d40234369ae\">Presences</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3257d37a09f2d48bfdce7d40234369ae\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The status events for the users followed.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Receive status updates for users. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3257d37a09f2d48bfdce7d40234369ae\" name=\"a3257d37a09f2d48bfdce7d40234369ae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3257d37a09f2d48bfdce7d40234369ae\">&#9670;&#160;</a></span>Presences</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IStatus.Presences</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The status events for the users followed. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_status_8cs.html\">IStatus.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_status.html\">IStatus</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status.js",
    "content": "var interface_nakama_1_1_i_status =\n[\n    [ \"Presences\", \"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status_presence_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_status_presence_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStatusPresenceEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">Nakama.IStatusPresenceEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\">Joins</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">Nakama.IStatusPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\">Leaves</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">Nakama.IStatusPresenceEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status_presence_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IStatusPresenceEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_status_presence_event.html','','interface_nakama_1_1_i_status_presence_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStatusPresenceEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A status update event about other users who've come online or gone offline.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab55b13ffb490c5f503df00289ec79f95\" id=\"r_ab55b13ffb490c5f503df00289ec79f95\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab55b13ffb490c5f503df00289ec79f95\">Leaves</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab55b13ffb490c5f503df00289ec79f95\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who left the server.  <br /></td></tr>\n<tr class=\"memitem:af42429c8328a1f1c00bad3442a8067bb\" id=\"r_af42429c8328a1f1c00bad3442a8067bb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af42429c8328a1f1c00bad3442a8067bb\">Joins</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af42429c8328a1f1c00bad3442a8067bb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who joined the server.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A status update event about other users who've come online or gone offline. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af42429c8328a1f1c00bad3442a8067bb\" name=\"af42429c8328a1f1c00bad3442a8067bb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af42429c8328a1f1c00bad3442a8067bb\">&#9670;&#160;</a></span>Joins</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IStatusPresenceEvent.Joins</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who joined the server. </p>\n<p>This join information is in response to a subscription made to be notified when a user comes online. </p>\n\n</div>\n</div>\n<a id=\"ab55b13ffb490c5f503df00289ec79f95\" name=\"ab55b13ffb490c5f503df00289ec79f95\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab55b13ffb490c5f503df00289ec79f95\">&#9670;&#160;</a></span>Leaves</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IStatusPresenceEvent.Leaves</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who left the server. </p>\n<p>This leave information is in response to a subscription made to be notified when a user goes offline. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_status_presence_event_8cs.html\">IStatusPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_status_presence_event.js",
    "content": "var interface_nakama_1_1_i_status_presence_event =\n[\n    [ \"Joins\", \"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\", null ],\n    [ \"Leaves\", \"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStream Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\">Descriptor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\">Label</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\">Mode</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\">Subject</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">Nakama.IStream</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IStream Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream.html','','interface_nakama_1_1_i_stream-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStream Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A realtime socket stream on the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a29cd5eb4946ed2cfa9e97c0800d16777\" id=\"r_a29cd5eb4946ed2cfa9e97c0800d16777\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29cd5eb4946ed2cfa9e97c0800d16777\">Descriptor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a29cd5eb4946ed2cfa9e97c0800d16777\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The descriptor of the stream. Used with direct chat messages and contains a second user id.  <br /></td></tr>\n<tr class=\"memitem:a567053cfb9743496a86b53fb80a742ad\" id=\"r_a567053cfb9743496a86b53fb80a742ad\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a567053cfb9743496a86b53fb80a742ad\">Label</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a567053cfb9743496a86b53fb80a742ad\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Identifies streams which have a context across users like a chat channel room.  <br /></td></tr>\n<tr class=\"memitem:a2910dac84da42be3dee534ca49546b3d\" id=\"r_a2910dac84da42be3dee534ca49546b3d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2910dac84da42be3dee534ca49546b3d\">Mode</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2910dac84da42be3dee534ca49546b3d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The mode of the stream.  <br /></td></tr>\n<tr class=\"memitem:a914a568af0a74e4551835d923ae33989\" id=\"r_a914a568af0a74e4551835d923ae33989\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a914a568af0a74e4551835d923ae33989\">Subject</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a914a568af0a74e4551835d923ae33989\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The subject of the stream. This is usually a user id.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A realtime socket stream on the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a29cd5eb4946ed2cfa9e97c0800d16777\" name=\"a29cd5eb4946ed2cfa9e97c0800d16777\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29cd5eb4946ed2cfa9e97c0800d16777\">&#9670;&#160;</a></span>Descriptor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IStream.Descriptor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The descriptor of the stream. Used with direct chat messages and contains a second user id. </p>\n\n</div>\n</div>\n<a id=\"a567053cfb9743496a86b53fb80a742ad\" name=\"a567053cfb9743496a86b53fb80a742ad\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a567053cfb9743496a86b53fb80a742ad\">&#9670;&#160;</a></span>Label</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IStream.Label</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Identifies streams which have a context across users like a chat channel room. </p>\n\n</div>\n</div>\n<a id=\"a2910dac84da42be3dee534ca49546b3d\" name=\"a2910dac84da42be3dee534ca49546b3d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2910dac84da42be3dee534ca49546b3d\">&#9670;&#160;</a></span>Mode</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IStream.Mode</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The mode of the stream. </p>\n\n</div>\n</div>\n<a id=\"a914a568af0a74e4551835d923ae33989\" name=\"a914a568af0a74e4551835d923ae33989\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a914a568af0a74e4551835d923ae33989\">&#9670;&#160;</a></span>Subject</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IStream.Subject</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The subject of the stream. This is usually a user id. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_stream_presence_event_8cs.html\">IStreamPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_stream.html\">IStream</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream.js",
    "content": "var interface_nakama_1_1_i_stream =\n[\n    [ \"Descriptor\", \"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\", null ],\n    [ \"Label\", \"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\", null ],\n    [ \"Mode\", \"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\", null ],\n    [ \"Subject\", \"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_presence_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream_presence_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStreamPresenceEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">Nakama.IStreamPresenceEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\">Joins</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">Nakama.IStreamPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\">Leaves</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">Nakama.IStreamPresenceEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\">Stream</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">Nakama.IStreamPresenceEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_presence_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IStreamPresenceEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream_presence_event.html','','interface_nakama_1_1_i_stream_presence_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStreamPresenceEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A batch of joins and leaves on the low level stream.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae4ac7fee586952580142c0ed6a1c3bff\" id=\"r_ae4ac7fee586952580142c0ed6a1c3bff\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae4ac7fee586952580142c0ed6a1c3bff\">Leaves</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae4ac7fee586952580142c0ed6a1c3bff\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who joined the stream.  <br /></td></tr>\n<tr class=\"memitem:a348ece2fffc76212d47fd885fb80c7cb\" id=\"r_a348ece2fffc76212d47fd885fb80c7cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a348ece2fffc76212d47fd885fb80c7cb\">Joins</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a348ece2fffc76212d47fd885fb80c7cb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presences of users who left the stream.  <br /></td></tr>\n<tr class=\"memitem:abe21bc088dad6602243133ddedfd903c\" id=\"r_abe21bc088dad6602243133ddedfd903c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abe21bc088dad6602243133ddedfd903c\">Stream</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abe21bc088dad6602243133ddedfd903c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The identifier for the stream.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A batch of joins and leaves on the low level stream. </p>\n<p>Streams are built on to provide abstractions for matches, chat channels, etc. In most cases you'll never need to interact with the low level stream itself. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a348ece2fffc76212d47fd885fb80c7cb\" name=\"a348ece2fffc76212d47fd885fb80c7cb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a348ece2fffc76212d47fd885fb80c7cb\">&#9670;&#160;</a></span>Joins</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IStreamPresenceEvent.Joins</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who left the stream. </p>\n\n</div>\n</div>\n<a id=\"ae4ac7fee586952580142c0ed6a1c3bff\" name=\"ae4ac7fee586952580142c0ed6a1c3bff\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae4ac7fee586952580142c0ed6a1c3bff\">&#9670;&#160;</a></span>Leaves</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&gt; Nakama.IStreamPresenceEvent.Leaves</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Presences of users who joined the stream. </p>\n\n</div>\n</div>\n<a id=\"abe21bc088dad6602243133ddedfd903c\" name=\"abe21bc088dad6602243133ddedfd903c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abe21bc088dad6602243133ddedfd903c\">&#9670;&#160;</a></span>Stream</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a> Nakama.IStreamPresenceEvent.Stream</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The identifier for the stream. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_stream_presence_event_8cs.html\">IStreamPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_presence_event.js",
    "content": "var interface_nakama_1_1_i_stream_presence_event =\n[\n    [ \"Joins\", \"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\", null ],\n    [ \"Leaves\", \"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\", null ],\n    [ \"Stream\", \"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_state-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream_state.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStreamState Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">Nakama.IStreamState</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\">Sender</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">Nakama.IStreamState</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">Nakama.IStreamState</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\">Stream</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">Nakama.IStreamState</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_state.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IStreamState Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_stream_state.html','','interface_nakama_1_1_i_stream_state-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IStreamState Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A state change received from a stream.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac0bbd6199f882e10f65a40298931b4d6\" id=\"r_ac0bbd6199f882e10f65a40298931b4d6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac0bbd6199f882e10f65a40298931b4d6\">Sender</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac0bbd6199f882e10f65a40298931b4d6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user who sent the state change. May be <code>null</code>.  <br /></td></tr>\n<tr class=\"memitem:afc9a621f6766d2606cdefb6eae14c3f4\" id=\"r_afc9a621f6766d2606cdefb6eae14c3f4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc9a621f6766d2606cdefb6eae14c3f4\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afc9a621f6766d2606cdefb6eae14c3f4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The contents of the state change.  <br /></td></tr>\n<tr class=\"memitem:ad887e1bad3acb664c55caeb8bb182bda\" id=\"r_ad887e1bad3acb664c55caeb8bb182bda\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad887e1bad3acb664c55caeb8bb182bda\">Stream</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad887e1bad3acb664c55caeb8bb182bda\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The identifier for the stream.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A state change received from a stream. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac0bbd6199f882e10f65a40298931b4d6\" name=\"ac0bbd6199f882e10f65a40298931b4d6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac0bbd6199f882e10f65a40298931b4d6\">&#9670;&#160;</a></span>Sender</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a> Nakama.IStreamState.Sender</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user who sent the state change. May be <code>null</code>. </p>\n\n</div>\n</div>\n<a id=\"afc9a621f6766d2606cdefb6eae14c3f4\" name=\"afc9a621f6766d2606cdefb6eae14c3f4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc9a621f6766d2606cdefb6eae14c3f4\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IStreamState.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The contents of the state change. </p>\n\n</div>\n</div>\n<a id=\"ad887e1bad3acb664c55caeb8bb182bda\" name=\"ad887e1bad3acb664c55caeb8bb182bda\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad887e1bad3acb664c55caeb8bb182bda\">&#9670;&#160;</a></span>Stream</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a> Nakama.IStreamState.Stream</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The identifier for the stream. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_stream_presence_event_8cs.html\">IStreamPresenceEvent.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_stream_state.js",
    "content": "var interface_nakama_1_1_i_stream_state =\n[\n    [ \"Sender\", \"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\", null ],\n    [ \"State\", \"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\", null ],\n    [ \"Stream\", \"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_group_list_user_group-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_user_group_list_user_group.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IUserGroupListUserGroup Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">Nakama.IUserGroupListUserGroup</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\">Group</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">Nakama.IUserGroupListUserGroup</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\">State</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">Nakama.IUserGroupListUserGroup</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_group_list_user_group.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IUserGroupListUserGroup Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_user_group_list_user_group.html','','interface_nakama_1_1_i_user_group_list_user_group-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IUserGroupListUserGroup Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A single group-role pair.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac6160edc6cb94e7c14c4014a032ba647\" id=\"r_ac6160edc6cb94e7c14c4014a032ba647\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac6160edc6cb94e7c14c4014a032ba647\">Group</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac6160edc6cb94e7c14c4014a032ba647\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Group.  <br /></td></tr>\n<tr class=\"memitem:a15e89f8a93457a5d7d2c8ac93f97ed9f\" id=\"r_a15e89f8a93457a5d7d2c8ac93f97ed9f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a15e89f8a93457a5d7d2c8ac93f97ed9f\">State</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a15e89f8a93457a5d7d2c8ac93f97ed9f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user's relationship to the group.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A single group-role pair. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac6160edc6cb94e7c14c4014a032ba647\" name=\"ac6160edc6cb94e7c14c4014a032ba647\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac6160edc6cb94e7c14c4014a032ba647\">&#9670;&#160;</a></span>Group</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a> Nakama.IUserGroupListUserGroup.Group</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Group. </p>\n\n</div>\n</div>\n<a id=\"a15e89f8a93457a5d7d2c8ac93f97ed9f\" name=\"a15e89f8a93457a5d7d2c8ac93f97ed9f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a15e89f8a93457a5d7d2c8ac93f97ed9f\">&#9670;&#160;</a></span>State</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Nakama.IUserGroupListUserGroup.State</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The user's relationship to the group. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_group_list_user_group.js",
    "content": "var interface_nakama_1_1_i_user_group_list_user_group =\n[\n    [ \"Group\", \"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\", null ],\n    [ \"State\", \"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_presence-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_user_presence.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IUserPresence Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\">Persistence</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\">SessionId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\">Status</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\">UserId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\">Username</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">Nakama.IUserPresence</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_presence.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IUserPresence Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_user_presence.html','','interface_nakama_1_1_i_user_presence-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IUserPresence Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An object which represents a connected user in the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a1c44578acc447b46fe8baf2341a80830\" id=\"r_a1c44578acc447b46fe8baf2341a80830\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1c44578acc447b46fe8baf2341a80830\">Persistence</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1c44578acc447b46fe8baf2341a80830\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If this presence generates stored events like persistent chat messages or notifications.  <br /></td></tr>\n<tr class=\"memitem:a2456c3637f0883d30490386ab59957af\" id=\"r_a2456c3637f0883d30490386ab59957af\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2456c3637f0883d30490386ab59957af\">SessionId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2456c3637f0883d30490386ab59957af\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The session id of the user.  <br /></td></tr>\n<tr class=\"memitem:af88838cb8175fab5d0ea73ff772a4954\" id=\"r_af88838cb8175fab5d0ea73ff772a4954\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af88838cb8175fab5d0ea73ff772a4954\">Status</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af88838cb8175fab5d0ea73ff772a4954\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The status of the user with the presence on the server.  <br /></td></tr>\n<tr class=\"memitem:a43bdab47959724045eaaec39a4a40e0f\" id=\"r_a43bdab47959724045eaaec39a4a40e0f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a43bdab47959724045eaaec39a4a40e0f\">Username</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a43bdab47959724045eaaec39a4a40e0f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The username for the user.  <br /></td></tr>\n<tr class=\"memitem:a5fb27d3f3743bb43d5aa514a8267672a\" id=\"r_a5fb27d3f3743bb43d5aa514a8267672a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5fb27d3f3743bb43d5aa514a8267672a\">UserId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5fb27d3f3743bb43d5aa514a8267672a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The id of the user.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An object which represents a connected user in the server. </p>\n<p>The server allows the same user to be connected with multiple sessions. To uniquely identify them a tuple of <code>{ node_id, user_id, session_id }</code> is used which is exposed as this object. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a1c44578acc447b46fe8baf2341a80830\" name=\"a1c44578acc447b46fe8baf2341a80830\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1c44578acc447b46fe8baf2341a80830\">&#9670;&#160;</a></span>Persistence</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Nakama.IUserPresence.Persistence</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If this presence generates stored events like persistent chat messages or notifications. </p>\n\n</div>\n</div>\n<a id=\"a2456c3637f0883d30490386ab59957af\" name=\"a2456c3637f0883d30490386ab59957af\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2456c3637f0883d30490386ab59957af\">&#9670;&#160;</a></span>SessionId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IUserPresence.SessionId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The session id of the user. </p>\n\n</div>\n</div>\n<a id=\"af88838cb8175fab5d0ea73ff772a4954\" name=\"af88838cb8175fab5d0ea73ff772a4954\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af88838cb8175fab5d0ea73ff772a4954\">&#9670;&#160;</a></span>Status</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IUserPresence.Status</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The status of the user with the presence on the server. </p>\n\n</div>\n</div>\n<a id=\"a5fb27d3f3743bb43d5aa514a8267672a\" name=\"a5fb27d3f3743bb43d5aa514a8267672a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5fb27d3f3743bb43d5aa514a8267672a\">&#9670;&#160;</a></span>UserId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IUserPresence.UserId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The id of the user. </p>\n\n</div>\n</div>\n<a id=\"a43bdab47959724045eaaec39a4a40e0f\" name=\"a43bdab47959724045eaaec39a4a40e0f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a43bdab47959724045eaaec39a4a40e0f\">&#9670;&#160;</a></span>Username</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IUserPresence.Username</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The username for the user. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_user_presence_8cs.html\">IUserPresence.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_user_presence.js",
    "content": "var interface_nakama_1_1_i_user_presence =\n[\n    [ \"Persistence\", \"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\", null ],\n    [ \"SessionId\", \"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\", null ],\n    [ \"Status\", \"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\", null ],\n    [ \"UserId\", \"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\", null ],\n    [ \"Username\", \"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\">Operator</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\">Score</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\">Subscore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html','','interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Record values to write.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab275bbe8a45da634d8842df6011e7edc\" id=\"r_ab275bbe8a45da634d8842df6011e7edc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab275bbe8a45da634d8842df6011e7edc\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab275bbe8a45da634d8842df6011e7edc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional record metadata.  <br /></td></tr>\n<tr class=\"memitem:a91a753c536f1611d04ab3e8b9c9b88ac\" id=\"r_a91a753c536f1611d04ab3e8b9c9b88ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a91a753c536f1611d04ab3e8b9c9b88ac\">Operator</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a91a753c536f1611d04ab3e8b9c9b88ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Operator override.  <br /></td></tr>\n<tr class=\"memitem:a6333b5c9d267c1275cc284bfcd07f3a0\" id=\"r_a6333b5c9d267c1275cc284bfcd07f3a0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a6333b5c9d267c1275cc284bfcd07f3a0\">Score</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a6333b5c9d267c1275cc284bfcd07f3a0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The score value to submit.  <br /></td></tr>\n<tr class=\"memitem:a9d2f49fe634454482c21767879427954\" id=\"r_a9d2f49fe634454482c21767879427954\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9d2f49fe634454482c21767879427954\">Subscore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9d2f49fe634454482c21767879427954\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An optional secondary value.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Record values to write. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab275bbe8a45da634d8842df6011e7edc\" name=\"ab275bbe8a45da634d8842df6011e7edc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab275bbe8a45da634d8842df6011e7edc\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional record metadata. </p>\n\n</div>\n</div>\n<a id=\"a91a753c536f1611d04ab3e8b9c9b88ac\" name=\"a91a753c536f1611d04ab3e8b9c9b88ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a91a753c536f1611d04ab3e8b9c9b88ac\">&#9670;&#160;</a></span>Operator</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Operator</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Operator override. </p>\n\n</div>\n</div>\n<a id=\"a6333b5c9d267c1275cc284bfcd07f3a0\" name=\"a6333b5c9d267c1275cc284bfcd07f3a0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a6333b5c9d267c1275cc284bfcd07f3a0\">&#9670;&#160;</a></span>Score</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Score</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The score value to submit. </p>\n\n</div>\n</div>\n<a id=\"a9d2f49fe634454482c21767879427954\" name=\"a9d2f49fe634454482c21767879427954\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9d2f49fe634454482c21767879427954\">&#9670;&#160;</a></span>Subscore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Subscore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>An optional secondary value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.js",
    "content": "var interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write =\n[\n    [ \"Metadata\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\", null ],\n    [ \"Operator\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\", null ],\n    [ \"Score\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\", null ],\n    [ \"Subscore\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\">Operator</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\">Score</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\">Subscore</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.IWriteTournamentRecordRequestTournamentRecordWrite Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html','','interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.IWriteTournamentRecordRequestTournamentRecordWrite Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Record values to write.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a7d6164dae5175699d8a2ee35e644e54c\" id=\"r_a7d6164dae5175699d8a2ee35e644e54c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7d6164dae5175699d8a2ee35e644e54c\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7d6164dae5175699d8a2ee35e644e54c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A JSON object of additional properties (optional).  <br /></td></tr>\n<tr class=\"memitem:adac6bd7cb6c2cb8487fb33dafb68cac8\" id=\"r_adac6bd7cb6c2cb8487fb33dafb68cac8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adac6bd7cb6c2cb8487fb33dafb68cac8\">Operator</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adac6bd7cb6c2cb8487fb33dafb68cac8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Operator override.  <br /></td></tr>\n<tr class=\"memitem:ad3a1c0719749e609006577a7577729b1\" id=\"r_ad3a1c0719749e609006577a7577729b1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad3a1c0719749e609006577a7577729b1\">Score</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad3a1c0719749e609006577a7577729b1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The score value to submit.  <br /></td></tr>\n<tr class=\"memitem:a3c85729254f628d830601afe34c22b69\" id=\"r_a3c85729254f628d830601afe34c22b69\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3c85729254f628d830601afe34c22b69\">Subscore</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3c85729254f628d830601afe34c22b69\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An optional secondary value.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Record values to write. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a7d6164dae5175699d8a2ee35e644e54c\" name=\"a7d6164dae5175699d8a2ee35e644e54c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7d6164dae5175699d8a2ee35e644e54c\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A JSON object of additional properties (optional). </p>\n\n</div>\n</div>\n<a id=\"adac6bd7cb6c2cb8487fb33dafb68cac8\" name=\"adac6bd7cb6c2cb8487fb33dafb68cac8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adac6bd7cb6c2cb8487fb33dafb68cac8\">&#9670;&#160;</a></span>Operator</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Operator</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Operator override. </p>\n\n</div>\n</div>\n<a id=\"ad3a1c0719749e609006577a7577729b1\" name=\"ad3a1c0719749e609006577a7577729b1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad3a1c0719749e609006577a7577729b1\">&#9670;&#160;</a></span>Score</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Score</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The score value to submit. </p>\n\n</div>\n</div>\n<a id=\"a3c85729254f628d830601afe34c22b69\" name=\"a3c85729254f628d830601afe34c22b69\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3c85729254f628d830601afe34c22b69\">&#9670;&#160;</a></span>Subscore</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Subscore</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>An optional secondary value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_nakama_2_api_client_8gen_8cs.html\">Nakama/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">IWriteTournamentRecordRequestTournamentRecordWrite</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.js",
    "content": "var interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write =\n[\n    [ \"Metadata\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\", null ],\n    [ \"Operator\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\", null ],\n    [ \"Score\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\", null ],\n    [ \"Subscore\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IBufferPool Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">Nakama.Ninja.WebSockets.IBufferPool</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\">GetBuffer</a>()</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">Nakama.Ninja.WebSockets.IBufferPool</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.IBufferPool Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html','','interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IBufferPool Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.IBufferPool:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EIBufferPool_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EIBufferPool_map\" name=\"Nakama_2ENinja_2EWebSockets_2EIBufferPool_map\">\n<area href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\" title=\"This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically acces...\" alt=\"Nakama.Ninja.WebSockets.BufferPool\" shape=\"rect\" coords=\"0,56,230,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aba30a1520b1f1733d019704827fbcef2\" id=\"r_aba30a1520b1f1733d019704827fbcef2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">MemoryStream&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aba30a1520b1f1733d019704827fbcef2\">GetBuffer</a> ()</td></tr>\n<tr class=\"memdesc:aba30a1520b1f1733d019704827fbcef2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Gets a MemoryStream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool.  <br /></td></tr>\n</table>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"aba30a1520b1f1733d019704827fbcef2\" name=\"aba30a1520b1f1733d019704827fbcef2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aba30a1520b1f1733d019704827fbcef2\">&#9670;&#160;</a></span>GetBuffer()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">MemoryStream Nakama.Ninja.WebSockets.IBufferPool.GetBuffer </td>\n          <td>(</td>\n          <td class=\"paramname\"><span class=\"paramname\"><em></em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Gets a MemoryStream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\">Nakama.Ninja.WebSockets.BufferPool</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_buffer_pool_8cs.html\">IBufferPool.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">IBufferPool</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.js",
    "content": "var interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool =\n[\n    [ \"GetBuffer\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IPingPongManager Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">Nakama.Ninja.WebSockets.IPingPongManager</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\">Pong</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">Nakama.Ninja.WebSockets.IPingPongManager</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\">SendPing</a>(ArraySegment&lt; byte &gt; payload, CancellationToken cancellation)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">Nakama.Ninja.WebSockets.IPingPongManager</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.IPingPongManager Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html','','interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IPingPongManager Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Ping Pong Manager used to facilitate ping pong WebSocket messages.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.IPingPongManager:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EIPingPongManager_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EIPingPongManager_map\" name=\"Nakama_2ENinja_2EWebSockets_2EIPingPongManager_map\">\n<area href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\" title=\"Ping Pong Manager used to facilitate ping pong WebSocket messages.\" alt=\"Nakama.Ninja.WebSockets.PingPongManager\" shape=\"rect\" coords=\"0,56,275,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a9e454afd70ec36b728aad46d32282941\" id=\"r_a9e454afd70ec36b728aad46d32282941\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9e454afd70ec36b728aad46d32282941\">SendPing</a> (ArraySegment&lt; byte &gt; payload, CancellationToken cancellation)</td></tr>\n<tr class=\"memdesc:a9e454afd70ec36b728aad46d32282941\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Sends a ping frame.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:a745f1289cfea320742116e665442b4b8\" id=\"r_a745f1289cfea320742116e665442b4b8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">EventHandler&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a745f1289cfea320742116e665442b4b8\">Pong</a></td></tr>\n<tr class=\"memdesc:a745f1289cfea320742116e665442b4b8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Raised when a Pong frame is received.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Ping Pong Manager used to facilitate ping pong WebSocket messages. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a9e454afd70ec36b728aad46d32282941\" name=\"a9e454afd70ec36b728aad46d32282941\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9e454afd70ec36b728aad46d32282941\">&#9670;&#160;</a></span>SendPing()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Nakama.Ninja.WebSockets.IPingPongManager.SendPing </td>\n          <td>(</td>\n          <td class=\"paramtype\">ArraySegment&lt; byte &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>payload</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellation</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Sends a ping frame. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">payload</td><td>The payload (must be 125 bytes of less)</td></tr>\n    <tr><td class=\"paramname\">cancellation</td><td>The cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\">Nakama.Ninja.WebSockets.PingPongManager</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"a745f1289cfea320742116e665442b4b8\" name=\"a745f1289cfea320742116e665442b4b8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a745f1289cfea320742116e665442b4b8\">&#9670;&#160;</a></span>Pong</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">EventHandler&lt;<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a>&gt; Nakama.Ninja.WebSockets.IPingPongManager.Pong</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Raised when a Pong frame is received. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_ping_pong_manager_8cs.html\">IPingPongManager.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">IPingPongManager</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.js",
    "content": "var interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager =\n[\n    [ \"SendPing\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\", null ],\n    [ \"Pong\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IWebSocketClientFactory Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\">ConnectAsync</a>(Uri uri, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\">ConnectAsync</a>(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\">ConnectAsync</a>(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">Nakama.Ninja.WebSockets.IWebSocketClientFactory</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.IWebSocketClientFactory Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html','','interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IWebSocketClientFactory Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Web socket client factory used to open web socket client connections.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.IWebSocketClientFactory:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EIWebSocketClientFactory_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EIWebSocketClientFactory_map\" name=\"Nakama_2ENinja_2EWebSockets_2EIWebSocketClientFactory_map\">\n<area href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\" title=\"Web socket client factory used to open web socket client connections.\" alt=\"Nakama.Ninja.WebSockets.WebSocketClientFactory\" shape=\"rect\" coords=\"0,56,309,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a09487c4902848a49ab288c6349135075\" id=\"r_a09487c4902848a49ab288c6349135075\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a09487c4902848a49ab288c6349135075\">ConnectAsync</a> (Uri uri, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a09487c4902848a49ab288c6349135075\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with default options.  <br /></td></tr>\n<tr class=\"memitem:aa6292760fcc97b83660588a66d427f68\" id=\"r_aa6292760fcc97b83660588a66d427f68\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa6292760fcc97b83660588a66d427f68\">ConnectAsync</a> (Uri uri, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:aa6292760fcc97b83660588a66d427f68\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with options specified.  <br /></td></tr>\n<tr class=\"memitem:af8ed478fd433a7261c2ed1010e19592d\" id=\"r_af8ed478fd433a7261c2ed1010e19592d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af8ed478fd433a7261c2ed1010e19592d\">ConnectAsync</a> (System.IO.Stream responseStream, string secWebSocketKey, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:af8ed478fd433a7261c2ed1010e19592d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/IP and this function will allow you to do that.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Web socket client factory used to open web socket client connections. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"af8ed478fd433a7261c2ed1010e19592d\" name=\"af8ed478fd433a7261c2ed1010e19592d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af8ed478fd433a7261c2ed1010e19592d\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[1/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>responseStream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>secWebSocketKey</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/IP and this function will allow you to do that. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">responseStream</td><td>The full duplex response stream from the server</td></tr>\n    <tr><td class=\"paramname\">secWebSocketKey</td><td>The secWebSocketKey you used in the handshake request</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The WebSocket client options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd></dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"a09487c4902848a49ab288c6349135075\" name=\"a09487c4902848a49ab288c6349135075\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a09487c4902848a49ab288c6349135075\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[2/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Connect with default options. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket instance</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"aa6292760fcc97b83660588a66d427f68\" name=\"aa6292760fcc97b83660588a66d427f68\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa6292760fcc97b83660588a66d427f68\">&#9670;&#160;</a></span>ConnectAsync() <span class=\"overload\">[3/3]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Connect with options specified. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">uri</td><td>The WebSocket uri to connect to (e.g. ws://example.com or wss://example.com for SSL)</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The WebSocket client options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket instance</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\">Nakama.Ninja.WebSockets.WebSocketClientFactory</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_web_socket_client_factory_8cs.html\">IWebSocketClientFactory.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">IWebSocketClientFactory</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.js",
    "content": "var interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory =\n[\n    [ \"ConnectAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\", null ],\n    [ \"ConnectAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\", null ],\n    [ \"ConnectAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IWebSocketServerFactory Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\">AcceptWebSocketAsync</a>(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\">AcceptWebSocketAsync</a>(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\">ReadHttpHeaderFromStreamAsync</a>(System.IO.Stream stream, CancellationToken token=default(CancellationToken))</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">Nakama.Ninja.WebSockets.IWebSocketServerFactory</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.IWebSocketServerFactory Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html','','interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.IWebSocketServerFactory Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Web socket server factory used to open web socket server connections.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Nakama.Ninja.WebSockets.IWebSocketServerFactory:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.png\" usemap=\"#Nakama_2ENinja_2EWebSockets_2EIWebSocketServerFactory_map\" alt=\"\"/>\n  <map id=\"Nakama_2ENinja_2EWebSockets_2EIWebSocketServerFactory_map\" name=\"Nakama_2ENinja_2EWebSockets_2EIWebSocketServerFactory_map\">\n<area href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\" title=\"Web socket server factory used to open web socket server connections.\" alt=\"Nakama.Ninja.WebSockets.WebSocketServerFactory\" shape=\"rect\" coords=\"0,56,316,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a317ffba9297f7d6ed0dc899ad1143fc6\" id=\"r_a317ffba9297f7d6ed0dc899ad1143fc6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a317ffba9297f7d6ed0dc899ad1143fc6\">ReadHttpHeaderFromStreamAsync</a> (System.IO.Stream stream, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a317ffba9297f7d6ed0dc899ad1143fc6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade.  <br /></td></tr>\n<tr class=\"memitem:a324539f6e78653fdc0dc5808a32382f9\" id=\"r_a324539f6e78653fdc0dc5808a32382f9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a324539f6e78653fdc0dc5808a32382f9\">AcceptWebSocketAsync</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> context, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a324539f6e78653fdc0dc5808a32382f9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept web socket with default options Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>.  <br /></td></tr>\n<tr class=\"memitem:a8606821c9e7ab2e7e314406740c93669\" id=\"r_a8606821c9e7ab2e7e314406740c93669\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; WebSocket &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8606821c9e7ab2e7e314406740c93669\">AcceptWebSocketAsync</a> (<a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> context, <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a> options, CancellationToken token=default(CancellationToken))</td></tr>\n<tr class=\"memdesc:a8606821c9e7ab2e7e314406740c93669\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Accept web socket with options specified Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Web socket server factory used to open web socket server connections. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a324539f6e78653fdc0dc5808a32382f9\" name=\"a324539f6e78653fdc0dc5808a32382f9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a324539f6e78653fdc0dc5808a32382f9\">&#9670;&#160;</a></span>AcceptWebSocketAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>context</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Accept web socket with default options Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">context</td><td>The http context used to initiate this web socket request</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"a8606821c9e7ab2e7e314406740c93669\" name=\"a8606821c9e7ab2e7e314406740c93669\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8606821c9e7ab2e7e314406740c93669\">&#9670;&#160;</a></span>AcceptWebSocketAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; WebSocket &gt; Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>context</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>options</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Accept web socket with options specified Call ReadHttpHeaderFromStreamAsync first to get <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\" title=\"The WebSocket HTTP Context used to initiate a WebSocket handshake.\">WebSocketHttpContext</a>. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">context</td><td>The http context used to initiate this web socket request</td></tr>\n    <tr><td class=\"paramname\">options</td><td>The web socket options</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A connected web socket</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<a id=\"a317ffba9297f7d6ed0dc899ad1143fc6\" name=\"a317ffba9297f7d6ed0dc899ad1143fc6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a317ffba9297f7d6ed0dc899ad1143fc6\">&#9670;&#160;</a></span>ReadHttpHeaderFromStreamAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a> &gt; Nakama.Ninja.WebSockets.IWebSocketServerFactory.ReadHttpHeaderFromStreamAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">System.IO.Stream</td>          <td class=\"paramname\"><span class=\"paramname\"><em>stream</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken</td>          <td class=\"paramname\"><span class=\"paramname\"><em>token</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default(CancellationToken)</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Reads a http header information from a stream and decodes the parts relating to the WebSocket protocot upgrade. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">stream</td><td>The network stream</td></tr>\n    <tr><td class=\"paramname\">token</td><td>The optional cancellation token</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>Http data read from the stream</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\">Nakama.Ninja.WebSockets.WebSocketServerFactory</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_i_web_socket_server_factory_8cs.html\">IWebSocketServerFactory.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">IWebSocketServerFactory</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.js",
    "content": "var interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory =\n[\n    [ \"AcceptWebSocketAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\", null ],\n    [ \"AcceptWebSocketAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\", null ],\n    [ \"ReadHttpHeaderFromStreamAsync\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\", null ]\n];"
  },
  {
    "path": "docs/html/interface_nakama_1_1_tests_1_1_i_nested_test_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('interface_nakama_1_1_tests_1_1_i_nested_test_object.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.INestedTestObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">Nakama.Tests.INestedTestObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>AnotherVal</b> (defined in <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">Nakama.Tests.INestedTestObject</a>)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">Nakama.Tests.INestedTestObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_tests_1_1_i_nested_test_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.INestedTestObject Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('interface_nakama_1_1_tests_1_1_i_nested_test_object.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#properties\">Properties</a> &#124;\n<a href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.INestedTestObject Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Inherited by Nakama.Tests.NestedTestObject.</p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac5f8d5026d12119e0e58921f29bd69b5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ac5f8d5026d12119e0e58921f29bd69b5\" name=\"ac5f8d5026d12119e0e58921f29bd69b5\"></a>\nstring&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>AnotherVal</b><code> [get]</code></td></tr>\n<tr class=\"separator:ac5f8d5026d12119e0e58921f29bd69b5\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li>Nakama.Tests/TinyJsonParserTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">INestedTestObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_tests_1_1_i_test_object-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('interface_nakama_1_1_tests_1_1_i_test_object.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.ITestObject Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">Nakama.Tests.ITestObject</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr bgcolor=\"#f0f0f0\" class=\"even\"><td class=\"entry\"><b>Nested</b> (defined in <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">Nakama.Tests.ITestObject</a>)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">Nakama.Tests.ITestObject</a></td><td class=\"entry\"></td></tr>\n  <tr bgcolor=\"#f0f0f0\" class=\"odd\"><td class=\"entry\"><b>SomeVal</b> (defined in <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">Nakama.Tests.ITestObject</a>)</td><td class=\"entry\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">Nakama.Tests.ITestObject</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_nakama_1_1_tests_1_1_i_test_object.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.ITestObject Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('interface_nakama_1_1_tests_1_1_i_test_object.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#properties\">Properties</a> &#124;\n<a href=\"interface_nakama_1_1_tests_1_1_i_test_object-members.html\">List of all members</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.ITestObject Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Inherited by Nakama.Tests.TestObject.</p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab4b2e4eea1c7166b0094763a230e58f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab4b2e4eea1c7166b0094763a230e58f7\" name=\"ab4b2e4eea1c7166b0094763a230e58f7\"></a>\nstring&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>SomeVal</b><code> [get]</code></td></tr>\n<tr class=\"separator:ab4b2e4eea1c7166b0094763a230e58f7\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:ab73cd3fdde82e006290dbb649f9940cb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"ab73cd3fdde82e006290dbb649f9940cb\" name=\"ab73cd3fdde82e006290dbb649f9940cb\"></a>\nIEnumerable&lt; <a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">INestedTestObject</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Nested</b><code> [get]</code></td></tr>\n<tr class=\"separator:ab73cd3fdde82e006290dbb649f9940cb\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li>Nakama.Tests/TinyJsonParserTest.cs</li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">ITestObject</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_logout_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_logout_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateLogoutRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">Satori.IApiAuthenticateLogoutRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">Satori.IApiAuthenticateLogoutRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">Satori.IApiAuthenticateLogoutRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_logout_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiAuthenticateLogoutRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_logout_request.html','','interface_satori_1_1_i_api_authenticate_logout_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateLogoutRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aee4106debdd1d7d7f57a6987c5f4dd65\" id=\"r_aee4106debdd1d7d7f57a6987c5f4dd65\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aee4106debdd1d7d7f57a6987c5f4dd65\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aee4106debdd1d7d7f57a6987c5f4dd65\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token to invalidate.  <br /></td></tr>\n<tr class=\"memitem:ae2c9246a90730e17f92b059af8010972\" id=\"r_ae2c9246a90730e17f92b059af8010972\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae2c9246a90730e17f92b059af8010972\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae2c9246a90730e17f92b059af8010972\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Session</a> token to log out.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aee4106debdd1d7d7f57a6987c5f4dd65\" name=\"aee4106debdd1d7d7f57a6987c5f4dd65\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aee4106debdd1d7d7f57a6987c5f4dd65\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiAuthenticateLogoutRequest.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token to invalidate. </p>\n\n</div>\n</div>\n<a id=\"ae2c9246a90730e17f92b059af8010972\" name=\"ae2c9246a90730e17f92b059af8010972\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae2c9246a90730e17f92b059af8010972\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiAuthenticateLogoutRequest.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_session.html\">Session</a> token to log out. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">IApiAuthenticateLogoutRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_logout_request.js",
    "content": "var interface_satori_1_1_i_api_authenticate_logout_request =\n[\n    [ \"RefreshToken\", \"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\", null ],\n    [ \"Token\", \"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_refresh_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_refresh_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateRefreshRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">Satori.IApiAuthenticateRefreshRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">Satori.IApiAuthenticateRefreshRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_refresh_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiAuthenticateRefreshRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_refresh_request.html','','interface_satori_1_1_i_api_authenticate_refresh_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateRefreshRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Authenticate against the server with a refresh token.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0b2eee0a2a242a6bec78540bf2e75ee1\" id=\"r_a0b2eee0a2a242a6bec78540bf2e75ee1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0b2eee0a2a242a6bec78540bf2e75ee1\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0b2eee0a2a242a6bec78540bf2e75ee1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Authenticate against the server with a refresh token. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0b2eee0a2a242a6bec78540bf2e75ee1\" name=\"a0b2eee0a2a242a6bec78540bf2e75ee1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0b2eee0a2a242a6bec78540bf2e75ee1\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiAuthenticateRefreshRequest.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">IApiAuthenticateRefreshRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_refresh_request.js",
    "content": "var interface_satori_1_1_i_api_authenticate_refresh_request =\n[\n    [ \"RefreshToken\", \"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\">Custom</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\">Default</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\">NoSession</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">Satori.IApiAuthenticateRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiAuthenticateRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_authenticate_request.html','','interface_satori_1_1_i_api_authenticate_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiAuthenticateRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Authentication request.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0cf19fe816f8c57d862d11cb71f82995\" id=\"r_a0cf19fe816f8c57d862d11cb71f82995\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0cf19fe816f8c57d862d11cb71f82995\">Custom</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0cf19fe816f8c57d862d11cb71f82995\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional custom properties to update with this call. If not set, properties are left as they are on the server.  <br /></td></tr>\n<tr class=\"memitem:aee572f60e558a78bdecfcf7c8f90d23b\" id=\"r_aee572f60e558a78bdecfcf7c8f90d23b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aee572f60e558a78bdecfcf7c8f90d23b\">Default</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aee572f60e558a78bdecfcf7c8f90d23b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional default properties to update with this call. If not set, properties are left as they are on the server.  <br /></td></tr>\n<tr class=\"memitem:a621355fbfbcdf7b7d152523556dfb37c\" id=\"r_a621355fbfbcdf7b7d152523556dfb37c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a621355fbfbcdf7b7d152523556dfb37c\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a621355fbfbcdf7b7d152523556dfb37c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Identity ID. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed.  <br /></td></tr>\n<tr class=\"memitem:a1946a39f10a2cdc4f2b3717ef5700639\" id=\"r_a1946a39f10a2cdc4f2b3717ef5700639\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1946a39f10a2cdc4f2b3717ef5700639\">NoSession</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1946a39f10a2cdc4f2b3717ef5700639\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional no_session modifies the request to only create/update an identity without creating a new session. If set to 'true' the response won't include a token and a refresh token.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Authentication request. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0cf19fe816f8c57d862d11cb71f82995\" name=\"a0cf19fe816f8c57d862d11cb71f82995\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0cf19fe816f8c57d862d11cb71f82995\">&#9670;&#160;</a></span>Custom</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiAuthenticateRequest.Custom</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional custom properties to update with this call. If not set, properties are left as they are on the server. </p>\n\n</div>\n</div>\n<a id=\"aee572f60e558a78bdecfcf7c8f90d23b\" name=\"aee572f60e558a78bdecfcf7c8f90d23b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aee572f60e558a78bdecfcf7c8f90d23b\">&#9670;&#160;</a></span>Default</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiAuthenticateRequest.Default</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional default properties to update with this call. If not set, properties are left as they are on the server. </p>\n\n</div>\n</div>\n<a id=\"a621355fbfbcdf7b7d152523556dfb37c\" name=\"a621355fbfbcdf7b7d152523556dfb37c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a621355fbfbcdf7b7d152523556dfb37c\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiAuthenticateRequest.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Identity ID. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. </p>\n\n</div>\n</div>\n<a id=\"a1946a39f10a2cdc4f2b3717ef5700639\" name=\"a1946a39f10a2cdc4f2b3717ef5700639\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1946a39f10a2cdc4f2b3717ef5700639\">&#9670;&#160;</a></span>NoSession</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.IApiAuthenticateRequest.NoSession</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional no_session modifies the request to only create/update an identity without creating a new session. If set to 'true' the response won't include a token and a refresh token. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_authenticate_request.html\">IApiAuthenticateRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_authenticate_request.js",
    "content": "var interface_satori_1_1_i_api_authenticate_request =\n[\n    [ \"Custom\", \"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\", null ],\n    [ \"Default\", \"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\", null ],\n    [ \"Id\", \"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\", null ],\n    [ \"NoSession\", \"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\">Timestamp</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">Satori.IApiEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_event.html','','interface_satori_1_1_i_api_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A single event. Usually, but not necessarily, part of a batch.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a537b01b519f36d486b4655ff42fa6629\" id=\"r_a537b01b519f36d486b4655ff42fa6629\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a537b01b519f36d486b4655ff42fa6629\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a537b01b519f36d486b4655ff42fa6629\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier.  <br /></td></tr>\n<tr class=\"memitem:a1b47db5d48ed22f63f2ff6ab350fd0e3\" id=\"r_a1b47db5d48ed22f63f2ff6ab350fd0e3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1b47db5d48ed22f63f2ff6ab350fd0e3\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a1b47db5d48ed22f63f2ff6ab350fd0e3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> metadata, if any.  <br /></td></tr>\n<tr class=\"memitem:a4b2fa7f9c7c340f105a81ba0a03aa470\" id=\"r_a4b2fa7f9c7c340f105a81ba0a03aa470\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4b2fa7f9c7c340f105a81ba0a03aa470\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4b2fa7f9c7c340f105a81ba0a03aa470\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> name.  <br /></td></tr>\n<tr class=\"memitem:a7527df758659398ccff9b5b31004508d\" id=\"r_a7527df758659398ccff9b5b31004508d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7527df758659398ccff9b5b31004508d\">Timestamp</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a7527df758659398ccff9b5b31004508d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time when the event was triggered on the producer side.  <br /></td></tr>\n<tr class=\"memitem:af13d42f7e1c03c273dcc73a6fda9e0ac\" id=\"r_af13d42f7e1c03c273dcc73a6fda9e0ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af13d42f7e1c03c273dcc73a6fda9e0ac\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af13d42f7e1c03c273dcc73a6fda9e0ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional value.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A single event. Usually, but not necessarily, part of a batch. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a537b01b519f36d486b4655ff42fa6629\" name=\"a537b01b519f36d486b4655ff42fa6629\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a537b01b519f36d486b4655ff42fa6629\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiEvent.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional event ID assigned by the client, used to de-duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier. </p>\n\n</div>\n</div>\n<a id=\"a1b47db5d48ed22f63f2ff6ab350fd0e3\" name=\"a1b47db5d48ed22f63f2ff6ab350fd0e3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1b47db5d48ed22f63f2ff6ab350fd0e3\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiEvent.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> metadata, if any. </p>\n\n</div>\n</div>\n<a id=\"a4b2fa7f9c7c340f105a81ba0a03aa470\" name=\"a4b2fa7f9c7c340f105a81ba0a03aa470\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4b2fa7f9c7c340f105a81ba0a03aa470\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiEvent.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> name. </p>\n\n</div>\n</div>\n<a id=\"a7527df758659398ccff9b5b31004508d\" name=\"a7527df758659398ccff9b5b31004508d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7527df758659398ccff9b5b31004508d\">&#9670;&#160;</a></span>Timestamp</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiEvent.Timestamp</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time when the event was triggered on the producer side. </p>\n\n</div>\n</div>\n<a id=\"af13d42f7e1c03c273dcc73a6fda9e0ac\" name=\"af13d42f7e1c03c273dcc73a6fda9e0ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af13d42f7e1c03c273dcc73a6fda9e0ac\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiEvent.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_event.html\">IApiEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event.js",
    "content": "var interface_satori_1_1_i_api_event =\n[\n    [ \"Id\", \"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\", null ],\n    [ \"Metadata\", \"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\", null ],\n    [ \"Name\", \"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\", null ],\n    [ \"Timestamp\", \"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\", null ],\n    [ \"Value\", \"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_event_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiEventRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\">Satori.IApiEventRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\">Events</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\">Satori.IApiEventRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiEventRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_event_request.html','','interface_satori_1_1_i_api_event_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiEventRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Publish an event to the server.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af1c18be64659dfbfffca8330790eb2b2\" id=\"r_af1c18be64659dfbfffca8330790eb2b2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">IApiEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af1c18be64659dfbfffca8330790eb2b2\">Events</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af1c18be64659dfbfffca8330790eb2b2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Some number of events produced by a client.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Publish an event to the server. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af1c18be64659dfbfffca8330790eb2b2\" name=\"af1c18be64659dfbfffca8330790eb2b2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af1c18be64659dfbfffca8330790eb2b2\">&#9670;&#160;</a></span>Events</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">IApiEvent</a>&gt; Satori.IApiEventRequest.Events</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Some number of events produced by a client. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_event_request.html\">IApiEventRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_event_request.js",
    "content": "var interface_satori_1_1_i_api_event_request =\n[\n    [ \"Events\", \"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_experiment.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiExperiment Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">Satori.IApiExperiment</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">Satori.IApiExperiment</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">Satori.IApiExperiment</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiExperiment Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_experiment.html','','interface_satori_1_1_i_api_experiment-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiExperiment Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An experiment that this user is partaking.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aee15cc75bedee0f402e89df385f6220b\" id=\"r_aee15cc75bedee0f402e89df385f6220b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aee15cc75bedee0f402e89df385f6220b\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aee15cc75bedee0f402e89df385f6220b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Experiment name.  <br /></td></tr>\n<tr class=\"memitem:a29ce15f706290de5a464a798d858bba9\" id=\"r_a29ce15f706290de5a464a798d858bba9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a29ce15f706290de5a464a798d858bba9\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a29ce15f706290de5a464a798d858bba9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Value associated with this Experiment.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An experiment that this user is partaking. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aee15cc75bedee0f402e89df385f6220b\" name=\"aee15cc75bedee0f402e89df385f6220b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aee15cc75bedee0f402e89df385f6220b\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiExperiment.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Experiment name. </p>\n\n</div>\n</div>\n<a id=\"a29ce15f706290de5a464a798d858bba9\" name=\"a29ce15f706290de5a464a798d858bba9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a29ce15f706290de5a464a798d858bba9\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiExperiment.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Value associated with this Experiment. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_experiment.html\">IApiExperiment</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment.js",
    "content": "var interface_satori_1_1_i_api_experiment =\n[\n    [ \"Name\", \"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\", null ],\n    [ \"Value\", \"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_experiment_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiExperimentList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">Satori.IApiExperimentList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\">Experiments</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">Satori.IApiExperimentList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiExperimentList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_experiment_list.html','','interface_satori_1_1_i_api_experiment_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiExperimentList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>All experiments that this identity is involved with.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a74b50ffe8aa6d967ebe4a64013fcccb2\" id=\"r_a74b50ffe8aa6d967ebe4a64013fcccb2\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">IApiExperiment</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a74b50ffe8aa6d967ebe4a64013fcccb2\">Experiments</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a74b50ffe8aa6d967ebe4a64013fcccb2\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All experiments for this identity.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>All experiments that this identity is involved with. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a74b50ffe8aa6d967ebe4a64013fcccb2\" name=\"a74b50ffe8aa6d967ebe4a64013fcccb2\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a74b50ffe8aa6d967ebe4a64013fcccb2\">&#9670;&#160;</a></span>Experiments</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">IApiExperiment</a>&gt; Satori.IApiExperimentList.Experiments</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>All experiments for this identity. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_experiment_list.js",
    "content": "var interface_satori_1_1_i_api_experiment_list =\n[\n    [ \"Experiments\", \"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlag Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\">ChangeReason</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\">ConditionChanged</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">Satori.IApiFlag</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiFlag Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag.html','','interface_satori_1_1_i_api_flag-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlag Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Feature flag available to the identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a71e908f9be384de9c6bf978b5e40a93c\" id=\"r_a71e908f9be384de9c6bf978b5e40a93c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">IFlagValueChangeReason</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a71e908f9be384de9c6bf978b5e40a93c\">ChangeReason</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a71e908f9be384de9c6bf978b5e40a93c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The origin of change on the flag value returned.  <br /></td></tr>\n<tr class=\"memitem:adc9b5734b16018f4cb1b63e9a2417a52\" id=\"r_adc9b5734b16018f4cb1b63e9a2417a52\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adc9b5734b16018f4cb1b63e9a2417a52\">ConditionChanged</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adc9b5734b16018f4cb1b63e9a2417a52\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Whether the value for this flag has conditionally changed from the default state.  <br /></td></tr>\n<tr class=\"memitem:a720b008e956c83da6476e42352d1ff04\" id=\"r_a720b008e956c83da6476e42352d1ff04\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a720b008e956c83da6476e42352d1ff04\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a720b008e956c83da6476e42352d1ff04\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Flag name.  <br /></td></tr>\n<tr class=\"memitem:ac894c7c9c57e10da5ef7126da06613c3\" id=\"r_ac894c7c9c57e10da5ef7126da06613c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac894c7c9c57e10da5ef7126da06613c3\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac894c7c9c57e10da5ef7126da06613c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Value associated with this flag.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Feature flag available to the identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a71e908f9be384de9c6bf978b5e40a93c\" name=\"a71e908f9be384de9c6bf978b5e40a93c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a71e908f9be384de9c6bf978b5e40a93c\">&#9670;&#160;</a></span>ChangeReason</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">IFlagValueChangeReason</a> Satori.IApiFlag.ChangeReason</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The origin of change on the flag value returned. </p>\n\n</div>\n</div>\n<a id=\"adc9b5734b16018f4cb1b63e9a2417a52\" name=\"adc9b5734b16018f4cb1b63e9a2417a52\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adc9b5734b16018f4cb1b63e9a2417a52\">&#9670;&#160;</a></span>ConditionChanged</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.IApiFlag.ConditionChanged</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Whether the value for this flag has conditionally changed from the default state. </p>\n\n</div>\n</div>\n<a id=\"a720b008e956c83da6476e42352d1ff04\" name=\"a720b008e956c83da6476e42352d1ff04\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a720b008e956c83da6476e42352d1ff04\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlag.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Flag name. </p>\n\n</div>\n</div>\n<a id=\"ac894c7c9c57e10da5ef7126da06613c3\" name=\"ac894c7c9c57e10da5ef7126da06613c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac894c7c9c57e10da5ef7126da06613c3\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlag.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Value associated with this flag. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag.js",
    "content": "var interface_satori_1_1_i_api_flag =\n[\n    [ \"ChangeReason\", \"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\", null ],\n    [ \"ConditionChanged\", \"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\", null ],\n    [ \"Name\", \"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\", null ],\n    [ \"Value\", \"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">Satori.IApiFlagList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\">Flags</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">Satori.IApiFlagList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiFlagList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_list.html','','interface_satori_1_1_i_api_flag_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>All flags available to the identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ac39dd9af26b64687d5b343a35cf78774\" id=\"r_ac39dd9af26b64687d5b343a35cf78774\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ac39dd9af26b64687d5b343a35cf78774\">Flags</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ac39dd9af26b64687d5b343a35cf78774\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>All flags available to the identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ac39dd9af26b64687d5b343a35cf78774\" name=\"ac39dd9af26b64687d5b343a35cf78774\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ac39dd9af26b64687d5b343a35cf78774\">&#9670;&#160;</a></span>Flags</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a>&gt; Satori.IApiFlagList.Flags</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>All flags. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_list.js",
    "content": "var interface_satori_1_1_i_api_flag_list =\n[\n    [ \"Flags\", \"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverride Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">Satori.IApiFlagOverride</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\">FlagName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">Satori.IApiFlagOverride</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\">Overrides</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">Satori.IApiFlagOverride</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiFlagOverride Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override.html','','interface_satori_1_1_i_api_flag_override-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverride Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Feature flag available to the identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:af73f16dcdb30e177c2c527f2edb8a278\" id=\"r_af73f16dcdb30e177c2c527f2edb8a278\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af73f16dcdb30e177c2c527f2edb8a278\">FlagName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af73f16dcdb30e177c2c527f2edb8a278\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Flag name.  <br /></td></tr>\n<tr class=\"memitem:a14e2afc4caedd0f1db5ace9a15d12a91\" id=\"r_a14e2afc4caedd0f1db5ace9a15d12a91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">IApiFlagOverrideValue</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a14e2afc4caedd0f1db5ace9a15d12a91\">Overrides</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a14e2afc4caedd0f1db5ace9a15d12a91\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The list of configuration that affect the value of the flag.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Feature flag available to the identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"af73f16dcdb30e177c2c527f2edb8a278\" name=\"af73f16dcdb30e177c2c527f2edb8a278\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af73f16dcdb30e177c2c527f2edb8a278\">&#9670;&#160;</a></span>FlagName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlagOverride.FlagName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Flag name. </p>\n\n</div>\n</div>\n<a id=\"a14e2afc4caedd0f1db5ace9a15d12a91\" name=\"a14e2afc4caedd0f1db5ace9a15d12a91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a14e2afc4caedd0f1db5ace9a15d12a91\">&#9670;&#160;</a></span>Overrides</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">IApiFlagOverrideValue</a>&gt; Satori.IApiFlagOverride.Overrides</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The list of configuration that affect the value of the flag. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_flag_override.html\">IApiFlagOverride</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override.js",
    "content": "var interface_satori_1_1_i_api_flag_override =\n[\n    [ \"FlagName\", \"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\", null ],\n    [ \"Overrides\", \"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverrideList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">Satori.IApiFlagOverrideList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\">Flags</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">Satori.IApiFlagOverrideList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiFlagOverrideList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override_list.html','','interface_satori_1_1_i_api_flag_override_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverrideList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>All flags available to the identity and their value overrides.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a516394e4bec15bc1a1e60095bc308d03\" id=\"r_a516394e4bec15bc1a1e60095bc308d03\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">IApiFlagOverride</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a516394e4bec15bc1a1e60095bc308d03\">Flags</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a516394e4bec15bc1a1e60095bc308d03\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>All flags available to the identity and their value overrides. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a516394e4bec15bc1a1e60095bc308d03\" name=\"a516394e4bec15bc1a1e60095bc308d03\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a516394e4bec15bc1a1e60095bc308d03\">&#9670;&#160;</a></span>Flags</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">IApiFlagOverride</a>&gt; Satori.IApiFlagOverrideList.Flags</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>All flags. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_list.js",
    "content": "var interface_satori_1_1_i_api_flag_override_list =\n[\n    [ \"Flags\", \"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_value-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override_value.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverrideValue Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\">CreateTimeSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\">Type</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\">VariantName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">Satori.IApiFlagOverrideValue</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_value.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiFlagOverrideValue Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_flag_override_value.html','','interface_satori_1_1_i_api_flag_override_value-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiFlagOverrideValue Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The details of a flag value override.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:aa5dda16cc7baf46e1eebaba118b21712\" id=\"r_aa5dda16cc7baf46e1eebaba118b21712\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa5dda16cc7baf46e1eebaba118b21712\">CreateTimeSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa5dda16cc7baf46e1eebaba118b21712\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The create time of the configuration that overrides the flag.  <br /></td></tr>\n<tr class=\"memitem:a491984ad699cf51affab4313ddec48db\" id=\"r_a491984ad699cf51affab4313ddec48db\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a491984ad699cf51affab4313ddec48db\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a491984ad699cf51affab4313ddec48db\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the configuration that overrides the flag value.  <br /></td></tr>\n<tr class=\"memitem:a11edd138b1cba646e20ee5428d90d289\" id=\"r_a11edd138b1cba646e20ee5428d90d289\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\">ApiFlagOverrideType</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a11edd138b1cba646e20ee5428d90d289\">Type</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a11edd138b1cba646e20ee5428d90d289\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The type of the configuration that declared the override.  <br /></td></tr>\n<tr class=\"memitem:a14fa8a404d2b9253499c12aa2255a323\" id=\"r_a14fa8a404d2b9253499c12aa2255a323\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a14fa8a404d2b9253499c12aa2255a323\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a14fa8a404d2b9253499c12aa2255a323\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The value of the configuration that overrides the flag.  <br /></td></tr>\n<tr class=\"memitem:a62987ba07f11314f73025b9c69271acd\" id=\"r_a62987ba07f11314f73025b9c69271acd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a62987ba07f11314f73025b9c69271acd\">VariantName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a62987ba07f11314f73025b9c69271acd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The variant name of the configuration that overrides the flag value.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The details of a flag value override. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"aa5dda16cc7baf46e1eebaba118b21712\" name=\"aa5dda16cc7baf46e1eebaba118b21712\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa5dda16cc7baf46e1eebaba118b21712\">&#9670;&#160;</a></span>CreateTimeSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlagOverrideValue.CreateTimeSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The create time of the configuration that overrides the flag. </p>\n\n</div>\n</div>\n<a id=\"a491984ad699cf51affab4313ddec48db\" name=\"a491984ad699cf51affab4313ddec48db\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a491984ad699cf51affab4313ddec48db\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlagOverrideValue.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the configuration that overrides the flag value. </p>\n\n</div>\n</div>\n<a id=\"a11edd138b1cba646e20ee5428d90d289\" name=\"a11edd138b1cba646e20ee5428d90d289\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a11edd138b1cba646e20ee5428d90d289\">&#9670;&#160;</a></span>Type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\">ApiFlagOverrideType</a> Satori.IApiFlagOverrideValue.Type</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The type of the configuration that declared the override. </p>\n\n</div>\n</div>\n<a id=\"a14fa8a404d2b9253499c12aa2255a323\" name=\"a14fa8a404d2b9253499c12aa2255a323\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a14fa8a404d2b9253499c12aa2255a323\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlagOverrideValue.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The value of the configuration that overrides the flag. </p>\n\n</div>\n</div>\n<a id=\"a62987ba07f11314f73025b9c69271acd\" name=\"a62987ba07f11314f73025b9c69271acd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62987ba07f11314f73025b9c69271acd\">&#9670;&#160;</a></span>VariantName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiFlagOverrideValue.VariantName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The variant name of the configuration that overrides the flag value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_flag_override_value.html\">IApiFlagOverrideValue</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_flag_override_value.js",
    "content": "var interface_satori_1_1_i_api_flag_override_value =\n[\n    [ \"CreateTimeSec\", \"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\", null ],\n    [ \"Name\", \"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\", null ],\n    [ \"Type\", \"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\", null ],\n    [ \"Value\", \"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\", null ],\n    [ \"VariantName\", \"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_get_message_list_response-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_get_message_list_response.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiGetMessageListResponse Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\">CacheableCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\">Messages</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\">NextCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\">PrevCursor</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">Satori.IApiGetMessageListResponse</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_get_message_list_response.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiGetMessageListResponse Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_get_message_list_response.html','','interface_satori_1_1_i_api_get_message_list_response-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiGetMessageListResponse Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A response containing all the messages for an identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a20664d4dc46058fad69142aee3de1e82\" id=\"r_a20664d4dc46058fad69142aee3de1e82\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a20664d4dc46058fad69142aee3de1e82\">CacheableCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a20664d4dc46058fad69142aee3de1e82\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.  <br /></td></tr>\n<tr class=\"memitem:a62a6a42387d178f866acd732ff3e0e26\" id=\"r_a62a6a42387d178f866acd732ff3e0e26\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">IApiMessage</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a62a6a42387d178f866acd732ff3e0e26\">Messages</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a62a6a42387d178f866acd732ff3e0e26\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The list of messages.  <br /></td></tr>\n<tr class=\"memitem:af16c4da59996a3e7ac11332d3c32ec8e\" id=\"r_af16c4da59996a3e7ac11332d3c32ec8e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af16c4da59996a3e7ac11332d3c32ec8e\">NextCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af16c4da59996a3e7ac11332d3c32ec8e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the next page, if any.  <br /></td></tr>\n<tr class=\"memitem:a761ef8abe7e9f51037ccfa7e7cd263c5\" id=\"r_a761ef8abe7e9f51037ccfa7e7cd263c5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a761ef8abe7e9f51037ccfa7e7cd263c5\">PrevCursor</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a761ef8abe7e9f51037ccfa7e7cd263c5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The cursor to send when retrieving the previous page, if any.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A response containing all the messages for an identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a20664d4dc46058fad69142aee3de1e82\" name=\"a20664d4dc46058fad69142aee3de1e82\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a20664d4dc46058fad69142aee3de1e82\">&#9670;&#160;</a></span>CacheableCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiGetMessageListResponse.CacheableCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors. </p>\n\n</div>\n</div>\n<a id=\"a62a6a42387d178f866acd732ff3e0e26\" name=\"a62a6a42387d178f866acd732ff3e0e26\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a62a6a42387d178f866acd732ff3e0e26\">&#9670;&#160;</a></span>Messages</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">IApiMessage</a>&gt; Satori.IApiGetMessageListResponse.Messages</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The list of messages. </p>\n\n</div>\n</div>\n<a id=\"af16c4da59996a3e7ac11332d3c32ec8e\" name=\"af16c4da59996a3e7ac11332d3c32ec8e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af16c4da59996a3e7ac11332d3c32ec8e\">&#9670;&#160;</a></span>NextCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiGetMessageListResponse.NextCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the next page, if any. </p>\n\n</div>\n</div>\n<a id=\"a761ef8abe7e9f51037ccfa7e7cd263c5\" name=\"a761ef8abe7e9f51037ccfa7e7cd263c5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a761ef8abe7e9f51037ccfa7e7cd263c5\">&#9670;&#160;</a></span>PrevCursor</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiGetMessageListResponse.PrevCursor</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The cursor to send when retrieving the previous page, if any. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_get_message_list_response.js",
    "content": "var interface_satori_1_1_i_api_get_message_list_response =\n[\n    [ \"CacheableCursor\", \"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\", null ],\n    [ \"Messages\", \"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\", null ],\n    [ \"NextCursor\", \"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\", null ],\n    [ \"PrevCursor\", \"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_identify_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_identify_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiIdentifyRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">Satori.IApiIdentifyRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\">Custom</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">Satori.IApiIdentifyRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\">Default</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">Satori.IApiIdentifyRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">Satori.IApiIdentifyRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_identify_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiIdentifyRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_identify_request.html','','interface_satori_1_1_i_api_identify_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiIdentifyRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Enrich/replace the current session with a new ID.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ab638ed30cc498f2f6f4b3d28c83f946f\" id=\"r_ab638ed30cc498f2f6f4b3d28c83f946f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab638ed30cc498f2f6f4b3d28c83f946f\">Custom</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab638ed30cc498f2f6f4b3d28c83f946f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional custom properties to update with this call. If not set, properties are left as they are on the server.  <br /></td></tr>\n<tr class=\"memitem:aeb9b2478d0e634b95258e53a6d9d984d\" id=\"r_aeb9b2478d0e634b95258e53a6d9d984d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeb9b2478d0e634b95258e53a6d9d984d\">Default</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aeb9b2478d0e634b95258e53a6d9d984d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Optional default properties to update with this call. If not set, properties are left as they are on the server.  <br /></td></tr>\n<tr class=\"memitem:aa7bde5d54dc7491e84eac7ab1b6d8603\" id=\"r_aa7bde5d54dc7491e84eac7ab1b6d8603\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa7bde5d54dc7491e84eac7ab1b6d8603\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa7bde5d54dc7491e84eac7ab1b6d8603\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Identity ID to enrich the current session and return a new session. Old session will no longer be usable.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Enrich/replace the current session with a new ID. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ab638ed30cc498f2f6f4b3d28c83f946f\" name=\"ab638ed30cc498f2f6f4b3d28c83f946f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab638ed30cc498f2f6f4b3d28c83f946f\">&#9670;&#160;</a></span>Custom</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiIdentifyRequest.Custom</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional custom properties to update with this call. If not set, properties are left as they are on the server. </p>\n\n</div>\n</div>\n<a id=\"aeb9b2478d0e634b95258e53a6d9d984d\" name=\"aeb9b2478d0e634b95258e53a6d9d984d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb9b2478d0e634b95258e53a6d9d984d\">&#9670;&#160;</a></span>Default</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiIdentifyRequest.Default</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Optional default properties to update with this call. If not set, properties are left as they are on the server. </p>\n\n</div>\n</div>\n<a id=\"aa7bde5d54dc7491e84eac7ab1b6d8603\" name=\"aa7bde5d54dc7491e84eac7ab1b6d8603\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa7bde5d54dc7491e84eac7ab1b6d8603\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiIdentifyRequest.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Identity ID to enrich the current session and return a new session. Old session will no longer be usable. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_identify_request.html\">IApiIdentifyRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_identify_request.js",
    "content": "var interface_satori_1_1_i_api_identify_request =\n[\n    [ \"Custom\", \"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\", null ],\n    [ \"Default\", \"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\", null ],\n    [ \"Id\", \"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_live_event.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiLiveEvent Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\">ActiveEndTimeSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\">ActiveStartTimeSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\">Description</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\">DurationSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\">EndTimeSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\">ResetCron</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\">StartTimeSec</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\">Value</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">Satori.IApiLiveEvent</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiLiveEvent Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_live_event.html','','interface_satori_1_1_i_api_live_event-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiLiveEvent Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A single live event.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a0f16280e4d7c437c0e62ebbfc4c69ae5\" id=\"r_a0f16280e4d7c437c0e62ebbfc4c69ae5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a0f16280e4d7c437c0e62ebbfc4c69ae5\">ActiveEndTimeSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a0f16280e4d7c437c0e62ebbfc4c69ae5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End time of current event run.  <br /></td></tr>\n<tr class=\"memitem:acc71a5d9c876dac31a2c911b58cd1f50\" id=\"r_acc71a5d9c876dac31a2c911b58cd1f50\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acc71a5d9c876dac31a2c911b58cd1f50\">ActiveStartTimeSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acc71a5d9c876dac31a2c911b58cd1f50\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Start time of current event run.  <br /></td></tr>\n<tr class=\"memitem:ab84d4936ea17baa4c9c29bbffcac62b8\" id=\"r_ab84d4936ea17baa4c9c29bbffcac62b8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab84d4936ea17baa4c9c29bbffcac62b8\">Description</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab84d4936ea17baa4c9c29bbffcac62b8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Description.  <br /></td></tr>\n<tr class=\"memitem:a88bf1769158e2f699696c8147c9ae2dc\" id=\"r_a88bf1769158e2f699696c8147c9ae2dc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a88bf1769158e2f699696c8147c9ae2dc\">DurationSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a88bf1769158e2f699696c8147c9ae2dc\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Duration in seconds.  <br /></td></tr>\n<tr class=\"memitem:a28d08aecf37f5ba2d2707325eb96037c\" id=\"r_a28d08aecf37f5ba2d2707325eb96037c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a28d08aecf37f5ba2d2707325eb96037c\">EndTimeSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a28d08aecf37f5ba2d2707325eb96037c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End time, 0 if it repeats forever.  <br /></td></tr>\n<tr class=\"memitem:aba362daf130263342e93bd58fa822ea7\" id=\"r_aba362daf130263342e93bd58fa822ea7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aba362daf130263342e93bd58fa822ea7\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aba362daf130263342e93bd58fa822ea7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The live event identifier.  <br /></td></tr>\n<tr class=\"memitem:aeb624601388adea811e1d031f5480b32\" id=\"r_aeb624601388adea811e1d031f5480b32\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aeb624601388adea811e1d031f5480b32\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aeb624601388adea811e1d031f5480b32\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Name.  <br /></td></tr>\n<tr class=\"memitem:a583f53288ddd20a33b00902e8c490fbd\" id=\"r_a583f53288ddd20a33b00902e8c490fbd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a583f53288ddd20a33b00902e8c490fbd\">ResetCron</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a583f53288ddd20a33b00902e8c490fbd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reset CRON schedule, if configured.  <br /></td></tr>\n<tr class=\"memitem:aa2a1ae98a4e228be62484e5ed59360ba\" id=\"r_aa2a1ae98a4e228be62484e5ed59360ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa2a1ae98a4e228be62484e5ed59360ba\">StartTimeSec</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa2a1ae98a4e228be62484e5ed59360ba\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Start time.  <br /></td></tr>\n<tr class=\"memitem:a9fd40cb03ac4ddadffa08a3ef4a02883\" id=\"r_a9fd40cb03ac4ddadffa08a3ef4a02883\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9fd40cb03ac4ddadffa08a3ef4a02883\">Value</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9fd40cb03ac4ddadffa08a3ef4a02883\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> value.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A single live event. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a0f16280e4d7c437c0e62ebbfc4c69ae5\" name=\"a0f16280e4d7c437c0e62ebbfc4c69ae5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a0f16280e4d7c437c0e62ebbfc4c69ae5\">&#9670;&#160;</a></span>ActiveEndTimeSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.ActiveEndTimeSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>End time of current event run. </p>\n\n</div>\n</div>\n<a id=\"acc71a5d9c876dac31a2c911b58cd1f50\" name=\"acc71a5d9c876dac31a2c911b58cd1f50\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acc71a5d9c876dac31a2c911b58cd1f50\">&#9670;&#160;</a></span>ActiveStartTimeSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.ActiveStartTimeSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Start time of current event run. </p>\n\n</div>\n</div>\n<a id=\"ab84d4936ea17baa4c9c29bbffcac62b8\" name=\"ab84d4936ea17baa4c9c29bbffcac62b8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab84d4936ea17baa4c9c29bbffcac62b8\">&#9670;&#160;</a></span>Description</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.Description</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Description. </p>\n\n</div>\n</div>\n<a id=\"a88bf1769158e2f699696c8147c9ae2dc\" name=\"a88bf1769158e2f699696c8147c9ae2dc\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a88bf1769158e2f699696c8147c9ae2dc\">&#9670;&#160;</a></span>DurationSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.DurationSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Duration in seconds. </p>\n\n</div>\n</div>\n<a id=\"a28d08aecf37f5ba2d2707325eb96037c\" name=\"a28d08aecf37f5ba2d2707325eb96037c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a28d08aecf37f5ba2d2707325eb96037c\">&#9670;&#160;</a></span>EndTimeSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.EndTimeSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>End time, 0 if it repeats forever. </p>\n\n</div>\n</div>\n<a id=\"aba362daf130263342e93bd58fa822ea7\" name=\"aba362daf130263342e93bd58fa822ea7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aba362daf130263342e93bd58fa822ea7\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The live event identifier. </p>\n\n</div>\n</div>\n<a id=\"aeb624601388adea811e1d031f5480b32\" name=\"aeb624601388adea811e1d031f5480b32\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aeb624601388adea811e1d031f5480b32\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Name. </p>\n\n</div>\n</div>\n<a id=\"a583f53288ddd20a33b00902e8c490fbd\" name=\"a583f53288ddd20a33b00902e8c490fbd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a583f53288ddd20a33b00902e8c490fbd\">&#9670;&#160;</a></span>ResetCron</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.ResetCron</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Reset CRON schedule, if configured. </p>\n\n</div>\n</div>\n<a id=\"aa2a1ae98a4e228be62484e5ed59360ba\" name=\"aa2a1ae98a4e228be62484e5ed59360ba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa2a1ae98a4e228be62484e5ed59360ba\">&#9670;&#160;</a></span>StartTimeSec</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.StartTimeSec</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Start time. </p>\n\n</div>\n</div>\n<a id=\"a9fd40cb03ac4ddadffa08a3ef4a02883\" name=\"a9fd40cb03ac4ddadffa08a3ef4a02883\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9fd40cb03ac4ddadffa08a3ef4a02883\">&#9670;&#160;</a></span>Value</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiLiveEvent.Value</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_live_event.html\">IApiLiveEvent</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event.js",
    "content": "var interface_satori_1_1_i_api_live_event =\n[\n    [ \"ActiveEndTimeSec\", \"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\", null ],\n    [ \"ActiveStartTimeSec\", \"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\", null ],\n    [ \"Description\", \"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\", null ],\n    [ \"DurationSec\", \"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\", null ],\n    [ \"EndTimeSec\", \"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\", null ],\n    [ \"Id\", \"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\", null ],\n    [ \"Name\", \"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\", null ],\n    [ \"ResetCron\", \"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\", null ],\n    [ \"StartTimeSec\", \"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\", null ],\n    [ \"Value\", \"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event_list-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_live_event_list.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiLiveEventList Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">Satori.IApiLiveEventList</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\">LiveEvents</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">Satori.IApiLiveEventList</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event_list.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiLiveEventList Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_live_event_list.html','','interface_satori_1_1_i_api_live_event_list-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiLiveEventList Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>List of Live events.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:adb3c714a86f30d8109d893cc5f7d30d5\" id=\"r_adb3c714a86f30d8109d893cc5f7d30d5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">IApiLiveEvent</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adb3c714a86f30d8109d893cc5f7d30d5\">LiveEvents</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adb3c714a86f30d8109d893cc5f7d30d5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Live events.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>List of Live events. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"adb3c714a86f30d8109d893cc5f7d30d5\" name=\"adb3c714a86f30d8109d893cc5f7d30d5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adb3c714a86f30d8109d893cc5f7d30d5\">&#9670;&#160;</a></span>LiveEvents</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">IApiLiveEvent</a>&gt; Satori.IApiLiveEventList.LiveEvents</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Live events. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_live_event_list.js",
    "content": "var interface_satori_1_1_i_api_live_event_list =\n[\n    [ \"LiveEvents\", \"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_message-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_message.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiMessage Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\">ConsumeTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\">Id</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\">ImageUrl</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\">Metadata</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\">ReadTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\">ScheduleId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\">SendTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\">Text</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\">Title</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\">UpdateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">Satori.IApiMessage</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_message.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiMessage Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_message.html','','interface_satori_1_1_i_api_message-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiMessage Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A scheduled message.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a933e57c6ffab85a20ef113833023fc81\" id=\"r_a933e57c6ffab85a20ef113833023fc81\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a933e57c6ffab85a20ef113833023fc81\">ConsumeTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a933e57c6ffab85a20ef113833023fc81\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was consumed by the identity.  <br /></td></tr>\n<tr class=\"memitem:ab2d0a464ecd3211f9d2946119ba7f6c6\" id=\"r_ab2d0a464ecd3211f9d2946119ba7f6c6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab2d0a464ecd3211f9d2946119ba7f6c6\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab2d0a464ecd3211f9d2946119ba7f6c6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was created.  <br /></td></tr>\n<tr class=\"memitem:a2de131131032ae52037b7339189e4aae\" id=\"r_a2de131131032ae52037b7339189e4aae\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2de131131032ae52037b7339189e4aae\">Id</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2de131131032ae52037b7339189e4aae\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The message's unique identifier.  <br /></td></tr>\n<tr class=\"memitem:ae323cb5beaa51c7fe63f0e08da3bd3ee\" id=\"r_ae323cb5beaa51c7fe63f0e08da3bd3ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae323cb5beaa51c7fe63f0e08da3bd3ee\">ImageUrl</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae323cb5beaa51c7fe63f0e08da3bd3ee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The message's image url.  <br /></td></tr>\n<tr class=\"memitem:acdc3faa79f13b594990023287339c198\" id=\"r_acdc3faa79f13b594990023287339c198\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acdc3faa79f13b594990023287339c198\">Metadata</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acdc3faa79f13b594990023287339c198\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A key-value pairs of metadata.  <br /></td></tr>\n<tr class=\"memitem:a8fccac83e4a234289c0ef365d4e66770\" id=\"r_a8fccac83e4a234289c0ef365d4e66770\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8fccac83e4a234289c0ef365d4e66770\">ReadTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8fccac83e4a234289c0ef365d4e66770\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was read by the client.  <br /></td></tr>\n<tr class=\"memitem:aa73ab7696f83117786f49a1b793b3927\" id=\"r_aa73ab7696f83117786f49a1b793b3927\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa73ab7696f83117786f49a1b793b3927\">ScheduleId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aa73ab7696f83117786f49a1b793b3927\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The identifier of the schedule.  <br /></td></tr>\n<tr class=\"memitem:acf3f95fe2651cfa4a958f35009e573ee\" id=\"r_acf3f95fe2651cfa4a958f35009e573ee\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acf3f95fe2651cfa4a958f35009e573ee\">SendTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acf3f95fe2651cfa4a958f35009e573ee\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The send time for the message.  <br /></td></tr>\n<tr class=\"memitem:ae0423fa0a20f23c352399163b158b9aa\" id=\"r_ae0423fa0a20f23c352399163b158b9aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae0423fa0a20f23c352399163b158b9aa\">Text</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae0423fa0a20f23c352399163b158b9aa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The message's text.  <br /></td></tr>\n<tr class=\"memitem:aefb46ec80082f96658315b6e5081e277\" id=\"r_aefb46ec80082f96658315b6e5081e277\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aefb46ec80082f96658315b6e5081e277\">Title</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aefb46ec80082f96658315b6e5081e277\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The message's title.  <br /></td></tr>\n<tr class=\"memitem:a55b743dd7262de47950cf8d60711d8f7\" id=\"r_a55b743dd7262de47950cf8d60711d8f7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a55b743dd7262de47950cf8d60711d8f7\">UpdateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a55b743dd7262de47950cf8d60711d8f7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was updated.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A scheduled message. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a933e57c6ffab85a20ef113833023fc81\" name=\"a933e57c6ffab85a20ef113833023fc81\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a933e57c6ffab85a20ef113833023fc81\">&#9670;&#160;</a></span>ConsumeTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.ConsumeTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was consumed by the identity. </p>\n\n</div>\n</div>\n<a id=\"ab2d0a464ecd3211f9d2946119ba7f6c6\" name=\"ab2d0a464ecd3211f9d2946119ba7f6c6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab2d0a464ecd3211f9d2946119ba7f6c6\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was created. </p>\n\n</div>\n</div>\n<a id=\"a2de131131032ae52037b7339189e4aae\" name=\"a2de131131032ae52037b7339189e4aae\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2de131131032ae52037b7339189e4aae\">&#9670;&#160;</a></span>Id</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.Id</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The message's unique identifier. </p>\n\n</div>\n</div>\n<a id=\"ae323cb5beaa51c7fe63f0e08da3bd3ee\" name=\"ae323cb5beaa51c7fe63f0e08da3bd3ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae323cb5beaa51c7fe63f0e08da3bd3ee\">&#9670;&#160;</a></span>ImageUrl</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.ImageUrl</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The message's image url. </p>\n\n</div>\n</div>\n<a id=\"acdc3faa79f13b594990023287339c198\" name=\"acdc3faa79f13b594990023287339c198\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acdc3faa79f13b594990023287339c198\">&#9670;&#160;</a></span>Metadata</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiMessage.Metadata</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A key-value pairs of metadata. </p>\n\n</div>\n</div>\n<a id=\"a8fccac83e4a234289c0ef365d4e66770\" name=\"a8fccac83e4a234289c0ef365d4e66770\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8fccac83e4a234289c0ef365d4e66770\">&#9670;&#160;</a></span>ReadTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.ReadTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was read by the client. </p>\n\n</div>\n</div>\n<a id=\"aa73ab7696f83117786f49a1b793b3927\" name=\"aa73ab7696f83117786f49a1b793b3927\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa73ab7696f83117786f49a1b793b3927\">&#9670;&#160;</a></span>ScheduleId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.ScheduleId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The identifier of the schedule. </p>\n\n</div>\n</div>\n<a id=\"acf3f95fe2651cfa4a958f35009e573ee\" name=\"acf3f95fe2651cfa4a958f35009e573ee\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acf3f95fe2651cfa4a958f35009e573ee\">&#9670;&#160;</a></span>SendTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.SendTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The send time for the message. </p>\n\n</div>\n</div>\n<a id=\"ae0423fa0a20f23c352399163b158b9aa\" name=\"ae0423fa0a20f23c352399163b158b9aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae0423fa0a20f23c352399163b158b9aa\">&#9670;&#160;</a></span>Text</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.Text</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The message's text. </p>\n\n</div>\n</div>\n<a id=\"aefb46ec80082f96658315b6e5081e277\" name=\"aefb46ec80082f96658315b6e5081e277\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aefb46ec80082f96658315b6e5081e277\">&#9670;&#160;</a></span>Title</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.Title</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The message's title. </p>\n\n</div>\n</div>\n<a id=\"a55b743dd7262de47950cf8d60711d8f7\" name=\"a55b743dd7262de47950cf8d60711d8f7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a55b743dd7262de47950cf8d60711d8f7\">&#9670;&#160;</a></span>UpdateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiMessage.UpdateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was updated. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_message.html\">IApiMessage</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_message.js",
    "content": "var interface_satori_1_1_i_api_message =\n[\n    [ \"ConsumeTime\", \"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\", null ],\n    [ \"CreateTime\", \"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\", null ],\n    [ \"Id\", \"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\", null ],\n    [ \"ImageUrl\", \"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\", null ],\n    [ \"Metadata\", \"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\", null ],\n    [ \"ReadTime\", \"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\", null ],\n    [ \"ScheduleId\", \"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\", null ],\n    [ \"SendTime\", \"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\", null ],\n    [ \"Text\", \"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\", null ],\n    [ \"Title\", \"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\", null ],\n    [ \"UpdateTime\", \"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_properties-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_properties.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiProperties Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">Satori.IApiProperties</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\">Computed</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">Satori.IApiProperties</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\">Custom</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">Satori.IApiProperties</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\">Default</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">Satori.IApiProperties</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_properties.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiProperties Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_properties.html','','interface_satori_1_1_i_api_properties-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiProperties Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Properties associated with an identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a20ba9e0ce43f8b2d7470ee950447bbc4\" id=\"r_a20ba9e0ce43f8b2d7470ee950447bbc4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a20ba9e0ce43f8b2d7470ee950447bbc4\">Computed</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a20ba9e0ce43f8b2d7470ee950447bbc4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> computed properties.  <br /></td></tr>\n<tr class=\"memitem:a60fb2a569fccc8417d5fba8e7d6422ff\" id=\"r_a60fb2a569fccc8417d5fba8e7d6422ff\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60fb2a569fccc8417d5fba8e7d6422ff\">Custom</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a60fb2a569fccc8417d5fba8e7d6422ff\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> custom properties.  <br /></td></tr>\n<tr class=\"memitem:afdbb89737406420da72cfb63abaef97b\" id=\"r_afdbb89737406420da72cfb63abaef97b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afdbb89737406420da72cfb63abaef97b\">Default</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afdbb89737406420da72cfb63abaef97b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> default properties.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Properties associated with an identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a20ba9e0ce43f8b2d7470ee950447bbc4\" name=\"a20ba9e0ce43f8b2d7470ee950447bbc4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a20ba9e0ce43f8b2d7470ee950447bbc4\">&#9670;&#160;</a></span>Computed</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiProperties.Computed</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> computed properties. </p>\n\n</div>\n</div>\n<a id=\"a60fb2a569fccc8417d5fba8e7d6422ff\" name=\"a60fb2a569fccc8417d5fba8e7d6422ff\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60fb2a569fccc8417d5fba8e7d6422ff\">&#9670;&#160;</a></span>Custom</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiProperties.Custom</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> custom properties. </p>\n\n</div>\n</div>\n<a id=\"afdbb89737406420da72cfb63abaef97b\" name=\"afdbb89737406420da72cfb63abaef97b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afdbb89737406420da72cfb63abaef97b\">&#9670;&#160;</a></span>Default</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiProperties.Default</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> default properties. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_properties.js",
    "content": "var interface_satori_1_1_i_api_properties =\n[\n    [ \"Computed\", \"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\", null ],\n    [ \"Custom\", \"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\", null ],\n    [ \"Default\", \"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiSession Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">Satori.IApiSession</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\">Properties</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">Satori.IApiSession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">Satori.IApiSession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\">Token</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">Satori.IApiSession</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiSession Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_session.html','','interface_satori_1_1_i_api_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiSession Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A session.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:ae67e8ae316be2d695873dfd0effdb4aa\" id=\"r_ae67e8ae316be2d695873dfd0effdb4aa\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae67e8ae316be2d695873dfd0effdb4aa\">Properties</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae67e8ae316be2d695873dfd0effdb4aa\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Properties associated with this identity.  <br /></td></tr>\n<tr class=\"memitem:acebbc9ff85f8ba05226c2154267abd91\" id=\"r_acebbc9ff85f8ba05226c2154267abd91\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acebbc9ff85f8ba05226c2154267abd91\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:acebbc9ff85f8ba05226c2154267abd91\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token.  <br /></td></tr>\n<tr class=\"memitem:aebf02f36da2a04667898b58af958bb97\" id=\"r_aebf02f36da2a04667898b58af958bb97\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aebf02f36da2a04667898b58af958bb97\">Token</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:aebf02f36da2a04667898b58af958bb97\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Token credential.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A session. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"ae67e8ae316be2d695873dfd0effdb4aa\" name=\"ae67e8ae316be2d695873dfd0effdb4aa\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae67e8ae316be2d695873dfd0effdb4aa\">&#9670;&#160;</a></span>Properties</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> Satori.IApiSession.Properties</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Properties associated with this identity. </p>\n\n</div>\n</div>\n<a id=\"acebbc9ff85f8ba05226c2154267abd91\" name=\"acebbc9ff85f8ba05226c2154267abd91\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acebbc9ff85f8ba05226c2154267abd91\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiSession.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token. </p>\n\n</div>\n</div>\n<a id=\"aebf02f36da2a04667898b58af958bb97\" name=\"aebf02f36da2a04667898b58af958bb97\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aebf02f36da2a04667898b58af958bb97\">&#9670;&#160;</a></span>Token</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiSession.Token</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Token credential. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_session.html\">IApiSession</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_session.js",
    "content": "var interface_satori_1_1_i_api_session =\n[\n    [ \"Properties\", \"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\", null ],\n    [ \"RefreshToken\", \"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\", null ],\n    [ \"Token\", \"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_message_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_update_message_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiUpdateMessageRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">Satori.IApiUpdateMessageRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\">ConsumeTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">Satori.IApiUpdateMessageRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\">ReadTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">Satori.IApiUpdateMessageRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_message_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiUpdateMessageRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_update_message_request.html','','interface_satori_1_1_i_api_update_message_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiUpdateMessageRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>The request to update the status of a message.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3713f08d799a4e17bdd21a4bc814feb9\" id=\"r_a3713f08d799a4e17bdd21a4bc814feb9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3713f08d799a4e17bdd21a4bc814feb9\">ConsumeTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3713f08d799a4e17bdd21a4bc814feb9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was consumed by the identity.  <br /></td></tr>\n<tr class=\"memitem:adc79d260087b5b2f6c1ccc2e7887f970\" id=\"r_adc79d260087b5b2f6c1ccc2e7887f970\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#adc79d260087b5b2f6c1ccc2e7887f970\">ReadTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:adc79d260087b5b2f6c1ccc2e7887f970\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The time the message was read at the client.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>The request to update the status of a message. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3713f08d799a4e17bdd21a4bc814feb9\" name=\"a3713f08d799a4e17bdd21a4bc814feb9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3713f08d799a4e17bdd21a4bc814feb9\">&#9670;&#160;</a></span>ConsumeTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiUpdateMessageRequest.ConsumeTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was consumed by the identity. </p>\n\n</div>\n</div>\n<a id=\"adc79d260087b5b2f6c1ccc2e7887f970\" name=\"adc79d260087b5b2f6c1ccc2e7887f970\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#adc79d260087b5b2f6c1ccc2e7887f970\">&#9670;&#160;</a></span>ReadTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IApiUpdateMessageRequest.ReadTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The time the message was read at the client. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_update_message_request.html\">IApiUpdateMessageRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_message_request.js",
    "content": "var interface_satori_1_1_i_api_update_message_request =\n[\n    [ \"ConsumeTime\", \"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\", null ],\n    [ \"ReadTime\", \"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_properties_request-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_update_properties_request.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiUpdatePropertiesRequest Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">Satori.IApiUpdatePropertiesRequest</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\">Custom</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">Satori.IApiUpdatePropertiesRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\">Default</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">Satori.IApiUpdatePropertiesRequest</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\">Recompute</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">Satori.IApiUpdatePropertiesRequest</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_properties_request.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IApiUpdatePropertiesRequest Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_api_update_properties_request.html','','interface_satori_1_1_i_api_update_properties_request-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IApiUpdatePropertiesRequest Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>Update Properties associated with this identity.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a5399ceb028dcb356b5797484647e92fd\" id=\"r_a5399ceb028dcb356b5797484647e92fd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5399ceb028dcb356b5797484647e92fd\">Custom</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a5399ceb028dcb356b5797484647e92fd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> custom properties.  <br /></td></tr>\n<tr class=\"memitem:af6cc3da67dbe5ec4948d8a5511adb87e\" id=\"r_af6cc3da67dbe5ec4948d8a5511adb87e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IDictionary&lt; string, string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af6cc3da67dbe5ec4948d8a5511adb87e\">Default</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:af6cc3da67dbe5ec4948d8a5511adb87e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> default properties.  <br /></td></tr>\n<tr class=\"memitem:a9180f764cd38a07c68f8b7f48c59a78d\" id=\"r_a9180f764cd38a07c68f8b7f48c59a78d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a9180f764cd38a07c68f8b7f48c59a78d\">Recompute</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a9180f764cd38a07c68f8b7f48c59a78d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Informs the server to recompute the audience membership of the identity.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Update Properties associated with this identity. </p>\n</div><a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a5399ceb028dcb356b5797484647e92fd\" name=\"a5399ceb028dcb356b5797484647e92fd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5399ceb028dcb356b5797484647e92fd\">&#9670;&#160;</a></span>Custom</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiUpdatePropertiesRequest.Custom</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> custom properties. </p>\n\n</div>\n</div>\n<a id=\"af6cc3da67dbe5ec4948d8a5511adb87e\" name=\"af6cc3da67dbe5ec4948d8a5511adb87e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af6cc3da67dbe5ec4948d8a5511adb87e\">&#9670;&#160;</a></span>Default</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IDictionary&lt;string, string&gt; Satori.IApiUpdatePropertiesRequest.Default</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p><a class=\"el\" href=\"class_satori_1_1_event.html\" title=\"An event to be published to the server.\">Event</a> default properties. </p>\n\n</div>\n</div>\n<a id=\"a9180f764cd38a07c68f8b7f48c59a78d\" name=\"a9180f764cd38a07c68f8b7f48c59a78d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a9180f764cd38a07c68f8b7f48c59a78d\">&#9670;&#160;</a></span>Recompute</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.IApiUpdatePropertiesRequest.Recompute</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Informs the server to recompute the audience membership of the identity. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_api_update_properties_request.html\">IApiUpdatePropertiesRequest</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_api_update_properties_request.js",
    "content": "var interface_satori_1_1_i_api_update_properties_request =\n[\n    [ \"Custom\", \"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\", null ],\n    [ \"Default\", \"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\", null ],\n    [ \"Recompute\", \"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_client-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_client.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IClient Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\">ApiKey</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\">AuthenticateAsync</a>(string id, Dictionary&lt; string, string &gt; defaultProperties=default, Dictionary&lt; string, string &gt; customProperties=default, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\">AuthenticateLogoutAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\">AutoRefreshSession</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\">DeleteIdentityAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">DeleteMessageAsync</a>(ISession session, string id, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\">EventAsync</a>(ISession session, Event @event, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\">EventsAsync</a>(ISession session, IEnumerable&lt; Event &gt; events, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\">GetAllExperimentsAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\">GetExperimentsAsync</a>(ISession session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\">GetFlagAsync</a>(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\">GetFlagAsync</a>(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\">GetFlagDefaultAsync</a>(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\">GetFlagDefaultAsync</a>(string name, string defaultValue, CancellationToken? cancellationToken=default)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\">GetFlagOverridesAsync</a>(ISession session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\">GetFlagsAsync</a>(ISession session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\">GetFlagsDefaultAsync</a>(IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\">GetLiveEventsAsync</a>(ISession session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\">GetMessageListAsync</a>(ISession session, int limit=1, bool forward=true, string cursor=null, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\">GlobalRetryConfiguration</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\">Host</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\">IdentifyAsync</a>(ISession session, string id, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\">ListPropertiesAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\">Port</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\">ReceivedSessionUpdated</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\">Scheme</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\">SessionRefreshAsync</a>(ISession session, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\">Timeout</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\">UpdateMessageAsync</a>(ISession session, string id, string consumeTime, string readTime, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\">UpdatePropertiesAsync</a>(ISession session, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, bool recompute, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">Satori.IClient</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_client.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IClient Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_client.html','','interface_satori_1_1_i_client-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IClient Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.IClient:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_satori_1_1_i_client.png\" usemap=\"#Satori_2EIClient_map\" alt=\"\"/>\n  <map id=\"Satori_2EIClient_map\" name=\"Satori_2EIClient_map\">\n<area href=\"class_satori_1_1_client.html\" alt=\"Satori.Client\" shape=\"rect\" coords=\"0,56,84,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a2cd228b8edf1c83582670629bf410a8b\" id=\"r_a2cd228b8edf1c83582670629bf410a8b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2cd228b8edf1c83582670629bf410a8b\">AuthenticateAsync</a> (string id, Dictionary&lt; string, string &gt; defaultProperties=default, Dictionary&lt; string, string &gt; customProperties=default, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a2cd228b8edf1c83582670629bf410a8b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server.  <br /></td></tr>\n<tr class=\"memitem:aa9065d9dbe25cf136fedb3bf47f90238\" id=\"r_aa9065d9dbe25cf136fedb3bf47f90238\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa9065d9dbe25cf136fedb3bf47f90238\">AuthenticateLogoutAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:aa9065d9dbe25cf136fedb3bf47f90238\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  <br /></td></tr>\n<tr class=\"memitem:ae8f0e598b1759ea69263e802e05ddb92\" id=\"r_ae8f0e598b1759ea69263e802e05ddb92\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae8f0e598b1759ea69263e802e05ddb92\">EventAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> @event, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ae8f0e598b1759ea69263e802e05ddb92\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send an event for this session.  <br /></td></tr>\n<tr class=\"memitem:ab87f2f750a3ab77c3fb1dabfa4282215\" id=\"r_ab87f2f750a3ab77c3fb1dabfa4282215\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab87f2f750a3ab77c3fb1dabfa4282215\">EventsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> &gt; events, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ab87f2f750a3ab77c3fb1dabfa4282215\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a batch of events for this session.  <br /></td></tr>\n<tr class=\"memitem:a281b0af8c507ba0826dae6cf65d2d387\" id=\"r_a281b0af8c507ba0826dae6cf65d2d387\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a281b0af8c507ba0826dae6cf65d2d387\">GetAllExperimentsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a281b0af8c507ba0826dae6cf65d2d387\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all experiments data.  <br /></td></tr>\n<tr class=\"memitem:a15b8bbf87db82248d5e7bf1f982afea7\" id=\"r_a15b8bbf87db82248d5e7bf1f982afea7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a15b8bbf87db82248d5e7bf1f982afea7\">GetExperimentsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a15b8bbf87db82248d5e7bf1f982afea7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get specific experiments data.  <br /></td></tr>\n<tr class=\"memitem:a57c517196ee9b263b5649ecd21d949e8\" id=\"r_a57c517196ee9b263b5649ecd21d949e8\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a57c517196ee9b263b5649ecd21d949e8\">GetFlagAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string name, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a57c517196ee9b263b5649ecd21d949e8\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single flag for this identity.  <br /></td></tr>\n<tr class=\"memitem:a486e38938074ed725715c81e64166f60\" id=\"r_a486e38938074ed725715c81e64166f60\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a486e38938074ed725715c81e64166f60\">GetFlagAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string name, string defaultValue, CancellationToken? cancellationToken=default)</td></tr>\n<tr class=\"memdesc:a486e38938074ed725715c81e64166f60\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single flag for this identity.  <br /></td></tr>\n<tr class=\"memitem:a5d43fb9e9a71b347fd9b5047b622362e\" id=\"r_a5d43fb9e9a71b347fd9b5047b622362e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5d43fb9e9a71b347fd9b5047b622362e\">GetFlagDefaultAsync</a> (string name, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a5d43fb9e9a71b347fd9b5047b622362e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single default flag for this identity.  <br /></td></tr>\n<tr class=\"memitem:a2ac8ed383d158eefdc503b1307093ff5\" id=\"r_a2ac8ed383d158eefdc503b1307093ff5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2ac8ed383d158eefdc503b1307093ff5\">GetFlagDefaultAsync</a> (string name, string defaultValue, CancellationToken? cancellationToken=default)</td></tr>\n<tr class=\"memdesc:a2ac8ed383d158eefdc503b1307093ff5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get a single default flag for this identity.  <br /></td></tr>\n<tr class=\"memitem:a58c5f9f785c3e17f99ee15b40f504f3e\" id=\"r_a58c5f9f785c3e17f99ee15b40f504f3e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a58c5f9f785c3e17f99ee15b40f504f3e\">GetFlagsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a58c5f9f785c3e17f99ee15b40f504f3e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List all available flags for this identity.  <br /></td></tr>\n<tr class=\"memitem:af09676d829f982627bdf713bc1c8619a\" id=\"r_af09676d829f982627bdf713bc1c8619a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af09676d829f982627bdf713bc1c8619a\">GetFlagsDefaultAsync</a> (IEnumerable&lt; string &gt; names, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:af09676d829f982627bdf713bc1c8619a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List all available default flags.  <br /></td></tr>\n<tr class=\"memitem:af5e2d3254af0d5c17120ed153fc18d8e\" id=\"r_af5e2d3254af0d5c17120ed153fc18d8e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af5e2d3254af0d5c17120ed153fc18d8e\">GetLiveEventsAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:af5e2d3254af0d5c17120ed153fc18d8e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List available live events.  <br /></td></tr>\n<tr class=\"memitem:a98c580078233eb04e7f2bb8d56337207\" id=\"r_a98c580078233eb04e7f2bb8d56337207\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a98c580078233eb04e7f2bb8d56337207\">IdentifyAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a98c580078233eb04e7f2bb8d56337207\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Identify a session with a new ID.  <br /></td></tr>\n<tr class=\"memitem:ad4dfbf0106893c65c5e9afcfc5951da1\" id=\"r_ad4dfbf0106893c65c5e9afcfc5951da1\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad4dfbf0106893c65c5e9afcfc5951da1\">ListPropertiesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ad4dfbf0106893c65c5e9afcfc5951da1\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List properties associated with this identity.  <br /></td></tr>\n<tr class=\"memitem:a98996c62285fd0e6c28146ebea67b7b5\" id=\"r_a98996c62285fd0e6c28146ebea67b7b5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a98996c62285fd0e6c28146ebea67b7b5\">SessionRefreshAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a98996c62285fd0e6c28146ebea67b7b5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh a user's session using a refresh token retrieved from a previous authentication request.  <br /></td></tr>\n<tr class=\"memitem:a5b6655c089427fb690ea2e70c4b4fed0\" id=\"r_a5b6655c089427fb690ea2e70c4b4fed0\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5b6655c089427fb690ea2e70c4b4fed0\">UpdatePropertiesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, Dictionary&lt; string, string &gt; defaultProperties, Dictionary&lt; string, string &gt; customProperties, bool recompute, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a5b6655c089427fb690ea2e70c4b4fed0\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update properties associated with this identity.  <br /></td></tr>\n<tr class=\"memitem:a7f14ef54f2d6c9394d58d4938b1638c3\" id=\"r_a7f14ef54f2d6c9394d58d4938b1638c3\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a7f14ef54f2d6c9394d58d4938b1638c3\">DeleteIdentityAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a7f14ef54f2d6c9394d58d4938b1638c3\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete the caller's identity and associated data.  <br /></td></tr>\n<tr class=\"memitem:ad76b6376c8bc2ee97618b883cff42233\" id=\"r_ad76b6376c8bc2ee97618b883cff42233\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad76b6376c8bc2ee97618b883cff42233\">GetMessageListAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, int limit=1, bool forward=true, string cursor=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ad76b6376c8bc2ee97618b883cff42233\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all the messages for an identity.  <br /></td></tr>\n<tr class=\"memitem:a1266e5cbdb2ad6082010b6f630d4a3ca\" id=\"r_a1266e5cbdb2ad6082010b6f630d4a3ca\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1266e5cbdb2ad6082010b6f630d4a3ca\">UpdateMessageAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, string consumeTime, string readTime, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:a1266e5cbdb2ad6082010b6f630d4a3ca\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status of a message.  <br /></td></tr>\n<tr class=\"memitem:af8b7ad1d44dc02bfc1f1b58a8d701eb5\" id=\"r_af8b7ad1d44dc02bfc1f1b58a8d701eb5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">DeleteMessageAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, string id, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:af8b7ad1d44dc02bfc1f1b58a8d701eb5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Delete a scheduled message.  <br /></td></tr>\n<tr class=\"memitem:ab1fb83c7c7f7e0f406919bddcc10f71c\" id=\"r_ab1fb83c7c7f7e0f406919bddcc10f71c\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab1fb83c7c7f7e0f406919bddcc10f71c\">GetFlagOverridesAsync</a> (<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> session, IEnumerable&lt; string &gt; names=null, CancellationToken? cancellationToken=default, <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> retryConfiguration=null)</td></tr>\n<tr class=\"memdesc:ab1fb83c7c7f7e0f406919bddcc10f71c\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Get all available flags and their value overrides for this identity.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a925f1ed39c7e91ed7afa9b44b20cfdfd\" id=\"r_a925f1ed39c7e91ed7afa9b44b20cfdfd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a925f1ed39c7e91ed7afa9b44b20cfdfd\">ApiKey</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a925f1ed39c7e91ed7afa9b44b20cfdfd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The key used to authenticate with the server without a session.  <br /></td></tr>\n<tr class=\"memitem:a92cededba8674818db5107bca319ed39\" id=\"r_a92cededba8674818db5107bca319ed39\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a92cededba8674818db5107bca319ed39\">AutoRefreshSession</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a92cededba8674818db5107bca319ed39\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">True if the session should be refreshed with an active refresh token.  <br /></td></tr>\n<tr class=\"memitem:a42f103710720fda458702c3d1b2419e9\" id=\"r_a42f103710720fda458702c3d1b2419e9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a42f103710720fda458702c3d1b2419e9\">GlobalRetryConfiguration</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a42f103710720fda458702c3d1b2419e9\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The global retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>.  <br /></td></tr>\n<tr class=\"memitem:abb321c6eab2ee7813caeaa5fdcf6c7ab\" id=\"r_abb321c6eab2ee7813caeaa5fdcf6c7ab\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abb321c6eab2ee7813caeaa5fdcf6c7ab\">Host</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abb321c6eab2ee7813caeaa5fdcf6c7ab\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The host address of the server.  <br /></td></tr>\n<tr class=\"memitem:ab6cc862b3c6aeda2b4f4e071f026257d\" id=\"r_ab6cc862b3c6aeda2b4f4e071f026257d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab6cc862b3c6aeda2b4f4e071f026257d\">Port</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ab6cc862b3c6aeda2b4f4e071f026257d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The port number of the server.  <br /></td></tr>\n<tr class=\"memitem:afc553c7ef0a65e8b7fe10fa69fb73109\" id=\"r_afc553c7ef0a65e8b7fe10fa69fb73109\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afc553c7ef0a65e8b7fe10fa69fb73109\">Scheme</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:afc553c7ef0a65e8b7fe10fa69fb73109\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The protocol scheme used to connect with the server. Must be either \"http\" or \"https\".  <br /></td></tr>\n<tr class=\"memitem:ad9dd8d69df8a409984565f7cc20a3580\" id=\"r_ad9dd8d69df8a409984565f7cc20a3580\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad9dd8d69df8a409984565f7cc20a3580\">Timeout</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:ad9dd8d69df8a409984565f7cc20a3580\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Set the timeout in seconds on requests sent to the server.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-events\" class=\"groupheader\"><a id=\"events\" name=\"events\"></a>\nEvents</h2></td></tr>\n<tr class=\"memitem:af0bb8217badaf363744c5b982d6d4f0b\" id=\"r_af0bb8217badaf363744c5b982d6d4f0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Action&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#af0bb8217badaf363744c5b982d6d4f0b\">ReceivedSessionUpdated</a></td></tr>\n<tr class=\"memdesc:af0bb8217badaf363744c5b982d6d4f0b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Received a new session after the current one has expired.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a2cd228b8edf1c83582670629bf410a8b\" name=\"a2cd228b8edf1c83582670629bf410a8b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2cd228b8edf1c83582670629bf410a8b\">&#9670;&#160;</a></span>AuthenticateAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.IClient.AuthenticateAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Authenticate against the server. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">id</td><td>An optional user id.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>Optional default properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>Optional custom properties to update with this call. If not set, properties are left as they are on the server.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"aa9065d9dbe25cf136fedb3bf47f90238\" name=\"aa9065d9dbe25cf136fedb3bf47f90238\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa9065d9dbe25cf136fedb3bf47f90238\">&#9670;&#160;</a></span>AuthenticateLogoutAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.AuthenticateLogoutAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which represents the asynchronous operation.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a7f14ef54f2d6c9394d58d4938b1638c3\" name=\"a7f14ef54f2d6c9394d58d4938b1638c3\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a7f14ef54f2d6c9394d58d4938b1638c3\">&#9670;&#160;</a></span>DeleteIdentityAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.DeleteIdentityAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete the caller's identity and associated data. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af8b7ad1d44dc02bfc1f1b58a8d701eb5\" name=\"af8b7ad1d44dc02bfc1f1b58a8d701eb5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af8b7ad1d44dc02bfc1f1b58a8d701eb5\">&#9670;&#160;</a></span>DeleteMessageAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.DeleteMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Delete a scheduled message. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The identifier of the message.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ae8f0e598b1759ea69263e802e05ddb92\" name=\"ae8f0e598b1759ea69263e802e05ddb92\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae8f0e598b1759ea69263e802e05ddb92\">&#9670;&#160;</a></span>EventAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.EventAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> @</td>          <td class=\"paramname\"><span class=\"paramname\"><em>event</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send an event for this session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">event</td><td>The event to send.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab87f2f750a3ab77c3fb1dabfa4282215\" name=\"ab87f2f750a3ab77c3fb1dabfa4282215\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab87f2f750a3ab77c3fb1dabfa4282215\">&#9670;&#160;</a></span>EventsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.EventsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; <a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>events</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a batch of events for this session. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">events</td><td>The batch of events which will be sent.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a281b0af8c507ba0826dae6cf65d2d387\" name=\"a281b0af8c507ba0826dae6cf65d2d387\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a281b0af8c507ba0826dae6cf65d2d387\">&#9670;&#160;</a></span>GetAllExperimentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt; Satori.IClient.GetAllExperimentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get all experiments data. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a15b8bbf87db82248d5e7bf1f982afea7\" name=\"a15b8bbf87db82248d5e7bf1f982afea7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a15b8bbf87db82248d5e7bf1f982afea7\">&#9670;&#160;</a></span>GetExperimentsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a> &gt; Satori.IClient.GetExperimentsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get specific experiments data. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Experiment names.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all experiments that this identity is involved with.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a57c517196ee9b263b5649ecd21d949e8\" name=\"a57c517196ee9b263b5649ecd21d949e8\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a57c517196ee9b263b5649ecd21d949e8\">&#9670;&#160;</a></span>GetFlagAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.IClient.GetFlagAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get a single flag for this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single feature flag.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a486e38938074ed725715c81e64166f60\" name=\"a486e38938074ed725715c81e64166f60\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a486e38938074ed725715c81e64166f60\">&#9670;&#160;</a></span>GetFlagAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.IClient.GetFlagAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultValue</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get a single flag for this identity. </p>\n<p>Unlike <code>GetFlags(ISession,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unavailable. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">defaultValue</td><td>The default value if the server is unreachable.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single feature flag.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a5d43fb9e9a71b347fd9b5047b622362e\" name=\"a5d43fb9e9a71b347fd9b5047b622362e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5d43fb9e9a71b347fd9b5047b622362e\">&#9670;&#160;</a></span>GetFlagDefaultAsync() <span class=\"overload\">[1/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.IClient.GetFlagDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get a single default flag for this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single default feature flag.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a2ac8ed383d158eefdc503b1307093ff5\" name=\"a2ac8ed383d158eefdc503b1307093ff5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2ac8ed383d158eefdc503b1307093ff5\">&#9670;&#160;</a></span>GetFlagDefaultAsync() <span class=\"overload\">[2/2]</span></h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a> &gt; Satori.IClient.GetFlagDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>name</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultValue</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get a single default flag for this identity. </p>\n<p>Unlike <code>GetFlagDefaultAsync(string,string,CancellationToken)</code> this method will return the default value specified and will not raise an exception if the network is unreachable. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">name</td><td>The name of the flag.</td></tr>\n    <tr><td class=\"paramname\">defaultValue</td><td>The default value if the server is unreachable.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a single default feature flag.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab1fb83c7c7f7e0f406919bddcc10f71c\" name=\"ab1fb83c7c7f7e0f406919bddcc10f71c\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab1fb83c7c7f7e0f406919bddcc10f71c\">&#9670;&#160;</a></span>GetFlagOverridesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a> &gt; Satori.IClient.GetFlagOverridesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get all available flags and their value overrides for this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list all available flags and their value overrides for this identity.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a58c5f9f785c3e17f99ee15b40f504f3e\" name=\"a58c5f9f785c3e17f99ee15b40f504f3e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a58c5f9f785c3e17f99ee15b40f504f3e\">&#9670;&#160;</a></span>GetFlagsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt; Satori.IClient.GetFlagsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List all available flags for this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all flags available to this identity.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af09676d829f982627bdf713bc1c8619a\" name=\"af09676d829f982627bdf713bc1c8619a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af09676d829f982627bdf713bc1c8619a\">&#9670;&#160;</a></span>GetFlagsDefaultAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a> &gt; Satori.IClient.GetFlagsDefaultAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List all available default flags. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">names</td><td>Flag names, if empty string all flags are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to all available default flags.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"af5e2d3254af0d5c17120ed153fc18d8e\" name=\"af5e2d3254af0d5c17120ed153fc18d8e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af5e2d3254af0d5c17120ed153fc18d8e\">&#9670;&#160;</a></span>GetLiveEventsAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a> &gt; Satori.IClient.GetLiveEventsAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IEnumerable&lt; string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>names</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List available live events. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">names</td><td>Live event names, if null or empty, all live events are returned.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad76b6376c8bc2ee97618b883cff42233\" name=\"ad76b6376c8bc2ee97618b883cff42233\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad76b6376c8bc2ee97618b883cff42233\">&#9670;&#160;</a></span>GetMessageListAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a> &gt; Satori.IClient.GetMessageListAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>limit</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">1</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>forward</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">true</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cursor</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Get all the messages for an identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">limit</td><td>Max number of messages to return. Between 1 and 100.</td></tr>\n    <tr><td class=\"paramname\">forward</td><td>True if listing should be older messages to newer, false if reverse.</td></tr>\n    <tr><td class=\"paramname\">cursor</td><td>A pagination cursor, if any.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object which resolves to a list of messages.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a98c580078233eb04e7f2bb8d56337207\" name=\"a98c580078233eb04e7f2bb8d56337207\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a98c580078233eb04e7f2bb8d56337207\">&#9670;&#160;</a></span>IdentifyAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.IClient.IdentifyAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Identify a session with a new ID. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. </td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom event properties.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the new session for the user.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad4dfbf0106893c65c5e9afcfc5951da1\" name=\"ad4dfbf0106893c65c5e9afcfc5951da1\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad4dfbf0106893c65c5e9afcfc5951da1\">&#9670;&#160;</a></span>ListPropertiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a> &gt; Satori.IClient.ListPropertiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>List properties associated with this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a list of live events.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a98996c62285fd0e6c28146ebea67b7b5\" name=\"a98996c62285fd0e6c28146ebea67b7b5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a98996c62285fd0e6c28146ebea67b7b5\">&#9670;&#160;</a></span>SessionRefreshAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a> &gt; Satori.IClient.SessionRefreshAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Refresh a user's session using a refresh token retrieved from a previous authentication request. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to a user session.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a1266e5cbdb2ad6082010b6f630d4a3ca\" name=\"a1266e5cbdb2ad6082010b6f630d4a3ca\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1266e5cbdb2ad6082010b6f630d4a3ca\">&#9670;&#160;</a></span>UpdateMessageAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.UpdateMessageAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>id</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>consumeTime</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>readTime</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update the status of a message. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">id</td><td>The message's unique identifier.</td></tr>\n    <tr><td class=\"paramname\">consumeTime</td><td>The time the message was consumed by the identity.</td></tr>\n    <tr><td class=\"paramname\">readTime</td><td>The time the message was read at the client.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a5b6655c089427fb690ea2e70c4b4fed0\" name=\"a5b6655c089427fb690ea2e70c4b4fed0\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5b6655c089427fb690ea2e70c4b4fed0\">&#9670;&#160;</a></span>UpdatePropertiesAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task Satori.IClient.UpdatePropertiesAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>session</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>defaultProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Dictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>customProperties</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">bool</td>          <td class=\"paramname\"><span class=\"paramname\"><em>recompute</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>cancellationToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">default</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryConfiguration</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Update properties associated with this identity. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">session</td><td>The session of the user.</td></tr>\n    <tr><td class=\"paramname\">defaultProperties</td><td>The default properties to update.</td></tr>\n    <tr><td class=\"paramname\">customProperties</td><td>The custom properties to update.</td></tr>\n    <tr><td class=\"paramname\">recompute</td><td>Whether or not to recompute the user's audience membership immediately after property update.</td></tr>\n    <tr><td class=\"paramname\">cancellationToken</td><td>The CancellationToken that can be used to cancel the request while mid-flight.</td></tr>\n    <tr><td class=\"paramname\">retryConfiguration</td><td>The retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a></td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task object.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a925f1ed39c7e91ed7afa9b44b20cfdfd\" name=\"a925f1ed39c7e91ed7afa9b44b20cfdfd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a925f1ed39c7e91ed7afa9b44b20cfdfd\">&#9670;&#160;</a></span>ApiKey</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IClient.ApiKey</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The key used to authenticate with the server without a session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a92cededba8674818db5107bca319ed39\" name=\"a92cededba8674818db5107bca319ed39\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a92cededba8674818db5107bca319ed39\">&#9670;&#160;</a></span>AutoRefreshSession</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.IClient.AutoRefreshSession</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>True if the session should be refreshed with an active refresh token. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"a42f103710720fda458702c3d1b2419e9\" name=\"a42f103710720fda458702c3d1b2419e9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a42f103710720fda458702c3d1b2419e9\">&#9670;&#160;</a></span>GlobalRetryConfiguration</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a> Satori.IClient.GlobalRetryConfiguration</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The global retry configuration. See <a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\" title=\"A configuration for controlling retriable requests.\">RetryConfiguration</a>. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"abb321c6eab2ee7813caeaa5fdcf6c7ab\" name=\"abb321c6eab2ee7813caeaa5fdcf6c7ab\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abb321c6eab2ee7813caeaa5fdcf6c7ab\">&#9670;&#160;</a></span>Host</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IClient.Host</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The host address of the server. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ab6cc862b3c6aeda2b4f4e071f026257d\" name=\"ab6cc862b3c6aeda2b4f4e071f026257d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab6cc862b3c6aeda2b4f4e071f026257d\">&#9670;&#160;</a></span>Port</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.IClient.Port</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The port number of the server. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"afc553c7ef0a65e8b7fe10fa69fb73109\" name=\"afc553c7ef0a65e8b7fe10fa69fb73109\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afc553c7ef0a65e8b7fe10fa69fb73109\">&#9670;&#160;</a></span>Scheme</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IClient.Scheme</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The protocol scheme used to connect with the server. Must be either \"http\" or \"https\". </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a id=\"ad9dd8d69df8a409984565f7cc20a3580\" name=\"ad9dd8d69df8a409984565f7cc20a3580\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad9dd8d69df8a409984565f7cc20a3580\">&#9670;&#160;</a></span>Timeout</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.IClient.Timeout</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Set the timeout in seconds on requests sent to the server. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\">Satori.Client</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-event-members\" id=\"doc-event-members\"></a><h2 id=\"header-doc-event-members\" class=\"groupheader\">Event Documentation</h2>\n<a id=\"af0bb8217badaf363744c5b982d6d4f0b\" name=\"af0bb8217badaf363744c5b982d6d4f0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#af0bb8217badaf363744c5b982d6d4f0b\">&#9670;&#160;</a></span>ReceivedSessionUpdated</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Action&lt;<a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a>&gt; Satori.IClient.ReceivedSessionUpdated</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Received a new session after the current one has expired. </p>\n<p>This event will only be sent when <code>SessionRefreshAsync</code> is called which also happens automatically if <code>AutoRefreshSession</code> is enabled. </p>\n<p><a class=\"el\" href=\"#a98996c62285fd0e6c28146ebea67b7b5\" title=\"Refresh a user&#39;s session using a refresh token retrieved from a previous authentication request.\">SessionRefreshAsync</a> </p><dl class=\"section see\"><dt>See also</dt><dd><a class=\"el\" href=\"#a92cededba8674818db5107bca319ed39\" title=\"True if the session should be refreshed with an active refresh token.\">AutoRefreshSession</a></dd></dl>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_i_client_8cs.html\">Satori/IClient.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_client.html\">IClient</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_client.js",
    "content": "var interface_satori_1_1_i_client =\n[\n    [ \"AuthenticateAsync\", \"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\", null ],\n    [ \"AuthenticateLogoutAsync\", \"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\", null ],\n    [ \"DeleteIdentityAsync\", \"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\", null ],\n    [ \"DeleteMessageAsync\", \"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\", null ],\n    [ \"EventAsync\", \"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\", null ],\n    [ \"EventsAsync\", \"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\", null ],\n    [ \"GetAllExperimentsAsync\", \"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\", null ],\n    [ \"GetExperimentsAsync\", \"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\", null ],\n    [ \"GetFlagAsync\", \"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\", null ],\n    [ \"GetFlagAsync\", \"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\", null ],\n    [ \"GetFlagDefaultAsync\", \"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\", null ],\n    [ \"GetFlagDefaultAsync\", \"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\", null ],\n    [ \"GetFlagOverridesAsync\", \"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\", null ],\n    [ \"GetFlagsAsync\", \"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\", null ],\n    [ \"GetFlagsDefaultAsync\", \"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\", null ],\n    [ \"GetLiveEventsAsync\", \"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\", null ],\n    [ \"GetMessageListAsync\", \"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\", null ],\n    [ \"IdentifyAsync\", \"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\", null ],\n    [ \"ListPropertiesAsync\", \"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\", null ],\n    [ \"SessionRefreshAsync\", \"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\", null ],\n    [ \"UpdateMessageAsync\", \"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\", null ],\n    [ \"UpdatePropertiesAsync\", \"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\", null ],\n    [ \"ApiKey\", \"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\", null ],\n    [ \"AutoRefreshSession\", \"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\", null ],\n    [ \"GlobalRetryConfiguration\", \"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\", null ],\n    [ \"Host\", \"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\", null ],\n    [ \"Port\", \"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\", null ],\n    [ \"Scheme\", \"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\", null ],\n    [ \"Timeout\", \"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\", null ],\n    [ \"ReceivedSessionUpdated\", \"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_flag_value_change_reason-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_flag_value_change_reason.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IFlagValueChangeReason Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">Satori.IFlagValueChangeReason</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\">Name</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">Satori.IFlagValueChangeReason</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\">Type</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">Satori.IFlagValueChangeReason</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\">VariantName</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">Satori.IFlagValueChangeReason</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_flag_value_change_reason.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IFlagValueChangeReason Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_flag_value_change_reason.html','','interface_satori_1_1_i_flag_value_change_reason-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IFlagValueChangeReason Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a96fae117168835adbf19ba9fa32d7121\" id=\"r_a96fae117168835adbf19ba9fa32d7121\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a96fae117168835adbf19ba9fa32d7121\">Name</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a96fae117168835adbf19ba9fa32d7121\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The name of the configuration that overrides the flag value.  <br /></td></tr>\n<tr class=\"memitem:a45c8e3dea48266af7ac883bf68135b90\" id=\"r_a45c8e3dea48266af7ac883bf68135b90\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\">FlagValueChangeReasonType</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a45c8e3dea48266af7ac883bf68135b90\">Type</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a45c8e3dea48266af7ac883bf68135b90\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The type of the configuration that declared the override.  <br /></td></tr>\n<tr class=\"memitem:ae5b9f29a2da089ea102feaea5e86cb68\" id=\"r_ae5b9f29a2da089ea102feaea5e86cb68\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ae5b9f29a2da089ea102feaea5e86cb68\">VariantName</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ae5b9f29a2da089ea102feaea5e86cb68\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The variant name of the configuration that overrides the flag value.  <br /></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a96fae117168835adbf19ba9fa32d7121\" name=\"a96fae117168835adbf19ba9fa32d7121\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a96fae117168835adbf19ba9fa32d7121\">&#9670;&#160;</a></span>Name</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IFlagValueChangeReason.Name</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The name of the configuration that overrides the flag value. </p>\n\n</div>\n</div>\n<a id=\"a45c8e3dea48266af7ac883bf68135b90\" name=\"a45c8e3dea48266af7ac883bf68135b90\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a45c8e3dea48266af7ac883bf68135b90\">&#9670;&#160;</a></span>Type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\">FlagValueChangeReasonType</a> Satori.IFlagValueChangeReason.Type</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The type of the configuration that declared the override. </p>\n\n</div>\n</div>\n<a id=\"ae5b9f29a2da089ea102feaea5e86cb68\" name=\"ae5b9f29a2da089ea102feaea5e86cb68\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ae5b9f29a2da089ea102feaea5e86cb68\">&#9670;&#160;</a></span>VariantName</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IFlagValueChangeReason.VariantName</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The variant name of the configuration that overrides the flag value. </p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_flag_value_change_reason.html\">IFlagValueChangeReason</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_flag_value_change_reason.js",
    "content": "var interface_satori_1_1_i_flag_value_change_reason =\n[\n    [ \"Name\", \"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\", null ],\n    [ \"Type\", \"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\", null ],\n    [ \"VariantName\", \"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_http_adapter-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_http_adapter.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IHttpAdapter Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">Satori.IHttpAdapter</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\">Logger</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">Satori.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\">SendAsync</a>(string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeoutSec=3, CancellationToken? userCancelToken=null)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">Satori.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\">TransientExceptionDelegate</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">Satori.IHttpAdapter</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_http_adapter.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IHttpAdapter Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_http_adapter.html','','interface_satori_1_1_i_http_adapter-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IHttpAdapter Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>An adapter which implements the HTTP protocol.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.IHttpAdapter:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_satori_1_1_i_http_adapter.png\" usemap=\"#Satori_2EIHttpAdapter_map\" alt=\"\"/>\n  <map id=\"Satori_2EIHttpAdapter_map\" name=\"Satori_2EIHttpAdapter_map\">\n<area href=\"class_satori_1_1_http_request_adapter.html\" title=\"HTTP Request adapter which uses the .NET HttpClient to send requests.\" alt=\"Satori.HttpRequestAdapter\" shape=\"rect\" coords=\"0,56,160,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:a5a8263afb745168a52c3e9a778b36344\" id=\"r_a5a8263afb745168a52c3e9a778b36344\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">Task&lt; string &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5a8263afb745168a52c3e9a778b36344\">SendAsync</a> (string method, Uri uri, IDictionary&lt; string, string &gt; headers, byte[] body, int timeoutSec=3, CancellationToken? userCancelToken=null)</td></tr>\n<tr class=\"memdesc:a5a8263afb745168a52c3e9a778b36344\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a HTTP request.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a4a1fd5b9edeccda3485b62d94f22578f\" id=\"r_a4a1fd5b9edeccda3485b62d94f22578f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">TransientExceptionDelegate&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4a1fd5b9edeccda3485b62d94f22578f\">TransientExceptionDelegate</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4a1fd5b9edeccda3485b62d94f22578f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.e., is 'transient').  <br /></td></tr>\n<tr class=\"memitem:a60f7f315f6269aa15eea61fa0155dc0b\" id=\"r_a60f7f315f6269aa15eea61fa0155dc0b\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a>&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a60f7f315f6269aa15eea61fa0155dc0b\">Logger</a><code> [get, set]</code></td></tr>\n<tr class=\"memdesc:a60f7f315f6269aa15eea61fa0155dc0b\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The logger to use with the adapter.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>An adapter which implements the HTTP protocol. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"a5a8263afb745168a52c3e9a778b36344\" name=\"a5a8263afb745168a52c3e9a778b36344\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5a8263afb745168a52c3e9a778b36344\">&#9670;&#160;</a></span>SendAsync()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">Task&lt; string &gt; Satori.IHttpAdapter.SendAsync </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>method</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Uri</td>          <td class=\"paramname\"><span class=\"paramname\"><em>uri</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">IDictionary&lt; string, string &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>headers</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">byte[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>body</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>timeoutSec</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">3</span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">CancellationToken?</td>          <td class=\"paramname\"><span class=\"paramname\"><em>userCancelToken</em></span><span class=\"paramdefsep\"> = </span><span class=\"paramdefval\">null</span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Send a HTTP request. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">method</td><td>HTTP method to use for this request.</td></tr>\n    <tr><td class=\"paramname\">uri</td><td>The fully qualified URI to use.</td></tr>\n    <tr><td class=\"paramname\">headers</td><td>Request headers to set.</td></tr>\n    <tr><td class=\"paramname\">body</td><td>Request content body to set.</td></tr>\n    <tr><td class=\"paramname\">timeoutSec</td><td>Request timeout.</td></tr>\n    <tr><td class=\"paramname\">userCancelToken</td><td>A user-generated token that can be used to cancel the request.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>A task which resolves to the contents of the response.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\">Satori.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a60f7f315f6269aa15eea61fa0155dc0b\" name=\"a60f7f315f6269aa15eea61fa0155dc0b\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a60f7f315f6269aa15eea61fa0155dc0b\">&#9670;&#160;</a></span>Logger</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a> Satori.IHttpAdapter.Logger</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span><span class=\"mlabel set\">set</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The logger to use with the adapter. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\">Satori.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<a id=\"a4a1fd5b9edeccda3485b62d94f22578f\" name=\"a4a1fd5b9edeccda3485b62d94f22578f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4a1fd5b9edeccda3485b62d94f22578f\">&#9670;&#160;</a></span>TransientExceptionDelegate</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">TransientExceptionDelegate Satori.IHttpAdapter.TransientExceptionDelegate</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.e., is 'transient'). </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\">Satori.HttpRequestAdapter</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_i_http_adapter_8cs.html\">Satori/IHttpAdapter.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_http_adapter.js",
    "content": "var interface_satori_1_1_i_http_adapter =\n[\n    [ \"SendAsync\", \"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\", null ],\n    [ \"Logger\", \"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\", null ],\n    [ \"TransientExceptionDelegate\", \"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_logger-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_logger.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ILogger Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\">DebugFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\">ErrorFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\">InfoFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\">WarnFormat</a>(string format, params object[] args)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">Satori.ILogger</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_logger.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.ILogger Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_logger.html','','interface_satori_1_1_i_logger-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ILogger Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A simple logger to write log messages to an output sink.  \n <a href=\"#details\">More...</a></p>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:acb889cdb5e1738367ac3d0f3690fa190\" id=\"r_acb889cdb5e1738367ac3d0f3690fa190\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#acb889cdb5e1738367ac3d0f3690fa190\">DebugFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:acb889cdb5e1738367ac3d0f3690fa190\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the DEBUG level.  <br /></td></tr>\n<tr class=\"memitem:a85c6046abce4142fdb6efedeafe7b8cd\" id=\"r_a85c6046abce4142fdb6efedeafe7b8cd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a85c6046abce4142fdb6efedeafe7b8cd\">ErrorFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a85c6046abce4142fdb6efedeafe7b8cd\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the ERROR level.  <br /></td></tr>\n<tr class=\"memitem:a1d6e3a04dff701d98e397844555c35eb\" id=\"r_a1d6e3a04dff701d98e397844555c35eb\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a1d6e3a04dff701d98e397844555c35eb\">InfoFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a1d6e3a04dff701d98e397844555c35eb\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the INFO level.  <br /></td></tr>\n<tr class=\"memitem:a30adb5d4ad5400e125795f35eff17591\" id=\"r_a30adb5d4ad5400e125795f35eff17591\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a30adb5d4ad5400e125795f35eff17591\">WarnFormat</a> (string format, params object[] args)</td></tr>\n<tr class=\"memdesc:a30adb5d4ad5400e125795f35eff17591\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Logs a formatted string with the WARN level.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A simple logger to write log messages to an output sink. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"acb889cdb5e1738367ac3d0f3690fa190\" name=\"acb889cdb5e1738367ac3d0f3690fa190\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#acb889cdb5e1738367ac3d0f3690fa190\">&#9670;&#160;</a></span>DebugFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Satori.ILogger.DebugFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the DEBUG level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a85c6046abce4142fdb6efedeafe7b8cd\" name=\"a85c6046abce4142fdb6efedeafe7b8cd\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a85c6046abce4142fdb6efedeafe7b8cd\">&#9670;&#160;</a></span>ErrorFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Satori.ILogger.ErrorFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the ERROR level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a1d6e3a04dff701d98e397844555c35eb\" name=\"a1d6e3a04dff701d98e397844555c35eb\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a1d6e3a04dff701d98e397844555c35eb\">&#9670;&#160;</a></span>InfoFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Satori.ILogger.InfoFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the INFO level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a30adb5d4ad5400e125795f35eff17591\" name=\"a30adb5d4ad5400e125795f35eff17591\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a30adb5d4ad5400e125795f35eff17591\">&#9670;&#160;</a></span>WarnFormat()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">void Satori.ILogger.WarnFormat </td>\n          <td>(</td>\n          <td class=\"paramtype\">string</td>          <td class=\"paramname\"><span class=\"paramname\"><em>format</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">params object[]</td>          <td class=\"paramname\"><span class=\"paramname\"><em>args</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Logs a formatted string with the WARN level. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">format</td><td>A string with zero or more format items.</td></tr>\n    <tr><td class=\"paramname\">args</td><td>An object array with zero or more objects to format.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_i_logger_8cs.html\">Satori/ILogger.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_logger.html\">ILogger</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_logger.js",
    "content": "var interface_satori_1_1_i_logger =\n[\n    [ \"DebugFormat\", \"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\", null ],\n    [ \"ErrorFormat\", \"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\", null ],\n    [ \"InfoFormat\", \"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\", null ],\n    [ \"WarnFormat\", \"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_protobuf_any-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_protobuf_any.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IProtobufAny Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">Satori.IProtobufAny</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\">type</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">Satori.IProtobufAny</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_protobuf_any.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IProtobufAny Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_protobuf_any.html','','interface_satori_1_1_i_protobuf_any-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IProtobufAny Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a43acc74cdc796aeee56a0930fa2f3b5d\" id=\"r_a43acc74cdc796aeee56a0930fa2f3b5d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a43acc74cdc796aeee56a0930fa2f3b5d\">type</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a43acc74cdc796aeee56a0930fa2f3b5d\" name=\"a43acc74cdc796aeee56a0930fa2f3b5d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a43acc74cdc796aeee56a0930fa2f3b5d\">&#9670;&#160;</a></span>type</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IProtobufAny.type</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_protobuf_any.html\">IProtobufAny</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_protobuf_any.js",
    "content": "var interface_satori_1_1_i_protobuf_any =\n[\n    [ \"type\", \"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_rpc_status-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_rpc_status.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IRpcStatus Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">Satori.IRpcStatus</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\">Code</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">Satori.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\">Details</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">Satori.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\">Message</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">Satori.IRpcStatus</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_rpc_status.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.IRpcStatus Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_rpc_status.html','','interface_satori_1_1_i_rpc_status-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.IRpcStatus Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a71366bd7cbdf47d676e2fd6fecf9daff\" id=\"r_a71366bd7cbdf47d676e2fd6fecf9daff\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a71366bd7cbdf47d676e2fd6fecf9daff\">Code</a><code> [get]</code></td></tr>\n<tr class=\"memitem:ab1f9e4bbdb97b5f4483a103b209eaee9\" id=\"r_ab1f9e4bbdb97b5f4483a103b209eaee9\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">IEnumerable&lt; <a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">IProtobufAny</a> &gt;&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ab1f9e4bbdb97b5f4483a103b209eaee9\">Details</a><code> [get]</code></td></tr>\n<tr class=\"memitem:abfc3946bb2273c5e2e44f123ac308a96\" id=\"r_abfc3946bb2273c5e2e44f123ac308a96\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abfc3946bb2273c5e2e44f123ac308a96\">Message</a><code> [get]</code></td></tr>\n</table>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a71366bd7cbdf47d676e2fd6fecf9daff\" name=\"a71366bd7cbdf47d676e2fd6fecf9daff\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a71366bd7cbdf47d676e2fd6fecf9daff\">&#9670;&#160;</a></span>Code</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">int Satori.IRpcStatus.Code</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"ab1f9e4bbdb97b5f4483a103b209eaee9\" name=\"ab1f9e4bbdb97b5f4483a103b209eaee9\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ab1f9e4bbdb97b5f4483a103b209eaee9\">&#9670;&#160;</a></span>Details</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">IEnumerable&lt;<a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">IProtobufAny</a>&gt; Satori.IRpcStatus.Details</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<a id=\"abfc3946bb2273c5e2e44f123ac308a96\" name=\"abfc3946bb2273c5e2e44f123ac308a96\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abfc3946bb2273c5e2e44f123ac308a96\">&#9670;&#160;</a></span>Message</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.IRpcStatus.Message</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_api_client_8gen_8cs.html\">Satori/ApiClient.gen.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_rpc_status.html\">IRpcStatus</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_rpc_status.js",
    "content": "var interface_satori_1_1_i_rpc_status =\n[\n    [ \"Code\", \"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\", null ],\n    [ \"Details\", \"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\", null ],\n    [ \"Message\", \"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\", null ]\n];"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_session-members.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Member List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_session.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ISession Member List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>This is the complete list of members for <a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a>, including all inherited members.</p>\n<table class=\"directory\">\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">AuthToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\">CreateTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\">ExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\">HasExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\">HasRefreshExpired</a>(DateTime offset)</td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\">IdentityId</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\">IsExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\">IsRefreshExpired</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"even\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\">RefreshExpireTime</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n  <tr class=\"odd\"><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\">RefreshToken</a></td><td class=\"entry\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">Satori.ISession</a></td><td class=\"entry\"></td></tr>\n</table></div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_session.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.ISession Interface Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('interface_satori_1_1_i_session.html','','interface_satori_1_1_i_session-members'); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.ISession Interface Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n\n<p>A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  \n <a href=\"#details\">More...</a></p>\n<div class=\"dynheader\">\nInheritance diagram for Satori.ISession:</div>\n<div class=\"dyncontent\">\n <div class=\"center\">\n  <img src=\"interface_satori_1_1_i_session.png\" usemap=\"#Satori_2EISession_map\" alt=\"\"/>\n  <map id=\"Satori_2EISession_map\" name=\"Satori_2EISession_map\">\n<area href=\"class_satori_1_1_session.html\" alt=\"Satori.Session\" shape=\"rect\" coords=\"0,56,96,80\"/>\n  </map>\n</div></div>\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-pub-methods\" class=\"groupheader\"><a id=\"pub-methods\" name=\"pub-methods\"></a>\nPublic Member Functions</h2></td></tr>\n<tr class=\"memitem:aabe1a8aae689ca7d1eaca3537ffa55f5\" id=\"r_aabe1a8aae689ca7d1eaca3537ffa55f5\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aabe1a8aae689ca7d1eaca3537ffa55f5\">HasExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:aabe1a8aae689ca7d1eaca3537ffa55f5\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check the session has expired against the offset time.  <br /></td></tr>\n<tr class=\"memitem:aa690bf2fd9e3cebdc597a17ad95eb8ac\" id=\"r_aa690bf2fd9e3cebdc597a17ad95eb8ac\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#aa690bf2fd9e3cebdc597a17ad95eb8ac\">HasRefreshExpired</a> (DateTime offset)</td></tr>\n<tr class=\"memdesc:aa690bf2fd9e3cebdc597a17ad95eb8ac\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Check if the refresh token has expired against the offset time.  <br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-properties\" class=\"groupheader\"><a id=\"properties\" name=\"properties\"></a>\nProperties</h2></td></tr>\n<tr class=\"memitem:a3a090ee3fe0d7a6f01d45f185ec8f3ba\" id=\"r_a3a090ee3fe0d7a6f01d45f185ec8f3ba\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">AuthToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a3a090ee3fe0d7a6f01d45f185ec8f3ba\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The authorization token used to construct this session.  <br /></td></tr>\n<tr class=\"memitem:a8229314b63c48a1f7a6494390575099a\" id=\"r_a8229314b63c48a1f7a6494390575099a\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8229314b63c48a1f7a6494390575099a\">CreateTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8229314b63c48a1f7a6494390575099a\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session was created.  <br /></td></tr>\n<tr class=\"memitem:a2ac53e0aab134b3df05bd46f29d5e34f\" id=\"r_a2ac53e0aab134b3df05bd46f29d5e34f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a2ac53e0aab134b3df05bd46f29d5e34f\">ExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a2ac53e0aab134b3df05bd46f29d5e34f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when this session will expire.  <br /></td></tr>\n<tr class=\"memitem:a8fe379446411cfdff5e11cabc83eed9d\" id=\"r_a8fe379446411cfdff5e11cabc83eed9d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8fe379446411cfdff5e11cabc83eed9d\">IsExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a8fe379446411cfdff5e11cabc83eed9d\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the session has expired.  <br /></td></tr>\n<tr class=\"memitem:a35ce1adb322ea67137bce06d711c9779\" id=\"r_a35ce1adb322ea67137bce06d711c9779\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a35ce1adb322ea67137bce06d711c9779\">IsRefreshExpired</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a35ce1adb322ea67137bce06d711c9779\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">If the refresh token has expired.  <br /></td></tr>\n<tr class=\"memitem:a4303314d30ab93e5297842327ef97571\" id=\"r_a4303314d30ab93e5297842327ef97571\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">long&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a4303314d30ab93e5297842327ef97571\">RefreshExpireTime</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:a4303314d30ab93e5297842327ef97571\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The UNIX timestamp when the refresh token will expire.  <br /></td></tr>\n<tr class=\"memitem:abfc2880c5080481f9ea718e18c2845cf\" id=\"r_abfc2880c5080481f9ea718e18c2845cf\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#abfc2880c5080481f9ea718e18c2845cf\">RefreshToken</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:abfc2880c5080481f9ea718e18c2845cf\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Refresh token that can be used for session token renewal.  <br /></td></tr>\n<tr class=\"memitem:ad2cf0bf88e2f23a3f3fdff64502a799e\" id=\"r_ad2cf0bf88e2f23a3f3fdff64502a799e\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">string&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#ad2cf0bf88e2f23a3f3fdff64502a799e\">IdentityId</a><code> [get]</code></td></tr>\n<tr class=\"memdesc:ad2cf0bf88e2f23a3f3fdff64502a799e\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The ID of the user who owns this session.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server. </p>\n</div><a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Member Function Documentation</h2>\n<a id=\"aabe1a8aae689ca7d1eaca3537ffa55f5\" name=\"aabe1a8aae689ca7d1eaca3537ffa55f5\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aabe1a8aae689ca7d1eaca3537ffa55f5\">&#9670;&#160;</a></span>HasExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.ISession.HasExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Check the session has expired against the offset time. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this session.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If the session has expired.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"aa690bf2fd9e3cebdc597a17ad95eb8ac\" name=\"aa690bf2fd9e3cebdc597a17ad95eb8ac\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#aa690bf2fd9e3cebdc597a17ad95eb8ac\">&#9670;&#160;</a></span>HasRefreshExpired()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.ISession.HasRefreshExpired </td>\n          <td>(</td>\n          <td class=\"paramtype\">DateTime</td>          <td class=\"paramname\"><span class=\"paramname\"><em>offset</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Check if the refresh token has expired against the offset time. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">offset</td><td>The datetime to compare against this refresh token.</td></tr>\n  </table>\n  </dd>\n</dl>\n<dl class=\"section return\"><dt>Returns</dt><dd>If refresh token has expired.</dd></dl>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a name=\"doc-property-members\" id=\"doc-property-members\"></a><h2 id=\"header-doc-property-members\" class=\"groupheader\">Property Documentation</h2>\n<a id=\"a3a090ee3fe0d7a6f01d45f185ec8f3ba\" name=\"a3a090ee3fe0d7a6f01d45f185ec8f3ba\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a3a090ee3fe0d7a6f01d45f185ec8f3ba\">&#9670;&#160;</a></span>AuthToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.ISession.AuthToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The authorization token used to construct this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a8229314b63c48a1f7a6494390575099a\" name=\"a8229314b63c48a1f7a6494390575099a\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8229314b63c48a1f7a6494390575099a\">&#9670;&#160;</a></span>CreateTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.ISession.CreateTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session was created. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a2ac53e0aab134b3df05bd46f29d5e34f\" name=\"a2ac53e0aab134b3df05bd46f29d5e34f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a2ac53e0aab134b3df05bd46f29d5e34f\">&#9670;&#160;</a></span>ExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.ISession.ExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when this session will expire. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"ad2cf0bf88e2f23a3f3fdff64502a799e\" name=\"ad2cf0bf88e2f23a3f3fdff64502a799e\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#ad2cf0bf88e2f23a3f3fdff64502a799e\">&#9670;&#160;</a></span>IdentityId</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.ISession.IdentityId</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The ID of the user who owns this session. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a8fe379446411cfdff5e11cabc83eed9d\" name=\"a8fe379446411cfdff5e11cabc83eed9d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8fe379446411cfdff5e11cabc83eed9d\">&#9670;&#160;</a></span>IsExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.ISession.IsExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the session has expired. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a35ce1adb322ea67137bce06d711c9779\" name=\"a35ce1adb322ea67137bce06d711c9779\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a35ce1adb322ea67137bce06d711c9779\">&#9670;&#160;</a></span>IsRefreshExpired</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">bool Satori.ISession.IsRefreshExpired</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>If the refresh token has expired. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"a4303314d30ab93e5297842327ef97571\" name=\"a4303314d30ab93e5297842327ef97571\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a4303314d30ab93e5297842327ef97571\">&#9670;&#160;</a></span>RefreshExpireTime</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">long Satori.ISession.RefreshExpireTime</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>The UNIX timestamp when the refresh token will expire. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<a id=\"abfc2880c5080481f9ea718e18c2845cf\" name=\"abfc2880c5080481f9ea718e18c2845cf\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#abfc2880c5080481f9ea718e18c2845cf\">&#9670;&#160;</a></span>RefreshToken</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n<table class=\"mlabels\">\n  <tr>\n  <td class=\"mlabels-left\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">string Satori.ISession.RefreshToken</td>\n        </tr>\n      </table>\n  </td>\n  <td class=\"mlabels-right\">\n<span class=\"mlabels\"><span class=\"mlabel get\">get</span></span>  </td>\n  </tr>\n</table>\n</div><div class=\"memdoc\">\n\n<p>Refresh token that can be used for session token renewal. </p>\n\n<p>Implemented in <a class=\"el\" href=\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\">Satori.Session</a>.</p>\n\n</div>\n</div>\n<hr/>The documentation for this interface was generated from the following file:<ul>\n<li><a class=\"el\" href=\"_satori_2_i_session_8cs.html\">Satori/ISession.cs</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"interface_satori_1_1_i_session.html\">ISession</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/interface_satori_1_1_i_session.js",
    "content": "var interface_satori_1_1_i_session =\n[\n    [ \"HasExpired\", \"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\", null ],\n    [ \"HasRefreshExpired\", \"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\", null ],\n    [ \"AuthToken\", \"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\", null ],\n    [ \"CreateTime\", \"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\", null ],\n    [ \"ExpireTime\", \"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\", null ],\n    [ \"IdentityId\", \"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\", null ],\n    [ \"IsExpired\", \"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\", null ],\n    [ \"IsRefreshExpired\", \"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\", null ],\n    [ \"RefreshExpireTime\", \"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\", null ],\n    [ \"RefreshToken\", \"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\", null ]\n];"
  },
  {
    "path": "docs/html/jquery.js",
    "content": "/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}\nvar f=\"3.6.0\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},\npush:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for(\"boolean\"==typeof a&&(l=a,a=arguments[s]||{},s++),\"object\"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:\"jQuery\"+(f+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==o.call(e))&&(!(t=r(e))||\"function\"==typeof(n=v.call(t,\"constructor\")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(\ne[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),\"function\"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){n[\"[object \"+t+\"]\"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S=\"sizzle\"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,\nO=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",M=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",I=\"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",W=\"\\\\[\"+M+\"*(\"+I+\")(?:\"+M+\"*([*^$|!~]?=)\"+M+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+I+\"))|)\"+M+\"*\\\\]\",F=\":(\"+I+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+W+\")*)|.*)\\\\)|)\",B=new RegExp(M+\"+\",\"g\"),$=new RegExp(\"^\"+M+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+M+\"+$\",\"g\"),_=new RegExp(\"^\"+M+\"*,\"+M+\"*\"),z=new RegExp(\"^\"+M+\"*([>+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\n\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType\n}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c\n)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){\nreturn\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\n\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\")\n)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"<a id='\"+S+\"'></a><select id='\"+S+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\n\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(\na.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,\nnull,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+\"\").replace(re,ie)},se.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n=\"\",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if(\n\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne\n).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1<t.indexOf(i):\"$=\"===r?i&&t.slice(-i.length)===i:\"~=\"===r?-1<(\" \"+t.replace(B,\" \")+\" \").indexOf(i):\"|=\"===r&&(t===i||t.slice(0,i.length+1)===i+\"-\"))}},CHILD:function(h,e,t,g,v){var y=\"nth\"!==h.slice(0,3),m=\"last\"!==h.slice(-4),x=\"of-type\"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?\"nextSibling\":\"previousSibling\",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType\n)return!1;u=l=\"only\"===h&&!u&&\"nextSibling\"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error(\"unsupported pseudo: \"+e);return a[S]?a(o):1<a.length?(t=[e,e,\"\",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,\"$1\"));return s[S]?le(\nfunction(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||\"\")||se.error(\"unsupported lang: \"+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute(\"xml:lang\")||e.getAttribute(\"lang\"))return(t=t.toLowerCase())===n||0===t.indexOf(n+\"-\")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){\nreturn e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);\nfor(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&\"parentNode\"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n\n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||\"*\",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[\" \"],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:\" \"===e[s-2].type?\"*\":\"\"})).replace($,\"$1\"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(\ne=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+\" \"];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($,\" \")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+\" \"];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l=\"0\",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG(\"*\",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);\nbreak}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l=\"function\"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&\"ID\"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split(\"\").sort(j).join(\"\")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(\nfunction(e){return 1&e.compareDocumentPosition(C.createElement(\"fieldset\"))}),ce(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){\nfor(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(\nthis,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(\nvar e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,\"parentNode\")},parentsUntil:function(e,t,n){return h(e,\"parentNode\",n)},next:function(e){return O(e,\"nextSibling\")},prev:function(e){return O(e,\"previousSibling\")},nextAll:function(e){return h(e,\"nextSibling\")},prevAll:function(e){\nreturn h(e,\"previousSibling\")},nextUntil:function(e,t,n){return h(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return h(e,\"previousSibling\",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,\"template\")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return\"Until\"!==r.slice(-5)&&(t=e),t&&\"string\"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\\x20\\t\\r\\n\\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r=\"string\"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(\n){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:\"\")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&\"string\"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t=\"\",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=\"\"),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[[\"notify\",\"progress\",S.Callbacks(\"memory\"),\nS.Callbacks(\"memory\"),2],[\"resolve\",\"done\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),1,\"rejected\"]],i=\"pending\",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+\"With\"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError(\"Thenable self-resolution\");t=e&&(\"object\"==typeof e||\"function\"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,\nr=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+\"With\"](this===s?void 0:this,arguments),this},s[t[0]+\"With\"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,\no.reject,!n),\"pending\"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener(\"DOMContentLoaded\",B),C.removeEventListener(\"load\",B),S.ready()}S.fn.ready=function(e){return F.then(e)[\"catch\"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,\"complete\"===E.readyState||\"loading\"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener(\"DOMContentLoaded\",B),C.addEventListener(\"load\",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if(\n\"object\"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,\"ms-\").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){\nvar n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(K,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=\"true\"===(i=n)||\"false\"!==i&&(\"null\"===i?null:i===+i+\"\"?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),\n1===o.nodeType&&!Y.get(o,\"hasDataAttrs\"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf(\"data-\")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks(\"once memory\").add(function(){\nY.remove(e,[t+\"queue\",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return\"string\"!=typeof t&&(n=t,t=\"fx\",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),\"fx\"===t&&\"inprogress\"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";while(a--)(n=Y.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,te=new RegExp(\"^(?:([+-])=|)(\"+ee+\")([a-z%]*)$\",\"i\"),ne=[\"Top\",\"Right\",\"Bottom\",\"Left\"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t\n){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&ie(e)&&\"none\"===S.css(e,\"display\")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,\"\")},u=s(),l=n&&n[3]||(S.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(S.cssNumber[t]||\"px\"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?(\"none\"===n&&(l[c]=Y.get(r,\"display\")||null,l[c]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,\"display\"),o.parentNode.removeChild(o),\"none\"===u&&(u=\"block\"),ue[s]=u)))):\"none\"!==n&&(l[c]=\"none\",Y.set(r,\"display\",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c\n].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"<textarea>x</textarea>\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"<option></option>\",y.option=!!ce.lastChild;var ge={thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;\nreturn n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],\"globalEval\",!t||Y.get(t[n],\"globalEval\"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,\"<select multiple='multiple'>\",\"</select>\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));f.textContent=\"\",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),\n\"script\"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||\"\")&&n.push(o)}return f}var be=/^([^.]*)(?:\\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==(\"focus\"===t)}function Ee(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n\n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return\"undefined\"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||\"\").match(P)||[\"\"]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,\nf.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||\"\").match(P)||[\"\"]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(\narguments.length),u=S.event.fix(e),l=(Y.get(this,\"events\")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!(\"click\"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(\"click\"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i\n]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Se(t,\"click\"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,\"input\")&&Y.get(t,\"click\")||A(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(\ne.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;\nthis.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t\n}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ne=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function je(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function De(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function qe(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,\nr=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&\"string\"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,\"script\"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,\"script\"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||\"\")&&!Y.access(u,\"globalEval\")&&S.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")},l):b(u.textContent.replace(Ne,\"\"),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,\"script\")),\nr.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,\"input\"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:\"input\"!==l&&\"textarea\"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,\"script\")).length&&ye(a,!f&&ve(e,\"script\")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){\n1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\n\"string\"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp(\"^(\"+ee+\")(?!px)[a-z%]+$\",\"i\"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join(\"|\"),\"i\");function We(e,t\n,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",l.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n=\"1%\"!==e.top,s=12===t(e.marginLeft),l.style.right=\"60%\",o=36===t(e.right),r=36===t(e.width),l.style.position=\"absolute\",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement(\"div\"),l=E.createElement(\"div\");l.style&&(\nl.style.backgroundClip=\"content-box\",l.cloneNode(!0).style.backgroundClip=\"\",y.clearCloneStyle=\"content-box\"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement(\"table\"),t=E.createElement(\"tr\"),n=E.createElement(\"div\"),e.style.cssText=\"position:absolute;left:-11111px;border-collapse:separate\",t.style.cssText=\"border:1px solid\",t.style.height=\"1px\",n.style.height=\"9px\",n.style.display=\"block\",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=[\"Webkit\",\"Moz\",\"ms\"],$e=E.createElement(\"div\").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[\n0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ge={letterSpacing:\"0\",fontWeight:\"400\"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Qe(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?(\"content\"===n&&(u-=S.css(e,\"padding\"+ne[a],!0,i)),\"margin\"!==n&&(u-=S.css(e,\"border\"+ne[a]+\"Width\",!0,i))):(u+=S.css(e,\"padding\"+ne[a],!0,i),\"padding\"!==n?u+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i):s+=S.css(e,\"border\"+ne[a]+\"Width\",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,r),o=i,a=We(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a=\"auto\"}return(\n!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===S.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===S.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];\"string\"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(\ne,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?\"\":\"px\")),y.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(l[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),\"normal\"===i&&t in Ge&&(i=Ge[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each([\"height\",\"width\"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&\"absolute\"===i.position,a=(o||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e[\"offset\"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,\"border\",!1,i)-.5)),s&&(r=te.exec(t))&&\"px\"!==(r[3]||\"px\")&&(\ne.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,\"marginLeft\"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),S.each({margin:\"\",padding:\"\",border:\"Width\"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r=\"string\"==typeof e?e.split(\" \"):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},\"margin\"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?\"\":\"px\")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(\nthis):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},\nS.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=ne[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),\noriginalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}\nS.Animation=S.extend(lt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=[\"*\"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,\"fxshow\");for(r in n.queue||(null==(a=S._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,\"display\")),\"none\"===(c=S.css(e,\"display\"))&&(l?c=l:(\nle([e],!0),l=e.style.display||l,c=S.css(e,\"display\"),le([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=l)&&\"none\"===S.css(e,\"float\")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?\"hidden\"in v&&(g=v.hidden):v=Y.access(e,\"fxshow\",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,\"fxshow\"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&\"object\"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),\nnull!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,\"finish\"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return\"string\"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||\"fx\",[]),this.each(function(){var e=!0,t=null!=i&&i+\"queueHooks\",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||\"fx\"),this.each(function(){var e,t=Y.get(this),n=t[a+\"queue\"\n],r=t[a+\"queueHooks\"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each([\"toggle\",\"show\",\"hide\"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||\"boolean\"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st(\"show\"),slideUp:st(\"hide\"),slideToggle:st(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},\nS.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||\"fx\",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement(\"input\"),nt=E.createElement(\"select\").appendChild(E.createElement(\"option\")),tt.type=\"checkbox\",y.checkOn=\"\"!==tt.value,y.optSelected=nt.selected,(tt=E.createElement(\"input\")).value=\"t\",tt.type=\"radio\",y.radioValue=\"t\"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return\"undefined\"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{\nset:function(e,t){if(!y.radioValue&&\"radio\"===t&&A(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(\" \")}function gt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function vt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o\n)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,\"tabindex\");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])r.indexOf(\n\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&\" \"+ht(i)+\" \"){a=0;while(o=e[a++])while(-1<r.indexOf(\" \"+o+\" \"))r=r.replace(\" \"+o+\" \",\" \");i!==(s=ht(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(i,t){var o=typeof i,a=\"string\"===o||Array.isArray(i);return\"boolean\"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&\"boolean\"!==o||((e=gt(this))&&Y.set(this,\"__className__\",e),this.setAttribute&&this.setAttribute(\"class\",e||!1===i?\"\":Y.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;\nt=\" \"+e+\" \";while(n=this[r++])if(1===n.nodeType&&-1<(\" \"+ht(gt(n))+\" \").indexOf(t))return!0;return!1}});var yt=/\\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t=\"\":\"number\"==typeof t?t+=\"\":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?\"\":e+\"\"})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&\"set\"in r&&void 0!==r.set(this,t,\"value\")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&\"get\"in r&&void 0!==(e=r.get(t,\"value\"))?e:\"string\"==typeof(e=t.value)?e.replace(yt,\"\"):null==e?\"\":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,\"value\");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode\n,\"optgroup\"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each([\"radio\",\"checkbox\"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),y.focusin=\"onfocusin\"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,\"type\")?e.type:e,h=v.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(\".\")&&(d=(h=d.split(\".\")).shift(),h.sort()),u=d.indexOf(\":\")<0&&\"on\"+d,(e=e[S.expando]?e:new S.Event(d,\"object\"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join(\".\"),\ne.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,\"events\")||Object.create(null))[e.type]&&Y.get(o,\"handle\"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(\nnew S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:\"focusin\",blur:\"focusout\"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\\?/;S.parseXML=function(e){var t,n;if(!e||\"string\"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,\"text/xml\")}catch(e){}return n=t&&t.getElementsByTagName(\"parsererror\")[0],t&&!n||S.error(\"Invalid XML: \"+(n?S.map(n.childNodes,function(e){return e.textContent}).join(\"\\n\"):e)),t};\nvar Ct=/\\[\\]$/,Et=/\\r?\\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+\"[\"+(\"object\"==typeof t&&null!=t?e:\"\")+\"]\",t,r,i)});else if(r||\"object\"!==w(e))i(n,e);else for(t in e)At(n+\"[\"+t+\"]\",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join(\"&\")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,\"elements\");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(\":disabled\")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();\nreturn null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,\"\\r\\n\")}}):{name:t.name,value:n.replace(Et,\"\\r\\n\")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\\/\\//,Ot={},Pt={},Rt=\"*/\".concat(\"*\"),Mt=E.createElement(\"a\");function It(o){return function(e,t){\"string\"!=typeof e&&(t=e,e=\"*\");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])\"+\"===n[0]?(n=n.slice(1)||\"*\",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return\"string\"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s[\"*\"]&&l(\"*\")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:\"GET\",\nisLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":Rt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks(\"once memory\"),w=v.statusCode||{},a={},s={},u=\"canceled\",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(\nt=qt.exec(p))n[t[1].toLowerCase()+\" \"]=(n[t[1].toLowerCase()+\" \"]||[]).concat(t[2])}t=n[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+\"\").replace(Ht,bt.protocol+\"//\"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||\"*\").toLowerCase().match(P)||[\"\"],null==v.crossDomain){r=E.createElement(\"a\");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+\"//\"+Mt.host!=r.protocol+\"//\"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&\"string\"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global\n)&&0==S.active++&&S.event.trigger(\"ajaxStart\"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,\"\"),v.hasContent?v.data&&v.processData&&0===(v.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(v.data=v.data.replace(Nt,\"+\")):(o=v.url.slice(f.length),v.data&&(v.processData||\"string\"==typeof v.data)&&(f+=(Tt.test(f)?\"&\":\"?\")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,\"$1\"),o=(Tt.test(f)?\"&\":\"?\")+\"_=\"+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader(\"If-Modified-Since\",S.lastModified[f]),S.etag[f]&&T.setRequestHeader(\"If-None-Match\",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader(\"Content-Type\",v.contentType),T.setRequestHeader(\"Accept\",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+(\"*\"!==v.dataTypes[0]?\", \"+Rt+\"; q=0.01\":\"\"):v.accepts[\"*\"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u=\"abort\",b.add(\nv.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger(\"ajaxSend\",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort(\"timeout\")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,\"No Transport\");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||\"\",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while(\"*\"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray(\"script\",v.dataTypes)&&S.inArray(\"json\",v.dataTypes)<0&&(v.converters[\"text script\"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();\nwhile(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=l[u+\" \"+o]||l[\"* \"+o]))for(i in l)if((s=i.split(\" \"))[1]===o&&(a=l[u+\" \"+s[0]]||l[\"* \"+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e[\"throws\"])t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader(\"Last-Modified\"))&&(S.lastModified[f]=u),(u=T.getResponseHeader(\"etag\"))&&(S.etag[f]=u)),204===e||\"HEAD\"===v.type?l=\"nocontent\":304===e?l=\"notmodified\":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l=\"error\",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+\"\",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?\"ajaxSuccess\":\"ajaxError\",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger(\"ajaxComplete\",[T,v]),--S.active||S.event.trigger(\"ajaxStop\")))\n}return T},getJSON:function(e,t,n){return S.get(e,t,n,\"json\")},getScript:function(e,t){return S.get(e,void 0,t,\"script\")}}),S.each([\"get\",\"post\"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),\nt=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&\"withCredentials\"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e[\"X-Requested-With\"]||(e[\"X-Requested-With\"]=\"XMLHttpRequest\"),e)r.setRequestHeader(n,e[n]);o=function(e){\nreturn function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,\"abort\"===e?r.abort():\"error\"===e?\"number\"!=typeof r.status?t(0,\"error\"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,\"text\"!==(r.responseType||\"text\")||\"string\"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o(\"error\"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o(\"abort\");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(\ne.type=\"GET\")}),S.ajaxTransport(\"script\",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S(\"<script>\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=zt.pop()||S.expando+\"_\"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Ut.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r]\n,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),0<a.length&&S.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?S(\"<div>\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(\nfunction(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\n\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+\"px\":t})}\n),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\n\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?\"\":(e+\"\").replace(Xt,\"\")},\"function\"==typeof define&&define.amd&&define(\"jquery\",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){\nreturn C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},\"undefined\"==typeof e&&(C.jQuery=C.$=S),S});\n/*! jQuery UI - v1.13.2 - 2022-08-01\n* http://jqueryui.com\n* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js\n* Copyright jQuery Foundation and other contributors; Licensed MIT */!function(t){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)}(function(y){\"use strict\";y.ui=y.ui||{};y.ui.version=\"1.13.2\";var n,i=0,h=Array.prototype.hasOwnProperty,a=Array.prototype.slice;y.cleanData=(n=y.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=y._data(i,\"events\"))&&e.remove&&y(i).triggerHandler(\"remove\");n(t)}),y.widget=function(t,i,e){var s,n,o,h={},a=t.split(\".\")[0],r=a+\"-\"+(t=t.split(\".\")[1]);return e||(e=i,i=y.Widget),Array.isArray(e)&&(e=y.extend.apply(null,[{}].concat(e))),y.expr.pseudos[r.toLowerCase()]=function(t){return!!y.data(t,r)},y[a]=y[a]||{},s=y[a][t],n=y[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},y.extend(n,s,{version:e.version,_proto:y.extend({},e),_childConstructors:[]}),(o=new i).options=y.widget.extend({},o.options),y.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}\nfunction o(t){return i.prototype[e].apply(this,t)}h[e]=\"function\"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=y.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},h,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(y.each(s._childConstructors,function(t,e){var i=e.prototype;y.widget(i.namespace+\".\"+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),y.widget.bridge(t,n),n},y.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n<o;n++)for(e in s[n])i=s[n][e],h.call(s[n],e)&&void 0!==i&&(y.isPlainObject(i)?t[e]=y.isPlainObject(t[e])?y.widget.extend({},t[e],i):y.widget.extend({},i):t[e]=i);return t},y.widget.bridge=function(o,e){var h=e.prototype.widgetFullName||o;y.fn[o]=function(i){var t=\"string\"==typeof i,s=a.call(arguments,1),n=this;return t?this.length||\"instance\"!==i?this.each(function(){var t,\ne=y.data(this,h);return\"instance\"===i?(n=e,!1):e?\"function\"!=typeof e[i]||\"_\"===i.charAt(0)?y.error(\"no such method '\"+i+\"' for \"+o+\" widget instance\"):(t=e[i].apply(e,s))!==e&&void 0!==t?(n=t&&t.jquery?n.pushStack(t.get()):t,!1):void 0:y.error(\"cannot call methods on \"+o+\" prior to initialization; attempted to call method '\"+i+\"'\")}):n=void 0:(s.length&&(i=y.widget.extend.apply(null,[i].concat(s))),this.each(function(){var t=y.data(this,h);t?(t.option(i||{}),t._init&&t._init()):y.data(this,h,new e(i,this))})),n}},y.Widget=function(){},y.Widget._childConstructors=[],y.Widget.prototype={widgetName:\"widget\",widgetEventPrefix:\"\",defaultElement:\"<div>\",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace=\".\"+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t\n){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger(\"create\",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if(\"string\"==typeof t)if(o={},t=(i=t.split(\".\")).shift(),i.length){for(s=o[t\n]=y.widget.extend({},this.options[t]),n=0;n<i.length-1;n++)s[i[n]]=s[i[n]]||{},s=s[i[n]];if(t=i.pop(),1===arguments.length)return void 0===s[t]?null:s[t];s[t]=e}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];o[t]=e}return this._setOptions(o),this},_setOptions:function(t){for(var e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return\"classes\"===t&&this._setOptionClasses(e),this.options[t]=e,\"disabled\"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(t){var e,i,s;for(e in t)s=this.classesElementLookup[e],t[e]!==this.options.classes[e]&&s&&s.length&&(i=y(s.get()),this._removeClass(s,e),i.addClass(this._classes({element:i,keys:e,classes:t,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+\"-disabled\",null,!!t),t&&(this._removeClass(this.hoverable,null,\"ui-state-hover\"),this._removeClass(this.focusable,null,\"ui-state-focus\"))},enable:function(){return this._setOptions({disabled:!1})},\ndisable:function(){return this._setOptions({disabled:!0})},_classes:function(n){var o=[],h=this;function t(t,e){for(var i,s=0;s<t.length;s++)i=h.classesElementLookup[t[s]]||y(),i=n.add?(function(){var i=[];n.element.each(function(t,e){y.map(h.classesElementLookup,function(t){return t}).some(function(t){return t.is(e)})||i.push(e)}),h._on(y(i),{remove:\"_untrackClassesElement\"})}(),y(y.uniqueSort(i.get().concat(n.element.get())))):y(i.not(n.element).get()),h.classesElementLookup[t[s]]=i,o.push(t[s]),e&&n.classes[t[s]]&&o.push(n.classes[t[s]])}return(n=y.extend({element:this.element,classes:this.options.classes||{}},n)).keys&&t(n.keys.match(/\\S+/g)||[],!0),n.extra&&t(n.extra.match(/\\S+/g)||[]),o.join(\" \")},_untrackClassesElement:function(i){var s=this;y.each(s.classesElementLookup,function(t,e){-1!==y.inArray(i.target,e)&&(s.classesElementLookup[t]=y(e.not(i.target).get()))}),this._off(y(i.target))},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){\nreturn this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){var n=\"string\"==typeof t||null===t,i={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s=\"boolean\"==typeof s?s:i};return i.element.toggleClass(this._classes(i),s),this},_on:function(n,o,t){var h,a=this;\"boolean\"!=typeof n&&(t=o,o=n,n=!1),t?(o=h=y(o),this.bindings=this.bindings.add(o)):(t=o,o=this.element,h=this.widget()),y.each(t,function(t,e){function i(){if(n||!0!==a.options.disabled&&!y(this).hasClass(\"ui-state-disabled\"))return(\"string\"==typeof e?a[e]:e).apply(a,arguments)}\"string\"!=typeof e&&(i.guid=e.guid=e.guid||i.guid||y.guid++);var s=t.match(/^([\\w:-]*)\\s*(.*)$/),t=s[1]+a.eventNamespace,s=s[2];s?h.on(t,s,i):o.on(t,i)})},_off:function(t,e){e=(e||\"\").split(\" \").join(this.eventNamespace+\" \")+this.eventNamespace,t.off(e),this.bindings=y(this.bindings.not(t).get()),this.focusable=y(this.focusable.not(t).get()),this.hoverable=y(this.hoverable.not(t).get())},_delay:function(t,e){var i=this;return setTimeout(function(){return(\n\"string\"==typeof t?i[t]:t).apply(i,arguments)},e||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(y(t.currentTarget),null,\"ui-state-hover\")},mouseleave:function(t){this._removeClass(y(t.currentTarget),null,\"ui-state-hover\")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(y(t.currentTarget),null,\"ui-state-focus\")},focusout:function(t){this._removeClass(y(t.currentTarget),null,\"ui-state-focus\")}})},_trigger:function(t,e,i){var s,n,o=this.options[t];if(i=i||{},(e=y.Event(e)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),e.target=this.element[0],n=e.originalEvent)for(s in n)s in e||(e[s]=n[s]);return this.element.trigger(e,i),!(\"function\"==typeof o&&!1===o.apply(this.element[0],[e].concat(i))||e.isDefaultPrevented())}},y.each({show:\"fadeIn\",hide:\"fadeOut\"},function(o,h){y.Widget.prototype[\"_\"+o]=function(e,t,i){var s,n=(t=\"string\"==typeof t?{effect:t}:t\n)?!0!==t&&\"number\"!=typeof t&&t.effect||h:o;\"number\"==typeof(t=t||{})?t={duration:t}:!0===t&&(t={}),s=!y.isEmptyObject(t),t.complete=i,t.delay&&e.delay(t.delay),s&&y.effects&&y.effects.effect[n]?e[o](t):n!==o&&e[n]?e[n](t.duration,t.easing,i):e.queue(function(t){y(this)[o](),i&&i.call(e[0]),t()})}});var s,x,D,o,r,l,u,p,W;y.widget;function E(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function H(t,e){return parseInt(y.css(t,e),10)||0}function S(t){return null!=t&&t===t.window}x=Math.max,D=Math.abs,o=/left|center|right/,r=/top|center|bottom/,l=/[\\+\\-]\\d+(\\.[\\d]+)?%?/,u=/^\\w+/,p=/%$/,W=y.fn.position,y.position={scrollbarWidth:function(){if(void 0!==s)return s;var t,e=y(\"<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>\"),i=e.children()[0];return y(\"body\").append(e),t=i.offsetWidth,e.css(\"overflow\",\"scroll\"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},\ngetScrollInfo:function(t){var e=t.isWindow||t.isDocument?\"\":t.element.css(\"overflow-x\"),i=t.isWindow||t.isDocument?\"\":t.element.css(\"overflow-y\"),e=\"scroll\"===e||\"auto\"===e&&t.width<t.element[0].scrollWidth;return{width:\"scroll\"===i||\"auto\"===i&&t.height<t.element[0].scrollHeight?y.position.scrollbarWidth():0,height:e?y.position.scrollbarWidth():0}},getWithinInfo:function(t){var e=y(t||window),i=S(e[0]),s=!!e[0]&&9===e[0].nodeType;return{element:e,isWindow:i,isDocument:s,offset:!i&&!s?y(t).offset():{left:0,top:0},scrollLeft:e.scrollLeft(),scrollTop:e.scrollTop(),width:e.outerWidth(),height:e.outerHeight()}}},y.fn.position=function(p){if(!p||!p.of)return W.apply(this,arguments);var d,c,f,g,m,t,_=\"string\"==typeof(p=y.extend({},p)).of?y(document).find(p.of):y(p.of),w=y.position.getWithinInfo(p.within),v=y.position.getScrollInfo(w),b=(p.collision||\"flip\").split(\" \"),z={},e=9===(t=(e=_)[0]).nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:S(t)?{width:e.width(),height:e.height(),offset:{\ntop:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()};return _[0].preventDefault&&(p.at=\"left top\"),c=e.width,f=e.height,m=y.extend({},g=e.offset),y.each([\"my\",\"at\"],function(){var t,e,i=(p[this]||\"\").split(\" \");(i=1===i.length?o.test(i[0])?i.concat([\"center\"]):r.test(i[0])?[\"center\"].concat(i):[\"center\",\"center\"]:i)[0]=o.test(i[0])?i[0]:\"center\",i[1]=r.test(i[1])?i[1]:\"center\",t=l.exec(i[0]),e=l.exec(i[1]),z[this]=[t?t[0]:0,e?e[0]:0],p[this]=[u.exec(i[0])[0],u.exec(i[1])[0]]}),1===b.length&&(b[1]=b[0]),\"right\"===p.at[0]?m.left+=c:\"center\"===p.at[0]&&(m.left+=c/2),\"bottom\"===p.at[1]?m.top+=f:\"center\"===p.at[1]&&(m.top+=f/2),d=E(z.at,c,f),m.left+=d[0],m.top+=d[1],this.each(function(){var i,t,h=y(this),a=h.outerWidth(),r=h.outerHeight(),e=H(this,\"marginLeft\"),s=H(this,\"marginTop\"),n=a+e+H(this,\"marginRight\")+v.width,o=r+s+H(this,\"marginBottom\")+v.height,l=y.extend({},m),u=E(z.my,h.outerWidth()\n,h.outerHeight());\"right\"===p.my[0]?l.left-=a:\"center\"===p.my[0]&&(l.left-=a/2),\"bottom\"===p.my[1]?l.top-=r:\"center\"===p.my[1]&&(l.top-=r/2),l.left+=u[0],l.top+=u[1],i={marginLeft:e,marginTop:s},y.each([\"left\",\"top\"],function(t,e){y.ui.position[b[t]]&&y.ui.position[b[t]][e](l,{targetWidth:c,targetHeight:f,elemWidth:a,elemHeight:r,collisionPosition:i,collisionWidth:n,collisionHeight:o,offset:[d[0]+u[0],d[1]+u[1]],my:p.my,at:p.at,within:w,elem:h})}),p.using&&(t=function(t){var e=g.left-l.left,i=e+c-a,s=g.top-l.top,n=s+f-r,o={target:{element:_,left:g.left,top:g.top,width:c,height:f},element:{element:h,left:l.left,top:l.top,width:a,height:r},horizontal:i<0?\"left\":0<e?\"right\":\"center\",vertical:n<0?\"top\":0<s?\"bottom\":\"middle\"};c<a&&D(e+i)<c&&(o.horizontal=\"center\"),f<r&&D(s+n)<f&&(o.vertical=\"middle\"),x(D(e),D(i))>x(D(s),D(n))?o.important=\"horizontal\":o.important=\"vertical\",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,\ns=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0<h&&a<=0?(i=t.left+h+e.collisionWidth-n-s,t.left+=h-i):t.left=!(0<a&&h<=0)&&a<h?s+n-e.collisionWidth:s:0<h?t.left+=h:0<a?t.left-=a:t.left=x(t.left-o,t.left)},top:function(t,e){var i=e.within,s=i.isWindow?i.scrollTop:i.offset.top,n=e.within.height,o=t.top-e.collisionPosition.marginTop,h=s-o,a=o+e.collisionHeight-n-s;e.collisionHeight>n?0<h&&a<=0?(i=t.top+h+e.collisionHeight-n-s,t.top+=h-i):t.top=!(0<a&&h<=0)&&a<h?s+n-e.collisionHeight:s:0<h?t.top+=h:0<a?t.top-=a:t.top=x(t.top-o,t.top)}},flip:{left:function(t,e){var i=e.within,s=i.offset.left+i.scrollLeft,n=i.width,o=i.isWindow?i.scrollLeft:i.offset.left,h=t.left-e.collisionPosition.marginLeft,a=h-o,r=h+e.collisionWidth-n-o,l=\"left\"===e.my[0]?-e.elemWidth:\"right\"===e.my[0]?e.elemWidth:0,i=\"left\"===e.at[0]?e.targetWidth:\"right\"===e.at[0]?-e.targetWidth:0,h=-2*e.offset[0];a<0?((s=t.left+l+i+h+e.collisionWidth-n-s)<0||s<D(a)\n)&&(t.left+=l+i+h):0<r&&(0<(o=t.left-e.collisionPosition.marginLeft+l+i+h-o)||D(o)<r)&&(t.left+=l+i+h)},top:function(t,e){var i=e.within,s=i.offset.top+i.scrollTop,n=i.height,o=i.isWindow?i.scrollTop:i.offset.top,h=t.top-e.collisionPosition.marginTop,a=h-o,r=h+e.collisionHeight-n-o,l=\"top\"===e.my[1]?-e.elemHeight:\"bottom\"===e.my[1]?e.elemHeight:0,i=\"top\"===e.at[1]?e.targetHeight:\"bottom\"===e.at[1]?-e.targetHeight:0,h=-2*e.offset[1];a<0?((s=t.top+l+i+h+e.collisionHeight-n-s)<0||s<D(a))&&(t.top+=l+i+h):0<r&&(0<(o=t.top-e.collisionPosition.marginTop+l+i+h-o)||D(o)<r)&&(t.top+=l+i+h)}},flipfit:{left:function(){y.ui.position.flip.left.apply(this,arguments),y.ui.position.fit.left.apply(this,arguments)},top:function(){y.ui.position.flip.top.apply(this,arguments),y.ui.position.fit.top.apply(this,arguments)}}};var t;y.ui.position,y.extend(y.expr.pseudos,{data:y.expr.createPseudo?y.expr.createPseudo(function(e){return function(t){return!!y.data(t,e)}}):function(t,e,i){return!!y.data(t,i[3])}}),y.fn.extend({\ndisableSelection:(t=\"onselectstart\"in document.createElement(\"div\")?\"selectstart\":\"mousedown\",function(){return this.on(t+\".ui-disableSelection\",function(t){t.preventDefault()})}),enableSelection:function(){return this.off(\".ui-disableSelection\")}});y.ui.focusable=function(t,e){var i,s,n,o,h=t.nodeName.toLowerCase();return\"area\"===h?(s=(i=t.parentNode).name,!(!t.href||!s||\"map\"!==i.nodeName.toLowerCase())&&(0<(s=y(\"img[usemap='#\"+s+\"']\")).length&&s.is(\":visible\"))):(/^(input|select|textarea|button|object)$/.test(h)?(n=!t.disabled)&&(o=y(t).closest(\"fieldset\")[0])&&(n=!o.disabled):n=\"a\"===h&&t.href||e,n&&y(t).is(\":visible\")&&function(t){var e=t.css(\"visibility\");for(;\"inherit\"===e;)t=t.parent(),e=t.css(\"visibility\");return\"visible\"===e}(y(t)))},y.extend(y.expr.pseudos,{focusable:function(t){return y.ui.focusable(t,null!=y.attr(t,\"tabindex\"))}});var e,d;y.ui.focusable,y.fn._form=function(){return\"string\"==typeof this[0].form?this.closest(\"form\"):y(this[0].form)},y.ui.formResetMixin={_formResetHandler:function(\n){var e=y(this);setTimeout(function(){var t=e.data(\"ui-form-reset-instances\");y.each(t,function(){this.refresh()})})},_bindFormResetHandler:function(){var t;this.form=this.element._form(),this.form.length&&((t=this.form.data(\"ui-form-reset-instances\")||[]).length||this.form.on(\"reset.ui-form-reset\",this._formResetHandler),t.push(this),this.form.data(\"ui-form-reset-instances\",t))},_unbindFormResetHandler:function(){var t;this.form.length&&((t=this.form.data(\"ui-form-reset-instances\")).splice(y.inArray(this,t),1),t.length?this.form.data(\"ui-form-reset-instances\",t):this.form.removeData(\"ui-form-reset-instances\").off(\"reset.ui-form-reset\"))}};y.expr.pseudos||(y.expr.pseudos=y.expr[\":\"]),y.uniqueSort||(y.uniqueSort=y.unique),y.escapeSelector||(e=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g,d=function(t,e){return e?\"\\0\"===t?\"�\":t.slice(0,-1)+\"\\\\\"+t.charCodeAt(t.length-1).toString(16)+\" \":\"\\\\\"+t},y.escapeSelector=function(t){return(t+\"\").replace(e,d)}),y.fn.even&&y.fn.odd||y.fn.extend({even:function(){\nreturn this.filter(function(t){return t%2==0})},odd:function(){return this.filter(function(t){return t%2==1})}});y.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},y.fn.labels=function(){var t,e,i;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents(\"label\"),(t=this.attr(\"id\"))&&(i=(i=this.eq(0).parents().last()).add((i.length?i:this).siblings()),t=\"label[for='\"+y.escapeSelector(t)+\"']\",e=e.add(i.find(t).addBack(t))),this.pushStack(e)):this.pushStack([])},y.fn.scrollParent=function(t){var e=this.css(\"position\"),i=\"absolute\"===e,s=t?/(auto|scroll|hidden)/:/(auto|scroll)/,t=this.parents().filter(function(){var t=y(this);return(!i||\"static\"!==t.css(\"position\"))&&s.test(t.css(\"overflow\")+t.css(\"overflow-y\")+t.css(\"overflow-x\"))}).eq(0);return\"fixed\"!==e&&t.length?t:y(this[0].ownerDocument||document)},y.extend(y.expr.pseudos,{tabbable:function(t){\nvar e=y.attr(t,\"tabindex\"),i=null!=e;return(!i||0<=e)&&y.ui.focusable(t,i)}}),y.fn.extend({uniqueId:(c=0,function(){return this.each(function(){this.id||(this.id=\"ui-id-\"+ ++c)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\\d+$/.test(this.id)&&y(this).removeAttr(\"id\")})}}),y.ui.ie=!!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase());var c,f=!1;y(document).on(\"mouseup\",function(){f=!1});y.widget(\"ui.mouse\",{version:\"1.13.2\",options:{cancel:\"input, textarea, button, select, option\",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on(\"mousedown.\"+this.widgetName,function(t){return e._mouseDown(t)}).on(\"click.\"+this.widgetName,function(t){if(!0===y.data(t.target,e.widgetName+\".preventClickEvent\"))return y.removeData(t.target,e.widgetName+\".preventClickEvent\"),t.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off(\".\"+this.widgetName),this._mouseMoveDelegate&&this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\n\"mouseup.\"+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!f){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var e=this,i=1===t.which,s=!(\"string\"!=typeof this.options.cancel||!t.target.nodeName)&&y(t.target).closest(this.options.cancel).length;return i&&!s&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===y.data(t.target,this.widgetName+\".preventClickEvent\")&&y.removeData(t.target,this.widgetName+\".preventClickEvent\"),this._mouseMoveDelegate=function(t){return e._mouseMove(t)},this._mouseUpDelegate=function(t){return e._mouseUp(t)},this.document.on(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).on(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),t.preventDefault(),f=!0)):!0}},\n_mouseMove:function(t){if(this._mouseMoved){if(y.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off(\"mousemove.\"+this.widgetName,this._mouseMoveDelegate).off(\"mouseup.\"+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&y.data(t.target,this.widgetName+\".preventClickEvent\",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),\ndelete this._mouseDelayTimer),this.ignoreMissingWhich=!1,f=!1,t.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n<o.length;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}};y.widget(\"ui.resizable\",y.ui.mouse,{version:\"1.13.2\",widgetEventPrefix:\"resize\",options:{alsoResize:!1,animate:!1,animateDuration:\"slow\",animateEasing:\"swing\",aspectRatio:!1,autoHide:!1,classes:{\"ui-resizable-se\":\"ui-icon ui-icon-gripsmall-diagonal-se\"},containment:!1,ghost:!1,grid:!1,\nhandles:\"e,s,se\",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(t,e){if(\"hidden\"===y(t).css(\"overflow\"))return!1;var i=e&&\"left\"===e?\"scrollLeft\":\"scrollTop\",e=!1;if(0<t[i])return!0;try{t[i]=1,e=0<t[i],t[i]=0}catch(t){}return e},_create:function(){var t,e=this.options,i=this;this._addClass(\"ui-resizable\"),y.extend(this,{_aspectRatio:!!e.aspectRatio,aspectRatio:e.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:e.helper||e.ghost||e.animate?e.helper||\"ui-resizable-helper\":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(y(\"<div class='ui-wrapper'></div>\").css({overflow:\"hidden\",position:this.element.css(\"position\"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css(\"top\"),left:this.element.css(\"left\")})),\nthis.element=this.element.parent().data(\"ui-resizable\",this.element.resizable(\"instance\")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css(\"marginTop\"),marginRight:this.originalElement.css(\"marginRight\"),marginBottom:this.originalElement.css(\"marginBottom\"),marginLeft:this.originalElement.css(\"marginLeft\")},this.element.css(t),this.originalElement.css(\"margin\",0),this.originalResizeStyle=this.originalElement.css(\"resize\"),this.originalElement.css(\"resize\",\"none\"),this._proportionallyResizeElements.push(this.originalElement.css({position:\"static\",zoom:1,display:\"block\"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on(\"mouseenter\",function(){e.disabled||(i._removeClass(\"ui-resizable-autohide\"),i._handles.show())}).on(\"mouseleave\",function(){e.disabled||i.resizing||(i._addClass(\"ui-resizable-autohide\"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t\n).removeData(\"resizable\").removeData(\"ui-resizable\").off(\".resizable\")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css(\"position\"),width:e.outerWidth(),height:e.outerHeight(),top:e.css(\"top\"),left:e.css(\"left\")}).insertAfter(e),e.remove()),this.originalElement.css(\"resize\",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case\"handles\":this._removeHandles(),this._setupHandles();break;case\"aspectRatio\":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(\".ui-resizable-handle\",this.element).length?{n:\".ui-resizable-n\",e:\".ui-resizable-e\",s:\".ui-resizable-s\",w:\".ui-resizable-w\",se:\".ui-resizable-se\",sw:\".ui-resizable-sw\",ne:\".ui-resizable-ne\",nw:\".ui-resizable-nw\"}:\"e,s,se\"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for(\"all\"===this.handles&&(this.handles=\"n,e,s,w,se,sw,ne,nw\"),i=this.handles.split(\n\",\"),this.handles={},e=0;e<i.length;e++)s=\"ui-resizable-\"+(t=String.prototype.trim.call(i[e])),n=y(\"<div>\"),this._addClass(n,\"ui-resizable-handle \"+s),n.css({zIndex:o.zIndex}),this.handles[t]=\".ui-resizable-\"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=[\"padding\",/ne|nw|n/.test(e)?\"Top\":/se|sw|s/.test(e)?\"Bottom\":/^e$/.test(e)?\"Right\":\"Left\"].join(\"\"),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(\nthis.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(\".ui-resizable-handle\")),this._handles.disableSelection(),this._handles.on(\"mouseover\",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:\"se\")}),o.autoHide&&(this._handles.hide(),this._addClass(\"ui-resizable-autohide\"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css(\"left\")),i=this._num(this.helper.css(\"top\")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{\nwidth:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=\"number\"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(\".ui-resizable-\"+this.axis).css(\"cursor\"),y(\"body\").css(\"cursor\",\"auto\"===s?this.axis+\"-resize\":s),this._addClass(\"ui-resizable-resizing\"),this._propagate(\"start\",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate(\"resize\",t),e=this._applyChanges(),\n!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger(\"resize\",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],\"left\")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css(\"left\"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css(\"top\"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y(\"body\").css(\"cursor\",\"auto\"),this._removeClass(\"ui-resizable-resizing\"),this._propagate(\"stop\",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){\nthis.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+\"px\"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+\"px\"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+\"px\"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+\"px\"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),s<n.maxWidth&&(n.maxWidth=s),t<n.maxHeight&&(n.maxHeight=t)\n),this._vBoundaries=n},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),\"sw\"===s&&(t.left=e.left+(i.width-t.width),t.top=null),\"nw\"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height\n,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css(\"borderTopWidth\"),t.css(\"borderRightWidth\"),t.css(\"borderBottomWidth\"),t.css(\"borderLeftWidth\")],n=[t.css(\"paddingTop\"),t.css(\"paddingRight\"),t.css(\"paddingBottom\"),t.css(\"paddingLeft\")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e<this._proportionallyResizeElements.length;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({\nheight:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,e=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||y(\"<div></div>\").css({overflow:\"hidden\"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:\"absolute\",left:this.elementOffset.left+\"px\",top:this.elementOffset.top+\"px\",zIndex:++e.zIndex}),this.helper.appendTo(\"body\").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,\ni){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),\"resize\"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add(\"resizable\",\"animate\",{stop:function(e){var i=y(this).resizable(\"instance\"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],\"left\")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css(\"left\"))+(i.position.left-i.originalPosition.left\n)||null,o=parseFloat(i.element.css(\"top\"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css(\"width\")),height:parseFloat(i.element.css(\"height\")),top:parseFloat(i.element.css(\"top\")),left:parseFloat(i.element.css(\"left\"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate(\"resize\",e)}})}}),y.ui.plugin.add(\"resizable\",\"containment\",{start:function(){var i,s,n=y(this).resizable(\"instance\"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y([\"Top\",\"Right\",\"Left\",\"Bottom\"]).each(function(t,e\n){s[t]=n._num(i.css(\"padding\"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,\"left\")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable(\"instance\"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css(\"position\"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),\ni=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css(\"position\")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable(\"instance\"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth(\n)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css(\"position\"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css(\"position\"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add(\"resizable\",\"alsoResize\",{start:function(){var t=y(this).resizable(\"instance\").options;y(t.alsoResize).each(function(){var t=y(this);t.data(\"ui-resizable-alsoresize\",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css(\"left\")),top:parseFloat(t.css(\"top\"))})})},resize:function(t,i){var e=y(this).resizable(\"instance\"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data(\"ui-resizable-alsoresize\"),n={},e=t.parents(i.originalElement[0]).length?[\"width\",\"height\"]:[\"width\",\"height\",\"top\",\"left\"];y.each(e,\nfunction(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData(\"ui-resizable-alsoresize\")}}),y.ui.plugin.add(\"resizable\",\"ghost\",{start:function(){var t=y(this).resizable(\"instance\"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:\"block\",position:\"relative\",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,\"ui-resizable-ghost\"),!1!==y.uiBackCompat&&\"string\"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable(\"instance\");t.ghost&&t.ghost.css({position:\"relative\",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable(\"instance\");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add(\"resizable\",\"grid\",{resize:function(){var t,e=y(this).resizable(\"instance\"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a=\"number\"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0\n]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidth<d,g=i.maxHeight&&i.maxHeight<c,m=i.minWidth&&i.minWidth>d,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0<c-l?(e.size.height=c,e.position.top=o.top-p):(c=l-t.height,e.size.height=c,e.position.top=o.top+n.height-c),0<d-r?(e.size.width=d,e.position.left=o.left-u):(d=r-t.width,e.size.width=d,e.position.left=o.left+n.width-d))}});y.ui.resizable});\n/**\n * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler\n * Licensed under MIT\n * @author Ariel Flesler\n * @version 2.1.2\n */(function(f){\"use strict\";\"function\"===typeof define&&define.amd?define([\"jquery\"],f):\"undefined\"!==typeof module&&module.exports?module.exports=f(require(\"jquery\")):f(jQuery)})(function($){\"use strict\";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),[\"iframe\",\"#document\",\"html\",\"body\"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:\"xy\",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){\"object\"===typeof d&&(b=d,d=0);\"function\"===typeof b&&(b={onAfter:b});\"max\"===a&&(a=9e9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case\"number\":case\"string\":if(\n/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(e)){e=h(e);break}e=l?$(e):$(e,q);case\"object\":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(\"\"),function(a,c){var d=\"x\"===c?\"Left\":\"Top\",m=d.toLowerCase(),g=\"scroll\"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css(\"margin\"+d),10)||0,f[g]-=parseInt(e.css(\"border\"+d+\"Width\"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e[\"x\"===c?\"width\":\"height\"]()*b.over[m])):(d=e[m],f[g]=d.slice&&\"%\"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b=\"x\"===d?\"Width\":\"Height\",h=\"scroll\"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b=\"client\"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};\n$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()},set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});\n/*!\n PowerTip v1.3.1 (2018-04-15)\n https://stevenbenner.github.io/jquery-powertip/\n Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).\n Released under MIT license.\n https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt\n*/\n(function(root,factory){if(typeof define===\"function\"&&define.amd){define([\"jquery\"],factory)}else if(typeof module===\"object\"&&module.exports){module.exports=factory(require(\"jquery\"))}else{factory(root.jQuery)}})(this,function($){var $document=$(document),$window=$(window),$body=$(\"body\");var DATA_DISPLAYCONTROLLER=\"displayController\",DATA_HASACTIVEHOVER=\"hasActiveHover\",DATA_FORCEDOPEN=\"forcedOpen\",DATA_HASMOUSEMOVE=\"hasMouseMove\",DATA_MOUSEONTOTIP=\"mouseOnToPopup\",DATA_ORIGINALTITLE=\"originalTitle\",DATA_POWERTIP=\"powertip\",DATA_POWERTIPJQ=\"powertipjq\",DATA_POWERTIPTARGET=\"powertiptarget\",EVENT_NAMESPACE=\".powertip\",RAD2DEG=180/Math.PI,MOUSE_EVENTS=[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mousemove\",\"mouseover\",\"mouseout\",\"mouseenter\",\"mouseleave\",\"contextmenu\"];var session={tooltips:null,isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,closeDelayTimeout:null,mouseTrackingActive:false,\ndelayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var Collision={none:0,top:1,bottom:2,left:4,right:8};$.fn.powerTip=function(opts,arg){var targetElements=this,options,tipController;if(!targetElements.length){return targetElements}if($.type(opts)===\"string\"&&$.powerTip[opts]){return $.powerTip[opts].call(targetElements,targetElements,arg)}options=$.extend({},$.fn.powerTip.defaults,opts);tipController=new TooltipController(options);initTracking();targetElements.each(function elementSetup(){var $this=$(this),dataPowertip=$this.data(DATA_POWERTIP),dataElem=$this.data(DATA_POWERTIPJQ),dataTarget=$this.data(DATA_POWERTIPTARGET),title=$this.attr(\"title\");if(!dataPowertip&&!dataTarget&&!dataElem&&title){$this.data(DATA_POWERTIP,title);$this.data(DATA_ORIGINALTITLE,title);$this.removeAttr(\"title\")}$this.data(DATA_DISPLAYCONTROLLER,new DisplayController($this,options,tipController))});if(!options.manual){$.each(options.openEvents,function(idx,evt){if($.inArray(evt,options.closeEvents)>-1){\ntargetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on(\"keydown\"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:\"powerTip\",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:\"n\",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:[\"mouseenter\",\"focus\"],closeEvents:[\"mouseleave\",\"blur\"]};$.fn.powerTip.smartPlacementLists={n:[\"n\",\"ne\",\"nw\",\"s\"],e:[\"e\",\"ne\",\"se\",\"w\",\"nw\",\"sw\",\"n\",\"s\",\"e\"],s:[\"s\",\"se\",\"sw\",\"n\"],w:[\"w\",\"nw\",\"sw\",\"e\",\"ne\",\"se\",\n\"n\",\"s\",\"w\"],nw:[\"nw\",\"w\",\"sw\",\"n\",\"s\",\"se\",\"nw\"],ne:[\"ne\",\"e\",\"se\",\"n\",\"s\",\"sw\",\"ne\"],sw:[\"sw\",\"w\",\"nw\",\"s\",\"n\",\"ne\",\"sw\"],se:[\"se\",\"e\",\"ne\",\"s\",\"n\",\"nw\",\"se\"],\"nw-alt\":[\"nw-alt\",\"n\",\"ne-alt\",\"sw-alt\",\"s\",\"se-alt\",\"w\",\"e\"],\"ne-alt\":[\"ne-alt\",\"n\",\"nw-alt\",\"se-alt\",\"s\",\"sw-alt\",\"e\",\"w\"],\"sw-alt\":[\"sw-alt\",\"s\",\"se-alt\",\"nw-alt\",\"n\",\"ne-alt\",\"w\",\"e\"],\"se-alt\":[\"se-alt\",\"s\",\"sw-alt\",\"ne-alt\",\"n\",\"nw-alt\",\"e\",\"w\"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(\nsession.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top=\"auto\";me.left=\"auto\";me.right=\"auto\";me.bottom=\"auto\";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}\ncloseAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference<options.intentSensitivity){cancelClose();closeAnyDelayed();tipController.showTip(element)}else{session.previousX=session.currentX;session.previousY=session.currentY;\nopenTooltip()}}function cancelTimer(stopClose){hoverTimer=clearTimeout(hoverTimer);if(session.closeDelayTimeout&&myCloseDelay===session.closeDelayTimeout||stopClose){cancelClose()}}function cancelClose(){session.closeDelayTimeout=clearTimeout(session.closeDelayTimeout);session.delayInProgress=false}function closeAnyDelayed(){if(session.delayInProgress&&session.activeHover&&!session.activeHover.is(element)){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide(true)}}function repositionTooltip(){tipController.resetPosition(element)}this.show=openTooltip;this.hide=closeTooltip;this.cancel=cancelTimer;this.resetPosition=repositionTooltip}function PlacementCalculator(){function computePlacementCoords(element,placement,tipWidth,tipHeight,offset){var placementBase=placement.split(\"-\")[0],coords=new CSSCoordinates,position;if(isSvgElement(element)){position=getSvgPlacement(element,placementBase)}else{position=getHtmlPlacement(element,placementBase)}switch(placement){case\"n\":coords.set(\"left\",position.left-tipWidth/2\n);coords.set(\"bottom\",session.windowHeight-position.top+offset);break;case\"e\":coords.set(\"left\",position.left+offset);coords.set(\"top\",position.top-tipHeight/2);break;case\"s\":coords.set(\"left\",position.left-tipWidth/2);coords.set(\"top\",position.top+offset);break;case\"w\":coords.set(\"top\",position.top-tipHeight/2);coords.set(\"right\",session.windowWidth-position.left+offset);break;case\"nw\":coords.set(\"bottom\",session.windowHeight-position.top+offset);coords.set(\"right\",session.windowWidth-position.left-20);break;case\"nw-alt\":coords.set(\"left\",position.left);coords.set(\"bottom\",session.windowHeight-position.top+offset);break;case\"ne\":coords.set(\"left\",position.left-20);coords.set(\"bottom\",session.windowHeight-position.top+offset);break;case\"ne-alt\":coords.set(\"bottom\",session.windowHeight-position.top+offset);coords.set(\"right\",session.windowWidth-position.left);break;case\"sw\":coords.set(\"top\",position.top+offset);coords.set(\"right\",session.windowWidth-position.left-20);break;case\"sw-alt\":coords.set(\"left\",\nposition.left);coords.set(\"top\",position.top+offset);break;case\"se\":coords.set(\"left\",position.left-20);coords.set(\"top\",position.top+offset);break;case\"se-alt\":coords.set(\"top\",position.top+offset);coords.set(\"right\",session.windowWidth-position.left);break}return coords}function getHtmlPlacement(element,placement){var objectOffset=element.offset(),objectWidth=element.outerWidth(),objectHeight=element.outerHeight(),left,top;switch(placement){case\"n\":left=objectOffset.left+objectWidth/2;top=objectOffset.top;break;case\"e\":left=objectOffset.left+objectWidth;top=objectOffset.top+objectHeight/2;break;case\"s\":left=objectOffset.left+objectWidth/2;top=objectOffset.top+objectHeight;break;case\"w\":left=objectOffset.left;top=objectOffset.top+objectHeight/2;break;case\"nw\":left=objectOffset.left;top=objectOffset.top;break;case\"ne\":left=objectOffset.left+objectWidth;top=objectOffset.top;break;case\"sw\":left=objectOffset.left;top=objectOffset.top+objectHeight;break;case\"se\":left=objectOffset.left+objectWidth;\ntop=objectOffset.top+objectHeight;break}return{top:top,left:left}}function getSvgPlacement(element,placement){var svgElement=element.closest(\"svg\")[0],domElement=element[0],point=svgElement.createSVGPoint(),boundingBox=domElement.getBBox(),matrix=domElement.getScreenCTM(),halfWidth=boundingBox.width/2,halfHeight=boundingBox.height/2,placements=[],placementKeys=[\"nw\",\"n\",\"ne\",\"e\",\"se\",\"s\",\"sw\",\"w\"],coords,rotation,steps,x;function pushPlacement(){placements.push(point.matrixTransform(matrix))}point.x=boundingBox.x;point.y=boundingBox.y;pushPlacement();point.x+=halfWidth;pushPlacement();point.x+=halfWidth;pushPlacement();point.y+=halfHeight;pushPlacement();point.y+=halfHeight;pushPlacement();point.x-=halfWidth;pushPlacement();point.x-=halfWidth;pushPlacement();point.y-=halfHeight;pushPlacement();if(placements[0].y!==placements[1].y||placements[0].x!==placements[7].x){rotation=Math.atan2(matrix.b,matrix.a)*RAD2DEG;steps=Math.ceil((rotation%360-22.5)/45);if(steps<1){steps+=8}while(steps--){placementKeys.push(\nplacementKeys.shift())}}for(x=0;x<placements.length;x++){if(placementKeys[x]===placement){coords=placements[x];break}}return{top:coords.y+session.scrollTop,left:coords.x+session.scrollLeft}}this.compute=computePlacementCoords}function TooltipController(options){var placementCalculator=new PlacementCalculator,tipElement=$(\"#\"+options.popupId);if(tipElement.length===0){tipElement=$(\"<div/>\",{id:options.popupId});if($body.length===0){$body=$(\"body\")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on(\"mousemove\"+EVENT_NAMESPACE,positionTipOnCursor);$window.on(\"scroll\"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(\nsession.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger(\"powerTipPreRender\");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger(\"powerTipRender\");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on(\"click\"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on(\"mouseenter\"+EVENT_NAMESPACE,\nfunction tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on(\"mouseleave\"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger(\"powerTipOpen\")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off(\"click\"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set(\"top\",session.currentY+options.offset);coords.set(\"left\",session.currentX+options.offset);\ntipElement.css(coords);element.trigger(\"powerTipClose\")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set(\"top\",session.currentY+options.offset);coords.set(\"left\",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set(\"left\",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set(\"top\",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set(\"left\",session.currentX-tipWidth-options.offset);coords.set(\"top\",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,\nfinalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass(\"w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt\");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set(\"top\",0);coords.set(\"left\",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));\nreturn coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep([\"mouseleave\",\"mouseout\",\"blur\",\"focusout\"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(\":disabled\")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(\":focus\")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX===\"number\")}\nfunction initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on(\"mousemove\"+EVENT_NAMESPACE,trackMouse);$window.on(\"resize\"+EVENT_NAMESPACE,trackResize);$window.on(\"scroll\"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),\nelementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$(\"#\"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,\nviewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.top<viewportTop||Math.abs(coords.bottom-session.windowHeight)-elementHeight<viewportTop){collisions|=Collision.top}if(coords.top+elementHeight>viewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.left<viewportLeft||coords.right+elementWidth>viewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right<viewportLeft){collisions|=Collision.right}return collisions}function countFlags(value){var count=0;while(value){value&=value-1;count++}return count}return $.powerTip});\n/*!\n * jQuery UI Touch Punch 0.2.3\n *\n * Copyright 2011–2014, Dave Furfero\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n * Depends:\n *  jquery.ui.widget.js\n *  jquery.ui.mouse.js\n */!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent(\"MouseEvents\");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch=\"ontouchend\"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,\"mouseover\"),f(a,\"mousemove\"),f(a,\"mousedown\"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,\"mousemove\"))},b._touchEnd=function(a){e&&(f(a,\"mouseup\"),f(a,\"mouseout\"),this._touchMoved||f(a,\"click\"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,\"_touchStart\"),touchmove:a.proxy(b,\"_touchMove\"),touchend:a.proxy(b,\"_touchEnd\")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,\"_touchStart\"),touchmove:a.proxy(b,\n\"_touchMove\"),touchend:a.proxy(b,\"_touchEnd\")}),d.call(b)}}}(jQuery);\n/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017\n * http://www.smartmenus.org/\n * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){\"function\"==typeof define&&define.amd?define([\"jquery\"],t):\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=t(require(\"jquery\")):t(jQuery)})(function($){function initMouseDetection(t){var e=\".smartmenus_mouse\";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest(\"a\");n.is(\"a\")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?\"touchstart\":\"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut\"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),\nmouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e=\"\");var i={};for(var s in t)i[s.split(\" \").join(e+\" \")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents=\"ontouchstart\"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId=\"\",this.accessIdPrefix=\"\",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d=\"perspective\"in t.style||\"webkitPerspective\"in t.style,this.wasCollapsible=!1,this.init()},$.extend(\n$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+\"\").replace(/\\D/g,\"\"),this.accessIdPrefix=\"sm-\"+this.rootId+\"-\",this.$root.hasClass(\"sm-rtl\")&&(this.opts.rightToLeftSubMenus=!0);var i=\".smartmenus\";this.$root.data(\"smartmenus\",this).attr(\"data-smartmenus-id\",this.rootId).dataSM(\"level\",1).on(getEventsNS({\"mouseover focusin\":$.proxy(this.rootOver,this),\"mouseout focusout\":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),\"a\"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(\nthis.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({\"resize orientationchange\":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$(\"<span/>\").addClass(\"sub-arrow\"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find(\"ul\").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find(\"a\").eq(0),this.opts.markCurrentItem){var s=/(index|default)\\.[^#\\?\\/]*/i,o=/#.*/,a=window.location.href.replace(s,\"\"),n=a.replace(o,\"\");this.$root.find(\"a\").each(function(){var t=this.href.replace(s,\"\"),i=$(this);(t==a||t==n)&&(i.addClass(\"current\"),e.opts.markCurrentTree&&i.parentsUntil(\"[data-smartmenus-id]\",\"ul\").each(function(){$(this).dataSM(\"parent-a\").addClass(\"current\")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=\".smartmenus\";this.$root.removeData(\n\"smartmenus\").removeAttr(\"data-smartmenus-id\").removeDataSM(\"level\").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find(\"ul\").each(function(){var t=$(this);t.dataSM(\"scroll-arrows\")&&t.dataSM(\"scroll-arrows\").remove(),t.dataSM(\"shown-before\")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:\"\",minWidth:\"\",maxWidth:\"\"}).removeClass(\"sm-nowrap\"),t.dataSM(\"scroll-arrows\")&&t.dataSM(\"scroll-arrows\").remove(),t.css({zIndex:\"\",top:\"\",left:\"\",marginLeft:\"\",marginTop:\"\",display:\"\"})),0==(t.attr(\"id\")||\"\").indexOf(i.accessIdPrefix)&&t.removeAttr(\"id\")}).removeDataSM(\"in-mega\").removeDataSM(\"shown-before\").removeDataSM(\"scroll-arrows\").removeDataSM(\"parent-a\").removeDataSM(\"level\").removeDataSM(\"beforefirstshowfired\").removeAttr(\"role\").removeAttr(\"aria-hidden\").removeAttr(\"aria-labelledby\").removeAttr(\"aria-expanded\"),this.$root.find(\"a.has-submenu\").each(function(){var t=$(this);0==t.attr(\"id\"\n).indexOf(i.accessIdPrefix)&&t.removeAttr(\"id\")}).removeClass(\"has-submenu\").removeDataSM(\"sub\").removeAttr(\"aria-haspopup\").removeAttr(\"aria-controls\").removeAttr(\"aria-expanded\").closest(\"li\").removeDataSM(\"sub\"),this.opts.subIndicators&&this.$root.find(\"span.sub-arrow\").remove(),this.opts.markCurrentItem&&this.$root.find(\"a.current\").removeClass(\"current\"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(\":visible\")){var e=this.$root.offset();this.$disableOverlay=$('<div class=\"sm-jquery-disable-overlay\"/>').css({position:\"absolute\",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(\nthis.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest(\"a\").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(\nvar e=$(t).closest(\"ul\");e.dataSM(\"in-mega\");)e=e.parent().closest(\"ul\");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;\"none\"==t.css(\"display\")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:\"absolute\",visibility:\"hidden\"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?\"$root\":\"$firstSub\"].css(\"z-index\"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css(\"z-index\"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?\"Height\":\"Width\",i=document.documentElement[\"client\"+e],s=window[\"inner\"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){\nreturn this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return\"static\"==this.$firstSub.css(\"position\")},isCSSOn:function(){return\"inline\"!=this.$firstLink.css(\"display\")},isFixed:function(){var t=\"fixed\"==this.$root.css(\"position\");return t||this.$root.parentsUntil(\"body\").each(function(){return\"fixed\"==$(this).css(\"position\")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass(\"mega-menu\")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest(\"ul\"),s=i.dataSM(\"level\");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM(\"parent-a\")[0])){var o=this;$(i.parentsUntil(\"[data-smartmenus-id]\",\"ul\").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM(\"parent-a\"))})}if((\n!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler(\"activate.smapi\",t[0])!==!1){var a=t.dataSM(\"sub\");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler(\"blur.smapi\",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest(\"ul\")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler(\"click.smapi\",e[0])===!1)return!1;var i=$(t.target).is(\".sub-arrow\"),s=e.dataSM(\"sub\"),o=s?2==s.dataSM(\"level\"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(\":visible\")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(\nthis.clickActivated=!0),this.itemActivate(e,h),s.is(\":visible\")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass(\"disabled\")||this.$root.triggerHandler(\"select.smapi\",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM(\"mousedown\",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest(\"ul\").dataSM(\"level\")?1:this.opts.showTimeout)}this.$root.triggerHandler(\"mouseenter.smapi\",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM(\"mousedown\")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0\n]||this.itemActivate(e,!0),this.$root.triggerHandler(\"focus.smapi\",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM(\"mousedown\"),this.$root.triggerHandler(\"mouseleave.smapi\",e[0]))},menuHide:function(t){if(this.$root.triggerHandler(\"beforehide.smapi\",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),\"none\"!=t.css(\"display\"))){var e=function(){t.css(\"z-index\",\"\")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM(\"scroll\")&&(this.menuScrollStop(t),t.css({\"touch-action\":\"\",\"-ms-touch-action\":\"\",\"-webkit-transform\":\"\",transform:\"\"}).off(\".smartmenus_scroll\").removeDataSM(\"scroll\").dataSM(\"scroll-arrows\").hide()),t.dataSM(\"parent-a\").removeClass(\n\"highlighted\").attr(\"aria-expanded\",\"false\"),t.attr({\"aria-expanded\":\"false\",\"aria-hidden\":\"true\"});var i=t.dataSM(\"level\");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler(\"hide.smapi\",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(\":visible\")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler(\"hideAll.smapi\")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM(\"sub\");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM(\"in-mega\")){\nt.hasClass(\"mega-menu\")&&t.find(\"ul\").dataSM(\"in-mega\",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll(\"a\").eq(-1);s.length||(s=t.prevAll().find(\"a\").eq(-1)),s.addClass(\"has-submenu\").dataSM(\"sub\",t),t.dataSM(\"parent-a\",s).dataSM(\"level\",e).parent().dataSM(\"sub\",t);var o=s.attr(\"id\")||this.accessIdPrefix+ ++this.idInc,a=t.attr(\"id\")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,\"aria-haspopup\":\"true\",\"aria-controls\":a,\"aria-expanded\":\"false\"}),t.attr({id:a,role:\"group\",\"aria-hidden\":\"true\",\"aria-labelledby\":o,\"aria-expanded\":\"false\"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM(\"parent-a\"),o=s.closest(\"li\"),a=o.parent(),n=t.dataSM(\"level\"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is(\"[data-sm-horizontal-sub]\"\n)||2==n&&!a.hasClass(\"sm-vertical\"),M=this.opts.rightToLeftSubMenus&&!o.is(\"[data-sm-reverse]\")||!this.opts.rightToLeftSubMenus&&o.is(\"[data-sm-reverse]\"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM(\"scroll-arrows\")||t.dataSM(\"scroll-arrows\",$([$('<span class=\"scroll-up\"><span class=\"scroll-up-arrow\"></span></span>')[0],$('<span class=\"scroll-down\"><span class=\"scroll-down-arrow\"></span></span>')[0]]).on({mouseenter:function(){t.dataSM(\"scroll\").up=$(this).hasClass(\"scroll-up\"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},\"mousewheel DOMMouseScroll\":function(t){\nt.preventDefault()}}).insertAfter(t));var A=\".smartmenus_scroll\";if(t.dataSM(\"scroll\",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM(\"scroll-arrows\").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},\"mousewheel DOMMouseScroll\":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM(\"scroll-arrows\").css({top:\"auto\",left:\"0\",marginLeft:e+(parseInt(t.css(\"border-left-width\"))||0),width:r-(parseInt(t.css(\"border-left-width\"))||0)-(parseInt(t.css(\"border-right-width\"))||0),zIndex:t.css(\"z-index\")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?\"touchstart touchmove touchend\":\"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp\"]=function(e){x.menuScrollTouch(t,e)},t.css({\"touch-action\":\"none\",\"-ms-touch-action\":\"none\"}).on(getEventsNS(C,A))}}}t.css({top:\"auto\",left:\"0\",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM(\"scroll\"),\na=t.dataSM(\"scroll-arrows\"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM(\"level\");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM(\"sub\")&&this.activatedItems[r-1].dataSM(\"sub\").is(\":visible\")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{\"-webkit-transform\":\"translate3d(0, \"+o.y+\"px, 0)\",transform:\"translate3d(0, \"+o.y+\"px, 0)\"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y<o.upEnd)&&a.eq(o.up?1:0).show(),o.y==n)mouse&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!e){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.2);var h=this;this.scrollTimeout=requestAnimationFrame(function(){h.menuScroll(t)})}},menuScrollMousewheel:function(t,e){if(this.getClosestMenu(e.target)==t[0]){e=e.originalEvent;var i=(\ne.wheelDelta||-e.detail)>0;t.dataSM(\"scroll-arrows\").eq(i?0:1).is(\":visible\")&&(t.dataSM(\"scroll\").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||\"\").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM(\"scroll-arrows\").css(\"visibility\",\"hidden\"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM(\"scroll\"),s=$(window).scrollTop()-t.dataSM(\"parent-a\").offset().top-i.itemH;t.dataSM(\"scroll-arrows\").eq(0).css(\"margin-top\",s).end().eq(1).css(\"margin-top\",s+this.getViewportHeight()-i.arrowDownH).end().css(\"visibility\",\"visible\")}},menuScrollRefreshData:function(t){var e=t.dataSM(\"scroll\"),i=$(window).scrollTop()-t.dataSM(\"parent-a\").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css(\"margin-top\"))-i)),$.extend(e,{upEnd:i,\ndownEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM(\"scroll\").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM(\"scroll\");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2)\n)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM(\"beforefirstshowfired\")||(t.dataSM(\"beforefirstshowfired\",!0),this.$root.triggerHandler(\"beforefirstshow.smapi\",t[0])!==!1))&&this.$root.triggerHandler(\"beforeshow.smapi\",t[0])!==!1&&(t.dataSM(\"shown-before\",!0),canAnimate&&t.stop(!0,!0),!t.is(\":visible\"))){var e=t.dataSM(\"parent-a\"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass(\"highlighted\"),i)t.removeClass(\"sm-nowrap\").css({zIndex:\"\",width:\"auto\",minWidth:\"\",maxWidth:\"\",top:\"\",left:\"\",marginLeft:\"\",marginTop:\"\"});else{if(t.css(\"z-index\",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:\"auto\",minWidth:\"\",maxWidth:\"\"}).addClass(\"sm-nowrap\"),this.opts.subMenusMinWidth&&t.css(\"min-width\",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css(\"max-width\",this.opts.subMenusMaxWidth),s>this.getWidth(t\n)&&t.removeClass(\"sm-nowrap\").css(\"width\",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css(\"overflow\",\"\")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr(\"aria-expanded\",\"true\"),t.attr({\"aria-expanded\":\"true\",\"aria-hidden\":\"false\"}),this.visibleSubMenus.push(t),this.$root.triggerHandler(\"show.smapi\",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\\n\\nIf you want to show this menu via the \"popupShow\" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM(\"shown-before\",!0),\ncanAnimate&&this.$root.stop(!0,!0),!this.$root.is(\":visible\")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css(\"overflow\",\"\")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM(\"sub\");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is(\"a\")&&this.handleItemEvents(s)){var i=s.dataSM(\"sub\");i&&!i.is(\":visible\")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},\nrootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!(\"onorientationchange\"in window)||\"orientationchange\"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+\"_smartmenus\",e):this.data(t+\"_smartmenus\")},$.fn.removeDataSM=function(t){return this.removeData(t+\"_smartmenus\")},$.fn.smartmenus=function(options){if(\"string\"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data(\"smartmenus\");t&&t[method]&&t[method].apply(t,args)})}\nreturn this.each(function(){var dataOpts=$(this).data(\"sm-options\")||null;if(dataOpts)try{dataOpts=eval(\"(\"+dataOpts+\")\")}catch(e){dataOpts=null,alert('ERROR\\n\\nSmartMenus jQuery init:\\nInvalid \"data-sm-options\" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:\"10em\",subMenusMaxWidth:\"20em\",subIndicators:!0,subIndicatorsPos:\"append\",subIndicatorsText:\"\",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,\nbottomToTopSubMenus:!1,collapsibleBehavior:\"default\"},$});\n"
  },
  {
    "path": "docs/html/md__2_users_2flavio_2_projects_2heroiclabs_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__2_users_2flavio_2_projects_2heroiclabs_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[3.8.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>Authoritative</code> flag to tournaments returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>RefundTime</code> and <code>UserId</code> to purchases and subscriptions returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added raw subscription provider information.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>DeleteAccountAsync</code> for deleting user accounts.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>DeleteIdentityAsync</code> for deleting user identities.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Used <code>session.Username</code> wherever outdated state might be returned.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed issue where outgoing payloads could include unnecessary JSON.</li>\n</ul>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a <code>UpdatePresences</code> utility to <code>IMatch</code> and <code>IParty</code>. Use this method to maintain the presences in your matches and parties when an <code>IMatchPresenceEvent</code> or <code>IPartyPresenceEvent</code> is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>GetFlagDefault</code> and <code>GetFlagsDefault</code> now use the <code>apiKey</code> passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the <code>Logger</code> object on <code>IClient</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when <code>Close</code> is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify <code>path</code> parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on <code>CloseAsync()</code> in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p>This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__2_users_2gp_2_documents_2_git_hub_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__2_users_2gp_2_documents_2_git_hub_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[3.9.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>recompute</code> option to <code>UpdatePropertiesAsync</code> which allows audiences to be recalculated on property update.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Decreased size of JSON payloads.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>DeleteIdentityAsync</code> no longer accepts an explicit ID.</li>\n</ul>\n<h1>[3.8.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>Authoritative</code> flag to tournaments returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>RefundTime</code> and <code>UserId</code> to purchases and subscriptions returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added raw subscription provider information.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>DeleteAccountAsync</code> for deleting user accounts.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>DeleteIdentityAsync</code> for deleting user identities.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Used <code>session.Username</code> wherever outdated state might be returned.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed issue where outgoing payloads could include unnecessary JSON.</li>\n</ul>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a <code>UpdatePresences</code> utility to <code>IMatch</code> and <code>IParty</code>. Use this method to maintain the presences in your matches and parties when an <code>IMatchPresenceEvent</code> or <code>IPartyPresenceEvent</code> is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>GetFlagDefault</code> and <code>GetFlagsDefault</code> now use the <code>apiKey</code> passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the <code>Logger</code> object on <code>IClient</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when <code>Close</code> is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify <code>path</code> parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on <code>CloseAsync()</code> in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p>This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__2_users_2gp_2_git_hub_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.8 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__2_users_2gp_2_git_hub_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[Unreleased]</h1>\n<h1>[3.10.0] - 2023-11-21</h1>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Mark socket as connected before event handler is called.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Limited scope of retry logic to very specific 500-level codes from the server.</li>\n</ul>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Rank count is now returned with tournament record listings.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to delete tournament records with <code>DeleteTournamentRecordAsync</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Hostnames passed to the client now preserve their hardcoded paths.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Create and update times are now returned with notifications.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added Facebook Instant Games purchase validation.</li>\n</ul>\n<h1>[3.9.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>recompute</code> option to <code>UpdatePropertiesAsync</code> which allows audiences to be recalculated on property update.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Decreased size of JSON payloads.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>DeleteIdentityAsync</code> no longer accepts an explicit ID.</li>\n</ul>\n<h1>[3.8.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>Authoritative</code> flag to tournaments returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>RefundTime</code> and <code>UserId</code> to purchases and subscriptions returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added raw subscription provider information.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>DeleteAccountAsync</code> for deleting user accounts.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>DeleteIdentityAsync</code> for deleting user identities.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Used <code>session.Username</code> wherever outdated state might be returned.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed issue where outgoing payloads could include unnecessary JSON.</li>\n</ul>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a <code>UpdatePresences</code> utility to <code>IMatch</code> and <code>IParty</code>. Use this method to maintain the presences in your matches and parties when an <code>IMatchPresenceEvent</code> or <code>IPartyPresenceEvent</code> is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>GetFlagDefault</code> and <code>GetFlagsDefault</code> now use the <code>apiKey</code> passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the <code>Logger</code> object on <code>IClient</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when <code>Close</code> is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify <code>path</code> parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on <code>CloseAsync()</code> in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p>This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.8 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__2_users_2joao_2_projects_2heroic_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.12.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.13.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.12.0 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() { codefold.init(0); });\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function(){initNavTree('md__2_users_2joao_2_projects_2heroic_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',''); initResizable(true); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[Unreleased]</h1>\n<h1>[3.13.0] - 2024-07-10</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>ImageUrl</code> and <code>Title</code> to <code>IApiMessage</code>.</li>\n</ul>\n<h1>[3.12.1] - 2024-05-30</h1>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where notifications from other users could appear as if they were sent by the recipient user.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed a potential <code>NullReferenceException</code> that could occur when passing a <code>null</code> username to <code>IClient.UpdateAccountAsync</code>.</li>\n</ul>\n<h1>[3.12.0] - 2024-04-08</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>IApiLiveEvent.Id</code> for accessing live event identifiers.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added support for new <a class=\"el\" href=\"namespace_satori.html\">Satori</a> Messages API: <code>IClient.GetMessageListAsync</code>, <code>IClient.UpdateMessageAsync</code> and <code>IClient.DeleteMessageAsync</code>.</li>\n</ul>\n<h1>[3.11.0] - 2024-03-08</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: New <code>IClient</code> event called <code>ReceivedSessionUpdated</code> when session expires and is refreshed.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: New <code>Session.Update</code> method to allow for in-place updates to the session object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: <code>IsConnected</code> and <code>IsConnecting</code> will now read directly from the underlying .NET socket status. This will allow application code to more quickly and easily detect connectivity loss arising from a lack of internet access.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Default socket adapter changed from <code>WebSocketAdapter</code> to <code>WebSocketStdlibAdapter</code>. This was done to utilize the native .NET Websocket library for improved stability and maintenance.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Trying to connect a socket that is already connecting now results in a no-op instead of an error.</li>\n</ul>\n<h1>[3.10.0] - 2023-11-21</h1>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Mark socket as connected before event handler is called.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Limited scope of retry logic to very specific 500-level codes from the server.</li>\n</ul>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Rank count is now returned with tournament record listings.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to delete tournament records with <code>DeleteTournamentRecordAsync</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Hostnames passed to the client now preserve their hardcoded paths.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Create and update times are now returned with notifications.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added Facebook Instant Games purchase validation.</li>\n</ul>\n<h1>[3.9.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>recompute</code> option to <code>UpdatePropertiesAsync</code> which allows audiences to be recalculated on property update.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Decreased size of JSON payloads.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>DeleteIdentityAsync</code> no longer accepts an explicit ID.</li>\n</ul>\n<h1>[3.8.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>Authoritative</code> flag to tournaments returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>RefundTime</code> and <code>UserId</code> to purchases and subscriptions returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added raw subscription provider information.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added <code>DeleteAccountAsync</code> for deleting user accounts.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added <code>DeleteIdentityAsync</code> for deleting user identities.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Used <code>session.Username</code> wherever outdated state might be returned.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed issue where outgoing payloads could include unnecessary JSON.</li>\n</ul>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a <code>UpdatePresences</code> utility to <code>IMatch</code> and <code>IParty</code>. Use this method to maintain the presences in your matches and parties when an <code>IMatchPresenceEvent</code> or <code>IPartyPresenceEvent</code> is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>GetFlagDefault</code> and <code>GetFlagsDefault</code> now use the <code>apiKey</code> passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the <code>Logger</code> object on <code>IClient</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when <code>Close</code> is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify <code>path</code> parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on <code>CloseAsync()</code> in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p>This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.12.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p>All notable changes to this project will be documented in this file.</p>\n<p>The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[3.17.0] - 2025-07-16</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: New Realtime Parties search feature which allows open parties to be discovered by users.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Nakama+Satori: TinyJson will now encode any \"IDictionary&lt;,&gt;\" type.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: \"ListStorageObjectsAsync\" can use a user ID as input to fetch public storage objects for that user. Thanks @chrisanicolaou.</li>\n<li>Nakama+Satori: Fix how issue at time is decoded from Session token.</li>\n</ul>\n<h1>[3.16.0] - 2025-02-13</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Update the Client type with the newest <a class=\"el\" href=\"namespace_satori.html\">Satori</a> API. See <a href=\"https://heroiclabs.com/docs/satori/concepts/introduction/release-notes/\">release notes</a>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Nakama+Satori: Embed version information based on Git describe into builds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Nakama+Satori: Use formatted arguments with all logger lines in request adapters.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Use session token as jitter seed for randomized backoff with retries.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: \"ISession.CreateTime\" now accurately represents Unix time in seconds since the \"ISession\" object was created.</li>\n</ul>\n<h1>[3.15.0] - 2025-01-28</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Add retry attempts to \"Client\" type.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Improve how cancellation is handled in HTTP requests.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Improve how cancellation is handled in HTTP requests.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Timeouts set in \"Client\" are now propagated to the underlying \"ApiClient\" type.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>GitHub Pages documentation no longer uses Jekyll transform.</li>\n</ul>\n<h1>[3.14.0] - 2024-10-20</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: New \"IClient\" event called \"ReceivedSessionUpdated\" when session expires and is refreshed.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: The new session returned by \"IdentifyAsync\" is merged into the input \"Session\" type.</li>\n</ul>\n<h1>[3.13.0] - 2024-07-10</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added \"ImageUrl\" and \"Title\" to \"IApiMessage\".</li>\n</ul>\n<h1>[3.12.1] - 2024-05-30</h1>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where notifications from other users could appear as if they were sent by the recipient user.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed a potential \"NullReferenceException\" that could occur when passing a \"null\" username to \"IClient.UpdateAccountAsync\".</li>\n</ul>\n<h1>[3.12.0] - 2024-04-08</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added \"IApiLiveEvent.Id\" for accessing live event identifiers.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added support for new <a class=\"el\" href=\"namespace_satori.html\">Satori</a> Messages API: \"IClient.GetMessageListAsync\", \"IClient.UpdateMessageAsync\" and \"IClient.DeleteMessageAsync\".</li>\n</ul>\n<h1>[3.11.0] - 2024-03-08</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: New \"IClient\" event called \"ReceivedSessionUpdated\" when session expires and is refreshed.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: New \"Session.Update\" method to allow for in-place updates to the session object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: \"IsConnected\" and \"IsConnecting\" will now read directly from the underlying .NET socket status. This will allow application code to more quickly and easily detect connectivity loss arising from a lack of internet access.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Default socket adapter changed from \"WebSocketAdapter\" to \"WebSocketStdlibAdapter\". This was done to utilize the native .NET Websocket library for improved stability and maintenance.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Trying to connect a socket that is already connecting now results in a no-op instead of an error.</li>\n</ul>\n<h1>[3.10.0] - 2023-11-21</h1>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Mark socket as connected before event handler is called.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Limited scope of retry logic to very specific 500-level codes from the server.</li>\n</ul>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Rank count is now returned with tournament record listings.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to delete tournament records with \"DeleteTournamentRecordAsync\".</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Hostnames passed to the client now preserve their hardcoded paths.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Create and update times are now returned with notifications.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added Facebook Instant Games purchase validation.</li>\n</ul>\n<h1>[3.9.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added \"recompute\" option to \"UpdatePropertiesAsync\" which allows audiences to be recalculated on property update.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Decreased size of JSON payloads.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: \"DeleteIdentityAsync\" no longer accepts an explicit ID.</li>\n</ul>\n<h1>[3.8.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added \"Authoritative\" flag to tournaments returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added \"RefundTime\" and \"UserId\" to purchases and subscriptions returned from the server.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added raw subscription provider information.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added \"DeleteAccountAsync\" for deleting user accounts.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added \"DeleteIdentityAsync\" for deleting user identities.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Used \"session.Username\" wherever outdated state might be returned.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed issue where outgoing payloads could include unnecessary JSON.</li>\n</ul>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a \"UpdatePresences\" utility to \"IMatch\" and \"IParty\". Use this method to maintain the presences in your matches and parties when an \"IMatchPresenceEvent\" or \"IPartyPresenceEvent\" is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: \"GetFlagDefault\" and \"GetFlagsDefault\" now use the \"apiKey\" passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the \"Logger\" object on \"IClient\".</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when \"Close\" is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify \"path\" parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on \"CloseAsync()\" in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to \"persist\" Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to \"true\" by default in order to allow the server to detect replay attacks.</li>\n<li>Added a \"SeenBefore\" property to \"IApiValidatedPurchase\".</li>\n<li>Added \"ListSubscriptionsAsync\" which returns a list of the user's subscriptions.</li>\n<li>Added \"ValidateSubscriptionAppleAsync\" which returns details about a user's Apple subscription.</li>\n<li>Added \"ValidateSubscriptionGoogleAsync\" which returns details about a user's Google subscription.</li>\n<li>Added \"GetSubscriptionAsync\" which returns a subscription for the provided product id.</li>\n<li>Added support for \"countMultiple\" in \"AddMatchmakerAsync\" and \"AddMatchmakerPartyAsync\".</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>\"ValidatedPurchaseEnvironment\" has been renamed to \"ApiStoreEnvironment\".</li>\n<li>\"ValidatedPurchaseStore\" has been renamed to \"ApiStoreProvider\".</li>\n<li>Removed obsolete client methods that accept a \"CancellationTokenSource\". These have been replaced in favor of methods that accept a \"CancellationToken\" that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with \"SocketClosed\" event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed \"autoRefreshSession\" from overloaded \"Client\" constructors. This can still be customized with the base \"Client\" constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An \"IPartyMatchmakerTicket\" is now received by the party leader when they add their party to the matchmaker via \"AddMatchmakerPartyAsync\".</li>\n<li>Renamed \"PromotePartyMember\" to \"PromotePartyMemberAsync\".</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where \"IUserPresence\" objects were not being deserialized properly by the client as part of the \"IParty\" object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The \"Socket.ReceivedParty\" event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through \"null\" to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p>This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md___users_sean__documents__git_hub_nakama_dotnet__c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr style=\"height: 56px;\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\" style=\"padding-left: 0.5em;\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.1.1</span>\n   </div>\n   <div id=\"projectbrief\">.NET client for Nakama server written in C</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.2 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search\",'Search','.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md___users_sean__documents__git_hub_nakama_dotnet__c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<iframe src=\"javascript:void(0)\" frameborder=\"0\" \n        name=\"MSearchResults\" id=\"MSearchResults\">\n</iframe>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p >All notable changes to this project will be documented in this file.</p>\n<p >The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync. <blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<blockquote class=\"doxtable\">\n<p >master </p>\n</blockquote>\n</blockquote>\n</blockquote>\n</blockquote>\n</blockquote>\n</blockquote>\n</blockquote>\n<h1>[2.9.1] - 2021-05-19</h1>\n</li>\n</ul>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p >This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.2 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md___users_tom_heroic_projects_nakama_dotnet__c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.7.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md___users_tom_heroic_projects_nakama_dotnet__c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p >All notable changes to this project will be documented in this file.</p>\n<p >The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1>[Unreleased]</h1>\n<h1>[3.7.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added a <code>UpdatePresences</code> utility to <code>IMatch</code> and <code>IParty</code>. Use this method to maintain the presences in your matches and parties when an <code>IMatchPresenceEvent</code> or <code>IPartyPresenceEvent</code> is dispatched.</li>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Added optional default and custom properties that can be attached to authentication requests.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: <code>GetFlagDefault</code> and <code>GetFlagsDefault</code> now use the <code>apiKey</code> passed to the client constructor rather than accepting it as a unique parameter.</li>\n</ul>\n<h1>[3.6.0]</h1>\n<h2>Added</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_satori.html\">Satori</a>: Adds the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> .NET SDK. <a class=\"el\" href=\"namespace_satori.html\">Satori</a> is our liveops server for game studios. Please read more about it on the Heroic Labs website.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for calling RPCs with a HTTP key via POST when a payload is provided.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Expose the <code>Logger</code> object on <code>IClient</code>.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Adds support for POST RPC requests when using HTTP key with a payload</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Prevent race condition when <code>Close</code> is called while receive loop has an incomplete read buffer.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where 500 errors could cause parsing issues on the client.</li>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Added ability to specify <code>path</code> parameter to client urls.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>: Fixed an issue where our websocket would throw an exception on <code>CloseAsync()</code> in certain situations.</li>\n</ul>\n<h1>[3.5.0] - 2022-09-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1>[3.4.0] - 2022-04-28</h1>\n<h2>Added</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1>[3.3.0] - 2022-01-24</h1>\n<h2>Added</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1>[3.2.0] - 2021-10-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1>[3.1.1] - 2021-08-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1>[3.1.0] - 2021-08-11</h1>\n<h2>Added</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1>[3.0.0] - 2021-07-14</h1>\n<h2>Added</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1>[2.9.3] - 2021-06-17</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1>[2.9.2] - 2021-05-21</h1>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1>[2.9.1] - 2021-05-19</h1>\n<h2>Added</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1>[2.9.0] - 2021-05-15</h1>\n<h2>Added</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1>[2.8.0] - 2020-02-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1>[2.7.1] - 2020-02-1</h1>\n<h2>Fixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1>[2.7.0] - 2020-10-19</h1>\n<h2>Changed</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. <h2>Fixed</h2>\n</li>\n</ul>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1>[2.6.0] - 2020-09-21</h1>\n<h2>Added</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1>[2.5.0] - 2020-08-12</h1>\n<h2>Added</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1>[2.4.0] - 2020-05-04 :star:</h1>\n<h2>Added</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1>[2.3.1] - 2019-09-21</h1>\n<h2>Changed</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1>[2.3.0] - 2019-09-02</h1>\n<h2>Added</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1>[2.2.2] - 2019-07-02</h1>\n<h2>Changed</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1>[2.2.1] - 2019-06-19</h1>\n<h2>Added</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1>[2.2.0] - 2019-06-06</h1>\n<h2>Added</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1>[2.1.0] - 2018-08-17</h1>\n<h2>Added</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2>Changed</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2>Fixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1>[2.0.0] - 2018-06-18</h1>\n<h2>Added</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p >This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__c_h_a_n_g_e_l_o_g.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Changelog</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Changelog </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p >All notable changes to this project will be documented in this file.</p>\n<p >The format is based on <a href=\"http://keepachangelog.com/en/1.0.0/\">Keep a Changelog</a> and this project adheres to <a href=\"http://semver.org/spec/v2.0.0.html\">Semantic Versioning</a>.</p>\n<h1><a class=\"anchor\" id=\"autotoc_md1\"></a>\n[Unreleased]</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md2\"></a>\nAdded</h2>\n<h2><a class=\"anchor\" id=\"autotoc_md3\"></a>\nFixed</h2>\n<h1><a class=\"anchor\" id=\"autotoc_md4\"></a>\n[3.5.0] - 2022-09-06</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md5\"></a>\nAdded</h2>\n<ul>\n<li>Ability to <code>persist</code> Apple, Huawei, and Google purchase receipts in the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> database. This is set to <code>true</code> by default in order to allow the server to detect replay attacks.</li>\n<li>Added a <code>SeenBefore</code> property to <code>IApiValidatedPurchase</code>.</li>\n<li>Added <code>ListSubscriptionsAsync</code> which returns a list of the user's subscriptions.</li>\n<li>Added <code>ValidateSubscriptionAppleAsync</code> which returns details about a user's Apple subscription.</li>\n<li>Added <code>ValidateSubscriptionGoogleAsync</code> which returns details about a user's Google subscription.</li>\n<li>Added <code>GetSubscriptionAsync</code> which returns a subscription for the provided product id.</li>\n<li>Added support for <code>countMultiple</code> in <code>AddMatchmakerAsync</code> and <code>AddMatchmakerPartyAsync</code>.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md6\"></a>\nChanged</h2>\n<ul>\n<li><code>ValidatedPurchaseEnvironment</code> has been renamed to <code>ApiStoreEnvironment</code>.</li>\n<li><code>ValidatedPurchaseStore</code> has been renamed to <code>ApiStoreProvider</code>.</li>\n<li>Removed obsolete client methods that accept a <code>CancellationTokenSource</code>. These have been replaced in favor of methods that accept a <code>CancellationToken</code> that were added in v3.3.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md7\"></a>\nFixed</h2>\n<ul>\n<li>Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue with <code>SocketClosed</code> event taking a significant length of time or not firing at all when internet connection is lost.</li>\n<li>Fixed an issue that would occur when sending messages over the socket from multiple threads.</li>\n<li>Fixed automatic retry seeding to be random across devices.</li>\n<li>Fixed an issue when parsing unquoted numbers as strings in TinyJson.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md8\"></a>\n[3.4.0] - 2022-04-28</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md9\"></a>\nAdded</h2>\n<ul>\n<li>Allow max message size limit with socket messages to be overridden in the adapter.</li>\n<li>Relayed multiplayer matches can now be created with a custom name (i.e. room name).</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md10\"></a>\nFixed</h2>\n<ul>\n<li>Fix background read loop to update 'IsConnecting' and 'IsConnected' when close is detected.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md11\"></a>\n[3.3.0] - 2022-01-24</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md12\"></a>\nAdded</h2>\n<ul>\n<li>Add overload methods in Client which take a CancellationToken. Thanks @gamecentric.</li>\n<li>Add WebSocketStdlibAdapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md13\"></a>\nChanged</h2>\n<ul>\n<li>Use DualMode in TcpClient to handle NAT64 overlay networks (some mobile carriers).</li>\n<li>Refactor the socket adapter design to use Tasks (previously avoided for Unity WebGL compat.).</li>\n<li>Socket messages which exceed the internal buffer size now generate an \"InternalBufferOverflowException\" type.</li>\n<li>A socket connect made on an already connected socket will no longer raise an exception.</li>\n<li>Propagate up the \"WebSocketException\" type thrown on socket messages sent over a disconnected socket.</li>\n<li>Update bundled \"Ninja.WebSockets\" library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md14\"></a>\nFixed</h2>\n<ul>\n<li>Expose base exception if retry handler fails.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md15\"></a>\n[3.2.0] - 2021-10-11</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md16\"></a>\nAdded</h2>\n<ul>\n<li>Added additional group listing filters.</li>\n<li>Added ability to overwrite leaderboard/tournament ranking operators from the client.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md17\"></a>\nFixed</h2>\n<ul>\n<li>Fixed url-safe encoding of query params that were passed to the client as arrays of strings.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md18\"></a>\n[3.1.1] - 2021-08-19</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md19\"></a>\nChanged</h2>\n<ul>\n<li>Removed <code>autoRefreshSession</code> from overloaded <code>Client</code> constructors. This can still be customized with the base <code>Client</code> constructor. This is a workaround for an internal compiler error in Unity's WebGL toolchain.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md20\"></a>\n[3.1.0] - 2021-08-11</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md21\"></a>\nAdded</h2>\n<ul>\n<li>Added ability for user to retry requests if they fail due to a transient network error.</li>\n<li>Added ability for user to cancel requests that are in-flight.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md22\"></a>\n[3.0.0] - 2021-07-14</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md23\"></a>\nAdded</h2>\n<ul>\n<li>The language tag for the user can be configured with the socket on connect.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md24\"></a>\nChanged</h2>\n<ul>\n<li>An <code>IPartyMatchmakerTicket</code> is now received by the party leader when they add their party to the matchmaker via <code>AddMatchmakerPartyAsync</code>.</li>\n<li>Renamed <code>PromotePartyMember</code> to <code>PromotePartyMemberAsync</code>.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md25\"></a>\n[2.9.3] - 2021-06-17</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md26\"></a>\nFixed</h2>\n<ul>\n<li>Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md27\"></a>\n[2.9.2] - 2021-05-21</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md28\"></a>\nFixed</h2>\n<ul>\n<li>Fixed issue where <code>IUserPresence</code> objects were not being deserialized properly by the client as part of the <code>IParty</code> object.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md29\"></a>\nChanged</h2>\n<ul>\n<li>AddMatchmakerPartyAsync now returns an IPartyMatchmakerTicket.</li>\n<li>Renamed PromotePartyMember to PromotePartyMemberAsync.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md30\"></a>\n[2.9.1] - 2021-05-19</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md31\"></a>\nAdded</h2>\n<ul>\n<li>The <code>Socket.ReceivedParty</code> event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md32\"></a>\n[2.9.0] - 2021-05-15</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md33\"></a>\nAdded</h2>\n<ul>\n<li>A session can be refreshed on demand with \"SessionRefreshAsync\" method.</li>\n<li>Session and/or refresh tokens can now be disabled with a client logout.</li>\n<li>The client now supports session auto-refresh using refresh tokens. This is enabled by default.</li>\n<li>New socket RPC and MatchSend methods using ArraySegment to allow developers to manage memory re-use.</li>\n<li>Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei AppGallery.</li>\n<li>Add Realtime Parties feature.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md34\"></a>\nChanged</h2>\n<ul>\n<li>Use lock object with socket operations instead of ConcurrentDictionary as a workaround for a Unity engine WebGL regression.</li>\n<li>Avoid use of extension methods as a workaround for a Unity engine WebGL regression.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md35\"></a>\nFixed</h2>\n<ul>\n<li>Parse HTTP responses defensively in case of bad load balancer configurations.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md36\"></a>\n[2.8.0] - 2020-02-19</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md37\"></a>\nChanged</h2>\n<ul>\n<li>Listing tournaments can now be done without providing start or end time filters.</li>\n<li>Can now import Steam friends after authenticating or linking to a Steam account.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md38\"></a>\n[2.7.1] - 2020-02-1</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md39\"></a>\nFixed</h2>\n<ul>\n<li>HTTP Client now properly reads off timeout value.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md40\"></a>\n[2.7.0] - 2020-10-19</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md41\"></a>\nChanged</h2>\n<ul>\n<li>Upgrade code generator to new Swagger format. </li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md42\"></a>\nFixed</h2>\n<ul>\n<li>Properly pass server key to Apple auth calls.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md43\"></a>\n[2.6.0] - 2020-09-21</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md44\"></a>\nAdded</h2>\n<ul>\n<li>Added Apple single sign-on support.</li>\n<li>Added Steam single sign-on support.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md45\"></a>\nFixed</h2>\n<ul>\n<li>Fixed serialization of HTTP API error messages.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md46\"></a>\nChanged</h2>\n<ul>\n<li>Silenced a noisy but benign exception related to web socket connections.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md47\"></a>\n[2.5.0] - 2020-08-12</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md48\"></a>\nAdded</h2>\n<ul>\n<li>Add parsing support for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console API to the code generator.</li>\n<li>Add support for emitting custom events to the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.</li>\n<li>Add ban and demote API to the client.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md49\"></a>\nChanged</h2>\n<ul>\n<li>Update TinyJson packaged dependency to the '01c586d' commit.</li>\n<li>Remove usage of \"System.Diagnostic.Tracing\" from the codebase. This improves compatibility with Unity engine.</li>\n<li>Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md50\"></a>\n[2.4.0] - 2020-05-04 :star:</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md51\"></a>\nAdded</h2>\n<ul>\n<li>New ListStorageObjectsAsync method and marked ListStorageObjects as obsolete.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md52\"></a>\nChanged</h2>\n<ul>\n<li>ListUsersStorageObjectsAsync now uses default arguments for optional inputs.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md53\"></a>\nFixed</h2>\n<ul>\n<li>Prevent InvalidOperationException caused when socket connect task is already completed.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md54\"></a>\n[2.3.1] - 2019-09-21</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md55\"></a>\nChanged</h2>\n<ul>\n<li>Use workaround for IPv6 bug in TcpClient with Mono runtime used with Unity engine.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md56\"></a>\nFixed</h2>\n<ul>\n<li>Add missing metadata to match join message.</li>\n<li>Add discrete channel identifier in all channel related messages.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md57\"></a>\n[2.3.0] - 2019-09-02</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md58\"></a>\nAdded</h2>\n<ul>\n<li>Follow users by username for status updates.</li>\n<li>Decode session variables from the auth token.</li>\n<li>Paginate friends, groups, and user's group listings.</li>\n<li>Filter friends, groups, and user's group listings.</li>\n<li>Send session variables with authenticate requests.</li>\n<li>Socket messages now use a send timeout of 15 seconds to write to the buffer.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md59\"></a>\nChanged</h2>\n<ul>\n<li>Increase the default socket timeout to 30 seconds.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md60\"></a>\nFixed</h2>\n<ul>\n<li>Use the connect timeout value in native socket connect attempts.</li>\n<li>Link the token source across socket connect and close tasks.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md61\"></a>\n[2.2.2] - 2019-07-02</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md62\"></a>\nChanged</h2>\n<ul>\n<li>Don't synchronize the socket receive with the current thread context.</li>\n<li>Remove workaround for Mono runtime usage with newer TLS negotation.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md63\"></a>\nFixed</h2>\n<ul>\n<li>Resolve deadlock in socket dispose with synchronization context.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md64\"></a>\n[2.2.1] - 2019-06-19</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md65\"></a>\nAdded</h2>\n<ul>\n<li>New comparison methods on some domain types.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md66\"></a>\nChanged</h2>\n<ul>\n<li>When an auth token is decoded into a session but is null or empty now return null.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md67\"></a>\nFixed</h2>\n<ul>\n<li>Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.</li>\n<li>Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.</li>\n<li>Restored missing helper object with storage writes.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md68\"></a>\n[2.2.0] - 2019-06-06</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md69\"></a>\nAdded</h2>\n<ul>\n<li>Add tournaments API.</li>\n<li>Add leaderboards around owner API.</li>\n<li>Provide more overload methods to the socket object for simpler usage.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md70\"></a>\nChanged</h2>\n<ul>\n<li>Update TinyJson packaged dependency to latest version.</li>\n<li>Replace WebSocketListener with a new socket library.</li>\n<li>Flatten use of Tasks in method responses.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md71\"></a>\nFixed</h2>\n<ul>\n<li>Logger is now initialized correctly with socket debugging.</li>\n<li>Stream data state is correctly deserialized from socket messages.</li>\n<li>Fix callback ID on chat and match leave messages.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md72\"></a>\n[2.1.0] - 2018-08-17</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md73\"></a>\nAdded</h2>\n<ul>\n<li>Detect socket message encodings.</li>\n<li>All authenticate methods can now pass in username and create options.</li>\n<li>Support gzip compress/decompress on ApiClient methods.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md74\"></a>\nChanged</h2>\n<ul>\n<li>Update the code generator to handle POST/DELETE query params.</li>\n<li>Match listings can now pass through <code>null</code> to indicate no filters.</li>\n<li>ApiClient exceptions now contain HTTP status codes.</li>\n<li>Update lowlevel websocket driver due to performance issues on AOT targets like iOS with Unity.</li>\n<li>Disable request decompression by default due to Unity+Android issue.</li>\n</ul>\n<h2><a class=\"anchor\" id=\"autotoc_md75\"></a>\nFixed</h2>\n<ul>\n<li>Reuse the HTTP client across all methods.</li>\n</ul>\n<h1><a class=\"anchor\" id=\"autotoc_md76\"></a>\n[2.0.0] - 2018-06-18</h1>\n<h2><a class=\"anchor\" id=\"autotoc_md77\"></a>\nAdded</h2>\n<ul>\n<li>Initial public release.</li>\n</ul>\n<p >This version starts at 2.0 to match the initial server version it supports. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__r_e_a_d_m_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama .NET</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__r_e_a_d_m_e.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> .NET </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><h1><a class=\"anchor\" id=\"autotoc_md84\"></a>\nNakama</h1>\n<blockquote class=\"doxtable\">\n<p >&zwj;.NET client for <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server written in C#. </p>\n</blockquote>\n<p><a href=\"https://github.com/heroiclabs/nakama\">Nakama</a> is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much <a href=\"https://heroiclabs.com\">more</a>.</p>\n<p >This client implements the full API and socket options with the server. It's written in C# with minimal dependencies to support Unity, Xamarin, Godot, XNA, and other engines and frameworks.</p>\n<p >Full documentation is online - <a href=\"https://heroiclabs.com/docs\">https://heroiclabs.com/docs</a></p>\n<h2><a class=\"anchor\" id=\"autotoc_md85\"></a>\nGetting Started</h2>\n<p >You'll need to setup the server and database before you can connect with the client. The simplest way is to use Docker but have a look at the <a href=\"https://github.com/heroiclabs/nakama#getting-started\">server documentation</a> for other options.</p>\n<ol type=\"1\">\n<li>Install and run the servers. Follow these <a href=\"https://heroiclabs.com/docs/install-docker-quickstart\">instructions</a>.</li>\n<li>Download the client from the <a href=\"https://github.com/heroiclabs/nakama-dotnet/releases\">releases page</a> and import it into your project. You can also build from source.</li>\n<li><p class=\"startli\">Use the connection credentials to build a client object.</p>\n<div class=\"fragment\"><div class=\"line\"><span class=\"comment\">// using Nakama;</span></div>\n<div class=\"line\"><span class=\"keyword\">const</span> <span class=\"keywordtype\">string</span> scheme = <span class=\"stringliteral\">&quot;http&quot;</span>;</div>\n<div class=\"line\"><span class=\"keyword\">const</span> <span class=\"keywordtype\">string</span> host = <span class=\"stringliteral\">&quot;127.0.0.1&quot;</span>;</div>\n<div class=\"line\"><span class=\"keyword\">const</span> <span class=\"keywordtype\">int</span> port = 7350;</div>\n<div class=\"line\"><span class=\"keyword\">const</span> <span class=\"keywordtype\">string</span> serverKey = <span class=\"stringliteral\">&quot;defaultkey&quot;</span>;</div>\n<div class=\"line\">var client = <span class=\"keyword\">new</span> Client(scheme, host, port, serverKey);</div>\n</div><!-- fragment --></li>\n</ol>\n<h2><a class=\"anchor\" id=\"autotoc_md86\"></a>\nUsage</h2>\n<p >The client object has many methods to execute various features in the server or open realtime socket connections with the server.</p>\n<h3><a class=\"anchor\" id=\"autotoc_md87\"></a>\nAuthenticate</h3>\n<p >There's a variety of ways to <a href=\"https://heroiclabs.com/docs/authentication\">authenticate</a> with the server. Authentication can create a user if they don't already exist with those credentials. It's also easy to authenticate with a social profile from Google Play Games, Facebook, Game Center, etc.</p>\n<div class=\"fragment\"><div class=\"line\">var email = <span class=\"stringliteral\">&quot;super@heroes.com&quot;</span>;</div>\n<div class=\"line\">var password = <span class=\"stringliteral\">&quot;batsignal&quot;</span>;</div>\n<div class=\"line\">var session = await client.AuthenticateEmailAsync(email, password);</div>\n<div class=\"line\">System.Console.WriteLine(session);</div>\n</div><!-- fragment --><h3><a class=\"anchor\" id=\"autotoc_md88\"></a>\nSessions</h3>\n<p >When authenticated the server responds with an auth token (JWT) which contains useful properties and gets deserialized into a <code>Session</code> object.</p>\n<div class=\"fragment\"><div class=\"line\">System.Console.WriteLine(session.AuthToken); <span class=\"comment\">// raw JWT token</span></div>\n<div class=\"line\">System.Console.WriteLine(session.RefreshToken); <span class=\"comment\">// raw JWT token.</span></div>\n<div class=\"line\">System.Console.WriteLine(session.UserId);</div>\n<div class=\"line\">System.Console.WriteLine(session.Username);</div>\n<div class=\"line\">System.Console.WriteLine(<span class=\"stringliteral\">&quot;Session has expired: {0}&quot;</span>, session.IsExpired);</div>\n<div class=\"line\">System.Console.WriteLine(<span class=\"stringliteral\">&quot;Session expires at: {0}&quot;</span>, session.ExpireTime);</div>\n</div><!-- fragment --><p >It is recommended to store the auth token from the session and check at startup if it has expired. If the token has expired you must reauthenticate. The expiry time of the token can be changed as a setting in the server.</p>\n<div class=\"fragment\"><div class=\"line\">var authToken = <span class=\"stringliteral\">&quot;restored from somewhere&quot;</span>;</div>\n<div class=\"line\">var refreshToken = <span class=\"stringliteral\">&quot;restored from somewhere&quot;</span>;</div>\n<div class=\"line\">var session = Session.Restore(authToken, refreshToken);</div>\n<div class=\"line\"> </div>\n<div class=\"line\"><span class=\"comment\">// Check whether a session is close to expiry.</span></div>\n<div class=\"line\"><span class=\"keywordflow\">if</span> (session.HasExpired(DateTime.UtcNow.AddDays(1)))</div>\n<div class=\"line\">{</div>\n<div class=\"line\">    <span class=\"keywordflow\">try</span></div>\n<div class=\"line\">    {</div>\n<div class=\"line\">        session = await client.SessionRefreshAsync(session);</div>\n<div class=\"line\">    }</div>\n<div class=\"line\">    <span class=\"keywordflow\">catch</span> (ApiResponseException e)</div>\n<div class=\"line\">    {</div>\n<div class=\"line\">        System.Console.WriteLine(<span class=\"stringliteral\">&quot;Session can no longer be refreshed. Must reauthenticate!&quot;</span>);</div>\n<div class=\"line\">    }</div>\n<div class=\"line\">}</div>\n</div><!-- fragment --><p >:warning: NOTE: The length of the lifetime of a session can be set on the server with the \"--session.token_expiry_sec\" command flag argument. The lifetime of the refresh token for a session can be set on the server with the \"--session.refresh_token_expiry_sec\" command flag.</p>\n<h3><a class=\"anchor\" id=\"autotoc_md89\"></a>\nRequests</h3>\n<p >The client includes lots of builtin APIs for various features of the game server. These can be accessed with the async methods. It can also call custom logic in RPC functions on the server. These can also be executed with a socket object.</p>\n<p >All requests are sent with a session object which authorizes the client.</p>\n<div class=\"fragment\"><div class=\"line\">var account = await client.GetAccountAsync(session);</div>\n<div class=\"line\">System.Console.WriteLine(account.User.Id);</div>\n<div class=\"line\">System.Console.WriteLine(account.User.Username);</div>\n<div class=\"line\">System.Console.WriteLine(account.Wallet);</div>\n</div><!-- fragment --><p >Requests can be supplied with a retry configurations in cases of transient network or server errors.</p>\n<p >A single configuration can be used to control all request retry behavior:</p>\n<div class=\"fragment\"><div class=\"line\">var retryConfiguration = <span class=\"keyword\">new</span> RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate { System.Console.Writeline(<span class=\"stringliteral\">&quot;about to retry.&quot;</span>); });</div>\n<div class=\"line\"> </div>\n<div class=\"line\">client.GlobalRetryConfiguration = retryConfiguration;</div>\n<div class=\"line\">var account = await client.GetAccountAsync(session);</div>\n</div><!-- fragment --><p >Or, the configuration can be supplied on a per-request basis:</p>\n<div class=\"fragment\"><div class=\"line\">var retryConfiguration = <span class=\"keyword\">new</span> RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate { System.Console.Writeline(<span class=\"stringliteral\">&quot;about to retry.&quot;</span>); });</div>\n<div class=\"line\"> </div>\n<div class=\"line\">var account = await client.GetAccountAsync(session, retryConfiguration);</div>\n</div><!-- fragment --><p >Per-request retry configurations override the global retry configuration.</p>\n<p >Requests also can be supplied with a cancellation token if you need to cancel them mid-flight:</p>\n<div class=\"fragment\"><div class=\"line\">var canceller = <span class=\"keyword\">new</span> CancellationTokenSource();</div>\n<div class=\"line\">var account = await client.GetAccountAsync(session, retryConfiguration: <span class=\"keyword\">null</span>, canceller);</div>\n<div class=\"line\"> </div>\n<div class=\"line\">await Task.Delay(25);</div>\n<div class=\"line\"> </div>\n<div class=\"line\">canceller.Cancel(); <span class=\"comment\">// will raise a TaskCanceledException</span></div>\n</div><!-- fragment --><h3><a class=\"anchor\" id=\"autotoc_md90\"></a>\nSocket</h3>\n<p >The client can create one or more sockets with the server. Each socket can have it's own event listeners registered for responses received from the server.</p>\n<div class=\"fragment\"><div class=\"line\">var socket = Socket.From(client);</div>\n<div class=\"line\">socket.Connected += () =&gt;</div>\n<div class=\"line\">{</div>\n<div class=\"line\">    System.Console.WriteLine(<span class=\"stringliteral\">&quot;Socket connected.&quot;</span>);</div>\n<div class=\"line\">};</div>\n<div class=\"line\">socket.Closed += () =&gt;</div>\n<div class=\"line\">{</div>\n<div class=\"line\">    System.Console.WriteLine(<span class=\"stringliteral\">&quot;Socket closed.&quot;</span>);</div>\n<div class=\"line\">};</div>\n<div class=\"line\">socket.ReceivedError += e =&gt; System.Console.WriteLine(e);</div>\n<div class=\"line\">await socket.ConnectAsync(session);</div>\n</div><!-- fragment --><h2><a class=\"anchor\" id=\"autotoc_md91\"></a>\nContribute</h2>\n<p >The development roadmap is managed as GitHub issues and pull requests are welcome. If you're interested to improve the code please open an issue to discuss the changes or drop in and discuss it in the <a href=\"https://forum.heroiclabs.com\">community forum</a>.</p>\n<h3><a class=\"anchor\" id=\"autotoc_md92\"></a>\nSource Builds</h3>\n<p >The codebase can be built with the <a href=\"https://docs.microsoft.com/en-us/dotnet/core/tools\">Dotnet CLI</a>. All dependencies are downloaded at build time with Nuget.</p>\n<div class=\"fragment\"><div class=\"line\">dotnet build src/Nakama/Nakama.csproj</div>\n</div><!-- fragment --><p >For release builds use:</p>\n<div class=\"fragment\"><div class=\"line\">dotnet build -c Release /p:AssemblyVersion=2.0.0.0 Nakama/Nakama.csproj</div>\n<div class=\"line\">// For Nuget packaging</div>\n<div class=\"line\">dotnet pack -p:AssemblyVersion=2.0.0.0 -p:PackageVersion=2.0.0 -c Release Nakama/Nakama.csproj</div>\n</div><!-- fragment --><h3><a class=\"anchor\" id=\"autotoc_md93\"></a>\nRun Tests</h3>\n<p >To run tests you will need to run the server and database. Most tests are written as integration tests which execute against the server. A quick approach we use with our test workflow is to use the Docker compose file described in the <a href=\"https://heroiclabs.com/docs/install-docker-quickstart\">documentation</a>.</p>\n<div class=\"fragment\"><div class=\"line\">docker-compose -f ./docker-compose-postgres.yml up</div>\n<div class=\"line\">dotnet test tests/Nakama.Tests/Nakama.Tests.csproj</div>\n</div><!-- fragment --><p >To run a specific test, pass the fully qualified name of the method to <code>dotnet test --filter</code>:</p>\n<div class=\"fragment\"><div class=\"line\">dotnet test --filter &quot;Nakama.Tests.Api.GroupTest.ShouldPromoteAndDemoteUsers&quot;</div>\n</div><!-- fragment --><p >If you'd like to attach a Visual Studio debugger to a test, set <code>VSTEST_HOST_DEBUG</code> to <code>true</code> in your shell environment and run <code>dotnet test</code>. Attach the debugger to the process identified by the console.</p>\n<h3><a class=\"anchor\" id=\"autotoc_md94\"></a>\nGenerate Docs</h3>\n<p >nakama-dotnet API docs are generated with Doxygen and deployed to GitHub pages.</p>\n<p >When changing the API comments, rerun Doxygen and commit the changes in <code>docs/*</code>.</p>\n<p >To run Doxygen:</p>\n<div class=\"fragment\"><div class=\"line\">brew install doxygen</div>\n<div class=\"line\">cd docs/</div>\n<div class=\"line\">doxygen</div>\n</div><!-- fragment --><h1><a class=\"anchor\" id=\"autotoc_md95\"></a>\nSatori</h1>\n<p >This repository also contains the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> client for use with the <a href=\"https://heroiclabs.com/satori/\">Satori Liveops Server</a>.</p>\n<p >It follows the same authentication patterns as <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> but is used for managing your live game via sending analytics events, updating properties, getting feature flags and experiments, and more.</p>\n<p >In order to run tests for <a class=\"el\" href=\"namespace_satori.html\">Satori</a>, create sample data via the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> console.</p>\n<p >Then run <code>dotnet test</code> from this directory.</p>\n<h1><a class=\"anchor\" id=\"autotoc_md96\"></a>\nLicenses</h1>\n<p >This project is licensed under the <a href=\"https://github.com/heroiclabs/nakama-dotnet/blob/master/LICENSE\">Apache-2 License</a>.</p>\n<h1><a class=\"anchor\" id=\"autotoc_md97\"></a>\nSpecial Thanks</h1>\n<p >Thanks to Alex Parker (@zanders3) for the excellent <a href=\"https://github.com/zanders3/json\">json</a> library and David Haig (@ninjasource) for <a href=\"https://github.com/ninjasource/Ninja.WebSockets\">Ninja.WebSockets</a>. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__r_e_l_e_a_s_e_i_n_s_t.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Release Instructions</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__r_e_l_e_a_s_e_i_n_s_t.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Release Instructions </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><p >These instructions guide the release process for new official <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> client SDK build and releases to <a href=\"https://www.nuget.org/packages/NakamaClient/\">Nuget</a>.</p>\n<h1><a class=\"anchor\" id=\"autotoc_md92\"></a>\nSteps</h1>\n<ol type=\"1\">\n<li>Update and tidy up the CHANGELOG.</li>\n<li>Run the test suite for the codebase. See the README for steps.</li>\n<li><p class=\"startli\">Create the release commit and tag it.</p>\n<div class=\"fragment\"><div class=\"line\">git add CHANGELOG</div>\n<div class=\"line\">git commit -m &quot;Nakama .NET &lt;version&gt; release.&quot;</div>\n<div class=\"line\">git tag -a &lt;version&gt; -m &quot;&lt;version&gt;&quot;</div>\n<div class=\"line\">git push origin &lt;version&gt; master</div>\n</div><!-- fragment --></li>\n<li><p class=\"startli\">Create a release build of the code.</p>\n<div class=\"fragment\"><div class=\"line\">dotnet build -c Release ./Nakama/Nakama.csproj</div>\n</div><!-- fragment --></li>\n<li>Create a release on GitHub: <a href=\"https://github.com/heroiclabs/nakama-dotnet/releases/new\">https://github.com/heroiclabs/nakama-dotnet/releases/new</a></li>\n<li>Copy the CHANGELOG section to the release notes. Upload the release DLL to be part of the GitHub release. Publish it.</li>\n<li><p class=\"startli\">Package and push the release to Nuget. Don't put a <code>v</code> prefix before the version number.</p>\n<div class=\"fragment\"><div class=\"line\">dotnet pack -p:AssemblyVersion=&lt;package-version&gt; -p:PackageVersion=&lt;package-version&gt; -c Release ./Nakama/Nakama.csproj</div>\n</div><!-- fragment --><div class=\"fragment\"><div class=\"line\">dotnet nuget push ./Nakama/bin/Release/NakamaClient.&lt;package-version&gt;.nupkg -k &quot;somekey&quot; -s https://api.nuget.org/v3/index.json</div>\n</div><!-- fragment --></li>\n<li><p class=\"startli\">Update CHANGELOG with section for new unreleased changes.</p>\n<div class=\"fragment\"><div class=\"line\">git add CHANGELOG.md</div>\n<div class=\"line\">git commit -m &quot;Set new development version.&quot;</div>\n<div class=\"line\">git push origin master</div>\n</div><!-- fragment --> </li>\n</ol>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md__satori__tests__r_e_a_d_m_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: README</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md__satori__tests__r_e_a_d_m_e.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">README </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"></div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/md_codegen__r_e_a_d_m_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: codegen</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('md_codegen__r_e_a_d_m_e.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div><div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">codegen </div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\"><blockquote class=\"doxtable\">\n<p >&zwj;A util tool to generate a client from the Swagger spec of <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>'s server API. </p>\n</blockquote>\n<h1><a class=\"anchor\" id=\"autotoc_md78\"></a>\nUsage</h1>\n<div class=\"fragment\"><div class=\"line\">go run main.go &quot;$GOPATH/src/github.com/heroiclabs/nakama/apigrpc/apigrpc.swagger.json&quot; &quot;Nakama&quot; &gt; ../Nakama/ApiClient.gen.cs</div>\n</div><!-- fragment --><h2><a class=\"anchor\" id=\"autotoc_md79\"></a>\nNakama Console API</h2>\n<p >To generate a client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Console, run the following:</p>\n<div class=\"fragment\"><div class=\"line\">go run main.go &quot;$GOPATH/src/github.com/heroiclabs/nakama/console/console.swagger.json&quot; &quot;NakamaConsole&quot; &gt; ../Nakama/Console/ConsoleClient.gen.cs</div>\n</div><!-- fragment --><h2><a class=\"anchor\" id=\"autotoc_md80\"></a>\nSatori API</h2>\n<p >To generate a client for <a class=\"el\" href=\"namespace_satori.html\">Satori</a>, run the following: </p><div class=\"fragment\"><div class=\"line\">go run main.go &quot;${SATORI}/api/satori.swagger.json&quot; &quot;Satori&quot; &gt; ../Satori/ApiClient.gen.cs</div>\n</div><!-- fragment --><h2><a class=\"anchor\" id=\"autotoc_md81\"></a>\nSatori Console API</h2>\n<p >To generate a client for the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> Console, run the following: </p><div class=\"fragment\"><div class=\"line\">go run main.go &quot;${SATORI}/console/console.swagger.json&quot; &quot;Satori&quot; &gt; ../Satori/ConsoleClient.gen.cs</div>\n</div><!-- fragment --><h2><a class=\"anchor\" id=\"autotoc_md82\"></a>\nRationale</h2>\n<p >We want to maintain a simple lean low level client within our C# client which has minimal dependencies so we built our own. This gives us complete control over the dependencies required and structure of the code generated.</p>\n<p >The generated code is designed to be supported within Unity engine, Xamarin, Godot engine, and other projects. It requires .NET4.5 framework, TinyJson, and uses <code>System.Threading.Tasks</code>.</p>\n<h2><a class=\"anchor\" id=\"autotoc_md83\"></a>\nLimitations</h2>\n<p >The code generator has <b>only</b> been checked against the Swagger specification generated for <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server. YMMV. </p>\n</div></div><!-- contents -->\n</div><!-- PageDoc -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/menu.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n */\nfunction initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) {\n  function makeTree(data,relPath) {\n    let result='';\n    if ('children' in data) {\n      result+='<ul>';\n      for (let i in data.children) {\n        let url;\n        const link = data.children[i].url;\n        if (link.substring(0,1)=='^') {\n          url = link.substring(1);\n        } else {\n          url = relPath+link;\n        }\n        result+='<li><a href=\"'+url+'\">'+\n                                data.children[i].text+'</a>'+\n                                makeTree(data.children[i],relPath)+'</li>';\n      }\n      result+='</ul>';\n    }\n    return result;\n  }\n  let searchBoxHtml;\n  if (searchEnabled) {\n    if (serverSide) {\n      searchBoxHtml='<div id=\"MSearchBox\" class=\"MSearchBoxInactive\">'+\n                 '<div class=\"left\">'+\n                  '<form id=\"FSearchBox\" action=\"'+relPath+searchPage+\n                    '\" method=\"get\"><span id=\"MSearchSelectExt\" class=\"search-icon\"></span>'+\n                  '<input type=\"text\" id=\"MSearchField\" name=\"query\" value=\"\" placeholder=\"'+search+\n                    '\" size=\"20\" accesskey=\"S\" onfocus=\"searchBox.OnSearchFieldFocus(true)\"'+\n                    ' onblur=\"searchBox.OnSearchFieldFocus(false)\"/>'+\n                  '</form>'+\n                 '</div>'+\n                 '<div class=\"right\"></div>'+\n                '</div>';\n    } else {\n      searchBoxHtml='<div id=\"MSearchBox\" class=\"MSearchBoxInactive\">'+\n                 '<span class=\"left\">'+\n                  '<span id=\"MSearchSelect\" class=\"search-icon\" onmouseover=\"return searchBox.OnSearchSelectShow()\"'+\n                     ' onmouseout=\"return searchBox.OnSearchSelectHide()\"><span class=\"search-icon-dropdown\"></span></span>'+\n                  '<input type=\"text\" id=\"MSearchField\" value=\"\" placeholder=\"'+search+\n                    '\" accesskey=\"S\" onfocus=\"searchBox.OnSearchFieldFocus(true)\" '+\n                    'onblur=\"searchBox.OnSearchFieldFocus(false)\" '+\n                    'onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>'+\n                 '</span>'+\n                 '<span class=\"right\"><a id=\"MSearchClose\" '+\n                  'href=\"javascript:searchBox.CloseResultsWindow()\">'+\n                  '<div id=\"MSearchCloseImg\" class=\"close-icon\"></div></a>'+\n                 '</span>'+\n                '</div>';\n    }\n  }\n\n  $('#main-nav').before('<div class=\"sm sm-dox\"><input id=\"main-menu-state\" type=\"checkbox\"/>'+\n                        '<label class=\"main-menu-btn\" for=\"main-menu-state\">'+\n                        '<span class=\"main-menu-btn-icon\"></span> '+\n                        'Toggle main menu visibility</label>'+\n                        '<span id=\"searchBoxPos1\" style=\"position:absolute;right:8px;top:8px;height:36px;\"></span>'+\n                        '</div>');\n  $('#main-nav').append(makeTree(menudata,relPath));\n  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');\n  $('#main-menu').append('<li id=\"searchBoxPos2\" style=\"float:right\"></li>');\n  const $mainMenuState = $('#main-menu-state');\n  let prevWidth = 0;\n  if ($mainMenuState.length) {\n    const initResizableIfExists = function() {\n      if (typeof initResizable==='function') initResizable(treeview);\n    }\n    // animate mobile menu\n    $mainMenuState.change(function() {\n      const $menu = $('#main-menu');\n      let options = { duration: 250, step: initResizableIfExists };\n      if (this.checked) {\n        options['complete'] = () => $menu.css('display', 'block');\n        $menu.hide().slideDown(options);\n      } else {\n        options['complete'] = () => $menu.css('display', 'none');\n        $menu.show().slideUp(options);\n      }\n    });\n    // set default menu visibility\n    const resetState = function() {\n      const $menu = $('#main-menu');\n      const newWidth = $(window).outerWidth();\n      if (newWidth!=prevWidth) {\n        if ($(window).outerWidth()<768) {\n          $mainMenuState.prop('checked',false); $menu.hide();\n          $('#searchBoxPos1').html(searchBoxHtml);\n          $('#searchBoxPos2').hide();\n        } else {\n          $menu.show();\n          $('#searchBoxPos1').empty();\n          $('#searchBoxPos2').html(searchBoxHtml);\n          $('#searchBoxPos2').show();\n        }\n        if (typeof searchBox!=='undefined') {\n          searchBox.CloseResultsWindow();\n        }\n        prevWidth = newWidth;\n      }\n    }\n    $(window).ready(function() { resetState(); initResizableIfExists(); });\n    $(window).resize(resetState);\n  }\n  $('#main-menu').smartmenus();\n}\n/* @license-end */\n"
  },
  {
    "path": "docs/html/menudata.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n*/\nvar menudata={children:[\n{text:\"Main Page\",url:\"index.html\"},\n{text:\"Related Pages\",url:\"pages.html\"},\n{text:\"Namespaces\",url:\"namespaces.html\",children:[\n{text:\"Namespace List\",url:\"namespaces.html\"},\n{text:\"Namespace Members\",url:\"namespacemembers.html\",children:[\n{text:\"All\",url:\"namespacemembers.html\"},\n{text:\"Functions\",url:\"namespacemembers_func.html\"},\n{text:\"Enumerations\",url:\"namespacemembers_enum.html\"}]}]},\n{text:\"Classes\",url:\"annotated.html\",children:[\n{text:\"Class List\",url:\"annotated.html\"},\n{text:\"Class Index\",url:\"classes.html\"},\n{text:\"Class Hierarchy\",url:\"hierarchy.html\"},\n{text:\"Class Members\",url:\"functions.html\",children:[\n{text:\"All\",url:\"functions.html\",children:[\n{text:\"a\",url:\"functions.html#index_a\"},\n{text:\"b\",url:\"functions_b.html#index_b\"},\n{text:\"c\",url:\"functions_c.html#index_c\"},\n{text:\"d\",url:\"functions_d.html#index_d\"},\n{text:\"e\",url:\"functions_e.html#index_e\"},\n{text:\"f\",url:\"functions_f.html#index_f\"},\n{text:\"g\",url:\"functions_g.html#index_g\"},\n{text:\"h\",url:\"functions_h.html#index_h\"},\n{text:\"i\",url:\"functions_i.html#index_i\"},\n{text:\"j\",url:\"functions_j.html#index_j\"},\n{text:\"k\",url:\"functions_k.html#index_k\"},\n{text:\"l\",url:\"functions_l.html#index_l\"},\n{text:\"m\",url:\"functions_m.html#index_m\"},\n{text:\"n\",url:\"functions_n.html#index_n\"},\n{text:\"o\",url:\"functions_o.html#index_o\"},\n{text:\"p\",url:\"functions_p.html#index_p\"},\n{text:\"r\",url:\"functions_r.html#index_r\"},\n{text:\"s\",url:\"functions_s.html#index_s\"},\n{text:\"t\",url:\"functions_t.html#index_t\"},\n{text:\"u\",url:\"functions_u.html#index_u\"},\n{text:\"v\",url:\"functions_v.html#index_v\"},\n{text:\"w\",url:\"functions_w.html#index_w\"}]},\n{text:\"Functions\",url:\"functions_func.html\",children:[\n{text:\"a\",url:\"functions_func.html#index_a\"},\n{text:\"b\",url:\"functions_func_b.html#index_b\"},\n{text:\"c\",url:\"functions_func_c.html#index_c\"},\n{text:\"d\",url:\"functions_func_d.html#index_d\"},\n{text:\"e\",url:\"functions_func_e.html#index_e\"},\n{text:\"f\",url:\"functions_func_f.html#index_f\"},\n{text:\"g\",url:\"functions_func_g.html#index_g\"},\n{text:\"h\",url:\"functions_func_h.html#index_h\"},\n{text:\"i\",url:\"functions_func_i.html#index_i\"},\n{text:\"j\",url:\"functions_func_j.html#index_j\"},\n{text:\"k\",url:\"functions_func_k.html#index_k\"},\n{text:\"l\",url:\"functions_func_l.html#index_l\"},\n{text:\"o\",url:\"functions_func_o.html#index_o\"},\n{text:\"p\",url:\"functions_func_p.html#index_p\"},\n{text:\"r\",url:\"functions_func_r.html#index_r\"},\n{text:\"s\",url:\"functions_func_s.html#index_s\"},\n{text:\"t\",url:\"functions_func_t.html#index_t\"},\n{text:\"u\",url:\"functions_func_u.html#index_u\"},\n{text:\"v\",url:\"functions_func_v.html#index_v\"},\n{text:\"w\",url:\"functions_func_w.html#index_w\"}]},\n{text:\"Variables\",url:\"functions_vars.html\"},\n{text:\"Properties\",url:\"functions_prop.html\",children:[\n{text:\"a\",url:\"functions_prop.html#index_a\"},\n{text:\"b\",url:\"functions_prop_b.html#index_b\"},\n{text:\"c\",url:\"functions_prop_c.html#index_c\"},\n{text:\"d\",url:\"functions_prop_d.html#index_d\"},\n{text:\"e\",url:\"functions_prop_e.html#index_e\"},\n{text:\"f\",url:\"functions_prop_f.html#index_f\"},\n{text:\"g\",url:\"functions_prop_g.html#index_g\"},\n{text:\"h\",url:\"functions_prop_h.html#index_h\"},\n{text:\"i\",url:\"functions_prop_i.html#index_i\"},\n{text:\"j\",url:\"functions_prop_j.html#index_j\"},\n{text:\"k\",url:\"functions_prop_k.html#index_k\"},\n{text:\"l\",url:\"functions_prop_l.html#index_l\"},\n{text:\"m\",url:\"functions_prop_m.html#index_m\"},\n{text:\"n\",url:\"functions_prop_n.html#index_n\"},\n{text:\"o\",url:\"functions_prop_o.html#index_o\"},\n{text:\"p\",url:\"functions_prop_p.html#index_p\"},\n{text:\"r\",url:\"functions_prop_r.html#index_r\"},\n{text:\"s\",url:\"functions_prop_s.html#index_s\"},\n{text:\"t\",url:\"functions_prop_t.html#index_t\"},\n{text:\"u\",url:\"functions_prop_u.html#index_u\"},\n{text:\"v\",url:\"functions_prop_v.html#index_v\"},\n{text:\"w\",url:\"functions_prop_w.html#index_w\"}]},\n{text:\"Events\",url:\"functions_evnt.html\",children:[\n{text:\"c\",url:\"functions_evnt.html#index_c\"},\n{text:\"p\",url:\"functions_evnt.html#index_p\"},\n{text:\"r\",url:\"functions_evnt.html#index_r\"}]}]}]},\n{text:\"Files\",url:\"files.html\",children:[\n{text:\"File List\",url:\"files.html\"}]}]}\n"
  },
  {
    "path": "docs/html/namespace_nakama.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Console\" id=\"r_Console\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_console.html\">Console</a></td></tr>\n<tr class=\"memitem:Ninja\" id=\"r_Ninja\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></td></tr>\n<tr class=\"memitem:TinyJson\" id=\"r_TinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\">TinyJson</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:ApiAccount\" id=\"r_ApiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccount</b></td></tr>\n<tr class=\"memitem:ApiAccountApple\" id=\"r_ApiAccountApple\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountApple</b></td></tr>\n<tr class=\"memitem:ApiAccountCustom\" id=\"r_ApiAccountCustom\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountCustom</b></td></tr>\n<tr class=\"memitem:ApiAccountDevice\" id=\"r_ApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountDevice</b></td></tr>\n<tr class=\"memitem:ApiAccountEmail\" id=\"r_ApiAccountEmail\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountEmail</b></td></tr>\n<tr class=\"memitem:ApiAccountFacebook\" id=\"r_ApiAccountFacebook\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountFacebook</b></td></tr>\n<tr class=\"memitem:ApiAccountFacebookInstantGame\" id=\"r_ApiAccountFacebookInstantGame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountFacebookInstantGame</b></td></tr>\n<tr class=\"memitem:ApiAccountGameCenter\" id=\"r_ApiAccountGameCenter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountGameCenter</b></td></tr>\n<tr class=\"memitem:ApiAccountGoogle\" id=\"r_ApiAccountGoogle\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountGoogle</b></td></tr>\n<tr class=\"memitem:ApiAccountSteam\" id=\"r_ApiAccountSteam\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountSteam</b></td></tr>\n<tr class=\"memitem:ApiChannelMessage\" id=\"r_ApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiChannelMessage</b></td></tr>\n<tr class=\"memitem:ApiChannelMessageList\" id=\"r_ApiChannelMessageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiChannelMessageList</b></td></tr>\n<tr class=\"memitem:ApiClient\" id=\"r_ApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> API. <br /></td></tr>\n<tr class=\"memitem:ApiCreateGroupRequest\" id=\"r_ApiCreateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiCreateGroupRequest</b></td></tr>\n<tr class=\"memitem:ApiDeleteStorageObjectId\" id=\"r_ApiDeleteStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiDeleteStorageObjectId</b></td></tr>\n<tr class=\"memitem:ApiDeleteStorageObjectsRequest\" id=\"r_ApiDeleteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiDeleteStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:ApiEvent\" id=\"r_ApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiEvent</b></td></tr>\n<tr class=\"memitem:ApiFriend\" id=\"r_ApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFriend</b></td></tr>\n<tr class=\"memitem:ApiFriendList\" id=\"r_ApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFriendList</b></td></tr>\n<tr class=\"memitem:ApiFriendsOfFriendsList\" id=\"r_ApiFriendsOfFriendsList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFriendsOfFriendsList</b></td></tr>\n<tr class=\"memitem:ApiGroup\" id=\"r_ApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiGroup</b></td></tr>\n<tr class=\"memitem:ApiGroupList\" id=\"r_ApiGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiGroupList</b></td></tr>\n<tr class=\"memitem:ApiGroupUserList\" id=\"r_ApiGroupUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiGroupUserList</b></td></tr>\n<tr class=\"memitem:ApiLeaderboardRecord\" id=\"r_ApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLeaderboardRecord</b></td></tr>\n<tr class=\"memitem:ApiLeaderboardRecordList\" id=\"r_ApiLeaderboardRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLeaderboardRecordList</b></td></tr>\n<tr class=\"memitem:ApiLinkSteamRequest\" id=\"r_ApiLinkSteamRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLinkSteamRequest</b></td></tr>\n<tr class=\"memitem:ApiListSubscriptionsRequest\" id=\"r_ApiListSubscriptionsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiListSubscriptionsRequest</b></td></tr>\n<tr class=\"memitem:ApiMatch\" id=\"r_ApiMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiMatch</b></td></tr>\n<tr class=\"memitem:ApiMatchList\" id=\"r_ApiMatchList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiMatchList</b></td></tr>\n<tr class=\"memitem:ApiMatchmakerCompletionStats\" id=\"r_ApiMatchmakerCompletionStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiMatchmakerCompletionStats</b></td></tr>\n<tr class=\"memitem:ApiMatchmakerStats\" id=\"r_ApiMatchmakerStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiMatchmakerStats</b></td></tr>\n<tr class=\"memitem:ApiNotification\" id=\"r_ApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiNotification</b></td></tr>\n<tr class=\"memitem:ApiNotificationList\" id=\"r_ApiNotificationList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiNotificationList</b></td></tr>\n<tr class=\"memitem:ApiParty\" id=\"r_ApiParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiParty</b></td></tr>\n<tr class=\"memitem:ApiPartyList\" id=\"r_ApiPartyList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiPartyList</b></td></tr>\n<tr class=\"memitem:ApiReadStorageObjectId\" id=\"r_ApiReadStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiReadStorageObjectId</b></td></tr>\n<tr class=\"memitem:ApiReadStorageObjectsRequest\" id=\"r_ApiReadStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiReadStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:ApiResponseException\" id=\"r_ApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_api_response_exception.html\">ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_nakama_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ApiRpc\" id=\"r_ApiRpc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiRpc</b></td></tr>\n<tr class=\"memitem:ApiSession\" id=\"r_ApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiSession</b></td></tr>\n<tr class=\"memitem:ApiSessionLogoutRequest\" id=\"r_ApiSessionLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiSessionLogoutRequest</b></td></tr>\n<tr class=\"memitem:ApiSessionRefreshRequest\" id=\"r_ApiSessionRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiSessionRefreshRequest</b></td></tr>\n<tr class=\"memitem:ApiStorageObject\" id=\"r_ApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObject</b></td></tr>\n<tr class=\"memitem:ApiStorageObjectAck\" id=\"r_ApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObjectAck</b></td></tr>\n<tr class=\"memitem:ApiStorageObjectAcks\" id=\"r_ApiStorageObjectAcks\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObjectAcks</b></td></tr>\n<tr class=\"memitem:ApiStorageObjectList\" id=\"r_ApiStorageObjectList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObjectList</b></td></tr>\n<tr class=\"memitem:ApiStorageObjects\" id=\"r_ApiStorageObjects\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObjects</b></td></tr>\n<tr class=\"memitem:ApiSubscriptionList\" id=\"r_ApiSubscriptionList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiSubscriptionList</b></td></tr>\n<tr class=\"memitem:ApiTournament\" id=\"r_ApiTournament\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiTournament</b></td></tr>\n<tr class=\"memitem:ApiTournamentList\" id=\"r_ApiTournamentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiTournamentList</b></td></tr>\n<tr class=\"memitem:ApiTournamentRecordList\" id=\"r_ApiTournamentRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiTournamentRecordList</b></td></tr>\n<tr class=\"memitem:ApiUpdateAccountRequest\" id=\"r_ApiUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUpdateAccountRequest</b></td></tr>\n<tr class=\"memitem:ApiUpdateGroupRequest\" id=\"r_ApiUpdateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUpdateGroupRequest</b></td></tr>\n<tr class=\"memitem:ApiUser\" id=\"r_ApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUser</b></td></tr>\n<tr class=\"memitem:ApiUserGroupList\" id=\"r_ApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUserGroupList</b></td></tr>\n<tr class=\"memitem:ApiUsers\" id=\"r_ApiUsers\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUsers</b></td></tr>\n<tr class=\"memitem:ApiValidatedPurchase\" id=\"r_ApiValidatedPurchase\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatedPurchase</b></td></tr>\n<tr class=\"memitem:ApiValidatedSubscription\" id=\"r_ApiValidatedSubscription\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatedSubscription</b></td></tr>\n<tr class=\"memitem:ApiValidatePurchaseAppleRequest\" id=\"r_ApiValidatePurchaseAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatePurchaseAppleRequest</b></td></tr>\n<tr class=\"memitem:ApiValidatePurchaseFacebookInstantRequest\" id=\"r_ApiValidatePurchaseFacebookInstantRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatePurchaseFacebookInstantRequest</b></td></tr>\n<tr class=\"memitem:ApiValidatePurchaseGoogleRequest\" id=\"r_ApiValidatePurchaseGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatePurchaseGoogleRequest</b></td></tr>\n<tr class=\"memitem:ApiValidatePurchaseHuaweiRequest\" id=\"r_ApiValidatePurchaseHuaweiRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatePurchaseHuaweiRequest</b></td></tr>\n<tr class=\"memitem:ApiValidatePurchaseResponse\" id=\"r_ApiValidatePurchaseResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidatePurchaseResponse</b></td></tr>\n<tr class=\"memitem:ApiValidateSubscriptionAppleRequest\" id=\"r_ApiValidateSubscriptionAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidateSubscriptionAppleRequest</b></td></tr>\n<tr class=\"memitem:ApiValidateSubscriptionGoogleRequest\" id=\"r_ApiValidateSubscriptionGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidateSubscriptionGoogleRequest</b></td></tr>\n<tr class=\"memitem:ApiValidateSubscriptionResponse\" id=\"r_ApiValidateSubscriptionResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiValidateSubscriptionResponse</b></td></tr>\n<tr class=\"memitem:ApiWriteStorageObject\" id=\"r_ApiWriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiWriteStorageObject</b></td></tr>\n<tr class=\"memitem:ApiWriteStorageObjectsRequest\" id=\"r_ApiWriteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiWriteStorageObjectsRequest</b></td></tr>\n<tr class=\"memitem:Channel\" id=\"r_Channel\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Channel</b></td></tr>\n<tr class=\"memitem:ChannelJoinMessage\" id=\"r_ChannelJoinMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelJoinMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a channel join message to the server. <br /></td></tr>\n<tr class=\"memitem:ChannelLeaveMessage\" id=\"r_ChannelLeaveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelLeaveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A leave message to a chat channel. <br /></td></tr>\n<tr class=\"memitem:ChannelMessageAck\" id=\"r_ChannelMessageAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelMessageAck</b></td></tr>\n<tr class=\"memitem:ChannelPresenceEvent\" id=\"r_ChannelPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelPresenceEvent</b></td></tr>\n<tr class=\"memitem:ChannelRemoveMessage\" id=\"r_ChannelRemoveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelRemoveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove a message from a chat channel. <br /></td></tr>\n<tr class=\"memitem:ChannelSendMessage\" id=\"r_ChannelSendMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelSendMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a chat message to a channel on the server. <br /></td></tr>\n<tr class=\"memitem:ChannelUpdateMessage\" id=\"r_ChannelUpdateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ChannelUpdateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a chat message which has been sent to a channel. <br /></td></tr>\n<tr class=\"memitem:Client\" id=\"r_Client\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a></td></tr>\n<tr class=\"memitem:FriendsOfFriendsListFriendOfFriend\" id=\"r_FriendsOfFriendsListFriendOfFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FriendsOfFriendsListFriendOfFriend</b></td></tr>\n<tr class=\"memitem:GroupUserListGroupUser\" id=\"r_GroupUserListGroupUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GroupUserListGroupUser</b></td></tr>\n<tr class=\"memitem:GZipContent\" id=\"r_GZipContent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GZipContent</b></td></tr>\n<tr class=\"memitem:GZipHttpClientHandler\" id=\"r_GZipHttpClientHandler\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GZipHttpClientHandler</b></td></tr>\n<tr class=\"memitem:HttpRequestAdapter\" id=\"r_HttpRequestAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_http_request_adapter.html\">HttpRequestAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">HTTP Request adapter which uses the .NET HttpClient to send requests.  <a href=\"class_nakama_1_1_http_request_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccount\" id=\"r_IApiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account.html\">IApiAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user with additional account details. Always the current user.  <a href=\"interface_nakama_1_1_i_api_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountApple\" id=\"r_IApiAccountApple\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_apple.html\">IApiAccountApple</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Apple Sign In token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_apple.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountCustom\" id=\"r_IApiAccountCustom\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_custom.html\">IApiAccountCustom</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a custom ID to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_custom.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountDevice\" id=\"r_IApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_device.html\">IApiAccountDevice</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a device to the server. Used with authenticate/link/unlink and user.  <a href=\"interface_nakama_1_1_i_api_account_device.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountEmail\" id=\"r_IApiAccountEmail\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_email.html\">IApiAccountEmail</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send an email with password to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_email.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountFacebook\" id=\"r_IApiAccountFacebook\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook.html\">IApiAccountFacebook</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_facebook.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountFacebookInstantGame\" id=\"r_IApiAccountFacebookInstantGame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\">IApiAccountFacebookInstantGame</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountGameCenter\" id=\"r_IApiAccountGameCenter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_game_center.html\">IApiAccountGameCenter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink. <a href=\"https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign\">https://developer.apple.com/documentation/gamekit/gklocalplayer/1515407-generateidentityverificationsign</a>.  <a href=\"interface_nakama_1_1_i_api_account_game_center.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountGoogle\" id=\"r_IApiAccountGoogle\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_google.html\">IApiAccountGoogle</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Google token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_google.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAccountSteam\" id=\"r_IApiAccountSteam\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_account_steam.html\">IApiAccountSteam</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a Steam token to the server. Used with authenticate/link/unlink.  <a href=\"interface_nakama_1_1_i_api_account_steam.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiChannelMessage\" id=\"r_IApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message.html\">IApiChannelMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A message sent on a channel.  <a href=\"interface_nakama_1_1_i_api_channel_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiChannelMessageList\" id=\"r_IApiChannelMessageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_channel_message_list.html\">IApiChannelMessageList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of channel messages, usually a result of a list operation.  <a href=\"interface_nakama_1_1_i_api_channel_message_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiCreateGroupRequest\" id=\"r_IApiCreateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_create_group_request.html\">IApiCreateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a group with the current user as owner.  <a href=\"interface_nakama_1_1_i_api_create_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiDeleteStorageObjectId\" id=\"r_IApiDeleteStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html\">IApiDeleteStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to delete.  <a href=\"interface_nakama_1_1_i_api_delete_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiDeleteStorageObjectsRequest\" id=\"r_IApiDeleteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\">IApiDeleteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch delete storage objects.  <a href=\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiEvent\" id=\"r_IApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_event.html\">IApiEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents an event to be passed through the server to registered event handlers.  <a href=\"interface_nakama_1_1_i_api_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFriend\" id=\"r_IApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend.html\">IApiFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a user.  <a href=\"interface_nakama_1_1_i_api_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFriendList\" id=\"r_IApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friend_list.html\">IApiFriendList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more friends of the user.  <a href=\"interface_nakama_1_1_i_api_friend_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFriendsOfFriendsList\" id=\"r_IApiFriendsOfFriendsList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html\">IApiFriendsOfFriendsList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A List of friends of friends.  <a href=\"interface_nakama_1_1_i_api_friends_of_friends_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiGroup\" id=\"r_IApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group.html\">IApiGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A group in the server.  <a href=\"interface_nakama_1_1_i_api_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiGroupList\" id=\"r_IApiGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_list.html\">IApiGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">One or more groups returned from a listing operation.  <a href=\"interface_nakama_1_1_i_api_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiGroupUserList\" id=\"r_IApiGroupUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_group_user_list.html\">IApiGroupUserList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users belonging to a group, along with their role.  <a href=\"interface_nakama_1_1_i_api_group_user_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLeaderboardRecord\" id=\"r_IApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a complete leaderboard record with all scores and associated metadata.  <a href=\"interface_nakama_1_1_i_api_leaderboard_record.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLeaderboardRecordList\" id=\"r_IApiLeaderboardRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html\">IApiLeaderboardRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  <a href=\"interface_nakama_1_1_i_api_leaderboard_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLinkSteamRequest\" id=\"r_IApiLinkSteamRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_link_steam_request.html\">IApiLinkSteamRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Link Steam to the current user's account.  <a href=\"interface_nakama_1_1_i_api_link_steam_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiListSubscriptionsRequest\" id=\"r_IApiListSubscriptionsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html\">IApiListSubscriptionsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List user subscriptions.  <a href=\"interface_nakama_1_1_i_api_list_subscriptions_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiMatch\" id=\"r_IApiMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match.html\">IApiMatch</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a realtime match.  <a href=\"interface_nakama_1_1_i_api_match.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiMatchList\" id=\"r_IApiMatchList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_match_list.html\">IApiMatchList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of realtime matches.  <a href=\"interface_nakama_1_1_i_api_match_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiMatchmakerCompletionStats\" id=\"r_IApiMatchmakerCompletionStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\">IApiMatchmakerCompletionStats</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Matchmaker ticket completion stats.  <a href=\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiMatchmakerStats\" id=\"r_IApiMatchmakerStats\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_matchmaker_stats.html\">IApiMatchmakerStats</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Matchmaker stats.  <a href=\"interface_nakama_1_1_i_api_matchmaker_stats.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiNotification\" id=\"r_IApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification.html\">IApiNotification</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A notification in the server.  <a href=\"interface_nakama_1_1_i_api_notification.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiNotificationList\" id=\"r_IApiNotificationList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_notification_list.html\">IApiNotificationList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more notifications.  <a href=\"interface_nakama_1_1_i_api_notification_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiParty\" id=\"r_IApiParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party.html\">IApiParty</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_api_party.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiPartyList\" id=\"r_IApiPartyList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_party_list.html\">IApiPartyList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of realtime matches.  <a href=\"interface_nakama_1_1_i_api_party_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiReadStorageObjectId\" id=\"r_IApiReadStorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_object_id.html\">IApiReadStorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Storage objects to get.  <a href=\"interface_nakama_1_1_i_api_read_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiReadStorageObjectsRequest\" id=\"r_IApiReadStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html\">IApiReadStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch get storage objects.  <a href=\"interface_nakama_1_1_i_api_read_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiRpc\" id=\"r_IApiRpc\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_rpc.html\">IApiRpc</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Execute an Lua function on the server.  <a href=\"interface_nakama_1_1_i_api_rpc.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiSession\" id=\"r_IApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session.html\">IApiSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user's session used to authenticate messages.  <a href=\"interface_nakama_1_1_i_api_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiSessionLogoutRequest\" id=\"r_IApiSessionLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_logout_request.html\">IApiSessionLogoutRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  <a href=\"interface_nakama_1_1_i_api_session_logout_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiSessionRefreshRequest\" id=\"r_IApiSessionRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_session_refresh_request.html\">IApiSessionRefreshRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server with a refresh token.  <a href=\"interface_nakama_1_1_i_api_session_refresh_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObject\" id=\"r_IApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object.html\">IApiStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object within the storage engine.  <a href=\"interface_nakama_1_1_i_api_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObjectAck\" id=\"r_IApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A storage acknowledgement.  <a href=\"interface_nakama_1_1_i_api_storage_object_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObjectAcks\" id=\"r_IApiStorageObjectAcks\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_acks.html\">IApiStorageObjectAcks</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of acknowledgements for the storage object write.  <a href=\"interface_nakama_1_1_i_api_storage_object_acks.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObjectList\" id=\"r_IApiStorageObjectList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_object_list.html\">IApiStorageObjectList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects.  <a href=\"interface_nakama_1_1_i_api_storage_object_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObjects\" id=\"r_IApiStorageObjects\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_storage_objects.html\">IApiStorageObjects</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Batch of storage objects.  <a href=\"interface_nakama_1_1_i_api_storage_objects.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiSubscriptionList\" id=\"r_IApiSubscriptionList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_subscription_list.html\">IApiSubscriptionList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of validated subscriptions stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_api_subscription_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiTournament\" id=\"r_IApiTournament\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament.html\">IApiTournament</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A tournament on the server.  <a href=\"interface_nakama_1_1_i_api_tournament.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiTournamentList\" id=\"r_IApiTournamentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_list.html\">IApiTournamentList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of tournaments.  <a href=\"interface_nakama_1_1_i_api_tournament_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiTournamentRecordList\" id=\"r_IApiTournamentRecordList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_tournament_record_list.html\">IApiTournamentRecordList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A set of tournament records which may be part of a tournament records page or a batch of individual records.  <a href=\"interface_nakama_1_1_i_api_tournament_record_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUpdateAccountRequest\" id=\"r_IApiUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_account_request.html\">IApiUpdateAccountRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update a user's account details.  <a href=\"interface_nakama_1_1_i_api_update_account_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUpdateGroupRequest\" id=\"r_IApiUpdateGroupRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_update_group_request.html\">IApiUpdateGroupRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update fields in a given group.  <a href=\"interface_nakama_1_1_i_api_update_group_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUser\" id=\"r_IApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user.html\">IApiUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user in the server.  <a href=\"interface_nakama_1_1_i_api_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUserGroupList\" id=\"r_IApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_user_group_list.html\">IApiUserGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of groups belonging to a user, along with the user's role in each group.  <a href=\"interface_nakama_1_1_i_api_user_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUsers\" id=\"r_IApiUsers\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_users.html\">IApiUsers</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more users.  <a href=\"interface_nakama_1_1_i_api_users.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatedPurchase\" id=\"r_IApiValidatedPurchase\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_purchase.html\">IApiValidatedPurchase</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validated Purchase stored by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_api_validated_purchase.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatedSubscription\" id=\"r_IApiValidatedSubscription\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validated_subscription.html\">IApiValidatedSubscription</a></td></tr>\n<tr class=\"memitem:IApiValidatePurchaseAppleRequest\" id=\"r_IApiValidatePurchaseAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\">IApiValidatePurchaseAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple IAP Purchases validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatePurchaseFacebookInstantRequest\" id=\"r_IApiValidatePurchaseFacebookInstantRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\">IApiValidatePurchaseFacebookInstantRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Facebook Instant IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatePurchaseGoogleRequest\" id=\"r_IApiValidatePurchaseGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\">IApiValidatePurchaseGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatePurchaseHuaweiRequest\" id=\"r_IApiValidatePurchaseHuaweiRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\">IApiValidatePurchaseHuaweiRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Huawei IAP Purchase validation request.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidatePurchaseResponse\" id=\"r_IApiValidatePurchaseResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_purchase_response.html\">IApiValidatePurchaseResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate IAP response.  <a href=\"interface_nakama_1_1_i_api_validate_purchase_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidateSubscriptionAppleRequest\" id=\"r_IApiValidateSubscriptionAppleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\">IApiValidateSubscriptionAppleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Apple Subscription validation request.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidateSubscriptionGoogleRequest\" id=\"r_IApiValidateSubscriptionGoogleRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\">IApiValidateSubscriptionGoogleRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Google Subscription validation request.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiValidateSubscriptionResponse\" id=\"r_IApiValidateSubscriptionResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_validate_subscription_response.html\">IApiValidateSubscriptionResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validate Subscription response.  <a href=\"interface_nakama_1_1_i_api_validate_subscription_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiWriteStorageObject\" id=\"r_IApiWriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_object.html\">IApiWriteStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The object to store.  <a href=\"interface_nakama_1_1_i_api_write_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiWriteStorageObjectsRequest\" id=\"r_IApiWriteStorageObjectsRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html\">IApiWriteStorageObjectsRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write objects to the storage engine.  <a href=\"interface_nakama_1_1_i_api_write_storage_objects_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IChannel\" id=\"r_IChannel\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel.html\">IChannel</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A chat channel on the server.  <a href=\"interface_nakama_1_1_i_channel.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IChannelMessageAck\" id=\"r_IChannelMessageAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_message_ack.html\">IChannelMessageAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An acknowledgement from the server when a chat message is delivered to a channel.  <a href=\"interface_nakama_1_1_i_channel_message_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IChannelPresenceEvent\" id=\"r_IChannelPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_channel_presence_event.html\">IChannelPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of join and leave presences on a chat channel.  <a href=\"interface_nakama_1_1_i_channel_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IClient\" id=\"r_IClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_client.html\">IClient</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A client for the API in <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_client.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IFriendsOfFriendsListFriendOfFriend\" id=\"r_IFriendsOfFriendsListFriendOfFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\">IFriendsOfFriendsListFriendOfFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a friend.  <a href=\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IGroupUserListGroupUser\" id=\"r_IGroupUserListGroupUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_group_user_list_group_user.html\">IGroupUserListGroupUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single user-role pair.  <a href=\"interface_nakama_1_1_i_group_user_list_group_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IHttpAdapter\" id=\"r_IHttpAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">IHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements the HTTP protocol.  <a href=\"interface_nakama_1_1_i_http_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IHttpAdapterUtil\" id=\"r_IHttpAdapterUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>IHttpAdapterUtil</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Utility methods for the <a class=\"el\" href=\"interface_nakama_1_1_i_http_adapter.html\">interface. NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile them properly to WebGL. </a><br /></td></tr>\n<tr class=\"memitem:ILogger\" id=\"r_ILogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_logger.html\">ILogger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A simple logger to write log messages to an output sink.  <a href=\"interface_nakama_1_1_i_logger.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatch\" id=\"r_IMatch\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match.html\">IMatch</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A multiplayer match.  <a href=\"interface_nakama_1_1_i_match.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatchmakerMatched\" id=\"r_IMatchmakerMatched\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_matched.html\">IMatchmakerMatched</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The result of a successful matchmaker operation sent to the server.  <a href=\"interface_nakama_1_1_i_matchmaker_matched.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatchmakerTicket\" id=\"r_IMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_ticket.html\">IMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The matchmaker ticket received from the server.  <a href=\"interface_nakama_1_1_i_matchmaker_ticket.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatchmakerUser\" id=\"r_IMatchmakerUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_matchmaker_user.html\">IMatchmakerUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The user with the parameters they sent to the server when asking for opponents.  <a href=\"interface_nakama_1_1_i_matchmaker_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatchPresenceEvent\" id=\"r_IMatchPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_presence_event.html\">IMatchPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of join and leave presences for a match.  <a href=\"interface_nakama_1_1_i_match_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IMatchState\" id=\"r_IMatchState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_match_state.html\">IMatchState</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Some game state update in a match.  <a href=\"interface_nakama_1_1_i_match_state.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IParty\" id=\"r_IParty\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party.html\">IParty</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_party.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyClose\" id=\"r_IPartyClose\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_close.html\">IPartyClose</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members and closing it.  <a href=\"interface_nakama_1_1_i_party_close.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyData\" id=\"r_IPartyData\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_data.html\">IPartyData</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming party data delivered from the server.  <a href=\"interface_nakama_1_1_i_party_data.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyJoinRequest\" id=\"r_IPartyJoinRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_join_request.html\">IPartyJoinRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming notification for one or more new presences attempting to join the party.  <a href=\"interface_nakama_1_1_i_party_join_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyLeader\" id=\"r_IPartyLeader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_leader.html\">IPartyLeader</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Announcement of a new party leader.  <a href=\"interface_nakama_1_1_i_party_leader.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyMatchmakerTicket\" id=\"r_IPartyMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html\">IPartyMatchmakerTicket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A response from starting a new party matchmaking process.  <a href=\"interface_nakama_1_1_i_party_matchmaker_ticket.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyPresenceEvent\" id=\"r_IPartyPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_presence_event.html\">IPartyPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Presence update for a particular party.  <a href=\"interface_nakama_1_1_i_party_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IPartyUpdate\" id=\"r_IPartyUpdate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_party_update.html\">IPartyUpdate</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party.  <a href=\"interface_nakama_1_1_i_party_update.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IProtobufAny\" id=\"r_IProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_protobuf_any.html\">IProtobufAny</a></td></tr>\n<tr class=\"memitem:IRpcStatus\" id=\"r_IRpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_rpc_status.html\">IRpcStatus</a></td></tr>\n<tr class=\"memitem:ISession\" id=\"r_ISession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_session.html\">ISession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session authenticated for a user with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ISocket\" id=\"r_ISocket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket.html\">ISocket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A socket to interact with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"interface_nakama_1_1_i_socket.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ISocketAdapter\" id=\"r_ISocketAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_socket_adapter.html\">ISocketAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements a socket with a protocol supported by <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a>.  <a href=\"interface_nakama_1_1_i_socket_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IStatus\" id=\"r_IStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_status.html\">IStatus</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Receive status updates for users.  <a href=\"interface_nakama_1_1_i_status.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IStatusPresenceEvent\" id=\"r_IStatusPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_status_presence_event.html\">IStatusPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A status update event about other users who've come online or gone offline.  <a href=\"interface_nakama_1_1_i_status_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IStream\" id=\"r_IStream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream.html\">IStream</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A realtime socket stream on the server.  <a href=\"interface_nakama_1_1_i_stream.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IStreamPresenceEvent\" id=\"r_IStreamPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_presence_event.html\">IStreamPresenceEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A batch of joins and leaves on the low level stream.  <a href=\"interface_nakama_1_1_i_stream_presence_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IStreamState\" id=\"r_IStreamState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_stream_state.html\">IStreamState</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A state change received from a stream.  <a href=\"interface_nakama_1_1_i_stream_state.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IUserGroupListUserGroup\" id=\"r_IUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single group-role pair.  <a href=\"interface_nakama_1_1_i_user_group_list_user_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IUserPresence\" id=\"r_IUserPresence\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_user_presence.html\">IUserPresence</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object which represents a connected user in the server.  <a href=\"interface_nakama_1_1_i_user_presence.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IWriteLeaderboardRecordRequestLeaderboardRecordWrite\" id=\"r_IWriteLeaderboardRecordRequestLeaderboardRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\">IWriteLeaderboardRecordRequestLeaderboardRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.  <a href=\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IWriteTournamentRecordRequestTournamentRecordWrite\" id=\"r_IWriteTournamentRecordRequestTournamentRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\">IWriteTournamentRecordRequestTournamentRecordWrite</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Record values to write.  <a href=\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Match\" id=\"r_Match\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Match</b></td></tr>\n<tr class=\"memitem:MatchCreateMessage\" id=\"r_MatchCreateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchCreateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A create message for a match on the server. <br /></td></tr>\n<tr class=\"memitem:MatchJoinMessage\" id=\"r_MatchJoinMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchJoinMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A join message for a match on the server. <br /></td></tr>\n<tr class=\"memitem:MatchLeaveMessage\" id=\"r_MatchLeaveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchLeaveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A leave message for a match on the server. <br /></td></tr>\n<tr class=\"memitem:MatchmakerAddMessage\" id=\"r_MatchmakerAddMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchmakerAddMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Add the user to the matchmaker pool with properties. <br /></td></tr>\n<tr class=\"memitem:MatchmakerMatched\" id=\"r_MatchmakerMatched\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchmakerMatched</b></td></tr>\n<tr class=\"memitem:MatchmakerRemoveMessage\" id=\"r_MatchmakerRemoveMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchmakerRemoveMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the user from the matchmaker pool by ticket. <br /></td></tr>\n<tr class=\"memitem:MatchmakerTicket\" id=\"r_MatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchmakerTicket</b></td></tr>\n<tr class=\"memitem:MatchmakerUser\" id=\"r_MatchmakerUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchmakerUser</b></td></tr>\n<tr class=\"memitem:MatchPresenceEvent\" id=\"r_MatchPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchPresenceEvent</b></td></tr>\n<tr class=\"memitem:MatchSendMessage\" id=\"r_MatchSendMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchSendMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send new state to a match on the server. <br /></td></tr>\n<tr class=\"memitem:MatchState\" id=\"r_MatchState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>MatchState</b></td></tr>\n<tr class=\"memitem:NullLogger\" id=\"r_NullLogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NullLogger</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A logger which writes to nowhere. <br /></td></tr>\n<tr class=\"memitem:Party\" id=\"r_Party\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Party</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming information about a party. <br /></td></tr>\n<tr class=\"memitem:PartyAccept\" id=\"r_PartyAccept\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyAccept</b></td></tr>\n<tr class=\"memitem:PartyClose\" id=\"r_PartyClose\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyClose</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">End a party, kicking all party members, and closing it. <br /></td></tr>\n<tr class=\"memitem:PartyCreate\" id=\"r_PartyCreate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyCreate</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new party. <br /></td></tr>\n<tr class=\"memitem:PartyData\" id=\"r_PartyData\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyData</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming party data delivered from the server. <br /></td></tr>\n<tr class=\"memitem:PartyDataSend\" id=\"r_PartyDataSend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyDataSend</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send data to a party. <br /></td></tr>\n<tr class=\"memitem:PartyJoin\" id=\"r_PartyJoin\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyJoin</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Join a party, or request to join if the party is not open. <br /></td></tr>\n<tr class=\"memitem:PartyJoinRequest\" id=\"r_PartyJoinRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyJoinRequest</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Incoming notification for one or more new presences attempting to join the party. <br /></td></tr>\n<tr class=\"memitem:PartyJoinRequestList\" id=\"r_PartyJoinRequestList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyJoinRequestList</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Request a list of pending join requests for a party. <br /></td></tr>\n<tr class=\"memitem:PartyLeader\" id=\"r_PartyLeader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyLeader</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Announcement of a new party leader. <br /></td></tr>\n<tr class=\"memitem:PartyLeave\" id=\"r_PartyLeave\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyLeave</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Leave a party. <br /></td></tr>\n<tr class=\"memitem:PartyMatchmakerAdd\" id=\"r_PartyMatchmakerAdd\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyMatchmakerAdd</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Begin matchmaking as a party. <br /></td></tr>\n<tr class=\"memitem:PartyMatchmakerRemove\" id=\"r_PartyMatchmakerRemove\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyMatchmakerRemove</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Remove the party from the matchmaker. <br /></td></tr>\n<tr class=\"memitem:PartyMatchmakerTicket\" id=\"r_PartyMatchmakerTicket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyMatchmakerTicket</b></td></tr>\n<tr class=\"memitem:PartyMemberRemove\" id=\"r_PartyMemberRemove\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyMemberRemove</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Kick a party member, or decline a request to join. <br /></td></tr>\n<tr class=\"memitem:PartyPresenceEvent\" id=\"r_PartyPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyPresenceEvent</b></td></tr>\n<tr class=\"memitem:PartyPromote\" id=\"r_PartyPromote\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyPromote</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Promote a new party leader. <br /></td></tr>\n<tr class=\"memitem:PartyUpdate\" id=\"r_PartyUpdate\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PartyUpdate</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Create a new party. <br /></td></tr>\n<tr class=\"memitem:PresenceUtil\" id=\"r_PresenceUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PresenceUtil</b></td></tr>\n<tr class=\"memitem:PreserveAttribute\" id=\"r_PreserveAttribute\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PreserveAttribute</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.xml file because the Unity Package Manager does not recognize link.xml files inside Unity packages. <a href=\"https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\">https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html</a>. <br /></td></tr>\n<tr class=\"memitem:ProtobufAny\" id=\"r_ProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ProtobufAny</b></td></tr>\n<tr class=\"memitem:Retry\" id=\"r_Retry\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a single retry attempt.  <a href=\"class_nakama_1_1_retry.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:RetryConfiguration\" id=\"r_RetryConfiguration\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_retry_configuration.html\">RetryConfiguration</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A configuration for controlling retriable requests.  <a href=\"class_nakama_1_1_retry_configuration.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:RetryHistory\" id=\"r_RetryHistory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryHistory</b></td></tr>\n<tr class=\"memitem:RetryInvoker\" id=\"r_RetryInvoker\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryInvoker</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Invokes requests with retry and exponential backoff. <br /></td></tr>\n<tr class=\"memitem:RetryJitter\" id=\"r_RetryJitter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryJitter</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of <a class=\"el\" href=\"#a127d52a41cb18b64e939f4b06b316b59\" title=\"The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\">Jitter</a> algorithms. <br /></td></tr>\n<tr class=\"memitem:RpcStatus\" id=\"r_RpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RpcStatus</b></td></tr>\n<tr class=\"memitem:Session\" id=\"r_Session\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_session.html\">Session</a></td></tr>\n<tr class=\"memitem:Socket\" id=\"r_Socket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_socket.html\">Socket</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A socket which implements the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> realtime API.  <a href=\"class_nakama_1_1_socket.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Status\" id=\"r_Status\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Status</b></td></tr>\n<tr class=\"memitem:StatusFollowMessage\" id=\"r_StatusFollowMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StatusFollowMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Follow one or more other users for status updates. <br /></td></tr>\n<tr class=\"memitem:StatusPresenceEvent\" id=\"r_StatusPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StatusPresenceEvent</b></td></tr>\n<tr class=\"memitem:StatusUnfollowMessage\" id=\"r_StatusUnfollowMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StatusUnfollowMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unfollow one or more users on the server. <br /></td></tr>\n<tr class=\"memitem:StatusUpdateMessage\" id=\"r_StatusUpdateMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StatusUpdateMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update the status of the current user. <br /></td></tr>\n<tr class=\"memitem:StorageObjectId\" id=\"r_StorageObjectId\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_storage_object_id.html\">StorageObjectId</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An identifier for a storage object.  <a href=\"class_nakama_1_1_storage_object_id.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:Stream\" id=\"r_Stream\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>Stream</b></td></tr>\n<tr class=\"memitem:StreamPresenceEvent\" id=\"r_StreamPresenceEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StreamPresenceEvent</b></td></tr>\n<tr class=\"memitem:StreamState\" id=\"r_StreamState\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StreamState</b></td></tr>\n<tr class=\"memitem:UserGroupListUserGroup\" id=\"r_UserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>UserGroupListUserGroup</b></td></tr>\n<tr class=\"memitem:UserPresence\" id=\"r_UserPresence\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>UserPresence</b></td></tr>\n<tr class=\"memitem:WebSocketAdapter\" id=\"r_WebSocketAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_adapter.html\">WebSocketAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"class_nakama_1_1_web_socket_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketErrorMessage\" id=\"r_WebSocketErrorMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketErrorMessage</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A logical error received on the WebSocket connection. <br /></td></tr>\n<tr class=\"memitem:WebSocketMessageEnvelope\" id=\"r_WebSocketMessageEnvelope\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketMessageEnvelope</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An envelope for messages received or sent on a <code>WebSocket</code>. <br /></td></tr>\n<tr class=\"memitem:WebSocketStdlibAdapter\" id=\"r_WebSocketStdlibAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_web_socket_stdlib_adapter.html\">WebSocketStdlibAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which uses the WebSocket protocol with <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> server.  <a href=\"class_nakama_1_1_web_socket_stdlib_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WriteLeaderboardRecordRequestLeaderboardRecordWrite\" id=\"r_WriteLeaderboardRecordRequestLeaderboardRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WriteLeaderboardRecordRequestLeaderboardRecordWrite</b></td></tr>\n<tr class=\"memitem:WriteStorageObject\" id=\"r_WriteStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_write_storage_object.html\">WriteStorageObject</a></td></tr>\n<tr class=\"memitem:WriteTournamentRecordRequestTournamentRecordWrite\" id=\"r_WriteTournamentRecordRequestTournamentRecordWrite\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WriteTournamentRecordRequestTournamentRecordWrite</b></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-enum-members\" class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a8e9c42a36e780e31a03f2ba94a3bb6e7\" id=\"r_a8e9c42a36e780e31a03f2ba94a3bb6e7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7\">ApiOperator</a> { <br />\n&#160;&#160;<a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\">NO_OVERRIDE</a> = 0\n, <a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\">BEST</a> = 1\n, <a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\">SET</a> = 2\n, <a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\">INCREMENT</a> = 3\n, <br />\n&#160;&#160;<a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\">DECREMENT</a> = 4\n<br />\n }</td></tr>\n<tr class=\"memitem:a216a2d7c4acbc3a4f29a98514c483cd6\" id=\"r_a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a216a2d7c4acbc3a4f29a98514c483cd6\">ApiStoreEnvironment</a> { <a class=\"el\" href=\"#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\">UNKNOWN</a> = 0\n, <a class=\"el\" href=\"#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\">SANDBOX</a> = 1\n, <a class=\"el\" href=\"#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\">PRODUCTION</a> = 2\n }</td></tr>\n<tr class=\"memdesc:a216a2d7c4acbc3a4f29a98514c483cd6\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Environment where a purchase/subscription took place,.  <a href=\"#a216a2d7c4acbc3a4f29a98514c483cd6\">More...</a><br /></td></tr>\n<tr class=\"memitem:a80ae1f687aff9e2cdddb9e69a557cc49\" id=\"r_a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49\">ApiStoreProvider</a> { <a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\">APPLE_APP_STORE</a> = 0\n, <a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\">GOOGLE_PLAY_STORE</a> = 1\n, <a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\">HUAWEI_APP_GALLERY</a> = 2\n, <a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\">FACEBOOK_INSTANT_STORE</a> = 3\n }</td></tr>\n<tr class=\"memdesc:a80ae1f687aff9e2cdddb9e69a557cc49\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Validation Provider,.  <a href=\"#a80ae1f687aff9e2cdddb9e69a557cc49\">More...</a><br /></td></tr>\n<tr class=\"memitem:addd7f097ac4c449d75e44da62657f307\" id=\"r_addd7f097ac4c449d75e44da62657f307\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#addd7f097ac4c449d75e44da62657f307\">ChannelType</a> : uint { <a class=\"el\" href=\"#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\">Room</a> = 1\n, <a class=\"el\" href=\"#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\">DirectMessage</a> = 2\n, <a class=\"el\" href=\"#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\">Group</a> = 3\n }</td></tr>\n<tr class=\"memdesc:addd7f097ac4c449d75e44da62657f307\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The available channel types on the server.  <a href=\"#addd7f097ac4c449d75e44da62657f307\">More...</a><br /></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a127d52a41cb18b64e939f4b06b316b59\" id=\"r_a127d52a41cb18b64e939f4b06b316b59\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a127d52a41cb18b64e939f4b06b316b59\">Jitter</a> (IList&lt; <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> &gt; retryHistory, int retryDelay, Random random)</td></tr>\n<tr class=\"memdesc:a127d52a41cb18b64e939f4b06b316b59\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  <br /></td></tr>\n<tr class=\"memitem:a54689fcf19366a415851641cb61947d4\" id=\"r_a54689fcf19366a415851641cb61947d4\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a54689fcf19366a415851641cb61947d4\">RetryListener</a> (int numRetry, <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> retry)</td></tr>\n<tr class=\"memdesc:a54689fcf19366a415851641cb61947d4\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Listens to retry events for a particular request.  <br /></td></tr>\n<tr class=\"memitem:a016772f008c1c294bf609c6ece102445\" id=\"r_a016772f008c1c294bf609c6ece102445\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a016772f008c1c294bf609c6ece102445\">TransientExceptionDelegate</a> (Exception e)</td></tr>\n<tr class=\"memdesc:a016772f008c1c294bf609c6ece102445\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  <br /></td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 id=\"header-details\" class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p>Copyright 2018 The <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Authors</p>\n<p>Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>\n<p><a href=\"http://www.apache.org/licenses/LICENSE-2.0\">http://www.apache.org/licenses/LICENSE-2.0</a></p>\n<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>\n</div><a name=\"doc-enum-members\" id=\"doc-enum-members\"></a><h2 id=\"header-doc-enum-members\" class=\"groupheader\">Enumeration Type Documentation</h2>\n<a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7\">&#9670;&#160;</a></span>ApiOperator</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#a8e9c42a36e780e31a03f2ba94a3bb6e7\">Nakama.ApiOperator</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\"></a>NO_OVERRIDE&#160;</td><td class=\"fielddoc\"><p>Operator that can be used to override the one set in the leaderboard. </p>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\"></a>BEST&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\"></a>SET&#160;</td><td class=\"fielddoc\"><ul>\n<li>NO_OVERRIDE: Do not override the leaderboard operator. </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\"></a>INCREMENT&#160;</td><td class=\"fielddoc\"><ul>\n<li>BEST: Override the leaderboard operator with BEST. </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\" name=\"a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\"></a>DECREMENT&#160;</td><td class=\"fielddoc\"><ul>\n<li>SET: Override the leaderboard operator with SET. </li>\n</ul>\n</td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"a216a2d7c4acbc3a4f29a98514c483cd6\" name=\"a216a2d7c4acbc3a4f29a98514c483cd6\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a216a2d7c4acbc3a4f29a98514c483cd6\">&#9670;&#160;</a></span>ApiStoreEnvironment</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#a216a2d7c4acbc3a4f29a98514c483cd6\">Nakama.ApiStoreEnvironment</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Environment where a purchase/subscription took place,. </p>\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\" name=\"a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\"></a>UNKNOWN&#160;</td><td class=\"fielddoc\"><ul>\n<li>UNKNOWN: Unknown environment. </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\" name=\"a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\"></a>SANDBOX&#160;</td><td class=\"fielddoc\"><ul>\n<li>SANDBOX: Sandbox/test environment. </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\" name=\"a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\"></a>PRODUCTION&#160;</td><td class=\"fielddoc\"><ul>\n<li>PRODUCTION: Production environment. </li>\n</ul>\n</td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"a80ae1f687aff9e2cdddb9e69a557cc49\" name=\"a80ae1f687aff9e2cdddb9e69a557cc49\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a80ae1f687aff9e2cdddb9e69a557cc49\">&#9670;&#160;</a></span>ApiStoreProvider</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#a80ae1f687aff9e2cdddb9e69a557cc49\">Nakama.ApiStoreProvider</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Validation Provider,. </p>\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\" name=\"a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\"></a>APPLE_APP_STORE&#160;</td><td class=\"fielddoc\"><ul>\n<li>APPLE_APP_STORE: Apple App Store </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\" name=\"a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\"></a>GOOGLE_PLAY_STORE&#160;</td><td class=\"fielddoc\"><ul>\n<li>GOOGLE_PLAY_STORE: Google Play Store </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\" name=\"a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\"></a>HUAWEI_APP_GALLERY&#160;</td><td class=\"fielddoc\"><ul>\n<li>HUAWEI_APP_GALLERY: Huawei App Gallery </li>\n</ul>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\" name=\"a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\"></a>FACEBOOK_INSTANT_STORE&#160;</td><td class=\"fielddoc\"><ul>\n<li>FACEBOOK_INSTANT_STORE: Facebook Instant Store </li>\n</ul>\n</td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"addd7f097ac4c449d75e44da62657f307\" name=\"addd7f097ac4c449d75e44da62657f307\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#addd7f097ac4c449d75e44da62657f307\">&#9670;&#160;</a></span>ChannelType</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#addd7f097ac4c449d75e44da62657f307\">Nakama.ChannelType</a> : uint</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>The available channel types on the server. </p>\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\" name=\"addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\"></a>Room&#160;</td><td class=\"fielddoc\"><p>A chat room which can be created dynamically with a name. </p>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\" name=\"addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\"></a>DirectMessage&#160;</td><td class=\"fielddoc\"><p>A private chat between two users. </p>\n</td></tr>\n<tr><td class=\"fieldname\"><a id=\"addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\" name=\"addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\"></a>Group&#160;</td><td class=\"fielddoc\"><p>A chat within a group on the server. </p>\n</td></tr>\n</table>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Function Documentation</h2>\n<a id=\"a127d52a41cb18b64e939f4b06b316b59\" name=\"a127d52a41cb18b64e939f4b06b316b59\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a127d52a41cb18b64e939f4b06b316b59\">&#9670;&#160;</a></span>Jitter()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate int Nakama.Jitter </td>\n          <td>(</td>\n          <td class=\"paramtype\">IList&lt; <a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryHistory</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryDelay</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Random</td>          <td class=\"paramname\"><span class=\"paramname\"><em>random</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>The Jitter algorithm is responsible for introducing randomness to a delay before a retry. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryHistory</td><td>Information about previous retry attempts.</td></tr>\n    <tr><td class=\"paramname\">retryDelay</td><td>A delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</td></tr>\n    <tr><td class=\"paramname\">random</td><td>A Random object that has been seeded by IClient.RetryJitterSeed. <dl class=\"section return\"><dt>Returns</dt><dd>A new delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a54689fcf19366a415851641cb61947d4\" name=\"a54689fcf19366a415851641cb61947d4\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a54689fcf19366a415851641cb61947d4\">&#9670;&#160;</a></span>RetryListener()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate void Nakama.RetryListener </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numRetry</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_nakama_1_1_retry.html\">Retry</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retry</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Listens to retry events for a particular request. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">numRetry</td><td>The number of retries made so far, including this retry.</td></tr>\n    <tr><td class=\"paramname\">retry</td><td>An holding inromation about the retry attempt.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a016772f008c1c294bf609c6ece102445\" name=\"a016772f008c1c294bf609c6ece102445\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a016772f008c1c294bf609c6ece102445\">&#9670;&#160;</a></span>TransientExceptionDelegate()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate bool Nakama.TransientExceptionDelegate </td>\n          <td>(</td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load. </p>\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama.js",
    "content": "var namespace_nakama =\n[\n    [ \"Console\", \"namespace_nakama_1_1_console.html\", \"namespace_nakama_1_1_console\" ],\n    [ \"Ninja\", \"namespace_nakama_1_1_ninja.html\", \"namespace_nakama_1_1_ninja\" ],\n    [ \"TinyJson\", \"namespace_nakama_1_1_tiny_json.html\", null ],\n    [ \"ApiResponseException\", \"class_nakama_1_1_api_response_exception.html\", \"class_nakama_1_1_api_response_exception\" ],\n    [ \"Client\", \"class_nakama_1_1_client.html\", \"class_nakama_1_1_client\" ],\n    [ \"HttpRequestAdapter\", \"class_nakama_1_1_http_request_adapter.html\", \"class_nakama_1_1_http_request_adapter\" ],\n    [ \"IApiAccount\", \"interface_nakama_1_1_i_api_account.html\", \"interface_nakama_1_1_i_api_account\" ],\n    [ \"IApiAccountApple\", \"interface_nakama_1_1_i_api_account_apple.html\", \"interface_nakama_1_1_i_api_account_apple\" ],\n    [ \"IApiAccountCustom\", \"interface_nakama_1_1_i_api_account_custom.html\", \"interface_nakama_1_1_i_api_account_custom\" ],\n    [ \"IApiAccountDevice\", \"interface_nakama_1_1_i_api_account_device.html\", \"interface_nakama_1_1_i_api_account_device\" ],\n    [ \"IApiAccountEmail\", \"interface_nakama_1_1_i_api_account_email.html\", \"interface_nakama_1_1_i_api_account_email\" ],\n    [ \"IApiAccountFacebook\", \"interface_nakama_1_1_i_api_account_facebook.html\", \"interface_nakama_1_1_i_api_account_facebook\" ],\n    [ \"IApiAccountFacebookInstantGame\", \"interface_nakama_1_1_i_api_account_facebook_instant_game.html\", \"interface_nakama_1_1_i_api_account_facebook_instant_game\" ],\n    [ \"IApiAccountGameCenter\", \"interface_nakama_1_1_i_api_account_game_center.html\", \"interface_nakama_1_1_i_api_account_game_center\" ],\n    [ \"IApiAccountGoogle\", \"interface_nakama_1_1_i_api_account_google.html\", \"interface_nakama_1_1_i_api_account_google\" ],\n    [ \"IApiAccountSteam\", \"interface_nakama_1_1_i_api_account_steam.html\", \"interface_nakama_1_1_i_api_account_steam\" ],\n    [ \"IApiChannelMessage\", \"interface_nakama_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_i_api_channel_message\" ],\n    [ \"IApiChannelMessageList\", \"interface_nakama_1_1_i_api_channel_message_list.html\", \"interface_nakama_1_1_i_api_channel_message_list\" ],\n    [ \"IApiCreateGroupRequest\", \"interface_nakama_1_1_i_api_create_group_request.html\", \"interface_nakama_1_1_i_api_create_group_request\" ],\n    [ \"IApiDeleteStorageObjectId\", \"interface_nakama_1_1_i_api_delete_storage_object_id.html\", \"interface_nakama_1_1_i_api_delete_storage_object_id\" ],\n    [ \"IApiDeleteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_delete_storage_objects_request.html\", \"interface_nakama_1_1_i_api_delete_storage_objects_request\" ],\n    [ \"IApiEvent\", \"interface_nakama_1_1_i_api_event.html\", \"interface_nakama_1_1_i_api_event\" ],\n    [ \"IApiFriend\", \"interface_nakama_1_1_i_api_friend.html\", \"interface_nakama_1_1_i_api_friend\" ],\n    [ \"IApiFriendList\", \"interface_nakama_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_i_api_friend_list\" ],\n    [ \"IApiFriendsOfFriendsList\", \"interface_nakama_1_1_i_api_friends_of_friends_list.html\", \"interface_nakama_1_1_i_api_friends_of_friends_list\" ],\n    [ \"IApiGroup\", \"interface_nakama_1_1_i_api_group.html\", \"interface_nakama_1_1_i_api_group\" ],\n    [ \"IApiGroupList\", \"interface_nakama_1_1_i_api_group_list.html\", \"interface_nakama_1_1_i_api_group_list\" ],\n    [ \"IApiGroupUserList\", \"interface_nakama_1_1_i_api_group_user_list.html\", \"interface_nakama_1_1_i_api_group_user_list\" ],\n    [ \"IApiLeaderboardRecord\", \"interface_nakama_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_i_api_leaderboard_record\" ],\n    [ \"IApiLeaderboardRecordList\", \"interface_nakama_1_1_i_api_leaderboard_record_list.html\", \"interface_nakama_1_1_i_api_leaderboard_record_list\" ],\n    [ \"IApiLinkSteamRequest\", \"interface_nakama_1_1_i_api_link_steam_request.html\", \"interface_nakama_1_1_i_api_link_steam_request\" ],\n    [ \"IApiListSubscriptionsRequest\", \"interface_nakama_1_1_i_api_list_subscriptions_request.html\", \"interface_nakama_1_1_i_api_list_subscriptions_request\" ],\n    [ \"IApiMatch\", \"interface_nakama_1_1_i_api_match.html\", \"interface_nakama_1_1_i_api_match\" ],\n    [ \"IApiMatchList\", \"interface_nakama_1_1_i_api_match_list.html\", \"interface_nakama_1_1_i_api_match_list\" ],\n    [ \"IApiMatchmakerCompletionStats\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_completion_stats\" ],\n    [ \"IApiMatchmakerStats\", \"interface_nakama_1_1_i_api_matchmaker_stats.html\", \"interface_nakama_1_1_i_api_matchmaker_stats\" ],\n    [ \"IApiNotification\", \"interface_nakama_1_1_i_api_notification.html\", \"interface_nakama_1_1_i_api_notification\" ],\n    [ \"IApiNotificationList\", \"interface_nakama_1_1_i_api_notification_list.html\", \"interface_nakama_1_1_i_api_notification_list\" ],\n    [ \"IApiParty\", \"interface_nakama_1_1_i_api_party.html\", \"interface_nakama_1_1_i_api_party\" ],\n    [ \"IApiPartyList\", \"interface_nakama_1_1_i_api_party_list.html\", \"interface_nakama_1_1_i_api_party_list\" ],\n    [ \"IApiReadStorageObjectId\", \"interface_nakama_1_1_i_api_read_storage_object_id.html\", \"interface_nakama_1_1_i_api_read_storage_object_id\" ],\n    [ \"IApiReadStorageObjectsRequest\", \"interface_nakama_1_1_i_api_read_storage_objects_request.html\", \"interface_nakama_1_1_i_api_read_storage_objects_request\" ],\n    [ \"IApiRpc\", \"interface_nakama_1_1_i_api_rpc.html\", \"interface_nakama_1_1_i_api_rpc\" ],\n    [ \"IApiSession\", \"interface_nakama_1_1_i_api_session.html\", \"interface_nakama_1_1_i_api_session\" ],\n    [ \"IApiSessionLogoutRequest\", \"interface_nakama_1_1_i_api_session_logout_request.html\", \"interface_nakama_1_1_i_api_session_logout_request\" ],\n    [ \"IApiSessionRefreshRequest\", \"interface_nakama_1_1_i_api_session_refresh_request.html\", \"interface_nakama_1_1_i_api_session_refresh_request\" ],\n    [ \"IApiStorageObject\", \"interface_nakama_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_i_api_storage_object\" ],\n    [ \"IApiStorageObjectAck\", \"interface_nakama_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_i_api_storage_object_ack\" ],\n    [ \"IApiStorageObjectAcks\", \"interface_nakama_1_1_i_api_storage_object_acks.html\", \"interface_nakama_1_1_i_api_storage_object_acks\" ],\n    [ \"IApiStorageObjectList\", \"interface_nakama_1_1_i_api_storage_object_list.html\", \"interface_nakama_1_1_i_api_storage_object_list\" ],\n    [ \"IApiStorageObjects\", \"interface_nakama_1_1_i_api_storage_objects.html\", \"interface_nakama_1_1_i_api_storage_objects\" ],\n    [ \"IApiSubscriptionList\", \"interface_nakama_1_1_i_api_subscription_list.html\", \"interface_nakama_1_1_i_api_subscription_list\" ],\n    [ \"IApiTournament\", \"interface_nakama_1_1_i_api_tournament.html\", \"interface_nakama_1_1_i_api_tournament\" ],\n    [ \"IApiTournamentList\", \"interface_nakama_1_1_i_api_tournament_list.html\", \"interface_nakama_1_1_i_api_tournament_list\" ],\n    [ \"IApiTournamentRecordList\", \"interface_nakama_1_1_i_api_tournament_record_list.html\", \"interface_nakama_1_1_i_api_tournament_record_list\" ],\n    [ \"IApiUpdateAccountRequest\", \"interface_nakama_1_1_i_api_update_account_request.html\", \"interface_nakama_1_1_i_api_update_account_request\" ],\n    [ \"IApiUpdateGroupRequest\", \"interface_nakama_1_1_i_api_update_group_request.html\", \"interface_nakama_1_1_i_api_update_group_request\" ],\n    [ \"IApiUser\", \"interface_nakama_1_1_i_api_user.html\", \"interface_nakama_1_1_i_api_user\" ],\n    [ \"IApiUserGroupList\", \"interface_nakama_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_i_api_user_group_list\" ],\n    [ \"IApiUsers\", \"interface_nakama_1_1_i_api_users.html\", \"interface_nakama_1_1_i_api_users\" ],\n    [ \"IApiValidatedPurchase\", \"interface_nakama_1_1_i_api_validated_purchase.html\", \"interface_nakama_1_1_i_api_validated_purchase\" ],\n    [ \"IApiValidatedSubscription\", \"interface_nakama_1_1_i_api_validated_subscription.html\", \"interface_nakama_1_1_i_api_validated_subscription\" ],\n    [ \"IApiValidatePurchaseAppleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_apple_request\" ],\n    [ \"IApiValidatePurchaseFacebookInstantRequest\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request\" ],\n    [ \"IApiValidatePurchaseGoogleRequest\", \"interface_nakama_1_1_i_api_validate_purchase_google_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_google_request\" ],\n    [ \"IApiValidatePurchaseHuaweiRequest\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\", \"interface_nakama_1_1_i_api_validate_purchase_huawei_request\" ],\n    [ \"IApiValidatePurchaseResponse\", \"interface_nakama_1_1_i_api_validate_purchase_response.html\", \"interface_nakama_1_1_i_api_validate_purchase_response\" ],\n    [ \"IApiValidateSubscriptionAppleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_apple_request\" ],\n    [ \"IApiValidateSubscriptionGoogleRequest\", \"interface_nakama_1_1_i_api_validate_subscription_google_request.html\", \"interface_nakama_1_1_i_api_validate_subscription_google_request\" ],\n    [ \"IApiValidateSubscriptionResponse\", \"interface_nakama_1_1_i_api_validate_subscription_response.html\", \"interface_nakama_1_1_i_api_validate_subscription_response\" ],\n    [ \"IApiWriteStorageObject\", \"interface_nakama_1_1_i_api_write_storage_object.html\", \"interface_nakama_1_1_i_api_write_storage_object\" ],\n    [ \"IApiWriteStorageObjectsRequest\", \"interface_nakama_1_1_i_api_write_storage_objects_request.html\", \"interface_nakama_1_1_i_api_write_storage_objects_request\" ],\n    [ \"IChannel\", \"interface_nakama_1_1_i_channel.html\", \"interface_nakama_1_1_i_channel\" ],\n    [ \"IChannelMessageAck\", \"interface_nakama_1_1_i_channel_message_ack.html\", \"interface_nakama_1_1_i_channel_message_ack\" ],\n    [ \"IChannelPresenceEvent\", \"interface_nakama_1_1_i_channel_presence_event.html\", \"interface_nakama_1_1_i_channel_presence_event\" ],\n    [ \"IClient\", \"interface_nakama_1_1_i_client.html\", \"interface_nakama_1_1_i_client\" ],\n    [ \"IFriendsOfFriendsListFriendOfFriend\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\", \"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend\" ],\n    [ \"IGroupUserListGroupUser\", \"interface_nakama_1_1_i_group_user_list_group_user.html\", \"interface_nakama_1_1_i_group_user_list_group_user\" ],\n    [ \"IHttpAdapter\", \"interface_nakama_1_1_i_http_adapter.html\", \"interface_nakama_1_1_i_http_adapter\" ],\n    [ \"ILogger\", \"interface_nakama_1_1_i_logger.html\", \"interface_nakama_1_1_i_logger\" ],\n    [ \"IMatch\", \"interface_nakama_1_1_i_match.html\", \"interface_nakama_1_1_i_match\" ],\n    [ \"IMatchmakerMatched\", \"interface_nakama_1_1_i_matchmaker_matched.html\", \"interface_nakama_1_1_i_matchmaker_matched\" ],\n    [ \"IMatchmakerTicket\", \"interface_nakama_1_1_i_matchmaker_ticket.html\", \"interface_nakama_1_1_i_matchmaker_ticket\" ],\n    [ \"IMatchmakerUser\", \"interface_nakama_1_1_i_matchmaker_user.html\", \"interface_nakama_1_1_i_matchmaker_user\" ],\n    [ \"IMatchPresenceEvent\", \"interface_nakama_1_1_i_match_presence_event.html\", \"interface_nakama_1_1_i_match_presence_event\" ],\n    [ \"IMatchState\", \"interface_nakama_1_1_i_match_state.html\", \"interface_nakama_1_1_i_match_state\" ],\n    [ \"IParty\", \"interface_nakama_1_1_i_party.html\", \"interface_nakama_1_1_i_party\" ],\n    [ \"IPartyClose\", \"interface_nakama_1_1_i_party_close.html\", \"interface_nakama_1_1_i_party_close\" ],\n    [ \"IPartyData\", \"interface_nakama_1_1_i_party_data.html\", \"interface_nakama_1_1_i_party_data\" ],\n    [ \"IPartyJoinRequest\", \"interface_nakama_1_1_i_party_join_request.html\", \"interface_nakama_1_1_i_party_join_request\" ],\n    [ \"IPartyLeader\", \"interface_nakama_1_1_i_party_leader.html\", \"interface_nakama_1_1_i_party_leader\" ],\n    [ \"IPartyMatchmakerTicket\", \"interface_nakama_1_1_i_party_matchmaker_ticket.html\", \"interface_nakama_1_1_i_party_matchmaker_ticket\" ],\n    [ \"IPartyPresenceEvent\", \"interface_nakama_1_1_i_party_presence_event.html\", \"interface_nakama_1_1_i_party_presence_event\" ],\n    [ \"IPartyUpdate\", \"interface_nakama_1_1_i_party_update.html\", \"interface_nakama_1_1_i_party_update\" ],\n    [ \"IProtobufAny\", \"interface_nakama_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_i_protobuf_any\" ],\n    [ \"IRpcStatus\", \"interface_nakama_1_1_i_rpc_status.html\", \"interface_nakama_1_1_i_rpc_status\" ],\n    [ \"ISession\", \"interface_nakama_1_1_i_session.html\", \"interface_nakama_1_1_i_session\" ],\n    [ \"ISocket\", \"interface_nakama_1_1_i_socket.html\", \"interface_nakama_1_1_i_socket\" ],\n    [ \"ISocketAdapter\", \"interface_nakama_1_1_i_socket_adapter.html\", \"interface_nakama_1_1_i_socket_adapter\" ],\n    [ \"IStatus\", \"interface_nakama_1_1_i_status.html\", \"interface_nakama_1_1_i_status\" ],\n    [ \"IStatusPresenceEvent\", \"interface_nakama_1_1_i_status_presence_event.html\", \"interface_nakama_1_1_i_status_presence_event\" ],\n    [ \"IStream\", \"interface_nakama_1_1_i_stream.html\", \"interface_nakama_1_1_i_stream\" ],\n    [ \"IStreamPresenceEvent\", \"interface_nakama_1_1_i_stream_presence_event.html\", \"interface_nakama_1_1_i_stream_presence_event\" ],\n    [ \"IStreamState\", \"interface_nakama_1_1_i_stream_state.html\", \"interface_nakama_1_1_i_stream_state\" ],\n    [ \"IUserGroupListUserGroup\", \"interface_nakama_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_i_user_group_list_user_group\" ],\n    [ \"IUserPresence\", \"interface_nakama_1_1_i_user_presence.html\", \"interface_nakama_1_1_i_user_presence\" ],\n    [ \"IWriteLeaderboardRecordRequestLeaderboardRecordWrite\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\", \"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write\" ],\n    [ \"IWriteTournamentRecordRequestTournamentRecordWrite\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\", \"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write\" ],\n    [ \"Retry\", \"class_nakama_1_1_retry.html\", \"class_nakama_1_1_retry\" ],\n    [ \"RetryConfiguration\", \"class_nakama_1_1_retry_configuration.html\", \"class_nakama_1_1_retry_configuration\" ],\n    [ \"Session\", \"class_nakama_1_1_session.html\", \"class_nakama_1_1_session\" ],\n    [ \"Socket\", \"class_nakama_1_1_socket.html\", \"class_nakama_1_1_socket\" ],\n    [ \"StorageObjectId\", \"class_nakama_1_1_storage_object_id.html\", \"class_nakama_1_1_storage_object_id\" ],\n    [ \"WebSocketAdapter\", \"class_nakama_1_1_web_socket_adapter.html\", \"class_nakama_1_1_web_socket_adapter\" ],\n    [ \"WebSocketStdlibAdapter\", \"class_nakama_1_1_web_socket_stdlib_adapter.html\", \"class_nakama_1_1_web_socket_stdlib_adapter\" ],\n    [ \"WriteStorageObject\", \"class_nakama_1_1_write_storage_object.html\", \"class_nakama_1_1_write_storage_object\" ],\n    [ \"ApiOperator\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\", [\n      [ \"NO_OVERRIDE\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\", null ],\n      [ \"BEST\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\", null ],\n      [ \"SET\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\", null ],\n      [ \"INCREMENT\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\", null ],\n      [ \"DECREMENT\", \"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\", null ]\n    ] ],\n    [ \"ApiStoreEnvironment\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\", [\n      [ \"UNKNOWN\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\", null ],\n      [ \"SANDBOX\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\", null ],\n      [ \"PRODUCTION\", \"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\", null ]\n    ] ],\n    [ \"ApiStoreProvider\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\", [\n      [ \"APPLE_APP_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\", null ],\n      [ \"GOOGLE_PLAY_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\", null ],\n      [ \"HUAWEI_APP_GALLERY\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\", null ],\n      [ \"FACEBOOK_INSTANT_STORE\", \"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\", null ]\n    ] ],\n    [ \"ChannelType\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\", [\n      [ \"Room\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\", null ],\n      [ \"DirectMessage\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\", null ],\n      [ \"Group\", \"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\", null ]\n    ] ],\n    [ \"Jitter\", \"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\", null ],\n    [ \"RetryListener\", \"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\", null ],\n    [ \"TransientExceptionDelegate\", \"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\", null ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_console.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Console Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_console.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Console Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:ApiAccountDevice\" id=\"r_ApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAccountDevice</b></td></tr>\n<tr class=\"memitem:ApiChannelMessage\" id=\"r_ApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiChannelMessage</b></td></tr>\n<tr class=\"memitem:ApiClient\" id=\"r_ApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> API. <br /></td></tr>\n<tr class=\"memitem:ApiFriend\" id=\"r_ApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFriend</b></td></tr>\n<tr class=\"memitem:ApiFriendList\" id=\"r_ApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFriendList</b></td></tr>\n<tr class=\"memitem:ApiGroup\" id=\"r_ApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiGroup</b></td></tr>\n<tr class=\"memitem:ApiLeaderboardRecord\" id=\"r_ApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLeaderboardRecord</b></td></tr>\n<tr class=\"memitem:ApiNotification\" id=\"r_ApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiNotification</b></td></tr>\n<tr class=\"memitem:ApiResponseException\" id=\"r_ApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_console_1_1_api_response_exception.html\">ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_nakama_1_1_console_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ApiStorageObject\" id=\"r_ApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObject</b></td></tr>\n<tr class=\"memitem:ApiStorageObjectAck\" id=\"r_ApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiStorageObjectAck</b></td></tr>\n<tr class=\"memitem:ApiUser\" id=\"r_ApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUser</b></td></tr>\n<tr class=\"memitem:ApiUserGroupList\" id=\"r_ApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUserGroupList</b></td></tr>\n<tr class=\"memitem:ConfigWarning\" id=\"r_ConfigWarning\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConfigWarning</b></td></tr>\n<tr class=\"memitem:ConsoleAccountExport\" id=\"r_ConsoleAccountExport\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleAccountExport</b></td></tr>\n<tr class=\"memitem:ConsoleAuthenticateRequest\" id=\"r_ConsoleAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleAuthenticateRequest</b></td></tr>\n<tr class=\"memitem:ConsoleConfig\" id=\"r_ConsoleConfig\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleConfig</b></td></tr>\n<tr class=\"memitem:ConsoleConsoleSession\" id=\"r_ConsoleConsoleSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleConsoleSession</b></td></tr>\n<tr class=\"memitem:ConsoleStatusList\" id=\"r_ConsoleStatusList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleStatusList</b></td></tr>\n<tr class=\"memitem:ConsoleStorageList\" id=\"r_ConsoleStorageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleStorageList</b></td></tr>\n<tr class=\"memitem:ConsoleUnlinkDeviceRequest\" id=\"r_ConsoleUnlinkDeviceRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleUnlinkDeviceRequest</b></td></tr>\n<tr class=\"memitem:ConsoleUserList\" id=\"r_ConsoleUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleUserList</b></td></tr>\n<tr class=\"memitem:ConsoleWalletLedger\" id=\"r_ConsoleWalletLedger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleWalletLedger</b></td></tr>\n<tr class=\"memitem:ConsoleWalletLedgerList\" id=\"r_ConsoleWalletLedgerList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleWalletLedgerList</b></td></tr>\n<tr class=\"memitem:ConsoleWriteStorageObjectRequest\" id=\"r_ConsoleWriteStorageObjectRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ConsoleWriteStorageObjectRequest</b></td></tr>\n<tr class=\"memitem:IApiAccountDevice\" id=\"r_IApiAccountDevice\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html\">IApiAccountDevice</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Send a device to the server. Used with authenticate/link/unlink and user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_account_device.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiChannelMessage\" id=\"r_IApiChannelMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\">IApiChannelMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A message sent on a channel.  <a href=\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFriend\" id=\"r_IApiFriend\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend.html\">IApiFriend</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A friend of a user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_friend.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFriendList\" id=\"r_IApiFriendList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\">IApiFriendList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of zero or more friends of the user.  <a href=\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiGroup\" id=\"r_IApiGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_group.html\">IApiGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A group in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLeaderboardRecord\" id=\"r_IApiLeaderboardRecord\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\">IApiLeaderboardRecord</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a complete leaderboard record with all scores and associated metadata.  <a href=\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiNotification\" id=\"r_IApiNotification\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_notification.html\">IApiNotification</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A notification in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_notification.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObject\" id=\"r_IApiStorageObject\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\">IApiStorageObject</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An object within the storage engine.  <a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiStorageObjectAck\" id=\"r_IApiStorageObjectAck\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\">IApiStorageObjectAck</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A storage acknowledgement.  <a href=\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUser\" id=\"r_IApiUser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user.html\">IApiUser</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user in the server.  <a href=\"interface_nakama_1_1_console_1_1_i_api_user.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUserGroupList\" id=\"r_IApiUserGroupList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\">IApiUserGroupList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of groups belonging to a user, along with the user's role in each group.  <a href=\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConfigWarning\" id=\"r_IConfigWarning\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_config_warning.html\">IConfigWarning</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A warning for a configuration field.  <a href=\"interface_nakama_1_1_console_1_1_i_config_warning.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleAccountExport\" id=\"r_IConsoleAccountExport\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html\">IConsoleAccountExport</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An export of all information stored for a user account.  <a href=\"interface_nakama_1_1_console_1_1_i_console_account_export.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleAuthenticateRequest\" id=\"r_IConsoleAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\">IConsoleAuthenticateRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate a console user with username and password.  <a href=\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleConfig\" id=\"r_IConsoleConfig\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_config.html\">IConsoleConfig</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The current server configuration and any associated warnings.  <a href=\"interface_nakama_1_1_console_1_1_i_console_config.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleConsoleSession\" id=\"r_IConsoleConsoleSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html\">IConsoleConsoleSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A console user session.  <a href=\"interface_nakama_1_1_console_1_1_i_console_console_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleStatusList\" id=\"r_IConsoleStatusList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html\">IConsoleStatusList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of nodes and their stats.  <a href=\"interface_nakama_1_1_console_1_1_i_console_status_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleStorageList\" id=\"r_IConsoleStorageList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\">IConsoleStorageList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of storage objects.  <a href=\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleUnlinkDeviceRequest\" id=\"r_IConsoleUnlinkDeviceRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\">IConsoleUnlinkDeviceRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Unlink a particular device ID from a user's account.  <a href=\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleUserList\" id=\"r_IConsoleUserList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html\">IConsoleUserList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A list of users.  <a href=\"interface_nakama_1_1_console_1_1_i_console_user_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleWalletLedger\" id=\"r_IConsoleWalletLedger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\">IConsoleWalletLedger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An individual update to a user's wallet.  <a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleWalletLedgerList\" id=\"r_IConsoleWalletLedgerList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\">IConsoleWalletLedgerList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of wallet ledger items for a particular user.  <a href=\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IConsoleWriteStorageObjectRequest\" id=\"r_IConsoleWriteStorageObjectRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\">IConsoleWriteStorageObjectRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Write a new storage object or update an existing one.  <a href=\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:INakamaapiAccount\" id=\"r_INakamaapiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\">INakamaapiAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A user with additional account details. Always the current user.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:INakamaconsoleAccount\" id=\"r_INakamaconsoleAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\">INakamaconsoleAccount</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Account information.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:INakamaconsoleUpdateAccountRequest\" id=\"r_INakamaconsoleUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\">INakamaconsoleUpdateAccountRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update user account information.  <a href=\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IProtobufAny\" id=\"r_IProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\">IProtobufAny</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><span class=\"tt\">Any</span> contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a message in C++. Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&amp;foo)) { ... } Example 2: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } Example 3: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ... Example 4: Pack and unpack a message in Go foo := &amp;pb.Foo{...} any, err := ptypes.MarshalAny(foo) ... foo := &amp;pb.Foo{} if err := ptypes.UnmarshalAny(any, foo); err != nil { ... } The pack methods provided by protobuf library will by default use 'type.googleapis.com/full.type.name' as the type URL and the unpack methods only use the fully qualified type name after the last '/' in the type URL, for example \"foo.bar.com/x/y.z\" will yield type name \"y.z\". JSON ==== The JSON representation of an <span class=\"tt\">Any</span> value uses the regular representation of the deserialized, embedded message, with an additional field <span class=\"tt\">@type</span> which contains the type URL. Example: package google.profile; message Person { string first_name = 1; string last_name = 2; } { \"@type\": \"type.googleapis.com/google.profile.Person\", \"firstName\": &lt;string&gt;, \"lastName\": &lt;string&gt; } If the embedded message type is well-known and has a custom JSON representation, that representation will be embedded adding a field <span class=\"tt\">value</span> which holds the custom JSON in addition to the <span class=\"tt\">@type</span> field. Example (for message [google.protobuf.Duration][]): { \"@type\": \"type.googleapis.com/google.protobuf.Duration\", \"value\": \"1.212s\" }  <a href=\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IRuntimeError\" id=\"r_IRuntimeError\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_runtime_error.html\">IRuntimeError</a></td></tr>\n<tr class=\"memitem:IStatusListStatus\" id=\"r_IStatusListStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html\">IStatusListStatus</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The status of a <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> node.  <a href=\"interface_nakama_1_1_console_1_1_i_status_list_status.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IUserGroupListUserGroup\" id=\"r_IUserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\">IUserGroupListUserGroup</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single group-role pair.  <a href=\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:NakamaapiAccount\" id=\"r_NakamaapiAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NakamaapiAccount</b></td></tr>\n<tr class=\"memitem:NakamaconsoleAccount\" id=\"r_NakamaconsoleAccount\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NakamaconsoleAccount</b></td></tr>\n<tr class=\"memitem:NakamaconsoleUpdateAccountRequest\" id=\"r_NakamaconsoleUpdateAccountRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NakamaconsoleUpdateAccountRequest</b></td></tr>\n<tr class=\"memitem:ProtobufAny\" id=\"r_ProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ProtobufAny</b></td></tr>\n<tr class=\"memitem:RuntimeError\" id=\"r_RuntimeError\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RuntimeError</b></td></tr>\n<tr class=\"memitem:StatusListStatus\" id=\"r_StatusListStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>StatusListStatus</b></td></tr>\n<tr class=\"memitem:UserGroupListUserGroup\" id=\"r_UserGroupListUserGroup\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>UserGroupListUserGroup</b></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_console.html\">Console</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_console.js",
    "content": "var namespace_nakama_1_1_console =\n[\n    [ \"ApiResponseException\", \"class_nakama_1_1_console_1_1_api_response_exception.html\", \"class_nakama_1_1_console_1_1_api_response_exception\" ],\n    [ \"IApiAccountDevice\", \"interface_nakama_1_1_console_1_1_i_api_account_device.html\", \"interface_nakama_1_1_console_1_1_i_api_account_device\" ],\n    [ \"IApiChannelMessage\", \"interface_nakama_1_1_console_1_1_i_api_channel_message.html\", \"interface_nakama_1_1_console_1_1_i_api_channel_message\" ],\n    [ \"IApiFriend\", \"interface_nakama_1_1_console_1_1_i_api_friend.html\", \"interface_nakama_1_1_console_1_1_i_api_friend\" ],\n    [ \"IApiFriendList\", \"interface_nakama_1_1_console_1_1_i_api_friend_list.html\", \"interface_nakama_1_1_console_1_1_i_api_friend_list\" ],\n    [ \"IApiGroup\", \"interface_nakama_1_1_console_1_1_i_api_group.html\", \"interface_nakama_1_1_console_1_1_i_api_group\" ],\n    [ \"IApiLeaderboardRecord\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\", \"interface_nakama_1_1_console_1_1_i_api_leaderboard_record\" ],\n    [ \"IApiNotification\", \"interface_nakama_1_1_console_1_1_i_api_notification.html\", \"interface_nakama_1_1_console_1_1_i_api_notification\" ],\n    [ \"IApiStorageObject\", \"interface_nakama_1_1_console_1_1_i_api_storage_object.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object\" ],\n    [ \"IApiStorageObjectAck\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\", \"interface_nakama_1_1_console_1_1_i_api_storage_object_ack\" ],\n    [ \"IApiUser\", \"interface_nakama_1_1_console_1_1_i_api_user.html\", \"interface_nakama_1_1_console_1_1_i_api_user\" ],\n    [ \"IApiUserGroupList\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\", \"interface_nakama_1_1_console_1_1_i_api_user_group_list\" ],\n    [ \"IConfigWarning\", \"interface_nakama_1_1_console_1_1_i_config_warning.html\", \"interface_nakama_1_1_console_1_1_i_config_warning\" ],\n    [ \"IConsoleAccountExport\", \"interface_nakama_1_1_console_1_1_i_console_account_export.html\", \"interface_nakama_1_1_console_1_1_i_console_account_export\" ],\n    [ \"IConsoleAuthenticateRequest\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\", \"interface_nakama_1_1_console_1_1_i_console_authenticate_request\" ],\n    [ \"IConsoleConfig\", \"interface_nakama_1_1_console_1_1_i_console_config.html\", \"interface_nakama_1_1_console_1_1_i_console_config\" ],\n    [ \"IConsoleConsoleSession\", \"interface_nakama_1_1_console_1_1_i_console_console_session.html\", \"interface_nakama_1_1_console_1_1_i_console_console_session\" ],\n    [ \"IConsoleStatusList\", \"interface_nakama_1_1_console_1_1_i_console_status_list.html\", \"interface_nakama_1_1_console_1_1_i_console_status_list\" ],\n    [ \"IConsoleStorageList\", \"interface_nakama_1_1_console_1_1_i_console_storage_list.html\", \"interface_nakama_1_1_console_1_1_i_console_storage_list\" ],\n    [ \"IConsoleUnlinkDeviceRequest\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\", \"interface_nakama_1_1_console_1_1_i_console_unlink_device_request\" ],\n    [ \"IConsoleUserList\", \"interface_nakama_1_1_console_1_1_i_console_user_list.html\", \"interface_nakama_1_1_console_1_1_i_console_user_list\" ],\n    [ \"IConsoleWalletLedger\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger\" ],\n    [ \"IConsoleWalletLedgerList\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\", \"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list\" ],\n    [ \"IConsoleWriteStorageObjectRequest\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\", \"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request\" ],\n    [ \"INakamaapiAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaapi_account\" ],\n    [ \"INakamaconsoleAccount\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_account\" ],\n    [ \"INakamaconsoleUpdateAccountRequest\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\", \"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request\" ],\n    [ \"IProtobufAny\", \"interface_nakama_1_1_console_1_1_i_protobuf_any.html\", \"interface_nakama_1_1_console_1_1_i_protobuf_any\" ],\n    [ \"IRuntimeError\", \"interface_nakama_1_1_console_1_1_i_runtime_error.html\", \"interface_nakama_1_1_console_1_1_i_runtime_error\" ],\n    [ \"IStatusListStatus\", \"interface_nakama_1_1_console_1_1_i_status_list_status.html\", \"interface_nakama_1_1_console_1_1_i_status_list_status\" ],\n    [ \"IUserGroupListUserGroup\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\", \"interface_nakama_1_1_console_1_1_i_user_group_list_user_group\" ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_ninja.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:WebSockets\" id=\"r_WebSockets\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja.js",
    "content": "var namespace_nakama_1_1_ninja =\n[\n    [ \"WebSockets\", \"namespace_nakama_1_1_ninja_1_1_web_sockets.html\", \"namespace_nakama_1_1_ninja_1_1_web_sockets\" ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja_1_1_web_sockets.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_ninja_1_1_web_sockets.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:Exceptions\" id=\"r_Exceptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></td></tr>\n<tr class=\"memitem:Internal\" id=\"r_Internal\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Internal</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:BufferPool\" id=\"r_BufferPool\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\">BufferPool</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">This buffer pool is instance thread safe Use GetBuffer to get a MemoryStream (with a publically accessible buffer) Calling Close on this MemoryStream will clear its internal buffer and return the buffer to the pool for reuse MemoryStreams can grow larger than the DEFAULT_BUFFER_SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:HttpHelper\" id=\"r_HttpHelper\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\">HttpHelper</a></td></tr>\n<tr class=\"memitem:IBufferPool\" id=\"r_IBufferPool\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\">IBufferPool</a></td></tr>\n<tr class=\"memitem:IPingPongManager\" id=\"r_IPingPongManager\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\">IPingPongManager</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ping Pong Manager used to facilitate ping pong WebSocket messages.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IWebSocketClientFactory\" id=\"r_IWebSocketClientFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\">IWebSocketClientFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket client factory used to open web socket client connections.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IWebSocketServerFactory\" id=\"r_IWebSocketServerFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\">IWebSocketServerFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket server factory used to open web socket server connections.  <a href=\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:PingPongManager\" id=\"r_PingPongManager\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\">PingPongManager</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Ping Pong Manager used to facilitate ping pong WebSocket messages.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:PongEventArgs\" id=\"r_PongEventArgs\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\">PongEventArgs</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Pong EventArgs.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketClientFactory\" id=\"r_WebSocketClientFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\">WebSocketClientFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket client factory used to open web socket client connections.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketClientOptions\" id=\"r_WebSocketClientOptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\">WebSocketClientOptions</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\"><a class=\"el\" href=\"class_nakama_1_1_client.html\">Client</a> WebSocket init options.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketHttpContext\" id=\"r_WebSocketHttpContext\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\">WebSocketHttpContext</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The WebSocket HTTP Context used to initiate a WebSocket handshake.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketServerFactory\" id=\"r_WebSocketServerFactory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\">WebSocketServerFactory</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Web socket server factory used to open web socket server connections.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:WebSocketServerOptions\" id=\"r_WebSocketServerOptions\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\">WebSocketServerOptions</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Server WebSocket init options.  <a href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#details\">More...</a><br /></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja_1_1_web_sockets.js",
    "content": "var namespace_nakama_1_1_ninja_1_1_web_sockets =\n[\n    [ \"Exceptions\", \"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\", \"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions\" ],\n    [ \"Internal\", \"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\", null ],\n    [ \"BufferPool\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool\" ],\n    [ \"HttpHelper\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\", null ],\n    [ \"IBufferPool\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool\" ],\n    [ \"IPingPongManager\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager\" ],\n    [ \"IWebSocketClientFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory\" ],\n    [ \"IWebSocketServerFactory\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\", \"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory\" ],\n    [ \"PingPongManager\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager\" ],\n    [ \"PongEventArgs\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args\" ],\n    [ \"WebSocketClientFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory\" ],\n    [ \"WebSocketClientOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options\" ],\n    [ \"WebSocketHttpContext\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context\" ],\n    [ \"WebSocketServerFactory\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory\" ],\n    [ \"WebSocketServerOptions\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options\" ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Exceptions Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Exceptions Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:EntityTooLargeException\" id=\"r_EntityTooLargeException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\">EntityTooLargeException</a></td></tr>\n<tr class=\"memitem:InvalidHttpResponseCodeException\" id=\"r_InvalidHttpResponseCodeException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\">InvalidHttpResponseCodeException</a></td></tr>\n<tr class=\"memitem:SecWebSocketKeyMissingException\" id=\"r_SecWebSocketKeyMissingException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\">SecWebSocketKeyMissingException</a></td></tr>\n<tr class=\"memitem:ServerListenerSocketException\" id=\"r_ServerListenerSocketException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\">ServerListenerSocketException</a></td></tr>\n<tr class=\"memitem:WebSocketBufferOverflowException\" id=\"r_WebSocketBufferOverflowException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\">WebSocketBufferOverflowException</a></td></tr>\n<tr class=\"memitem:WebSocketHandshakeFailedException\" id=\"r_WebSocketHandshakeFailedException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\">WebSocketHandshakeFailedException</a></td></tr>\n<tr class=\"memitem:WebSocketVersionNotSupportedException\" id=\"r_WebSocketVersionNotSupportedException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\">WebSocketVersionNotSupportedException</a></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\">Exceptions</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.js",
    "content": "var namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions =\n[\n    [ \"EntityTooLargeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception\" ],\n    [ \"InvalidHttpResponseCodeException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception\" ],\n    [ \"SecWebSocketKeyMissingException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception\" ],\n    [ \"ServerListenerSocketException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception\" ],\n    [ \"WebSocketBufferOverflowException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception\" ],\n    [ \"WebSocketHandshakeFailedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception\" ],\n    [ \"WebSocketVersionNotSupportedException\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\", \"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception\" ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.Ninja.WebSockets.Internal Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Ninja.WebSockets.Internal Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:BinaryReaderWriter\" id=\"r_BinaryReaderWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>BinaryReaderWriter</b></td></tr>\n<tr class=\"memitem:WebSocketFrame\" id=\"r_WebSocketFrame\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketFrame</b></td></tr>\n<tr class=\"memitem:WebSocketFrameCommon\" id=\"r_WebSocketFrameCommon\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketFrameCommon</b></td></tr>\n<tr class=\"memitem:WebSocketFrameReader\" id=\"r_WebSocketFrameReader\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketFrameReader</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Reads a WebSocket frame see <a href=\"http://tools.ietf.org/html/rfc6455\">http://tools.ietf.org/html/rfc6455</a> for specification. <br /></td></tr>\n<tr class=\"memitem:WebSocketFrameWriter\" id=\"r_WebSocketFrameWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketFrameWriter</b></td></tr>\n<tr class=\"memitem:WebSocketImplementation\" id=\"r_WebSocketImplementation\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketImplementation</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Main implementation of the WebSocket abstract class. <br /></td></tr>\n<tr class=\"memitem:WebSocketReadCursor\" id=\"r_WebSocketReadCursor\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>WebSocketReadCursor</b></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja.html\">Ninja</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\">WebSockets</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\">Internal</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('namespace_nakama_1_1_tests.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#namespaces\">Namespaces</a> &#124;\n<a href=\"#nested-classes\">Classes</a> &#124;\n<a href=\"#enum-members\">Enumerations</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:namespace_nakama_1_1_tests_1_1_api\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:namespace_nakama_1_1_tests_1_1_socket\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\">AwaitedSocketTaskTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_cancel_test.html\">CancelTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\">INestedTestObject</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_nakama_1_1_tests_1_1_i_test_object.html\">ITestObject</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>NestedTestObject</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_retry_test.html\">RetryTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_session_test.html\">SessionTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_stdout_logger.html\">StdoutLogger</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestObject</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TestsUtil</b></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\">TinyJsonParserTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\">TransientExceptionHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which throws transient/retryable exceptions whenever a request is made.   <a href=\"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:abdcc77df111a41f189037155e43e3336\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\"><a id=\"abdcc77df111a41f189037155e43e3336\" name=\"abdcc77df111a41f189037155e43e3336\"></a>enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>TransientAdapterResponseType</b> </td></tr>\n<tr class=\"separator:abdcc77df111a41f189037155e43e3336\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests.js",
    "content": "var namespace_nakama_1_1_tests =\n[\n    [ \"Api\", \"namespace_nakama_1_1_tests_1_1_api.html\", \"namespace_nakama_1_1_tests_1_1_api\" ],\n    [ \"Socket\", \"namespace_nakama_1_1_tests_1_1_socket.html\", \"namespace_nakama_1_1_tests_1_1_socket\" ],\n    [ \"AwaitedSocketTaskTest\", \"class_nakama_1_1_tests_1_1_awaited_socket_task_test.html\", null ],\n    [ \"CancelTest\", \"class_nakama_1_1_tests_1_1_cancel_test.html\", null ],\n    [ \"INestedTestObject\", \"interface_nakama_1_1_tests_1_1_i_nested_test_object.html\", null ],\n    [ \"ITestObject\", \"interface_nakama_1_1_tests_1_1_i_test_object.html\", null ],\n    [ \"RetryTest\", \"class_nakama_1_1_tests_1_1_retry_test.html\", null ],\n    [ \"SessionTest\", \"class_nakama_1_1_tests_1_1_session_test.html\", null ],\n    [ \"StdoutLogger\", \"class_nakama_1_1_tests_1_1_stdout_logger.html\", \"class_nakama_1_1_tests_1_1_stdout_logger\" ],\n    [ \"TinyJsonParserTest\", \"class_nakama_1_1_tests_1_1_tiny_json_parser_test.html\", null ],\n    [ \"TransientExceptionHttpAdapter\", \"class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html\", \"class_nakama_1_1_tests_1_1_transient_exception_http_adapter\" ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests_1_1_api.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Api Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('namespace_nakama_1_1_tests_1_1_api.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Api Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\">AuthenticateTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\">GroupTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\">HttpErrorTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\">LeaderboardAroundOwnerTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\">LeaderboardTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\">LinkUnlinkTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\">RpcTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p >Copyright 2020 The <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Authors</p>\n<p >Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>\n<p ><a href=\"http://www.apache.org/licenses/LICENSE-2.0\">http://www.apache.org/licenses/LICENSE-2.0</a></p>\n<p >Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>\n<p >Copyright 2021 The <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Authors</p>\n<p >Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>\n<p ><a href=\"http://www.apache.org/licenses/LICENSE-2.0\">http://www.apache.org/licenses/LICENSE-2.0</a></p>\n<p >Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>\n</div></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_api.html\">Api</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests_1_1_api.js",
    "content": "var namespace_nakama_1_1_tests_1_1_api =\n[\n    [ \"AuthenticateTest\", \"class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.html\", null ],\n    [ \"GroupTest\", \"class_nakama_1_1_tests_1_1_api_1_1_group_test.html\", null ],\n    [ \"HttpErrorTest\", \"class_nakama_1_1_tests_1_1_api_1_1_http_error_test.html\", null ],\n    [ \"LeaderboardAroundOwnerTest\", \"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.html\", null ],\n    [ \"LeaderboardTest\", \"class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.html\", null ],\n    [ \"LinkUnlinkTest\", \"class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.html\", null ],\n    [ \"RpcTest\", \"class_nakama_1_1_tests_1_1_api_1_1_rpc_test.html\", null ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests_1_1_socket.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Nakama.Tests.Socket Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('namespace_nakama_1_1_tests_1_1_socket.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Nakama.Tests.Socket Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\">WebSocketChannelTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\">WebSocketMatchmakerTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\">WebSocketMatchTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\">WebSocketNotificationTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\">WebSocketPartyTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\">WebSocketRpcTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\">WebSocketTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\">WebSocketUserStatusTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n<a name=\"details\" id=\"details\"></a><h2 class=\"groupheader\">Detailed Description</h2>\n<div class=\"textblock\"><p >Copyright 2020 The <a class=\"el\" href=\"namespace_nakama.html\">Nakama</a> Authors</p>\n<p >Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at</p>\n<p ><a href=\"http://www.apache.org/licenses/LICENSE-2.0\">http://www.apache.org/licenses/LICENSE-2.0</a></p>\n<p >Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>\n</div></div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests.html\">Tests</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_nakama_1_1_tests_1_1_socket.html\">Socket</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tests_1_1_socket.js",
    "content": "var namespace_nakama_1_1_tests_1_1_socket =\n[\n    [ \"WebSocketChannelTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html\", null ],\n    [ \"WebSocketMatchmakerTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html\", null ],\n    [ \"WebSocketMatchTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html\", null ],\n    [ \"WebSocketNotificationTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html\", null ],\n    [ \"WebSocketPartyTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html\", null ],\n    [ \"WebSocketRpcTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html\", null ],\n    [ \"WebSocketTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html\", null ],\n    [ \"WebSocketUserStatusTest\", \"class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html\", null ]\n];"
  },
  {
    "path": "docs/html/namespace_nakama_1_1_tiny_json.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Nakama.TinyJson Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_nakama_1_1_tiny_json.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Nakama.TinyJson Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:JsonParser\" id=\"r_JsonParser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>JsonParser</b></td></tr>\n<tr class=\"memitem:JsonWriter\" id=\"r_JsonWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>JsonWriter</b></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_nakama.html\">Nakama</a></li><li class=\"navelem\"><a href=\"namespace_nakama_1_1_tiny_json.html\">TinyJson</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_satori.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_satori.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-namespaces\" class=\"groupheader\"><a id=\"namespaces\" name=\"namespaces\"></a>\nNamespaces</h2></td></tr>\n<tr class=\"memitem:TinyJson\" id=\"r_TinyJson\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">namespace &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"namespace_satori_1_1_tiny_json.html\">TinyJson</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:ApiAuthenticateLogoutRequest\" id=\"r_ApiAuthenticateLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAuthenticateLogoutRequest</b></td></tr>\n<tr class=\"memitem:ApiAuthenticateRefreshRequest\" id=\"r_ApiAuthenticateRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAuthenticateRefreshRequest</b></td></tr>\n<tr class=\"memitem:ApiAuthenticateRequest\" id=\"r_ApiAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiAuthenticateRequest</b></td></tr>\n<tr class=\"memitem:ApiClient\" id=\"r_ApiClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiClient</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The low level client for the <a class=\"el\" href=\"namespace_satori.html\">Satori</a> API. <br /></td></tr>\n<tr class=\"memitem:ApiEvent\" id=\"r_ApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiEvent</b></td></tr>\n<tr class=\"memitem:ApiEventRequest\" id=\"r_ApiEventRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiEventRequest</b></td></tr>\n<tr class=\"memitem:ApiExperiment\" id=\"r_ApiExperiment\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiExperiment</b></td></tr>\n<tr class=\"memitem:ApiExperimentList\" id=\"r_ApiExperimentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiExperimentList</b></td></tr>\n<tr class=\"memitem:ApiFlag\" id=\"r_ApiFlag\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFlag</b></td></tr>\n<tr class=\"memitem:ApiFlagList\" id=\"r_ApiFlagList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFlagList</b></td></tr>\n<tr class=\"memitem:ApiFlagOverride\" id=\"r_ApiFlagOverride\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFlagOverride</b></td></tr>\n<tr class=\"memitem:ApiFlagOverrideList\" id=\"r_ApiFlagOverrideList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFlagOverrideList</b></td></tr>\n<tr class=\"memitem:ApiFlagOverrideValue\" id=\"r_ApiFlagOverrideValue\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiFlagOverrideValue</b></td></tr>\n<tr class=\"memitem:ApiGetMessageListResponse\" id=\"r_ApiGetMessageListResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiGetMessageListResponse</b></td></tr>\n<tr class=\"memitem:ApiIdentifyRequest\" id=\"r_ApiIdentifyRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiIdentifyRequest</b></td></tr>\n<tr class=\"memitem:ApiLiveEvent\" id=\"r_ApiLiveEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLiveEvent</b></td></tr>\n<tr class=\"memitem:ApiLiveEventList\" id=\"r_ApiLiveEventList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiLiveEventList</b></td></tr>\n<tr class=\"memitem:ApiMessage\" id=\"r_ApiMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiMessage</b></td></tr>\n<tr class=\"memitem:ApiProperties\" id=\"r_ApiProperties\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiProperties</b></td></tr>\n<tr class=\"memitem:ApiResponseException\" id=\"r_ApiResponseException\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_api_response_exception.html\">ApiResponseException</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An exception generated for <code>HttpResponse</code> objects don't return a success status.  <a href=\"class_satori_1_1_api_response_exception.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ApiSession\" id=\"r_ApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiSession</b></td></tr>\n<tr class=\"memitem:ApiUpdateMessageRequest\" id=\"r_ApiUpdateMessageRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUpdateMessageRequest</b></td></tr>\n<tr class=\"memitem:ApiUpdatePropertiesRequest\" id=\"r_ApiUpdatePropertiesRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ApiUpdatePropertiesRequest</b></td></tr>\n<tr class=\"memitem:Client\" id=\"r_Client\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_client.html\">Client</a></td></tr>\n<tr class=\"memitem:Event\" id=\"r_Event\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_event.html\">Event</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An event to be published to the server.  <a href=\"class_satori_1_1_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:FlagValueChangeReason\" id=\"r_FlagValueChangeReason\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>FlagValueChangeReason</b></td></tr>\n<tr class=\"memitem:GZipContent\" id=\"r_GZipContent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GZipContent</b></td></tr>\n<tr class=\"memitem:GZipHttpClientHandler\" id=\"r_GZipHttpClientHandler\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>GZipHttpClientHandler</b></td></tr>\n<tr class=\"memitem:HttpAdapterUtil\" id=\"r_HttpAdapterUtil\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>HttpAdapterUtil</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Utility methods for the <a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">interface. NOTE: DO NOT USE EXTENSION METHODS as Unity cannot cross-compile them properly to WebGL. </a><br /></td></tr>\n<tr class=\"memitem:HttpRequestAdapter\" id=\"r_HttpRequestAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_http_request_adapter.html\">HttpRequestAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">HTTP Request adapter which uses the .NET HttpClient to send requests.  <a href=\"class_satori_1_1_http_request_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAuthenticateLogoutRequest\" id=\"r_IApiAuthenticateLogoutRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_logout_request.html\">IApiAuthenticateLogoutRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  <a href=\"interface_satori_1_1_i_api_authenticate_logout_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAuthenticateRefreshRequest\" id=\"r_IApiAuthenticateRefreshRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html\">IApiAuthenticateRefreshRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authenticate against the server with a refresh token.  <a href=\"interface_satori_1_1_i_api_authenticate_refresh_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiAuthenticateRequest\" id=\"r_IApiAuthenticateRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_authenticate_request.html\">IApiAuthenticateRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Authentication request.  <a href=\"interface_satori_1_1_i_api_authenticate_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiEvent\" id=\"r_IApiEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event.html\">IApiEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single event. Usually, but not necessarily, part of a batch.  <a href=\"interface_satori_1_1_i_api_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiEventRequest\" id=\"r_IApiEventRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_event_request.html\">IApiEventRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Publish an event to the server.  <a href=\"interface_satori_1_1_i_api_event_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiExperiment\" id=\"r_IApiExperiment\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment.html\">IApiExperiment</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An experiment that this user is partaking.  <a href=\"interface_satori_1_1_i_api_experiment.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiExperimentList\" id=\"r_IApiExperimentList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_experiment_list.html\">IApiExperimentList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All experiments that this identity is involved with.  <a href=\"interface_satori_1_1_i_api_experiment_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFlag\" id=\"r_IApiFlag\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag.html\">IApiFlag</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Feature flag available to the identity.  <a href=\"interface_satori_1_1_i_api_flag.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFlagList\" id=\"r_IApiFlagList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_list.html\">IApiFlagList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags available to the identity.  <a href=\"interface_satori_1_1_i_api_flag_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFlagOverride\" id=\"r_IApiFlagOverride\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override.html\">IApiFlagOverride</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Feature flag available to the identity.  <a href=\"interface_satori_1_1_i_api_flag_override.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFlagOverrideList\" id=\"r_IApiFlagOverrideList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_list.html\">IApiFlagOverrideList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">All flags available to the identity and their value overrides.  <a href=\"interface_satori_1_1_i_api_flag_override_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiFlagOverrideValue\" id=\"r_IApiFlagOverrideValue\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_flag_override_value.html\">IApiFlagOverrideValue</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The details of a flag value override.  <a href=\"interface_satori_1_1_i_api_flag_override_value.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiGetMessageListResponse\" id=\"r_IApiGetMessageListResponse\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_get_message_list_response.html\">IApiGetMessageListResponse</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A response containing all the messages for an identity.  <a href=\"interface_satori_1_1_i_api_get_message_list_response.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiIdentifyRequest\" id=\"r_IApiIdentifyRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_identify_request.html\">IApiIdentifyRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Enrich/replace the current session with a new ID.  <a href=\"interface_satori_1_1_i_api_identify_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLiveEvent\" id=\"r_IApiLiveEvent\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event.html\">IApiLiveEvent</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A single live event.  <a href=\"interface_satori_1_1_i_api_live_event.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiLiveEventList\" id=\"r_IApiLiveEventList\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_live_event_list.html\">IApiLiveEventList</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">List of Live events.  <a href=\"interface_satori_1_1_i_api_live_event_list.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiMessage\" id=\"r_IApiMessage\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_message.html\">IApiMessage</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A scheduled message.  <a href=\"interface_satori_1_1_i_api_message.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiProperties\" id=\"r_IApiProperties\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_properties.html\">IApiProperties</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Properties associated with an identity.  <a href=\"interface_satori_1_1_i_api_properties.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiSession\" id=\"r_IApiSession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_session.html\">IApiSession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session.  <a href=\"interface_satori_1_1_i_api_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUpdateMessageRequest\" id=\"r_IApiUpdateMessageRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_message_request.html\">IApiUpdateMessageRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The request to update the status of a message.  <a href=\"interface_satori_1_1_i_api_update_message_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IApiUpdatePropertiesRequest\" id=\"r_IApiUpdatePropertiesRequest\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_api_update_properties_request.html\">IApiUpdatePropertiesRequest</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Update Properties associated with this identity.  <a href=\"interface_satori_1_1_i_api_update_properties_request.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IClient\" id=\"r_IClient\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_client.html\">IClient</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A client for the API in <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  <a href=\"interface_satori_1_1_i_client.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IFlagValueChangeReason\" id=\"r_IFlagValueChangeReason\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_flag_value_change_reason.html\">IFlagValueChangeReason</a></td></tr>\n<tr class=\"memitem:IHttpAdapter\" id=\"r_IHttpAdapter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_http_adapter.html\">IHttpAdapter</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">An adapter which implements the HTTP protocol.  <a href=\"interface_satori_1_1_i_http_adapter.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:ILogger\" id=\"r_ILogger\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_logger.html\">ILogger</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A simple logger to write log messages to an output sink.  <a href=\"interface_satori_1_1_i_logger.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:IProtobufAny\" id=\"r_IProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_protobuf_any.html\">IProtobufAny</a></td></tr>\n<tr class=\"memitem:IRpcStatus\" id=\"r_IRpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_rpc_status.html\">IRpcStatus</a></td></tr>\n<tr class=\"memitem:ISession\" id=\"r_ISession\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">interface &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"interface_satori_1_1_i_session.html\">ISession</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A session authenticated for a user with <a class=\"el\" href=\"namespace_satori.html\">Satori</a> server.  <a href=\"interface_satori_1_1_i_session.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:PreserveAttribute\" id=\"r_PreserveAttribute\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>PreserveAttribute</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.xml file because the Unity Package Manager does not recognize link.xml files inside Unity packages. <a href=\"https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html\">https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html</a>. <br /></td></tr>\n<tr class=\"memitem:ProtobufAny\" id=\"r_ProtobufAny\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>ProtobufAny</b></td></tr>\n<tr class=\"memitem:Retry\" id=\"r_Retry\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Represents a single retry attempt.  <a href=\"class_satori_1_1_retry.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:RetryConfiguration\" id=\"r_RetryConfiguration\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_retry_configuration.html\">RetryConfiguration</a></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A configuration for controlling retriable requests.  <a href=\"class_satori_1_1_retry_configuration.html#details\">More...</a><br /></td></tr>\n<tr class=\"memitem:RetryHistory\" id=\"r_RetryHistory\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryHistory</b></td></tr>\n<tr class=\"memitem:RetryInvoker\" id=\"r_RetryInvoker\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryInvoker</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Invokes requests with retry and exponential backoff. <br /></td></tr>\n<tr class=\"memitem:RetryJitter\" id=\"r_RetryJitter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RetryJitter</b></td></tr>\n<tr class=\"memdesc:\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A collection of <a class=\"el\" href=\"#a8dc55a408f51bea7a34417ba2e8656a7\" title=\"The Jitter algorithm is responsible for introducing randomness to a delay before a retry.\">Jitter</a> algorithms. <br /></td></tr>\n<tr class=\"memitem:RpcStatus\" id=\"r_RpcStatus\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>RpcStatus</b></td></tr>\n<tr class=\"memitem:Session\" id=\"r_Session\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_session.html\">Session</a></td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-enum-members\" class=\"groupheader\"><a id=\"enum-members\" name=\"enum-members\"></a>\nEnumerations</h2></td></tr>\n<tr class=\"memitem:a951af93b9ee547b7c4747566a1b5653f\" id=\"r_a951af93b9ee547b7c4747566a1b5653f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653f\">FlagValueChangeReasonType</a> { <a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\">UNKNOWN</a> = 0\n, <a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\">FLAG_VARIANT</a> = 1\n, <a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\">LIVE_EVENT</a> = 2\n, <a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\">EXPERIMENT</a> = 3\n }</td></tr>\n<tr class=\"memitem:a5b84f4807e2f627294a0a6fee00ab50d\" id=\"r_a5b84f4807e2f627294a0a6fee00ab50d\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">enum &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50d\">ApiFlagOverrideType</a> { <br />\n&#160;&#160;<a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\">FLAG</a> = 0\n, <a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\">FLAG_VARIANT</a> = 1\n, <a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\">LIVE_EVENT_FLAG</a> = 2\n, <a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\">LIVE_EVENT_FLAG_VARIANT</a> = 3\n, <br />\n&#160;&#160;<a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\">EXPERIMENT_PHASE_VARIANT_FLAG</a> = 4\n<br />\n }</td></tr>\n</table><table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-func-members\" class=\"groupheader\"><a id=\"func-members\" name=\"func-members\"></a>\nFunctions</h2></td></tr>\n<tr class=\"memitem:a8dc55a408f51bea7a34417ba2e8656a7\" id=\"r_a8dc55a408f51bea7a34417ba2e8656a7\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate int&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a8dc55a408f51bea7a34417ba2e8656a7\">Jitter</a> (IList&lt; <a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> &gt; retryHistory, int retryDelay, Random random)</td></tr>\n<tr class=\"memdesc:a8dc55a408f51bea7a34417ba2e8656a7\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  <br /></td></tr>\n<tr class=\"memitem:afe3a987ac265a5690c1cdd971c6cb099\" id=\"r_afe3a987ac265a5690c1cdd971c6cb099\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate void&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#afe3a987ac265a5690c1cdd971c6cb099\">RetryListener</a> (int numRetry, <a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> retry)</td></tr>\n<tr class=\"memdesc:afe3a987ac265a5690c1cdd971c6cb099\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">Listens to retry events for a particular request.  <br /></td></tr>\n<tr class=\"memitem:a511888108671df4cff6cd4bbb1ff498f\" id=\"r_a511888108671df4cff6cd4bbb1ff498f\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">delegate bool&#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"#a511888108671df4cff6cd4bbb1ff498f\">TransientExceptionDelegate</a> (Exception e)</td></tr>\n<tr class=\"memdesc:a511888108671df4cff6cd4bbb1ff498f\"><td class=\"mdescLeft\">&#160;</td><td class=\"mdescRight\">A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  <br /></td></tr>\n</table>\n<a name=\"doc-enum-members\" id=\"doc-enum-members\"></a><h2 id=\"header-doc-enum-members\" class=\"groupheader\">Enumeration Type Documentation</h2>\n<a id=\"a5b84f4807e2f627294a0a6fee00ab50d\" name=\"a5b84f4807e2f627294a0a6fee00ab50d\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a5b84f4807e2f627294a0a6fee00ab50d\">&#9670;&#160;</a></span>ApiFlagOverrideType</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#a5b84f4807e2f627294a0a6fee00ab50d\">Satori.ApiFlagOverrideType</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\" name=\"a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\"></a>FLAG&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\" name=\"a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\"></a>FLAG_VARIANT&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\" name=\"a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\"></a>LIVE_EVENT_FLAG&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\" name=\"a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\"></a>LIVE_EVENT_FLAG_VARIANT&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\" name=\"a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\"></a>EXPERIMENT_PHASE_VARIANT_FLAG&#160;</td><td class=\"fielddoc\"></td></tr>\n</table>\n\n</div>\n</div>\n<a id=\"a951af93b9ee547b7c4747566a1b5653f\" name=\"a951af93b9ee547b7c4747566a1b5653f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a951af93b9ee547b7c4747566a1b5653f\">&#9670;&#160;</a></span>FlagValueChangeReasonType</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">enum <a class=\"el\" href=\"#a951af93b9ee547b7c4747566a1b5653f\">Satori.FlagValueChangeReasonType</a></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n<table class=\"fieldtable\">\n<tr><th colspan=\"2\">Enumerator</th></tr><tr><td class=\"fieldname\"><a id=\"a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\" name=\"a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\"></a>UNKNOWN&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\" name=\"a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\"></a>FLAG_VARIANT&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\" name=\"a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\"></a>LIVE_EVENT&#160;</td><td class=\"fielddoc\"></td></tr>\n<tr><td class=\"fieldname\"><a id=\"a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\" name=\"a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\"></a>EXPERIMENT&#160;</td><td class=\"fielddoc\"></td></tr>\n</table>\n\n</div>\n</div>\n<a name=\"doc-func-members\" id=\"doc-func-members\"></a><h2 id=\"header-doc-func-members\" class=\"groupheader\">Function Documentation</h2>\n<a id=\"a8dc55a408f51bea7a34417ba2e8656a7\" name=\"a8dc55a408f51bea7a34417ba2e8656a7\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a8dc55a408f51bea7a34417ba2e8656a7\">&#9670;&#160;</a></span>Jitter()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate int Satori.Jitter </td>\n          <td>(</td>\n          <td class=\"paramtype\">IList&lt; <a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a> &gt;</td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryHistory</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>retryDelay</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\">Random</td>          <td class=\"paramname\"><span class=\"paramname\"><em>random</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>The Jitter algorithm is responsible for introducing randomness to a delay before a retry. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">retryHistory</td><td>Information about previous retry attempts.</td></tr>\n    <tr><td class=\"paramname\">retryDelay</td><td>A delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</td></tr>\n    <tr><td class=\"paramname\">random</td><td>A Random object that has been seeded by IClient.RetryJitterSeed. <dl class=\"section return\"><dt>Returns</dt><dd>A new delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.</dd></dl>\n</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"afe3a987ac265a5690c1cdd971c6cb099\" name=\"afe3a987ac265a5690c1cdd971c6cb099\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#afe3a987ac265a5690c1cdd971c6cb099\">&#9670;&#160;</a></span>RetryListener()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate void Satori.RetryListener </td>\n          <td>(</td>\n          <td class=\"paramtype\">int</td>          <td class=\"paramname\"><span class=\"paramname\"><em>numRetry</em></span>, </td>\n        </tr>\n        <tr>\n          <td class=\"paramkey\"></td>\n          <td></td>\n          <td class=\"paramtype\"><a class=\"el\" href=\"class_satori_1_1_retry.html\">Retry</a></td>          <td class=\"paramname\"><span class=\"paramname\"><em>retry</em></span>&#160;)</td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>Listens to retry events for a particular request. </p>\n<dl class=\"params\"><dt>Parameters</dt><dd>\n  <table class=\"params\">\n    <tr><td class=\"paramname\">numRetry</td><td>The number of retries made so far, including this retry.</td></tr>\n    <tr><td class=\"paramname\">retry</td><td>An holding inromation about the retry attempt.</td></tr>\n  </table>\n  </dd>\n</dl>\n\n</div>\n</div>\n<a id=\"a511888108671df4cff6cd4bbb1ff498f\" name=\"a511888108671df4cff6cd4bbb1ff498f\"></a>\n<h2 class=\"memtitle\"><span class=\"permalink\"><a href=\"#a511888108671df4cff6cd4bbb1ff498f\">&#9670;&#160;</a></span>TransientExceptionDelegate()</h2>\n\n<div class=\"memitem\">\n<div class=\"memproto\">\n      <table class=\"memname\">\n        <tr>\n          <td class=\"memname\">delegate bool Satori.TransientExceptionDelegate </td>\n          <td>(</td>\n          <td class=\"paramtype\">Exception</td>          <td class=\"paramname\"><span class=\"paramname\"><em>e</em></span></td><td>)</td>\n          <td></td>\n        </tr>\n      </table>\n</div><div class=\"memdoc\">\n\n<p>A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load. </p>\n\n</div>\n</div>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_satori.js",
    "content": "var namespace_satori =\n[\n    [ \"TinyJson\", \"namespace_satori_1_1_tiny_json.html\", null ],\n    [ \"ApiResponseException\", \"class_satori_1_1_api_response_exception.html\", \"class_satori_1_1_api_response_exception\" ],\n    [ \"Client\", \"class_satori_1_1_client.html\", \"class_satori_1_1_client\" ],\n    [ \"Event\", \"class_satori_1_1_event.html\", \"class_satori_1_1_event\" ],\n    [ \"HttpRequestAdapter\", \"class_satori_1_1_http_request_adapter.html\", \"class_satori_1_1_http_request_adapter\" ],\n    [ \"IApiAuthenticateLogoutRequest\", \"interface_satori_1_1_i_api_authenticate_logout_request.html\", \"interface_satori_1_1_i_api_authenticate_logout_request\" ],\n    [ \"IApiAuthenticateRefreshRequest\", \"interface_satori_1_1_i_api_authenticate_refresh_request.html\", \"interface_satori_1_1_i_api_authenticate_refresh_request\" ],\n    [ \"IApiAuthenticateRequest\", \"interface_satori_1_1_i_api_authenticate_request.html\", \"interface_satori_1_1_i_api_authenticate_request\" ],\n    [ \"IApiEvent\", \"interface_satori_1_1_i_api_event.html\", \"interface_satori_1_1_i_api_event\" ],\n    [ \"IApiEventRequest\", \"interface_satori_1_1_i_api_event_request.html\", \"interface_satori_1_1_i_api_event_request\" ],\n    [ \"IApiExperiment\", \"interface_satori_1_1_i_api_experiment.html\", \"interface_satori_1_1_i_api_experiment\" ],\n    [ \"IApiExperimentList\", \"interface_satori_1_1_i_api_experiment_list.html\", \"interface_satori_1_1_i_api_experiment_list\" ],\n    [ \"IApiFlag\", \"interface_satori_1_1_i_api_flag.html\", \"interface_satori_1_1_i_api_flag\" ],\n    [ \"IApiFlagList\", \"interface_satori_1_1_i_api_flag_list.html\", \"interface_satori_1_1_i_api_flag_list\" ],\n    [ \"IApiFlagOverride\", \"interface_satori_1_1_i_api_flag_override.html\", \"interface_satori_1_1_i_api_flag_override\" ],\n    [ \"IApiFlagOverrideList\", \"interface_satori_1_1_i_api_flag_override_list.html\", \"interface_satori_1_1_i_api_flag_override_list\" ],\n    [ \"IApiFlagOverrideValue\", \"interface_satori_1_1_i_api_flag_override_value.html\", \"interface_satori_1_1_i_api_flag_override_value\" ],\n    [ \"IApiGetMessageListResponse\", \"interface_satori_1_1_i_api_get_message_list_response.html\", \"interface_satori_1_1_i_api_get_message_list_response\" ],\n    [ \"IApiIdentifyRequest\", \"interface_satori_1_1_i_api_identify_request.html\", \"interface_satori_1_1_i_api_identify_request\" ],\n    [ \"IApiLiveEvent\", \"interface_satori_1_1_i_api_live_event.html\", \"interface_satori_1_1_i_api_live_event\" ],\n    [ \"IApiLiveEventList\", \"interface_satori_1_1_i_api_live_event_list.html\", \"interface_satori_1_1_i_api_live_event_list\" ],\n    [ \"IApiMessage\", \"interface_satori_1_1_i_api_message.html\", \"interface_satori_1_1_i_api_message\" ],\n    [ \"IApiProperties\", \"interface_satori_1_1_i_api_properties.html\", \"interface_satori_1_1_i_api_properties\" ],\n    [ \"IApiSession\", \"interface_satori_1_1_i_api_session.html\", \"interface_satori_1_1_i_api_session\" ],\n    [ \"IApiUpdateMessageRequest\", \"interface_satori_1_1_i_api_update_message_request.html\", \"interface_satori_1_1_i_api_update_message_request\" ],\n    [ \"IApiUpdatePropertiesRequest\", \"interface_satori_1_1_i_api_update_properties_request.html\", \"interface_satori_1_1_i_api_update_properties_request\" ],\n    [ \"IClient\", \"interface_satori_1_1_i_client.html\", \"interface_satori_1_1_i_client\" ],\n    [ \"IFlagValueChangeReason\", \"interface_satori_1_1_i_flag_value_change_reason.html\", \"interface_satori_1_1_i_flag_value_change_reason\" ],\n    [ \"IHttpAdapter\", \"interface_satori_1_1_i_http_adapter.html\", \"interface_satori_1_1_i_http_adapter\" ],\n    [ \"ILogger\", \"interface_satori_1_1_i_logger.html\", \"interface_satori_1_1_i_logger\" ],\n    [ \"IProtobufAny\", \"interface_satori_1_1_i_protobuf_any.html\", \"interface_satori_1_1_i_protobuf_any\" ],\n    [ \"IRpcStatus\", \"interface_satori_1_1_i_rpc_status.html\", \"interface_satori_1_1_i_rpc_status\" ],\n    [ \"ISession\", \"interface_satori_1_1_i_session.html\", \"interface_satori_1_1_i_session\" ],\n    [ \"Retry\", \"class_satori_1_1_retry.html\", \"class_satori_1_1_retry\" ],\n    [ \"RetryConfiguration\", \"class_satori_1_1_retry_configuration.html\", \"class_satori_1_1_retry_configuration\" ],\n    [ \"Session\", \"class_satori_1_1_session.html\", \"class_satori_1_1_session\" ],\n    [ \"ApiFlagOverrideType\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\", [\n      [ \"FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\", null ],\n      [ \"FLAG_VARIANT\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\", null ],\n      [ \"LIVE_EVENT_FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\", null ],\n      [ \"LIVE_EVENT_FLAG_VARIANT\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\", null ],\n      [ \"EXPERIMENT_PHASE_VARIANT_FLAG\", \"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\", null ]\n    ] ],\n    [ \"FlagValueChangeReasonType\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\", [\n      [ \"UNKNOWN\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\", null ],\n      [ \"FLAG_VARIANT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\", null ],\n      [ \"LIVE_EVENT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\", null ],\n      [ \"EXPERIMENT\", \"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\", null ]\n    ] ],\n    [ \"Jitter\", \"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\", null ],\n    [ \"RetryListener\", \"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\", null ],\n    [ \"TransientExceptionDelegate\", \"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\", null ]\n];"
  },
  {
    "path": "docs/html/namespace_satori_1_1_tests.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.5\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET: Satori.Tests Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET<span id=\"projectnumber\">&#160;3.5</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.5 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('namespace_satori_1_1_tests.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"summary\">\n<a href=\"#nested-classes\">Classes</a>  </div>\n  <div class=\"headertitle\"><div class=\"title\">Satori.Tests Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><a class=\"el\" href=\"class_satori_1_1_tests_1_1_client_test.html\">ClientTest</a></td></tr>\n<tr class=\"separator:\"><td class=\"memSeparator\" colspan=\"2\">&#160;</td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a class=\"el\" href=\"namespace_satori_1_1_tests.html\">Tests</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.5 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespace_satori_1_1_tests.js",
    "content": "var namespace_satori_1_1_tests =\n[\n    [ \"ClientTest\", \"class_satori_1_1_tests_1_1_client_test.html\", null ]\n];"
  },
  {
    "path": "docs/html/namespace_satori_1_1_tiny_json.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Satori.TinyJson Namespace Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespace_satori_1_1_tiny_json.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Satori.TinyJson Namespace Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<table class=\"memberdecls\">\n<tr class=\"heading\"><td colspan=\"2\"><h2 id=\"header-nested-classes\" class=\"groupheader\"><a id=\"nested-classes\" name=\"nested-classes\"></a>\nClasses</h2></td></tr>\n<tr class=\"memitem:JsonParser\" id=\"r_JsonParser\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>JsonParser</b></td></tr>\n<tr class=\"memitem:JsonWriter\" id=\"r_JsonWriter\"><td class=\"memItemLeft\" align=\"right\" valign=\"top\">class &#160;</td><td class=\"memItemRight\" valign=\"bottom\"><b>JsonWriter</b></td></tr>\n</table>\n</div><!-- contents -->\n</div><!-- doc-content -->\n<div id=\"page-nav\" class=\"page-nav-panel\">\n<div id=\"page-nav-resize-handle\"></div>\n<div id=\"page-nav-tree\">\n<div id=\"page-nav-contents\">\n</div><!-- page-nav-contents -->\n</div><!-- page-nav-tree -->\n</div><!-- page-nav -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a href=\"namespace_satori.html\">Satori</a></li><li class=\"navelem\"><a href=\"namespace_satori_1_1_tiny_json.html\">TinyJson</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespacemembers.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespacemembers.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>\n<li>ApiFlagOverrideType&#160;:&#160;<a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\">Satori</a></li>\n<li>ApiOperator&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">Nakama</a></li>\n<li>ApiStoreEnvironment&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">Nakama</a></li>\n<li>ApiStoreProvider&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">Nakama</a></li>\n<li>ChannelType&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">Nakama</a></li>\n<li>FlagValueChangeReasonType&#160;:&#160;<a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\">Satori</a></li>\n<li>Jitter()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\">Satori</a></li>\n<li>RetryListener()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\">Satori</a></li>\n<li>TransientExceptionDelegate()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\">Satori</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespacemembers_enum.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespacemembers_enum.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespace enums with links to the namespace documentation for each enum:</div><ul>\n<li>ApiFlagOverrideType&#160;:&#160;<a class=\"el\" href=\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\">Satori</a></li>\n<li>ApiOperator&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\">Nakama</a></li>\n<li>ApiStoreEnvironment&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\">Nakama</a></li>\n<li>ApiStoreProvider&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\">Nakama</a></li>\n<li>ChannelType&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\">Nakama</a></li>\n<li>FlagValueChangeReasonType&#160;:&#160;<a class=\"el\" href=\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\">Satori</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespacemembers_func.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Namespace Members</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespacemembers_func.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespace functions with links to the namespace documentation for each function:</div><ul>\n<li>Jitter()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\">Satori</a></li>\n<li>RetryListener()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\">Satori</a></li>\n<li>TransientExceptionDelegate()&#160;:&#160;<a class=\"el\" href=\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\">Nakama</a>, <a class=\"el\" href=\"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\">Satori</a></li>\n</ul>\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespaces.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Namespace List</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('namespaces.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Namespace List</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all namespaces with brief descriptions:</div><div class=\"directory\">\n<div class=\"levels\">[detail level <span onclick=\"javascript:dynsection.toggleLevel(1);\">1</span><span onclick=\"javascript:dynsection.toggleLevel(2);\">2</span><span onclick=\"javascript:dynsection.toggleLevel(3);\">3</span><span onclick=\"javascript:dynsection.toggleLevel(4);\">4</span>]</div><table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_')\"><span class=\"arrowhead opened\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama.html\" target=\"_self\">Nakama</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_console.html\" target=\"_self\">Console</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_')\"><span class=\"arrowhead opened\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja.html\" target=\"_self\">Ninja</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_\" class=\"odd\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span id=\"arr_0_1_0_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('0_1_0_')\"><span class=\"arrowhead opened\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\" target=\"_self\">WebSockets</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\" target=\"_self\">Exceptions</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_1_0_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:64px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\" target=\"_self\">Internal</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_0_2_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_nakama_1_1_tiny_json.html\" target=\"_self\">TinyJson</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_\" class=\"odd\"><td class=\"entry\"><span style=\"width:0px;display:inline-block;\">&#160;</span><span id=\"arr_1_\" class=\"arrow\" onclick=\"dynsection.toggleFolder('1_')\"><span class=\"arrowhead opened\"></span></span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_satori.html\" target=\"_self\">Satori</a></td><td class=\"desc\"></td></tr>\n<tr id=\"row_1_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:32px;display:inline-block;\">&#160;</span><span class=\"icona\"><span class=\"icon\">N</span></span><a class=\"el\" href=\"namespace_satori_1_1_tiny_json.html\" target=\"_self\">TinyJson</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/namespaces_dup.js",
    "content": "var namespaces_dup =\n[\n    [ \"Nakama\", \"namespace_nakama.html\", \"namespace_nakama\" ],\n    [ \"Satori\", \"namespace_satori.html\", \"namespace_satori\" ]\n];"
  },
  {
    "path": "docs/html/navtree.css",
    "content": "#nav-tree .children_ul {\n  margin:0;\n  padding:4px;\n}\n\n#nav-tree ul {\n  list-style:none outside none;\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree li {\n  white-space:nowrap;\n  margin:0;\n  padding:0;\n}\n\n#nav-tree .plus {\n  margin:0px;\n}\n\n#nav-tree .selected {\n  position: relative;\n  background-color: var(--nav-menu-active-bg);\n  border-radius: 0 6px 6px 0;\n  /*margin-right: 5px;*/\n}\n\n#nav-tree img {\n  margin:0px;\n  padding:0px;\n  border:0px;\n  vertical-align: middle;\n}\n\n#nav-tree a {\n  text-decoration:none;\n  padding:0px;\n  margin:0px;\n}\n\n#nav-tree .label {\n  margin:0px;\n  padding:0px;\n  font: 12px var(--font-family-nav);\n  line-height: 22px;\n}\n\n#nav-tree .label a {\n  padding:2px;\n}\n\n#nav-tree .selected a {\n  text-decoration:none;\n  color:var(--page-link-color);\n}\n\n#nav-tree .children_ul {\n  margin:0px;\n  padding:0px;\n}\n\n#nav-tree .item {\n  margin: 0 6px 0 -5px;\n  padding: 0 0 0 5px;\n  height: 22px;\n}\n\n#nav-tree {\n  padding: 0px 0px;\n  font-size:14px;\n  overflow:auto;\n}\n\n#doc-content {\n  overflow:auto;\n  display:block;\n  padding:0px;\n  margin:0px;\n  -webkit-overflow-scrolling : touch; /* iOS 5+ */\n}\n\n#side-nav {\n  padding:0 6px 0 0;\n  margin: 0px;\n  display:block;\n  position: absolute;\n  left: 0px;\n  overflow : hidden;\n}\n\n.ui-resizable .ui-resizable-handle {\n  display:block;\n}\n\n.ui-resizable-e {\n  transition: opacity 0.5s ease;\n  background-color: var(--nav-splitbar-bg-color);\n  opacity:0;\n  cursor:col-resize;\n  height:100%;\n  right:0;\n  top:0;\n  width:6px;\n  position: relative;\n}\n\n.ui-resizable-e:after {\n  content: '';\n  display: block;\n  top: 50%;\n  left: 1px;\n  width: 2px;\n  height: 15px;\n  border-left: 1px solid var(--nav-splitbar-handle-color);\n  border-right: 1px solid var(--nav-splitbar-handle-color);\n  position: absolute;\n}\n\n.ui-resizable-e:hover {\n  opacity: 1;\n}\n\n.ui-resizable-handle {\n  display:none;\n  font-size:0.1px;\n  position:absolute;\n  z-index:1;\n}\n\n#nav-tree-contents {\n  margin: 6px 0px 0px 0px;\n}\n\n#nav-tree {\n  background-color: var(--nav-background-color);\n  -webkit-overflow-scrolling : touch; /* iOS 5+ */\n  scrollbar-width: thin;\n  border-right: 1px solid var(--nav-border-color);\n  padding-left: 5px;\n}\n\n#nav-sync {\n  position:absolute;\n  top:0px;\n  right:0px;\n  z-index:1;\n}\n\n#nav-sync img {\n  opacity:0.3;\n}\n\ndiv.nav-sync-icon {\n\tposition: relative;\n\twidth: 24px;\n\theight: 17px;\n\tleft: -6px;\n\ttop: -1px;\n\topacity: 0.7;\n\tdisplay: inline-block;\n\tbackground-color: var(--sync-icon-background-color);\n\tborder: 1px solid var(--sync-icon-border-color);\n\tbox-sizing: content-box;\n}\n\ndiv.nav-sync-icon:hover {\n\tbackground-color: var(--sync-icon-selected-background-color);\n\topacity: 1.0;\n}\n\ndiv.nav-sync-icon.active:after {\n\tcontent: '';\n\tbackground-color: var(--sync-icon-background-color);\n\tborder-top: 2px solid var(--sync-icon-color);\n\tposition: absolute;\n\twidth: 16px;\n\theight: 0px;\n\ttop: 7px;\n\tleft: 4px;\n}\n\ndiv.nav-sync-icon.active:hover:after {\n\tborder-top: 2px solid var(--sync-icon-selected-color);\n}\n\nspan.sync-icon-left {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\ttop: 3px;\n\tleft: 4px;\n\tdisplay: inline-block;\n\twidth: 8px;\n\theight: 8px;\n\tborder-left: 2px solid var(--sync-icon-color);\n\tborder-top: 2px solid var(--sync-icon-color);\n\ttransform: rotate(-45deg);\n}\n\nspan.sync-icon-right {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\ttop: 3px;\n\tleft: 10px;\n\tdisplay: inline-block;\n\twidth: 8px;\n\theight: 8px;\n\tborder-right: 2px solid var(--sync-icon-color);\n\tborder-bottom: 2px solid var(--sync-icon-color);\n\ttransform: rotate(-45deg);\n}\n\ndiv.nav-sync-icon:hover span.sync-icon-left {\n\tborder-left: 2px solid var(--sync-icon-selected-color);\n\tborder-top: 2px solid var(--sync-icon-selected-color);\n}\n\ndiv.nav-sync-icon:hover span.sync-icon-right {\n\tborder-right: 2px solid var(--sync-icon-selected-color);\n\tborder-bottom: 2px solid var(--sync-icon-selected-color);\n}\n\n#nav-path ul {\n  border-top: 1px solid var(--nav-breadcrumb-separator-color);\n}\n\n@media print\n{\n  #nav-tree { display: none; }\n  div.ui-resizable-handle { display: none; position: relative; }\n}\n\n/*---------------------------*/\n#container {\n\tdisplay: grid;\n\tgrid-template-columns: auto auto;\n\toverflow: hidden;\n}\n\n#page-nav {\n\tbackground: var(--nav-background-color);\n\tdisplay: block;\n\twidth: 250px;\n\tbox-sizing: content-box;\n        position: relative;\n\tborder-left: 1px solid var(--nav-border-color);\n}\n\n#page-nav-tree {\n\tdisplay: inline-block;\n}\n\n#page-nav-resize-handle {\n  transition: opacity 0.5s ease;\n  background-color: var(--nav-splitbar-bg-color);\n  opacity:0;\n  cursor:col-resize;\n  height:100%;\n  right:0;\n  top:0;\n  width:6px;\n  position: relative;\n  z-index: 1;\n  user-select: none;\n}\n\n#page-nav-resize-handle:after {\n  content: '';\n  display: block;\n  top: 50%;\n  left: 1px;\n  width: 2px;\n  height: 15px;\n  border-left: 1px solid var(--nav-splitbar-handle-color);\n  border-right: 1px solid var(--nav-splitbar-handle-color);\n  position: absolute;\n}\n\n#page-nav-resize-handle.dragging,\n#page-nav-resize-handle:hover {\n  opacity: 1;\n}\n\n#page-nav-contents {\n  padding: 0;\n  margin: 0;\n  display: block;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  overflow: auto;\n  scrollbar-width: thin;\n  -webkit-overflow-scrolling : touch; /* iOS 5+ */\n}\n\nul.page-outline,\nul.page-outline ul {\n  text-indent: 0;\n  list-style: none outside none;\n  padding: 0 0 0 4px;\n}\n\nul.page-outline {\n  margin: 0 4px 4px 6px;\n}\n\nul.page-outline div.item {\n  font: 12px var(--font-family-nav);\n  line-height: 22px;\n}\n\nul.page-outline li {\n  white-space: nowrap;\n}\n\nul.page-outline li.vis {\n  background-color: var(--nav-breadcrumb-active-bg);\n}\n\n#container.resizing {\n  cursor: col-resize;\n  user-select: none;\n}\n"
  },
  {
    "path": "docs/html/navtree.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n */\n\nfunction initNavTree(toroot,relpath,allMembersFile) {\n  let navTreeSubIndices = [];\n  const ARROW_DOWN = '<span class=\"arrowhead opened\"></span>';\n  const ARROW_RIGHT = '<span class=\"arrowhead closed\"></span>';\n  const NAVPATH_COOKIE_NAME = ''+'navpath';\n  const fullSidebar = typeof page_layout!=='undefined' && page_layout==1;\n\n  function getScrollBarWidth () {\n    let outer = $('<div>').css({visibility: 'hidden', width: 100, overflow: 'scroll', scrollbarWidth: 'thin'}).appendTo('body');\n    let widthWithScroll = $('<div>').css({width: '100%'}).appendTo(outer).outerWidth();\n    outer.remove();\n    return 100 - widthWithScroll;\n  }\n  const scrollbarWidth = getScrollBarWidth();\n\n  function adjustSyncIconPosition() {\n    if (!fullSidebar) {\n      const nt = document.getElementById(\"nav-tree\");\n      const hasVerticalScrollbar = nt.scrollHeight > nt.clientHeight;\n      $(\"#nav-sync\").css({right:parseInt(hasVerticalScrollbar?scrollbarWidth:0)});\n    }\n  }\n\n  const getData = function(varName) {\n    const i = varName.lastIndexOf('/');\n    const n = i>=0 ? varName.substring(i+1) : varName;\n    const e = n.replace(/-/g,'_');\n    return window[e];\n  }\n\n  const stripPath = function(uri) {\n    return uri.substring(uri.lastIndexOf('/')+1);\n  }\n\n  const stripPath2 = function(uri) {\n    const i = uri.lastIndexOf('/');\n    const s = uri.substring(i+1);\n    const m = uri.substring(0,i+1).match(/\\/d\\w\\/d\\w\\w\\/$/);\n    return m ? uri.substring(i-6) : s;\n  }\n\n  const hashValue = function() {\n    return $(location).attr('hash').substring(1).replace(/[^\\w-]/g,'');\n  }\n\n  const hashUrl = function() {\n    return '#'+hashValue();\n  }\n\n  const pathName = function() {\n    return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, '');\n  }\n\n  const storeLink = function(link) {\n    if (!$(\"#nav-sync\").hasClass('sync')) {\n      Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0);\n    }\n  }\n\n  const deleteLink = function() {\n    Cookie.eraseSetting(NAVPATH_COOKIE_NAME);\n  }\n\n  const cachedLink = function() {\n    return Cookie.readSetting(NAVPATH_COOKIE_NAME,'');\n  }\n\n  const getScript = function(scriptName,func) {\n    const head = document.getElementsByTagName(\"head\")[0];\n    const script = document.createElement('script');\n    script.id = scriptName;\n    script.type = 'text/javascript';\n    script.onload = function() { func(); adjustSyncIconPosition(); }\n    script.src = scriptName+'.js';\n    head.appendChild(script);\n  }\n\n  const createIndent = function(o,domNode,node) {\n    let level=-1;\n    let n = node;\n    while (n.parentNode) { level++; n=n.parentNode; }\n    if (node.childrenData) {\n      const imgNode = document.createElement(\"span\");\n      imgNode.className = 'arrow';\n      imgNode.style.paddingLeft=(16*level).toString()+'px';\n      imgNode.innerHTML=ARROW_RIGHT;\n      node.plus_img = imgNode;\n      node.expandToggle = document.createElement(\"a\");\n      node.expandToggle.href = \"javascript:void(0)\";\n      node.expandToggle.onclick = function() {\n        if (node.expanded) {\n          $(node.getChildrenUL()).slideUp(\"fast\",adjustSyncIconPosition);\n          $(node.plus_img.childNodes[0]).removeClass('opened').addClass('closed');\n          node.expanded = false;\n        } else {\n          expandNode(o, node, false, true);\n        }\n      }\n      node.expandToggle.appendChild(imgNode);\n      domNode.appendChild(node.expandToggle);\n    } else {\n      let span = document.createElement(\"span\");\n      span.className = 'arrow';\n      span.style.width   = 16*(level+1)+'px';\n      span.innerHTML = '&#160;';\n      domNode.appendChild(span);\n    }\n  }\n\n  let animationInProgress = false;\n\n  const gotoAnchor = function(anchor,aname) {\n    let pos, docContent = $('#doc-content');\n    let ancParent = $(anchor.parent());\n    if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle')  ||\n        ancParent.hasClass('fieldname')   || ancParent.hasClass('fieldtype') ||\n        ancParent.is(':header')) {\n      pos = ancParent.offset().top;\n    } else if (anchor.position()) {\n      pos = anchor.offset().top;\n    }\n    if (pos) {\n      const dcOffset    = docContent.offset().top;\n      const dcHeight    = docContent.height();\n      const dcScrHeight = docContent[0].scrollHeight\n      const dcScrTop    = docContent.scrollTop();\n      let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop));\n      animationInProgress = true;\n      docContent.animate({\n        scrollTop: pos + dcScrTop - dcOffset\n      },Math.max(50,Math.min(500,dist)),function() {\n        animationInProgress=false;\n        if (anchor.parent().attr('class')=='memItemLeft') {\n          let rows = $('.memberdecls tr[class$=\"'+hashValue()+'\"]');\n          glowEffect(rows.children(),300); // member without details\n        } else if (anchor.parent().attr('class')=='fieldname') {\n          glowEffect(anchor.parent().parent(),1000); // enum value\n        } else if (anchor.parent().attr('class')=='fieldtype') {\n          glowEffect(anchor.parent().parent(),1000); // struct field\n        } else if (anchor.parent().is(\":header\")) {\n          glowEffect(anchor.parent(),1000); // section header\n        } else {\n          glowEffect(anchor.next(),1000); // normal member\n        }\n      });\n    }\n  }\n\n  function htmlToNode(html) {\n    const template = document.createElement('template');\n    template.innerHTML = html;\n    const nNodes = template.content.childNodes.length;\n    if (nNodes !== 1) {\n        throw new Error(`html parameter must represent a single node; got ${nNodes}. `);\n    }\n    return template.content.firstChild;\n  }\n\n  const newNode = function(o, po, text, link, childrenData, lastNode) {\n    const node = {\n      children     : [],\n      childrenData : childrenData,\n      depth        : po.depth + 1,\n      relpath      : po.relpath,\n      isLast       : lastNode,\n      li           : document.createElement(\"li\"),\n      parentNode   : po,\n      itemDiv      : document.createElement(\"div\"),\n      labelSpan    : document.createElement(\"span\"),\n      expanded     : false,\n      childrenUL   : null,\n      getChildrenUL : function() {\n        if (!this.childrenUL) {\n          this.childrenUL = document.createElement(\"ul\");\n          this.childrenUL.className = \"children_ul\";\n          this.childrenUL.style.display = \"none\";\n          this.li.appendChild(node.childrenUL);\n        }\n        return node.childrenUL;\n      },\n    };\n\n    node.itemDiv.className = \"item\";\n    node.labelSpan.className = \"label\";\n    createIndent(o,node.itemDiv,node);\n    node.itemDiv.appendChild(node.labelSpan);\n    node.li.appendChild(node.itemDiv);\n\n    const a = document.createElement(\"a\");\n    node.labelSpan.appendChild(a);\n    po.getChildrenUL().appendChild(node.li);\n    a.appendChild(htmlToNode('<span>'+text+'</span>'));\n    if (link) {\n      let url;\n      if (link.substring(0,1)=='^') {\n        url = link.substring(1);\n        link = url;\n      } else {\n        url = node.relpath+link;\n      }\n      a.className = stripPath(link.replace('#',':'));\n      if (link.indexOf('#')!=-1) {\n        const aname = '#'+link.split('#')[1];\n        const srcPage = stripPath(pathName());\n        const targetPage = stripPath(link.split('#')[0]);\n        a.href = srcPage!=targetPage ? url : aname;\n        a.onclick = function() {\n          storeLink(link);\n          aPPar = $(a).parent().parent();\n          if (!aPPar.hasClass('selected')) {\n            $('.item').removeClass('selected');\n            $('.item').removeAttr('id');\n            aPPar.addClass('selected');\n            aPPar.attr('id','selected');\n          }\n          const anchor = $(aname);\n          gotoAnchor(anchor,aname);\n        };\n      } else {\n        a.href = url;\n        a.onclick = () => storeLink(link);\n      }\n    } else if (childrenData != null) {\n      a.className = \"nolink\";\n      a.href = \"javascript:void(0)\";\n      a.onclick = node.expandToggle.onclick;\n    }\n    return node;\n  }\n\n  const showRoot = function() {\n    const headerHeight = $(\"#top\").height();\n    const footerHeight = $(\"#nav-path\").height();\n    const windowHeight = $(window).height() - headerHeight - footerHeight;\n    (function() { // retry until we can scroll to the selected item\n      try {\n        const navtree=$('#nav-tree');\n        navtree.scrollTo('#selected',100,{offset:-windowHeight/2});\n      } catch (err) {\n        setTimeout(arguments.callee, 0);\n      }\n    })();\n  }\n\n  const expandNode = function(o, node, imm, setFocus) {\n    if (node.childrenData && !node.expanded) {\n      if (typeof(node.childrenData)==='string') {\n        const varName = node.childrenData;\n        getScript(node.relpath+varName,function() {\n          node.childrenData = getData(varName);\n          expandNode(o, node, imm, setFocus);\n        });\n      } else {\n        if (!node.childrenVisited) {\n          getNode(o, node);\n        }\n        $(node.getChildrenUL()).slideDown(\"fast\",adjustSyncIconPosition);\n        $(node.plus_img.childNodes[0]).addClass('opened').removeClass('closed');\n        node.expanded = true;\n        if (setFocus) {\n          $(node.expandToggle).focus();\n        }\n      }\n    }\n  }\n\n  const glowEffect = function(n,duration) {\n    n.addClass('glow').delay(duration).queue(function(next) {\n      $(this).removeClass('glow');next();\n    });\n  }\n\n  const highlightAnchor = function() {\n    const aname = hashUrl();\n    const anchor = $(aname);\n    gotoAnchor(anchor,aname);\n  }\n\n  const selectAndHighlight = function(hash,n) {\n    let a;\n    if (hash) {\n      const link=stripPath(pathName())+':'+hash.substring(1);\n      a=$('.item a[class$=\"'+link+'\"]');\n    }\n    if (a && a.length) {\n      a.parent().parent().addClass('selected');\n      a.parent().parent().attr('id','selected');\n      highlightAnchor();\n    } else if (n) {\n      $(n.itemDiv).addClass('selected');\n      $(n.itemDiv).attr('id','selected');\n    }\n    let topOffset=5;\n    if ($('#nav-tree-contents .item:first').hasClass('selected')) {\n      topOffset+=25;\n    }\n    showRoot();\n  }\n\n  const showNode = function(o, node, index, hash) {\n    if (node && node.childrenData) {\n      if (typeof(node.childrenData)==='string') {\n        const varName = node.childrenData;\n        getScript(node.relpath+varName,function() {\n          node.childrenData = getData(varName);\n          showNode(o,node,index,hash);\n        });\n      } else {\n        if (!node.childrenVisited) {\n          getNode(o, node);\n        }\n        $(node.getChildrenUL()).css({'display':'block'});\n        $(node.plus_img.childNodes[0]).removeClass('closed').addClass('opened');\n        node.expanded = true;\n        const n = node.children[o.breadcrumbs[index]];\n        if (index+1<o.breadcrumbs.length) {\n          showNode(o,n,index+1,hash);\n        } else if (typeof(n.childrenData)==='string') {\n          const varName = n.childrenData;\n          getScript(n.relpath+varName,function() {\n            n.childrenData = getData(varName);\n            node.expanded=false;\n            showNode(o,node,index,hash); // retry with child node expanded\n          });\n        } else {\n          const rootBase = stripPath(o.toroot.replace(/\\..+$/, ''));\n          if (rootBase==\"index\" || rootBase==\"pages\" || rootBase==\"search\") {\n            expandNode(o, n, true, false);\n          }\n          selectAndHighlight(hash,n);\n        }\n      }\n    } else {\n      selectAndHighlight(hash);\n    }\n  }\n\n  const getNode = function(o, po) {\n    po.childrenVisited = true;\n    const l = po.childrenData.length-1;\n    for (let i in po.childrenData) {\n      const nodeData = po.childrenData[i];\n      po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l);\n    }\n  }\n\n  const gotoNode = function(o,subIndex,root,hash,relpath) {\n    const nti = navTreeSubIndices[subIndex][root+hash];\n    if (nti==undefined && hash.length>0) { // try root page without hash as fallback\n      gotoUrl(o,root,'',relpath);\n    } else {\n      o.breadcrumbs = $.extend(true, [], nti);\n      if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index\n        navTo(o,NAVTREE[0][1],\"\",relpath);\n        $('.item').removeClass('selected');\n        $('.item').removeAttr('id');\n      }\n      if (o.breadcrumbs) {\n        o.breadcrumbs.unshift(0); // add 0 for root node\n        showNode(o, o.node, 0, hash);\n      }\n    }\n  }\n\n  const gotoUrl = function(o,root,hash,relpath) {\n    const url=root+hash;\n    let i=-1;\n    while (NAVTREEINDEX[i+1]<=url) i++;\n    if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index\n    if (navTreeSubIndices[i]) {\n      gotoNode(o,i,root,hash,relpath)\n    } else {\n      getScript(relpath+'navtreeindex'+i,function() {\n        navTreeSubIndices[i] = window['NAVTREEINDEX'+i];\n        if (navTreeSubIndices[i]) {\n          gotoNode(o,i,root,hash,relpath);\n        }\n      });\n    }\n  }\n\n  const navTo = function(o,root,hash,relpath) {\n    const link = cachedLink();\n    if (link) {\n      const parts = link.split('#');\n      root = parts[0];\n      hash = parts.length>1 ? '#'+parts[1].replace(/[^\\w-]/g,'') : '';\n    }\n    if (hash.match(/^#l\\d+$/)) {\n      const anchor=$('a[name='+hash.substring(1)+']');\n      glowEffect(anchor.parent(),1000); // line number\n      hash=''; // strip line number anchors\n    }\n    gotoUrl(o,root,hash,relpath);\n  }\n\n  const showSyncOff = function(n,relpath) {\n    n.html('<div class=\"nav-sync-icon\" title=\"'+SYNCOFFMSG+'\"><span class=\"sync-icon-left\"></span><span class=\"sync-icon-right\"></span></div>');\n  }\n\n  const showSyncOn = function(n,relpath) {\n    n.html('<div class=\"nav-sync-icon active\" title=\"'+SYNCONMSG+'\"><span class=\"sync-icon-left\"></span><span class=\"sync-icon-right\"></span></div>');\n  }\n\n  const o = {\n    toroot : toroot,\n    node   : {\n      childrenData  : NAVTREE,\n      children      : [],\n      childrenUL    : document.createElement(\"ul\"),\n      getChildrenUL : function() { return this.childrenUL },\n      li            : document.getElementById(\"nav-tree-contents\"),\n      depth         : 0,\n      relpath       : relpath,\n      expanded      : false,\n      isLast        : true,\n      plus_img      : document.createElement(\"span\"),\n    },\n  };\n  o.node.li.appendChild(o.node.childrenUL);\n  o.node.plus_img.className = 'arrow';\n  o.node.plus_img.innerHTML = ARROW_RIGHT;\n\n  const navSync = $('#nav-sync');\n  if (cachedLink()) {\n    showSyncOff(navSync,relpath);\n    navSync.removeClass('sync');\n  } else {\n    showSyncOn(navSync,relpath);\n  }\n\n  navSync.click(() => {\n    const navSync = $('#nav-sync');\n    if (navSync.hasClass('sync')) {\n      navSync.removeClass('sync');\n      showSyncOff(navSync,relpath);\n      storeLink(stripPath2(pathName())+hashUrl());\n    } else {\n      navSync.addClass('sync');\n      showSyncOn(navSync,relpath);\n      deleteLink();\n    }\n  });\n\n  navTo(o,toroot,hashUrl(),relpath);\n  showRoot();\n\n  $(window).bind('hashchange', () => {\n    if (!animationInProgress) {\n      if (window.location.hash && window.location.hash.length>1) {\n        let a;\n        if ($(location).attr('hash')) {\n          const clslink=stripPath(pathName())+':'+hashValue();\n          a=$('.item a[class$=\"'+clslink.replace(/</g,'\\\\3c ')+'\"]');\n        }\n        if (a==null || !$(a).parent().parent().hasClass('selected')) {\n          $('.item').removeClass('selected');\n          $('.item').removeAttr('id');\n        }\n        const link=stripPath2(pathName());\n        navTo(o,link,hashUrl(),relpath);\n        } else {\n        $('#doc-content').scrollTop(0);\n        $('.item').removeClass('selected');\n        $('.item').removeAttr('id');\n        navTo(o,toroot,hashUrl(),relpath);\n      }\n    }\n  });\n\n  $(window).resize(function() { adjustSyncIconPosition(); });\n\n  let navtree_trampoline = {\n    updateContentTop : function() {}\n  }\n\n  function initResizable() {\n    let sidenav,mainnav,pagenav,container,navtree,content,header,footer,barWidth=6;\n    const RESIZE_COOKIE_NAME = ''+'width';\n    const PAGENAV_COOKIE_NAME = ''+'pagenav';\n    const fullSidebar = typeof page_layout!=='undefined' && page_layout==1;\n\n    function showHideNavBar() {\n      let bar = $('div.sm-dox');\n      if (fullSidebar && mainnav && bar) {\n        if (mainnav.width()<768) {\n          bar.hide();\n        } else {\n          bar.show();\n        }\n      }\n    }\n\n    function constrainPanelWidths(leftPanelWidth,rightPanelWidth,dragLeft) {\n      const contentWidth = container.width()-leftPanelWidth-rightPanelWidth;\n      const minContentWidth = 250;\n      const minPanelWidth = barWidth;\n      if (contentWidth<minContentWidth) // need to shrink panels\n      {\n        const deficit = minContentWidth - contentWidth;\n        if (dragLeft) { // dragging left handle -> try to keep right panel width\n          const shrinkLeft = Math.min(deficit, leftPanelWidth-minPanelWidth);\n          leftPanelWidth -= shrinkLeft;\n          const remainingDeficit = deficit - shrinkLeft;\n          const shrinkRight = Math.min(remainingDeficit, rightPanelWidth-minPanelWidth);\n          rightPanelWidth -= shrinkRight;\n        } else { // dragging right handle -> try to keep left panel width\n          const shrinkRight = Math.min(deficit, rightPanelWidth-minPanelWidth);\n          rightPanelWidth -= shrinkRight;\n          const remainingDeficit = deficit - shrinkRight;\n          const shrinkLeft = Math.min(remainingDeficit, leftPanelWidth-minPanelWidth);\n          leftPanelWidth -= shrinkLeft;\n        }\n      } else {\n        rightPanelWidth = pagenav.length ? Math.max(minPanelWidth,rightPanelWidth) : 0;\n        leftPanelWidth = Math.max(minPanelWidth,leftPanelWidth);\n        }\n      return { leftPanelWidth, rightPanelWidth }\n    }\n\n    function updateWidths(sidenavWidth,pagenavWidth,dragLeft)\n    {\n      const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,dragLeft);\n      const widthStr = parseInt(widths.leftPanelWidth)+\"px\";\n      content.css({marginLeft:widthStr});\n      if (fullSidebar) {\n        footer.css({marginLeft:widthStr});\n        if (mainnav) {\n          mainnav.css({marginLeft:widthStr});\n        }\n      }\n      sidenav.css({width:widthStr});\n      if (pagenav.length) {\n        container.css({gridTemplateColumns:'auto '+parseInt(widths.rightPanelWidth)+'px'});\n        pagenav.css({width:parseInt(widths.rightPanelWidth-1)+'px'});\n      }\n      return widths;\n    }\n\n    function resizeWidth(dragLeft) {\n      const sidenavWidth = $(sidenav).outerWidth()-barWidth;\n      const pagenavWidth = pagenav.length ? $(pagenav).outerWidth() : 0;\n      const widths = updateWidths(sidenavWidth,pagenavWidth,dragLeft);\n      Cookie.writeSetting(RESIZE_COOKIE_NAME,widths.leftPanelWidth-barWidth);\n      if (pagenav.length) {\n        Cookie.writeSetting(PAGENAV_COOKIE_NAME,widths.rightPanelWidth);\n      }\n    }\n\n    function restoreWidth(sidenavWidth,pagenavWidth) {\n      updateWidths(sidenavWidth,pagenavWidth,false);\n      showHideNavBar();\n    }\n\n    function resizeHeight() {\n      const headerHeight = header.outerHeight();\n      const windowHeight = $(window).height();\n      let contentHeight;\n      const footerHeight = footer.outerHeight();\n      let navtreeHeight,sideNavHeight;\n      if (!fullSidebar) {\n        contentHeight = windowHeight - headerHeight - footerHeight - 1;\n        navtreeHeight = contentHeight;\n        sideNavHeight = contentHeight;\n      } else if (fullSidebar) {\n        contentHeight = windowHeight - footerHeight - 1;\n        navtreeHeight = windowHeight - headerHeight - 1;\n        sideNavHeight = windowHeight - 1;\n        if (mainnav) {\n          contentHeight -= mainnav.outerHeight();\n        }\n      }\n      navtree.css({height:navtreeHeight + \"px\"});\n      sidenav.css({height:sideNavHeight + \"px\"});\n      content.css({height:contentHeight + \"px\"});\n      resizeWidth(false);\n      showHideNavBar();\n      if (location.hash.slice(1)) {\n        (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();\n      }\n    }\n\n    header  = $(\"#top\");\n    content = $(\"#doc-content\");\n    footer  = $(\"#nav-path\");\n    sidenav = $(\"#side-nav\");\n    if (document.getElementById('main-nav')) {\n      mainnav = $(\"#main-nav\");\n    }\n    navtree = $(\"#nav-tree\");\n    pagenav   = $(\"#page-nav\");\n    container = $(\"#container\");\n    $(\".side-nav-resizable\").resizable({resize: function(e, ui) { resizeWidth(true); } });\n    $(sidenav).resizable({ minWidth: 0 });\n    if (pagenav.length) {\n      pagehandle  = $(\"#page-nav-resize-handle\");\n      pagehandle.on('mousedown touchstart',function(e) { \n         $('body').addClass('resizing');\n         pagehandle.addClass('dragging');\n         $(document).on('mousemove touchmove',function(e) {\n           const clientX = e.clientX || e.originalEvent.touches[0].clientX;\n           let pagenavWidth = container[0].offsetWidth-clientX+barWidth/2;\n           const sidenavWidth = sidenav.width();\n           const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,false);\n           container.css({gridTemplateColumns:'auto '+parseInt(widths.rightPanelWidth)+'px'});\n           pagenav.css({width:parseInt(widths.rightPanelWidth-1)+'px'});\n           content.css({marginLeft:parseInt(widths.leftPanelWidth)+'px'});\n           Cookie.writeSetting(PAGENAV_COOKIE_NAME,pagenavWidth);\n         });\n         $(document).on('mouseup touchend', function(e) {\n           $('body').removeClass('resizing');\n           pagehandle.removeClass('dragging');\n           $(document).off('mousemove mouseup touchmove touchend');\n         });\n      });\n    } else {\n      container.css({gridTemplateColumns:'auto'});\n    }\n    const width = parseInt(Cookie.readSetting(RESIZE_COOKIE_NAME,250));\n    const pagenavWidth = parseInt(Cookie.readSetting(PAGENAV_COOKIE_NAME,250));\n    if (width) { restoreWidth(width+barWidth,pagenavWidth); } else { resizeWidth(); }\n    const url = location.href;\n    const i=url.indexOf(\"#\");\n    if (i>=0) window.location.hash=url.substr(i);\n    const _preventDefault = function(evt) { evt.preventDefault(); };\n    $(\"#splitbar\").bind(\"dragstart\", _preventDefault).bind(\"selectstart\", _preventDefault);\n    $(window).ready(function() {\n      let lastWidth = -1;\n      let lastHeight = -1;\n      $(window).resize(function() {\n          const newWidth  = $(this).width(), newHeight = $(this).height();\n          if (newWidth!=lastWidth || newHeight!=lastHeight) {\n            resizeHeight();\n            navtree_trampoline.updateContentTop();\n            lastWidth = newWidth;\n            lastHeight = newHeight;\n          }\n      });\n      resizeHeight();\n      lastWidth = $(window).width();\n      lastHeight = $(window).height();\n      content.scroll(function() {\n        navtree_trampoline.updateContentTop();\n      });\n    });\n  }\n\n\n  function initPageToc() {\n    const topMapping = [];\n    const toc_contents = $('#page-nav-contents');\n    const content=$('<ul>').addClass('page-outline');\n\n    var entityMap = {\n      '&': '&amp;',\n      '<': '&lt;',\n      '>': '&gt;',\n      '\"': '&quot;',\n      \"'\": '&#39;',\n      '/': '&#x2F;',\n      '`': '&#x60;',\n      '=': '&#x3D;'\n    };\n    function escapeHtml (string) {\n      return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\n        return entityMap[s];\n      });\n    }\n\n    // for ClassDef/GroupDef/ModuleDef/ConceptDef/DirDef\n    const groupSections = [];\n    let currentGroup = null;\n    $('h2.groupheader, h2.memtitle').each(function(){\n      const $element = $(this);\n      if ($element.hasClass('groupheader')) {\n        currentGroup = { groupHeader: $element, memTitles: [] };\n        groupSections.push(currentGroup);\n      } else if ($element.hasClass('memtitle') && currentGroup) {\n        currentGroup.memTitles.push($element);\n      }\n    });\n    groupSections.forEach(function(item){\n      const title = item.groupHeader.text().trim();\n      let id = item.groupHeader.attr('id');\n      const table = item.groupHeader.parents('table.memberdecls');\n      let rows = $();\n      if (table.length>0) {\n        rows = table.find(\"tr[class^='memitem:'] td.memItemRight, tr[class^='memitem:'] td.memItemLeft.anon, tr[class=groupHeader] td\");\n      }\n      function hasSubItems() {\n        return item.memTitles.length>0 || rows.toArray().some(function(el) { return $(el).is(':visible'); });\n      }\n      const li = $('<li>').attr('id','nav-'+id);\n      const div = $('<div>').addClass('item');\n      const span = $('<span>').addClass('arrow').css({ paddingLeft:'0' });\n      if (hasSubItems()) {\n        span.append($('<span>').addClass('arrowhead opened'));\n      }\n      const ahref = $('<a>').attr('href','#'+id).append(title);\n      content.append(li.append(div.append(span).append(ahref)));\n      topMapping.push(id);\n      const ulStack = [];\n      ulStack.push(content);\n      if (hasSubItems()) {\n        let last_id = undefined;\n        let inMemberGroup = false;\n        // declaration sections have rows for items\n        rows.each(function(){\n          let td = $(this);\n          let tr = $(td).parent();\n          const is_anon_enum = td.contents().first().text().trim()=='{';\n          if (tr.hasClass('template')) {\n            tr = tr.prev();\n          }\n          id = $(tr).attr('id');\n          const text = is_anon_enum ? 'anonymous enum' : $(this).find('a:first,b,div.groupHeader').text();\n          let isMemberGroupHeader = $(tr).hasClass('groupHeader');\n          if ($(tr).is(\":visible\") && last_id!=id && id!==undefined) {\n            if (isMemberGroupHeader && inMemberGroup) {\n              ulStack.pop();\n              inMemberGroup=false;\n            }\n            const li2 = $('<li>').attr('id','nav-'+id);\n            const div2 = $('<div>').addClass('item');\n            const span2 = $('<span>').addClass('arrow').css({ paddingLeft:parseInt(ulStack.length*16)+'px' });\n            const ahref = $('<a>').attr('href','#'+id).append(escapeHtml(text));\n            li2.append(div2.append(span2).append(ahref));\n            topMapping.push(id);\n            if (isMemberGroupHeader) {\n              span2.append($('<span>').addClass('arrowhead opened'));\n              ulStack[ulStack.length-1].append(li2);\n              const ul2 = $('<ul>');\n              ulStack.push(ul2);\n              li2.append(div2).append(ul2);\n              inMemberGroup=true;\n            } else {\n              ulStack[ulStack.length-1].append(li2);\n            }\n            last_id=id;\n          }\n        });\n        // detailed documentation has h2.memtitle sections for items\n        item.memTitles.forEach(function(data) {\n          const text = $(data).contents().not($(data).children().first()).text();\n          const name = text.replace(/\\(\\)(\\s*\\[\\d+\\/\\d+\\])?$/, '') // func() [2/8] -> func\n          id = $(data).find('span.permalink a').attr('href')\n          if (id!==undefined && name!==undefined) {\n            const li2 = $('<li>').attr('id','nav-'+id.substring(1));\n            const div2 = $('<div>').addClass('item');\n            const span2 = $('<span>').addClass('arrow').css({paddingLeft:parseInt(ulStack.length*16)+'px'});\n            const ahref = $('<a>').attr('href',id).append(escapeHtml(name));\n            ulStack[ulStack.length-1].append(li2.append(div2.append(span2).append(ahref)));\n            topMapping.push(id.substring(1));\n          }\n        });\n      }\n    });\n    if (allMembersFile.length) { // add entry linking to all members page\n      const url = location.href;\n      let srcBaseUrl = '';\n      let dstBaseUrl = '';\n      if (relpath.length) { // CREATE_SUBDIRS=YES -> find target location\n        srcBaseUrl = url.substring(0, url.lastIndexOf('/')) + '/' + relpath;\n        dstBaseUrl = allMembersFile.substr(0, allMembersFile.lastIndexOf('/'))+'/';\n      }\n      const pageName = url.split('/').pop().split('#')[0].replace(/(\\.[^/.]+)$/, '-members$1');\n      const li = $('<li>');\n      const div = $('<div>').addClass('item');\n      const span = $('<span>').addClass('arrow').css({ paddingLeft:'0' });\n      const ahref = $('<a>').attr('href',srcBaseUrl+dstBaseUrl+pageName).addClass('noscroll');\n      content.append(li.append(div.append(span).append(ahref.append(LISTOFALLMEMBERS))));\n    }\n\n    if (groupSections.length==0) {\n      // for PageDef\n      const sectionTree = [], sectionStack = [];\n      $('h1.doxsection, h2.doxsection, h3.doxsection, h4.doxsection, h5.doxsection, h6.doxsection').each(function(){\n        const level = parseInt(this.tagName[1]);\n        const anchor = $(this).find('a.anchor').attr('id');\n        const node = { text: $(this).html(), id: anchor, children: [] };\n        while (sectionStack.length && sectionStack[sectionStack.length - 1].level >= level) sectionStack.pop();\n        (sectionStack.length ? sectionStack[sectionStack.length - 1].children : sectionTree).push(node);\n        sectionStack.push({ ...node, level });\n      });\n      if (sectionTree.length>0) {\n        function render(nodes, level=0) {\n          nodes.map(n => {\n            const li = $('<li>').attr('id','nav-'+n.id);\n            const div = $('<div>').addClass('item');\n            const span = $('<span>').addClass('arrow').attr('style','padding-left:'+parseInt(level*16)+'px;');\n            if (n.children.length > 0) { span.append($('<span>').addClass('arrowhead opened')); }\n            const url = $('<a>').attr('href','#'+n.id);\n            content.append(li.append(div.append(span).append(url.append(n.text))));\n            topMapping.push(n.id);\n            render(n.children,level+1);\n          });\n        }\n        render(sectionTree);\n      }\n    }\n\n    toc_contents.append(content);\n\n    $(\".page-outline a[href]:not(.noscroll)\").click(function(e) {\n      e.preventDefault();\n      const aname = $(this).attr(\"href\");\n      gotoAnchor($(aname),aname);\n    });\n\n    let lastScrollSourceOffset = -1;\n    let lastScrollTargetOffset = -1;\n    let lastScrollTargetId = '';\n\n    navtree_trampoline.updateContentTop = function() {\n      const pagenavcontents = $(\"#page-nav-contents\");\n      if (pagenavcontents.length) {\n        const content = $(\"#doc-content\");\n        const height = content.height();\n        const navy = pagenavcontents.offset().top;\n        const yc = content.offset().top;\n        let offsets = []\n        for (let i=0;i<topMapping.length;i++) {\n          const heading = $('#'+topMapping[i]);\n          if (heading.parent().hasClass('doxsection')) {\n            offsets.push({id:topMapping[i],y:heading.parent().offset().top-yc});\n          } else {\n            offsets.push({id:topMapping[i],y:heading.offset().top-yc});\n          }\n        }\n        offsets.push({id:'',y:1e10});\n        let scrollTarget = undefined, numItems=0;\n        for (let i=0;i<topMapping.length;i++) {\n          const ys = offsets[i].y;\n          const ye = offsets[i+1].y;\n          const id = offsets[i].id;\n          const nav = $('#nav-'+id);\n          const margin = 10; // #pixels before content show as visible\n          if ((ys>margin || ye>margin) && (ys<height-margin || ye<height-margin)) {\n            if (!scrollTarget) scrollTarget=nav;\n            nav.addClass('vis'); // mark navigation entry as visible within content area\n            numItems+=1;\n          } else {\n            nav.removeClass('vis');\n          }\n        }\n        const contentScrollOffset = $('div.contents').offset().top;\n        if (scrollTarget && lastScrollTargetId!=scrollTarget.attr('id')) { // new item to scroll to\n          const scrollDown = contentScrollOffset<lastScrollSourceOffset;\n          const range = 22*numItems;\n          const my = range/2-height/2;\n          const ulOffset = $('ul.page-outline').offset().top-navy;\n          const targetPos=scrollTarget.offset().top-navy-ulOffset;\n          const targetOffset=targetPos+my;\n          if ( (scrollDown && targetOffset>lastScrollTargetOffset) ||\n              (!scrollDown && targetOffset<lastScrollTargetOffset)) \n          { // force panel to scroll in the same direction as content window\n            pagenavcontents.stop(); // avoid build-up of history\n            pagenavcontents.scrollTo({ left:0, top:targetOffset },{ duration: 500, interrupt: true });\n            lastScrollTargetOffset = targetOffset;\n          }\n          lastScrollTargetId = scrollTarget.attr('id');\n        }\n        lastScrollSourceOffset = contentScrollOffset;\n      }\n    }\n    // TODO: find out how to avoid a timeout\n    setTimeout(() => {\n      navtree_trampoline.updateContentTop();\n    },200);\n  }\n  $(document).ready(function() { initPageToc(); initResizable(); });\n\n}\n/* @license-end */\n"
  },
  {
    "path": "docs/html/navtreedata.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n*/\nvar NAVTREE =\n[\n  [ \"Nakama .NET Client\", \"index.html\", [\n    [ \"Changelog\", \"md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html\", null ],\n    [ \"Namespaces\", \"namespaces.html\", [\n      [ \"Namespace List\", \"namespaces.html\", \"namespaces_dup\" ],\n      [ \"Namespace Members\", \"namespacemembers.html\", [\n        [ \"All\", \"namespacemembers.html\", null ],\n        [ \"Functions\", \"namespacemembers_func.html\", null ],\n        [ \"Enumerations\", \"namespacemembers_enum.html\", null ]\n      ] ]\n    ] ],\n    [ \"Classes\", \"annotated.html\", [\n      [ \"Class List\", \"annotated.html\", \"annotated_dup\" ],\n      [ \"Class Index\", \"classes.html\", null ],\n      [ \"Class Hierarchy\", \"hierarchy.html\", \"hierarchy\" ],\n      [ \"Class Members\", \"functions.html\", [\n        [ \"All\", \"functions.html\", \"functions_dup\" ],\n        [ \"Functions\", \"functions_func.html\", \"functions_func\" ],\n        [ \"Variables\", \"functions_vars.html\", null ],\n        [ \"Properties\", \"functions_prop.html\", \"functions_prop\" ],\n        [ \"Events\", \"functions_evnt.html\", null ]\n      ] ]\n    ] ],\n    [ \"Files\", \"files.html\", [\n      [ \"File List\", \"files.html\", \"files_dup\" ]\n    ] ]\n  ] ]\n];\n\nvar NAVTREEINDEX =\n[\n\"_binary_reader_writer_8cs.html\",\n\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\",\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\",\n\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\",\n\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\",\n\"interface_nakama_1_1_console_1_1_i_api_notification.html\",\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html\",\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\",\n\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\",\n\"interface_nakama_1_1_i_channel_presence_event.html\",\n\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\",\n\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\",\n\"interface_satori_1_1_i_api_identify_request.html\",\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\"\n];\n\nvar SYNCONMSG = 'click to disable panel synchronization';\nvar SYNCOFFMSG = 'click to enable panel synchronization';\nvar LISTOFALLMEMBERS = 'List of all members';"
  },
  {
    "path": "docs/html/navtreeindex0.js",
    "content": "var NAVTREEINDEX0 =\n{\n\"_binary_reader_writer_8cs.html\":[3,0,0,1,1,0],\n\"_buffer_pool_8cs.html\":[3,0,0,1,2],\n\"_channel_join_message_8cs.html\":[3,0,0,5],\n\"_channel_leave_message_8cs.html\":[3,0,0,6],\n\"_channel_remove_message_8cs.html\":[3,0,0,7],\n\"_channel_send_message_8cs.html\":[3,0,0,8],\n\"_channel_update_message_8cs.html\":[3,0,0,9],\n\"_console_client_8gen_8cs.html\":[3,0,0,0,0],\n\"_debug_2net46_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,0,0,1],\n\"_debug_2net46_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,0,0,1],\n\"_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,0,1,1],\n\"_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,0,1,1],\n\"_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,0,2,1],\n\"_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,0,2,1],\n\"_entity_too_large_exception_8cs.html\":[3,0,0,1,0,0],\n\"_event_8cs.html\":[3,0,1,4],\n\"_http_helper_8cs.html\":[3,0,0,1,3],\n\"_i_buffer_pool_8cs.html\":[3,0,0,1,4],\n\"_i_channel_8cs.html\":[3,0,0,13],\n\"_i_channel_message_ack_8cs.html\":[3,0,0,14],\n\"_i_channel_presence_event_8cs.html\":[3,0,0,15],\n\"_i_match_8cs.html\":[3,0,0,20],\n\"_i_match_presence_event_8cs.html\":[3,0,0,23],\n\"_i_match_state_8cs.html\":[3,0,0,24],\n\"_i_matchmaker_matched_8cs.html\":[3,0,0,21],\n\"_i_matchmaker_ticket_8cs.html\":[3,0,0,22],\n\"_i_party_8cs.html\":[3,0,0,25],\n\"_i_party_close_8cs.html\":[3,0,0,26],\n\"_i_party_data_8cs.html\":[3,0,0,27],\n\"_i_party_join_request_8cs.html\":[3,0,0,28],\n\"_i_party_leader_8cs.html\":[3,0,0,29],\n\"_i_party_matchmaker_ticket_8cs.html\":[3,0,0,30],\n\"_i_party_presence_event_8cs.html\":[3,0,0,31],\n\"_i_party_update_8cs.html\":[3,0,0,32],\n\"_i_ping_pong_manager_8cs.html\":[3,0,0,1,5],\n\"_i_socket_8cs.html\":[3,0,0,34],\n\"_i_socket_adapter_8cs.html\":[3,0,0,35],\n\"_i_status_8cs.html\":[3,0,0,36],\n\"_i_status_presence_event_8cs.html\":[3,0,0,37],\n\"_i_stream_presence_event_8cs.html\":[3,0,0,38],\n\"_i_user_presence_8cs.html\":[3,0,0,39],\n\"_i_web_socket_client_factory_8cs.html\":[3,0,0,1,6],\n\"_i_web_socket_server_factory_8cs.html\":[3,0,0,1,7],\n\"_invalid_http_response_code_exception_8cs.html\":[3,0,0,1,0,1],\n\"_match_create_message_8cs.html\":[3,0,0,40],\n\"_match_join_message_8cs.html\":[3,0,0,41],\n\"_match_leave_message_8cs.html\":[3,0,0,42],\n\"_match_send_message_8cs.html\":[3,0,0,45],\n\"_matchmaker_add_message_8cs.html\":[3,0,0,43],\n\"_matchmaker_remove_message_8cs.html\":[3,0,0,44],\n\"_nakama_2_api_client_8gen_8cs.html\":[3,0,0,4],\n\"_nakama_2_client_8cs.html\":[3,0,0,10],\n\"_nakama_2_g_zip_http_client_handler_8cs.html\":[3,0,0,11],\n\"_nakama_2_http_request_adapter_8cs.html\":[3,0,0,12],\n\"_nakama_2_i_client_8cs.html\":[3,0,0,16],\n\"_nakama_2_i_http_adapter_8cs.html\":[3,0,0,17],\n\"_nakama_2_i_http_adapter_util_8cs.html\":[3,0,0,18],\n\"_nakama_2_i_logger_8cs.html\":[3,0,0,19],\n\"_nakama_2_i_session_8cs.html\":[3,0,0,33],\n\"_nakama_2_preserve_attribute_8cs.html\":[3,0,0,66],\n\"_nakama_2_retry_8cs.html\":[3,0,0,67],\n\"_nakama_2_retry_configuration_8cs.html\":[3,0,0,68],\n\"_nakama_2_retry_history_8cs.html\":[3,0,0,69],\n\"_nakama_2_retry_invoker_8cs.html\":[3,0,0,70],\n\"_nakama_2_retry_jitter_8cs.html\":[3,0,0,71],\n\"_nakama_2_retry_listener_8cs.html\":[3,0,0,72],\n\"_nakama_2_session_8cs.html\":[3,0,0,73],\n\"_nakama_2_tiny_json_2_json_parser_8cs.html\":[3,0,0,3,0],\n\"_nakama_2_tiny_json_2_json_writer_8cs.html\":[3,0,0,3,1],\n\"_nakama_2_transient_exception_delegate_8cs.html\":[3,0,0,79],\n\"_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\":[3,0,0,2,0,0,0],\n\"_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\":[3,0,0,2,0,1,0],\n\"_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\":[3,0,0,2,0,2,0],\n\"_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\":[3,0,0,2,1,0,0],\n\"_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\":[3,0,0,2,1,1,0],\n\"_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\":[3,0,0,2,1,2,0],\n\"_null_logger_8cs.html\":[3,0,0,46],\n\"_party_8cs.html\":[3,0,0,47],\n\"_party_accept_8cs.html\":[3,0,0,48],\n\"_party_close_8cs.html\":[3,0,0,49],\n\"_party_create_8cs.html\":[3,0,0,50],\n\"_party_data_8cs.html\":[3,0,0,51],\n\"_party_data_send_8cs.html\":[3,0,0,52],\n\"_party_join_8cs.html\":[3,0,0,53],\n\"_party_join_request_8cs.html\":[3,0,0,54],\n\"_party_join_request_list_8cs.html\":[3,0,0,55],\n\"_party_leader_8cs.html\":[3,0,0,56],\n\"_party_leave_8cs.html\":[3,0,0,57],\n\"_party_matchmaker_add_8cs.html\":[3,0,0,58],\n\"_party_matchmaker_remove_8cs.html\":[3,0,0,59],\n\"_party_matchmaker_ticket_8cs.html\":[3,0,0,60],\n\"_party_member_remove_8cs.html\":[3,0,0,61],\n\"_party_presence_event_8cs.html\":[3,0,0,62],\n\"_party_promote_8cs.html\":[3,0,0,63],\n\"_party_update_8cs.html\":[3,0,0,64],\n\"_ping_pong_manager_8cs.html\":[3,0,0,1,8],\n\"_pong_event_args_8cs.html\":[3,0,0,1,9],\n\"_presence_util_8cs.html\":[3,0,0,65],\n\"_release_2net46_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,1,0,1],\n\"_release_2net46_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,1,0,1],\n\"_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,1,1,1],\n\"_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,1,1,1],\n\"_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html\":[3,0,0,2,1,2,1],\n\"_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html\":[3,0,1,0,1,2,1],\n\"_satori_2_api_client_8gen_8cs.html\":[3,0,1,2],\n\"_satori_2_client_8cs.html\":[3,0,1,3],\n\"_satori_2_g_zip_http_client_handler_8cs.html\":[3,0,1,5],\n\"_satori_2_http_request_adapter_8cs.html\":[3,0,1,6],\n\"_satori_2_i_client_8cs.html\":[3,0,1,7],\n\"_satori_2_i_http_adapter_8cs.html\":[3,0,1,8],\n\"_satori_2_i_http_adapter_util_8cs.html\":[3,0,1,9],\n\"_satori_2_i_logger_8cs.html\":[3,0,1,10],\n\"_satori_2_i_session_8cs.html\":[3,0,1,11],\n\"_satori_2_preserve_attribute_8cs.html\":[3,0,1,12],\n\"_satori_2_retry_8cs.html\":[3,0,1,13],\n\"_satori_2_retry_configuration_8cs.html\":[3,0,1,14],\n\"_satori_2_retry_history_8cs.html\":[3,0,1,15],\n\"_satori_2_retry_invoker_8cs.html\":[3,0,1,16],\n\"_satori_2_retry_jitter_8cs.html\":[3,0,1,17],\n\"_satori_2_retry_listener_8cs.html\":[3,0,1,18],\n\"_satori_2_session_8cs.html\":[3,0,1,19],\n\"_satori_2_tiny_json_2_json_parser_8cs.html\":[3,0,1,1,0],\n\"_satori_2_tiny_json_2_json_writer_8cs.html\":[3,0,1,1,1],\n\"_satori_2_transient_exception_delegate_8cs.html\":[3,0,1,20],\n\"_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\":[3,0,1,0,0,0,0],\n\"_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\":[3,0,1,0,0,1,0],\n\"_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\":[3,0,1,0,0,2,0],\n\"_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html\":[3,0,1,0,1,0,0],\n\"_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html\":[3,0,1,0,1,1,0],\n\"_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html\":[3,0,1,0,1,2,0],\n\"_sec_web_socket_key_missing_exception_8cs.html\":[3,0,0,1,0,2],\n\"_server_listener_socket_exception_8cs.html\":[3,0,0,1,0,3],\n\"_socket_8cs.html\":[3,0,0,74],\n\"_status_follow_message_8cs.html\":[3,0,0,75],\n\"_status_unfollow_message_8cs.html\":[3,0,0,76],\n\"_status_update_message_8cs.html\":[3,0,0,77],\n\"_storage_object_id_8cs.html\":[3,0,0,78],\n\"_web_socket_adapter_8cs.html\":[3,0,0,80],\n\"_web_socket_buffer_overflow_exception_8cs.html\":[3,0,0,1,0,4],\n\"_web_socket_client_factory_8cs.html\":[3,0,0,1,10],\n\"_web_socket_client_options_8cs.html\":[3,0,0,1,11],\n\"_web_socket_error_message_8cs.html\":[3,0,0,81],\n\"_web_socket_frame_8cs.html\":[3,0,0,1,1,1],\n\"_web_socket_frame_common_8cs.html\":[3,0,0,1,1,2],\n\"_web_socket_frame_reader_8cs.html\":[3,0,0,1,1,3],\n\"_web_socket_frame_writer_8cs.html\":[3,0,0,1,1,4],\n\"_web_socket_handshake_failed_exception_8cs.html\":[3,0,0,1,0,5],\n\"_web_socket_http_context_8cs.html\":[3,0,0,1,12],\n\"_web_socket_implementation_8cs.html\":[3,0,0,1,1,5],\n\"_web_socket_message_envelope_8cs.html\":[3,0,0,82],\n\"_web_socket_op_code_8cs.html\":[3,0,0,1,1,6],\n\"_web_socket_read_cursor_8cs.html\":[3,0,0,1,1,7],\n\"_web_socket_server_factory_8cs.html\":[3,0,0,1,13],\n\"_web_socket_server_options_8cs.html\":[3,0,0,1,14],\n\"_web_socket_stdlib_adapter_8cs.html\":[3,0,0,83],\n\"_web_socket_version_not_supported_exception_8cs.html\":[3,0,0,1,0,6],\n\"_write_storage_object_8cs.html\":[3,0,0,84],\n\"annotated.html\":[2,0],\n\"class_nakama_1_1_api_response_exception.html\":[1,0,0,3],\n\"class_nakama_1_1_api_response_exception.html\":[2,0,0,2],\n\"class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8\":[1,0,0,3,1],\n\"class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8\":[2,0,0,2,1],\n\"class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1\":[1,0,0,3,2],\n\"class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1\":[2,0,0,2,2],\n\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\":[1,0,0,3,5],\n\"class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee\":[2,0,0,2,5],\n\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\":[1,0,0,3,0],\n\"class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928\":[2,0,0,2,0],\n\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\":[1,0,0,3,3],\n\"class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f\":[2,0,0,2,3],\n\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\":[1,0,0,3,4],\n\"class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14\":[2,0,0,2,4],\n\"class_nakama_1_1_client.html\":[1,0,0,4],\n\"class_nakama_1_1_client.html\":[2,0,0,3],\n\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\":[1,0,0,4,85],\n\"class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846\":[2,0,0,3,85],\n\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\":[1,0,0,4,77],\n\"class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d\":[2,0,0,3,77],\n\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\":[1,0,0,4,48],\n\"class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f\":[2,0,0,3,48],\n\"class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6\":[1,0,0,4,2],\n\"class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6\":[2,0,0,3,2],\n\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\":[1,0,0,4,87],\n\"class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276\":[2,0,0,3,87],\n\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\":[1,0,0,4,14],\n\"class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00\":[2,0,0,3,14],\n\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\":[1,0,0,4,43],\n\"class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b\":[2,0,0,3,43],\n\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\":[1,0,0,4,79],\n\"class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1\":[2,0,0,3,79],\n\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\":[1,0,0,4,47],\n\"class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756\":[2,0,0,3,47],\n\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\":[1,0,0,4,19],\n\"class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5\":[2,0,0,3,19],\n\"class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270\":[1,0,0,4,57],\n\"class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270\":[2,0,0,3,57],\n\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\":[1,0,0,4,13],\n\"class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f\":[2,0,0,3,13],\n\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\":[1,0,0,4,94],\n\"class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610\":[2,0,0,3,94],\n\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\":[1,0,0,4,6],\n\"class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0\":[2,0,0,3,6],\n\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\":[1,0,0,4,66],\n\"class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715\":[2,0,0,3,66],\n\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\":[1,0,0,4,15],\n\"class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899\":[2,0,0,3,15],\n\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\":[1,0,0,4,90],\n\"class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb\":[2,0,0,3,90],\n\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\":[1,0,0,4,56],\n\"class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9\":[2,0,0,3,56],\n\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\":[1,0,0,4,71],\n\"class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730\":[2,0,0,3,71],\n\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\":[1,0,0,4,11],\n\"class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6\":[2,0,0,3,11],\n\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\":[1,0,0,4,83],\n\"class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7\":[2,0,0,3,83],\n\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\":[1,0,0,4,22],\n\"class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a\":[2,0,0,3,22],\n\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\":[1,0,0,4,61],\n\"class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342\":[2,0,0,3,61],\n\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\":[1,0,0,4,95],\n\"class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8\":[2,0,0,3,95],\n\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\":[1,0,0,4,27],\n\"class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6\":[2,0,0,3,27],\n\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\":[1,0,0,4,0],\n\"class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59\":[2,0,0,3,0],\n\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\":[1,0,0,4,44],\n\"class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec\":[2,0,0,3,44],\n\"class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711\":[1,0,0,4,3],\n\"class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711\":[2,0,0,3,3],\n\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\":[1,0,0,4,73],\n\"class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d\":[2,0,0,3,73],\n\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\":[1,0,0,4,45],\n\"class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b\":[2,0,0,3,45],\n\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\":[1,0,0,4,34],\n\"class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641\":[2,0,0,3,34],\n\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\":[1,0,0,4,20],\n\"class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d\":[2,0,0,3,20],\n\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\":[1,0,0,4,89],\n\"class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f\":[2,0,0,3,89],\n\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\":[1,0,0,4,42],\n\"class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa\":[2,0,0,3,42],\n\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\":[1,0,0,4,68],\n\"class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d\":[2,0,0,3,68],\n\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\":[1,0,0,4,29],\n\"class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31\":[2,0,0,3,29],\n\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\":[1,0,0,4,58],\n\"class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329\":[2,0,0,3,58],\n\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\":[1,0,0,4,91],\n\"class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb\":[2,0,0,3,91]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex1.js",
    "content": "var NAVTREEINDEX1 =\n{\n\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\":[1,0,0,4,63],\n\"class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8\":[2,0,0,3,63],\n\"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\":[1,0,0,4,72],\n\"class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374\":[2,0,0,3,72],\n\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\":[1,0,0,4,65],\n\"class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda\":[2,0,0,3,65],\n\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\":[1,0,0,4,24],\n\"class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b\":[2,0,0,3,24],\n\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\":[1,0,0,4,7],\n\"class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155\":[2,0,0,3,7],\n\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\":[1,0,0,4,88],\n\"class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66\":[2,0,0,3,88],\n\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\":[1,0,0,4,49],\n\"class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90\":[2,0,0,3,49],\n\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\":[1,0,0,4,28],\n\"class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825\":[2,0,0,3,28],\n\"class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830\":[1,0,0,4,5],\n\"class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830\":[2,0,0,3,5],\n\"class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460\":[1,0,0,4,1],\n\"class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460\":[2,0,0,3,1],\n\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\":[1,0,0,4,12],\n\"class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499\":[2,0,0,3,12],\n\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\":[1,0,0,4,86],\n\"class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9\":[2,0,0,3,86],\n\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\":[1,0,0,4,35],\n\"class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505\":[2,0,0,3,35],\n\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\":[1,0,0,4,64],\n\"class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381\":[2,0,0,3,64],\n\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\":[1,0,0,4,55],\n\"class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1\":[2,0,0,3,55],\n\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\":[1,0,0,4,78],\n\"class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d\":[2,0,0,3,78],\n\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\":[1,0,0,4,37],\n\"class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758\":[2,0,0,3,37],\n\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\":[1,0,0,4,102],\n\"class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217\":[2,0,0,3,102],\n\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\":[1,0,0,4,33],\n\"class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b\":[2,0,0,3,33],\n\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\":[1,0,0,4,50],\n\"class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e\":[2,0,0,3,50],\n\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\":[1,0,0,4,98],\n\"class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8\":[2,0,0,3,98],\n\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\":[1,0,0,4,100],\n\"class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1\":[2,0,0,3,100],\n\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\":[1,0,0,4,82],\n\"class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a\":[2,0,0,3,82],\n\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\":[1,0,0,4,60],\n\"class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119\":[2,0,0,3,60],\n\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\":[1,0,0,4,23],\n\"class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456\":[2,0,0,3,23],\n\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\":[1,0,0,4,96],\n\"class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f\":[2,0,0,3,96],\n\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\":[1,0,0,4,39],\n\"class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e\":[2,0,0,3,39],\n\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\":[1,0,0,4,40],\n\"class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db\":[2,0,0,3,40],\n\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\":[1,0,0,4,51],\n\"class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1\":[2,0,0,3,51],\n\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\":[1,0,0,4,21],\n\"class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5\":[2,0,0,3,21],\n\"class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\":[1,0,0,4,4],\n\"class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04\":[2,0,0,3,4],\n\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\":[1,0,0,4,59],\n\"class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65\":[2,0,0,3,59],\n\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\":[1,0,0,4,25],\n\"class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b\":[2,0,0,3,25],\n\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\":[1,0,0,4,17],\n\"class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a\":[2,0,0,3,17],\n\"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\":[1,0,0,4,70],\n\"class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416\":[2,0,0,3,70],\n\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\":[1,0,0,4,38],\n\"class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00\":[2,0,0,3,38],\n\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\":[1,0,0,4,41],\n\"class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8\":[2,0,0,3,41],\n\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\":[1,0,0,4,97],\n\"class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651\":[2,0,0,3,97],\n\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\":[1,0,0,4,26],\n\"class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab\":[2,0,0,3,26],\n\"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\":[1,0,0,4,69],\n\"class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de\":[2,0,0,3,69],\n\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\":[1,0,0,4,53],\n\"class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284\":[2,0,0,3,53],\n\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\":[1,0,0,4,52],\n\"class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310\":[2,0,0,3,52],\n\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\":[1,0,0,4,92],\n\"class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815\":[2,0,0,3,92],\n\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\":[1,0,0,4,81],\n\"class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc\":[2,0,0,3,81],\n\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\":[1,0,0,4,18],\n\"class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798\":[2,0,0,3,18],\n\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\":[1,0,0,4,80],\n\"class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9\":[2,0,0,3,80],\n\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\":[1,0,0,4,76],\n\"class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523\":[2,0,0,3,76],\n\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\":[1,0,0,4,75],\n\"class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e\":[2,0,0,3,75],\n\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\":[1,0,0,4,74],\n\"class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352\":[2,0,0,3,74],\n\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\":[1,0,0,4,31],\n\"class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271\":[2,0,0,3,31],\n\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\":[1,0,0,4,8],\n\"class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35\":[2,0,0,3,8],\n\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\":[1,0,0,4,84],\n\"class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b\":[2,0,0,3,84],\n\"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\":[1,0,0,4,67],\n\"class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1\":[2,0,0,3,67],\n\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\":[1,0,0,4,30],\n\"class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697\":[2,0,0,3,30],\n\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\":[1,0,0,4,9],\n\"class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d\":[2,0,0,3,9],\n\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\":[1,0,0,4,93],\n\"class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d\":[2,0,0,3,93],\n\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\":[1,0,0,4,16],\n\"class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1\":[2,0,0,3,16],\n\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\":[1,0,0,4,54],\n\"class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6\":[2,0,0,3,54],\n\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\":[1,0,0,4,101],\n\"class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2\":[2,0,0,3,101],\n\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\":[1,0,0,4,99],\n\"class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455\":[2,0,0,3,99],\n\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\":[1,0,0,4,62],\n\"class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1\":[2,0,0,3,62],\n\"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\":[1,0,0,4,46],\n\"class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781\":[2,0,0,3,46],\n\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\":[1,0,0,4,10],\n\"class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe\":[2,0,0,3,10],\n\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\":[1,0,0,4,36],\n\"class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24\":[2,0,0,3,36],\n\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\":[1,0,0,4,32],\n\"class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0\":[2,0,0,3,32],\n\"class_nakama_1_1_console_1_1_api_response_exception.html\":[1,0,0,0,0],\n\"class_nakama_1_1_console_1_1_api_response_exception.html\":[2,0,0,0,0],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19\":[1,0,0,0,0,2],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19\":[2,0,0,0,0,2],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\":[1,0,0,0,0,5],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75\":[2,0,0,0,0,5],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\":[1,0,0,0,0,3],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b\":[2,0,0,0,0,3],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a\":[1,0,0,0,0,1],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a\":[2,0,0,0,0,1],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\":[1,0,0,0,0,0],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767\":[2,0,0,0,0,0],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\":[1,0,0,0,0,4],\n\"class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c\":[2,0,0,0,0,4],\n\"class_nakama_1_1_http_request_adapter.html\":[1,0,0,5],\n\"class_nakama_1_1_http_request_adapter.html\":[2,0,0,4],\n\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\":[1,0,0,5,2],\n\"class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533\":[2,0,0,4,2],\n\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\":[1,0,0,5,1],\n\"class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7\":[2,0,0,4,1],\n\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\":[1,0,0,5,0],\n\"class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a\":[2,0,0,4,0],\n\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\":[1,0,0,5,3],\n\"class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5\":[2,0,0,4,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\":[1,0,0,1,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html\":[2,0,0,1,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\":[1,0,0,1,0,2,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67\":[2,0,0,1,0,1,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc\":[1,0,0,1,0,2,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc\":[2,0,0,1,0,1,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\":[1,0,0,1,0,2,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574\":[2,0,0,1,0,1,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\":[1,0,0,1,0,2,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4\":[2,0,0,1,0,1,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\":[1,0,0,1,0,2,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html\":[2,0,0,1,0,1,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\":[1,0,0,1,0,2,0,15],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb\":[2,0,0,1,0,1,0,15],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\":[1,0,0,1,0,2,0,21],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246\":[2,0,0,1,0,1,0,21],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\":[1,0,0,1,0,2,0,29],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5\":[2,0,0,1,0,1,0,29],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\":[1,0,0,1,0,2,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118\":[2,0,0,1,0,1,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\":[1,0,0,1,0,2,0,9],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d\":[2,0,0,1,0,1,0,9],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\":[1,0,0,1,0,2,0,7],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43\":[2,0,0,1,0,1,0,7],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\":[1,0,0,1,0,2,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1\":[2,0,0,1,0,1,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\":[1,0,0,1,0,2,0,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01\":[2,0,0,1,0,1,0,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\":[1,0,0,1,0,2,0,8],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c\":[2,0,0,1,0,1,0,8],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\":[1,0,0,1,0,2,0,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7\":[2,0,0,1,0,1,0,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\":[1,0,0,1,0,2,0,30],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add\":[2,0,0,1,0,1,0,30],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\":[1,0,0,1,0,2,0,27],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d\":[2,0,0,1,0,1,0,27],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\":[1,0,0,1,0,2,0,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c\":[2,0,0,1,0,1,0,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\":[1,0,0,1,0,2,0,28],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5\":[2,0,0,1,0,1,0,28],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\":[1,0,0,1,0,2,0,13],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc\":[2,0,0,1,0,1,0,13],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\":[1,0,0,1,0,2,0,11],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3\":[2,0,0,1,0,1,0,11],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\":[1,0,0,1,0,2,0,14],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2\":[2,0,0,1,0,1,0,14],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\":[1,0,0,1,0,2,0,12],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20\":[2,0,0,1,0,1,0,12],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\":[1,0,0,1,0,2,0,24],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf\":[2,0,0,1,0,1,0,24],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\":[1,0,0,1,0,2,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db\":[2,0,0,1,0,1,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\":[1,0,0,1,0,2,0,17],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1\":[2,0,0,1,0,1,0,17],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\":[1,0,0,1,0,2,0,23],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c\":[2,0,0,1,0,1,0,23],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\":[1,0,0,1,0,2,0,18],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f\":[2,0,0,1,0,1,0,18],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\":[1,0,0,1,0,2,0,10],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb\":[2,0,0,1,0,1,0,10],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\":[1,0,0,1,0,2,0,26],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b\":[2,0,0,1,0,1,0,26],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\":[1,0,0,1,0,2,0,20],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd\":[2,0,0,1,0,1,0,20],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\":[1,0,0,1,0,2,0,25],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd\":[2,0,0,1,0,1,0,25],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\":[1,0,0,1,0,2,0,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99\":[2,0,0,1,0,1,0,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\":[1,0,0,1,0,2,0,19],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c\":[2,0,0,1,0,1,0,19],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\":[1,0,0,1,0,2,0,16],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b\":[2,0,0,1,0,1,0,16],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\":[1,0,0,1,0,2,0,22],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538\":[2,0,0,1,0,1,0,22],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\":[1,0,0,1,0,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html\":[2,0,0,1,0,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1\":[1,0,0,1,0,0,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1\":[2,0,0,1,0,0,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\":[1,0,0,1,0,0,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c\":[2,0,0,1,0,0,0,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da\":[1,0,0,1,0,0,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da\":[2,0,0,1,0,0,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\":[1,0,0,1,0,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html\":[2,0,0,1,0,0,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d\":[1,0,0,1,0,0,1,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d\":[2,0,0,1,0,0,1,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\":[1,0,0,1,0,0,1,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316\":[2,0,0,1,0,0,1,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\":[1,0,0,1,0,0,1,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7\":[2,0,0,1,0,0,1,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb\":[1,0,0,1,0,0,1,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb\":[2,0,0,1,0,0,1,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\":[1,0,0,1,0,0,1,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714\":[2,0,0,1,0,0,1,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\":[1,0,0,1,0,0,1,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3\":[2,0,0,1,0,0,1,2]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex10.js",
    "content": "var NAVTREEINDEX10 =\n{\n\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\":[2,0,0,79,1],\n\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\":[1,0,0,80,3],\n\"interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91\":[2,0,0,79,3],\n\"interface_nakama_1_1_i_match_presence_event.html\":[1,0,0,84],\n\"interface_nakama_1_1_i_match_presence_event.html\":[2,0,0,83],\n\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\":[1,0,0,84,2],\n\"interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f\":[2,0,0,83,2],\n\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\":[1,0,0,84,1],\n\"interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81\":[2,0,0,83,1],\n\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\":[1,0,0,84,0],\n\"interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d\":[2,0,0,83,0],\n\"interface_nakama_1_1_i_match_state.html\":[1,0,0,85],\n\"interface_nakama_1_1_i_match_state.html\":[2,0,0,84],\n\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\":[1,0,0,85,0],\n\"interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73\":[2,0,0,84,0],\n\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\":[1,0,0,85,2],\n\"interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae\":[2,0,0,84,2],\n\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\":[1,0,0,85,1],\n\"interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca\":[2,0,0,84,1],\n\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\":[1,0,0,85,3],\n\"interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3\":[2,0,0,84,3],\n\"interface_nakama_1_1_i_matchmaker_matched.html\":[1,0,0,81],\n\"interface_nakama_1_1_i_matchmaker_matched.html\":[2,0,0,80],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\":[1,0,0,81,0],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e\":[2,0,0,80,0],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\":[1,0,0,81,4],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10\":[2,0,0,80,4],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\":[1,0,0,81,3],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7\":[2,0,0,80,3],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\":[1,0,0,81,2],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7\":[2,0,0,80,2],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\":[1,0,0,81,1],\n\"interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848\":[2,0,0,80,1],\n\"interface_nakama_1_1_i_matchmaker_ticket.html\":[1,0,0,82],\n\"interface_nakama_1_1_i_matchmaker_ticket.html\":[2,0,0,81],\n\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\":[1,0,0,82,0],\n\"interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef\":[2,0,0,81,0],\n\"interface_nakama_1_1_i_matchmaker_user.html\":[1,0,0,83],\n\"interface_nakama_1_1_i_matchmaker_user.html\":[2,0,0,82],\n\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\":[1,0,0,83,0],\n\"interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96\":[2,0,0,82,0],\n\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\":[1,0,0,83,1],\n\"interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62\":[2,0,0,82,1],\n\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\":[1,0,0,83,2],\n\"interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa\":[2,0,0,82,2],\n\"interface_nakama_1_1_i_party.html\":[1,0,0,86],\n\"interface_nakama_1_1_i_party.html\":[2,0,0,85],\n\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\":[1,0,0,86,5],\n\"interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869\":[2,0,0,85,5],\n\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\":[1,0,0,86,4],\n\"interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991\":[2,0,0,85,4],\n\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\":[1,0,0,86,2],\n\"interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf\":[2,0,0,85,2],\n\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\":[1,0,0,86,1],\n\"interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e\":[2,0,0,85,1],\n\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\":[1,0,0,86,3],\n\"interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb\":[2,0,0,85,3],\n\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\":[1,0,0,86,0],\n\"interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac\":[2,0,0,85,0],\n\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\":[1,0,0,86,8],\n\"interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2\":[2,0,0,85,8],\n\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\":[1,0,0,86,7],\n\"interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e\":[2,0,0,85,7],\n\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\":[1,0,0,86,6],\n\"interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e\":[2,0,0,85,6],\n\"interface_nakama_1_1_i_party_close.html\":[1,0,0,87],\n\"interface_nakama_1_1_i_party_close.html\":[2,0,0,86],\n\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\":[1,0,0,87,0],\n\"interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b\":[2,0,0,86,0],\n\"interface_nakama_1_1_i_party_data.html\":[1,0,0,88],\n\"interface_nakama_1_1_i_party_data.html\":[2,0,0,87],\n\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\":[1,0,0,88,3],\n\"interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5\":[2,0,0,87,3],\n\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\":[1,0,0,88,1],\n\"interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1\":[2,0,0,87,1],\n\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\":[1,0,0,88,0],\n\"interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e\":[2,0,0,87,0],\n\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\":[1,0,0,88,2],\n\"interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314\":[2,0,0,87,2],\n\"interface_nakama_1_1_i_party_join_request.html\":[1,0,0,89],\n\"interface_nakama_1_1_i_party_join_request.html\":[2,0,0,88],\n\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\":[1,0,0,89,0],\n\"interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d\":[2,0,0,88,0],\n\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\":[1,0,0,89,1],\n\"interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29\":[2,0,0,88,1],\n\"interface_nakama_1_1_i_party_leader.html\":[1,0,0,90],\n\"interface_nakama_1_1_i_party_leader.html\":[2,0,0,89],\n\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\":[1,0,0,90,0],\n\"interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8\":[2,0,0,89,0],\n\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\":[1,0,0,90,1],\n\"interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7\":[2,0,0,89,1],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html\":[1,0,0,91],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html\":[2,0,0,90],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\":[1,0,0,91,1],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af\":[2,0,0,90,1],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\":[1,0,0,91,0],\n\"interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c\":[2,0,0,90,0],\n\"interface_nakama_1_1_i_party_presence_event.html\":[1,0,0,92],\n\"interface_nakama_1_1_i_party_presence_event.html\":[2,0,0,91],\n\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\":[1,0,0,92,2],\n\"interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83\":[2,0,0,91,2],\n\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\":[1,0,0,92,1],\n\"interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447\":[2,0,0,91,1],\n\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\":[1,0,0,92,0],\n\"interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce\":[2,0,0,91,0],\n\"interface_nakama_1_1_i_party_update.html\":[1,0,0,93],\n\"interface_nakama_1_1_i_party_update.html\":[2,0,0,92],\n\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\":[1,0,0,93,3],\n\"interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547\":[2,0,0,92,3],\n\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\":[1,0,0,93,0],\n\"interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d\":[2,0,0,92,0],\n\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\":[1,0,0,93,2],\n\"interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6\":[2,0,0,92,2],\n\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\":[1,0,0,93,1],\n\"interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7\":[2,0,0,92,1],\n\"interface_nakama_1_1_i_protobuf_any.html\":[1,0,0,94],\n\"interface_nakama_1_1_i_protobuf_any.html\":[2,0,0,93],\n\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\":[1,0,0,94,0],\n\"interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423\":[2,0,0,93,0],\n\"interface_nakama_1_1_i_rpc_status.html\":[1,0,0,95],\n\"interface_nakama_1_1_i_rpc_status.html\":[2,0,0,94],\n\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\":[1,0,0,95,0],\n\"interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69\":[2,0,0,94,0],\n\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\":[1,0,0,95,1],\n\"interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471\":[2,0,0,94,1],\n\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\":[1,0,0,95,2],\n\"interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487\":[2,0,0,94,2],\n\"interface_nakama_1_1_i_session.html\":[1,0,0,96],\n\"interface_nakama_1_1_i_session.html\":[2,0,0,95],\n\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\":[1,0,0,96,4],\n\"interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7\":[2,0,0,95,4],\n\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\":[1,0,0,96,11],\n\"interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5\":[2,0,0,95,11],\n\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\":[1,0,0,96,7],\n\"interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813\":[2,0,0,95,7],\n\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\":[1,0,0,96,12],\n\"interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19\":[2,0,0,95,12],\n\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\":[1,0,0,96,3],\n\"interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd\":[2,0,0,95,3],\n\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\":[1,0,0,96,2],\n\"interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91\":[2,0,0,95,2],\n\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\":[1,0,0,96,8],\n\"interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f\":[2,0,0,95,8],\n\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\":[1,0,0,96,1],\n\"interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35\":[2,0,0,95,1],\n\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\":[1,0,0,96,10],\n\"interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d\":[2,0,0,95,10],\n\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\":[1,0,0,96,6],\n\"interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791\":[2,0,0,95,6],\n\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\":[1,0,0,96,9],\n\"interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31\":[2,0,0,95,9],\n\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\":[1,0,0,96,5],\n\"interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc\":[2,0,0,95,5],\n\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\":[1,0,0,96,0],\n\"interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6\":[2,0,0,95,0],\n\"interface_nakama_1_1_i_socket.html\":[1,0,0,97],\n\"interface_nakama_1_1_i_socket.html\":[2,0,0,96],\n\"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\":[1,0,0,97,29],\n\"interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83\":[2,0,0,96,29],\n\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\":[1,0,0,97,39],\n\"interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5\":[2,0,0,96,39],\n\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\":[1,0,0,97,16],\n\"interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3\":[2,0,0,96,16],\n\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\":[1,0,0,97,47],\n\"interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680\":[2,0,0,96,47],\n\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\":[1,0,0,97,1],\n\"interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96\":[2,0,0,96,1],\n\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\":[1,0,0,97,52],\n\"interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2\":[2,0,0,96,52],\n\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\":[1,0,0,97,0],\n\"interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51\":[2,0,0,96,0],\n\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\":[1,0,0,97,23],\n\"interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47\":[2,0,0,96,23],\n\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\":[1,0,0,97,4],\n\"interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c\":[2,0,0,96,4],\n\"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\":[1,0,0,97,34],\n\"interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9\":[2,0,0,96,34],\n\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\":[1,0,0,97,53],\n\"interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c\":[2,0,0,96,53],\n\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\":[1,0,0,97,21],\n\"interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607\":[2,0,0,96,21],\n\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\":[1,0,0,97,19],\n\"interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4\":[2,0,0,96,19],\n\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\":[1,0,0,97,8],\n\"interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf\":[2,0,0,96,8],\n\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\":[1,0,0,97,2],\n\"interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5\":[2,0,0,96,2],\n\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\":[1,0,0,97,11],\n\"interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34\":[2,0,0,96,11],\n\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\":[1,0,0,97,3],\n\"interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff\":[2,0,0,96,3],\n\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\":[1,0,0,97,48],\n\"interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700\":[2,0,0,96,48],\n\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\":[1,0,0,97,28],\n\"interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6\":[2,0,0,96,28],\n\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\":[1,0,0,97,14],\n\"interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41\":[2,0,0,96,14],\n\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\":[1,0,0,97,59],\n\"interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7\":[2,0,0,96,59],\n\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\":[1,0,0,97,46],\n\"interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd\":[2,0,0,96,46],\n\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\":[1,0,0,97,55],\n\"interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3\":[2,0,0,96,55],\n\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\":[1,0,0,97,13],\n\"interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670\":[2,0,0,96,13],\n\"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\":[1,0,0,97,22],\n\"interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2\":[2,0,0,96,22],\n\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\":[1,0,0,97,20],\n\"interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e\":[2,0,0,96,20],\n\"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\":[1,0,0,97,42],\n\"interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210\":[2,0,0,96,42],\n\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\":[1,0,0,97,6],\n\"interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c\":[2,0,0,96,6],\n\"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\":[1,0,0,97,36],\n\"interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37\":[2,0,0,96,36],\n\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\":[1,0,0,97,60],\n\"interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d\":[2,0,0,96,60],\n\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\":[1,0,0,97,49],\n\"interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86\":[2,0,0,96,49],\n\"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\":[1,0,0,97,27],\n\"interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a\":[2,0,0,96,27],\n\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\":[1,0,0,97,35],\n\"interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a\":[2,0,0,96,35],\n\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\":[1,0,0,97,58],\n\"interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3\":[2,0,0,96,58],\n\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\":[1,0,0,97,62],\n\"interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce\":[2,0,0,96,62],\n\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\":[1,0,0,97,61],\n\"interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00\":[2,0,0,96,61],\n\"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\":[1,0,0,97,15],\n\"interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada\":[2,0,0,96,15],\n\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\":[1,0,0,97,18],\n\"interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b\":[2,0,0,96,18],\n\"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\":[1,0,0,97,9],\n\"interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf\":[2,0,0,96,9],\n\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\":[1,0,0,97,56],\n\"interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a\":[2,0,0,96,56],\n\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\":[1,0,0,97,41],\n\"interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db\":[2,0,0,96,41],\n\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\":[1,0,0,97,40],\n\"interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614\":[2,0,0,96,40],\n\"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\":[1,0,0,97,38],\n\"interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0\":[2,0,0,96,38],\n\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\":[1,0,0,97,51],\n\"interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b\":[2,0,0,96,51],\n\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\":[1,0,0,97,25],\n\"interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c\":[2,0,0,96,25],\n\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\":[1,0,0,97,64],\n\"interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb\":[2,0,0,96,64],\n\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\":[1,0,0,97,12]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex11.js",
    "content": "var NAVTREEINDEX11 =\n{\n\"interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27\":[2,0,0,96,12],\n\"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\":[1,0,0,97,24],\n\"interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae\":[2,0,0,96,24],\n\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\":[1,0,0,97,37],\n\"interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041\":[2,0,0,96,37],\n\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\":[1,0,0,97,43],\n\"interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943\":[2,0,0,96,43],\n\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\":[1,0,0,97,7],\n\"interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce\":[2,0,0,96,7],\n\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\":[1,0,0,97,44],\n\"interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140\":[2,0,0,96,44],\n\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\":[1,0,0,97,10],\n\"interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950\":[2,0,0,96,10],\n\"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\":[1,0,0,97,30],\n\"interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb\":[2,0,0,96,30],\n\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\":[1,0,0,97,57],\n\"interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3\":[2,0,0,96,57],\n\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\":[1,0,0,97,32],\n\"interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120\":[2,0,0,96,32],\n\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\":[1,0,0,97,31],\n\"interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef\":[2,0,0,96,31],\n\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\":[1,0,0,97,26],\n\"interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503\":[2,0,0,96,26],\n\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\":[1,0,0,97,50],\n\"interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834\":[2,0,0,96,50],\n\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\":[1,0,0,97,54],\n\"interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c\":[2,0,0,96,54],\n\"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\":[1,0,0,97,33],\n\"interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63\":[2,0,0,96,33],\n\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\":[1,0,0,97,63],\n\"interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a\":[2,0,0,96,63],\n\"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\":[1,0,0,97,17],\n\"interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d\":[2,0,0,96,17],\n\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\":[1,0,0,97,5],\n\"interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118\":[2,0,0,96,5],\n\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\":[1,0,0,97,45],\n\"interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483\":[2,0,0,96,45],\n\"interface_nakama_1_1_i_socket_adapter.html\":[1,0,0,98],\n\"interface_nakama_1_1_i_socket_adapter.html\":[2,0,0,97],\n\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\":[1,0,0,98,7],\n\"interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008\":[2,0,0,97,7],\n\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\":[1,0,0,98,6],\n\"interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea\":[2,0,0,97,6],\n\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\":[1,0,0,98,8],\n\"interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6\":[2,0,0,97,8],\n\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\":[1,0,0,98,5],\n\"interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679\":[2,0,0,97,5],\n\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\":[1,0,0,98,1],\n\"interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06\":[2,0,0,97,1],\n\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\":[1,0,0,98,4],\n\"interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2\":[2,0,0,97,4],\n\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\":[1,0,0,98,2],\n\"interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4\":[2,0,0,97,2],\n\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\":[1,0,0,98,0],\n\"interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e\":[2,0,0,97,0],\n\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\":[1,0,0,98,3],\n\"interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2\":[2,0,0,97,3],\n\"interface_nakama_1_1_i_status.html\":[1,0,0,99],\n\"interface_nakama_1_1_i_status.html\":[2,0,0,98],\n\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\":[1,0,0,99,0],\n\"interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae\":[2,0,0,98,0],\n\"interface_nakama_1_1_i_status_presence_event.html\":[1,0,0,100],\n\"interface_nakama_1_1_i_status_presence_event.html\":[2,0,0,99],\n\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\":[1,0,0,100,1],\n\"interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95\":[2,0,0,99,1],\n\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\":[1,0,0,100,0],\n\"interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb\":[2,0,0,99,0],\n\"interface_nakama_1_1_i_stream.html\":[1,0,0,101],\n\"interface_nakama_1_1_i_stream.html\":[2,0,0,100],\n\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\":[1,0,0,101,2],\n\"interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d\":[2,0,0,100,2],\n\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\":[1,0,0,101,0],\n\"interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777\":[2,0,0,100,0],\n\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\":[1,0,0,101,1],\n\"interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad\":[2,0,0,100,1],\n\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\":[1,0,0,101,3],\n\"interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989\":[2,0,0,100,3],\n\"interface_nakama_1_1_i_stream_presence_event.html\":[1,0,0,102],\n\"interface_nakama_1_1_i_stream_presence_event.html\":[2,0,0,101],\n\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\":[1,0,0,102,0],\n\"interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb\":[2,0,0,101,0],\n\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\":[1,0,0,102,2],\n\"interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c\":[2,0,0,101,2],\n\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\":[1,0,0,102,1],\n\"interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff\":[2,0,0,101,1],\n\"interface_nakama_1_1_i_stream_state.html\":[1,0,0,103],\n\"interface_nakama_1_1_i_stream_state.html\":[2,0,0,102],\n\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\":[1,0,0,103,0],\n\"interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6\":[2,0,0,102,0],\n\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\":[1,0,0,103,2],\n\"interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda\":[2,0,0,102,2],\n\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\":[1,0,0,103,1],\n\"interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4\":[2,0,0,102,1],\n\"interface_nakama_1_1_i_user_group_list_user_group.html\":[1,0,0,104],\n\"interface_nakama_1_1_i_user_group_list_user_group.html\":[2,0,0,103],\n\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\":[1,0,0,104,1],\n\"interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f\":[2,0,0,103,1],\n\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\":[1,0,0,104,0],\n\"interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647\":[2,0,0,103,0],\n\"interface_nakama_1_1_i_user_presence.html\":[1,0,0,105],\n\"interface_nakama_1_1_i_user_presence.html\":[2,0,0,104],\n\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\":[1,0,0,105,0],\n\"interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830\":[2,0,0,104,0],\n\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\":[1,0,0,105,1],\n\"interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af\":[2,0,0,104,1],\n\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\":[1,0,0,105,4],\n\"interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f\":[2,0,0,104,4],\n\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\":[1,0,0,105,3],\n\"interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a\":[2,0,0,104,3],\n\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\":[1,0,0,105,2],\n\"interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954\":[2,0,0,104,2],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\":[1,0,0,106],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html\":[2,0,0,105],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\":[1,0,0,106,2],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0\":[2,0,0,105,2],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\":[1,0,0,106,1],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac\":[2,0,0,105,1],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\":[1,0,0,106,3],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954\":[2,0,0,105,3],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\":[1,0,0,106,0],\n\"interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc\":[2,0,0,105,0],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\":[1,0,0,107],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html\":[2,0,0,106],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\":[1,0,0,107,3],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69\":[2,0,0,106,3],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\":[1,0,0,107,0],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c\":[2,0,0,106,0],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\":[1,0,0,107,2],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1\":[2,0,0,106,2],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\":[1,0,0,107,1],\n\"interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8\":[2,0,0,106,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\":[1,0,0,1,0,4],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html\":[2,0,0,1,0,3],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\":[1,0,0,1,0,4,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2\":[2,0,0,1,0,3,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\":[1,0,0,1,0,5],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html\":[2,0,0,1,0,4],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\":[1,0,0,1,0,5,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8\":[2,0,0,1,0,4,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\":[1,0,0,1,0,5,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941\":[2,0,0,1,0,4,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\":[1,0,0,1,0,6],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html\":[2,0,0,1,0,5],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\":[1,0,0,1,0,6,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075\":[2,0,0,1,0,5,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\":[1,0,0,1,0,6,2],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68\":[2,0,0,1,0,5,2],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\":[1,0,0,1,0,6,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d\":[2,0,0,1,0,5,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\":[1,0,0,1,0,7],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html\":[2,0,0,1,0,6],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\":[1,0,0,1,0,7,2],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6\":[2,0,0,1,0,6,2],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\":[1,0,0,1,0,7,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9\":[2,0,0,1,0,6,0],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\":[1,0,0,1,0,7,1],\n\"interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669\":[2,0,0,1,0,6,1],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html\":[1,0,1,5],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html\":[2,0,1,4],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\":[1,0,1,5,1],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972\":[2,0,1,4,1],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\":[1,0,1,5,0],\n\"interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65\":[2,0,1,4,0],\n\"interface_satori_1_1_i_api_authenticate_refresh_request.html\":[1,0,1,6],\n\"interface_satori_1_1_i_api_authenticate_refresh_request.html\":[2,0,1,5],\n\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\":[1,0,1,6,0],\n\"interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1\":[2,0,1,5,0],\n\"interface_satori_1_1_i_api_authenticate_request.html\":[1,0,1,7],\n\"interface_satori_1_1_i_api_authenticate_request.html\":[2,0,1,6],\n\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\":[1,0,1,7,0],\n\"interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995\":[2,0,1,6,0],\n\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\":[1,0,1,7,3],\n\"interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639\":[2,0,1,6,3],\n\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\":[1,0,1,7,2],\n\"interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c\":[2,0,1,6,2],\n\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\":[1,0,1,7,1],\n\"interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b\":[2,0,1,6,1],\n\"interface_satori_1_1_i_api_event.html\":[1,0,1,8],\n\"interface_satori_1_1_i_api_event.html\":[2,0,1,7],\n\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\":[1,0,1,8,1],\n\"interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3\":[2,0,1,7,1],\n\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\":[1,0,1,8,2],\n\"interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470\":[2,0,1,7,2],\n\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\":[1,0,1,8,0],\n\"interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629\":[2,0,1,7,0],\n\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\":[1,0,1,8,3],\n\"interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d\":[2,0,1,7,3],\n\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\":[1,0,1,8,4],\n\"interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac\":[2,0,1,7,4],\n\"interface_satori_1_1_i_api_event_request.html\":[1,0,1,9],\n\"interface_satori_1_1_i_api_event_request.html\":[2,0,1,8],\n\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\":[1,0,1,9,0],\n\"interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2\":[2,0,1,8,0],\n\"interface_satori_1_1_i_api_experiment.html\":[1,0,1,10],\n\"interface_satori_1_1_i_api_experiment.html\":[2,0,1,9],\n\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\":[1,0,1,10,1],\n\"interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9\":[2,0,1,9,1],\n\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\":[1,0,1,10,0],\n\"interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b\":[2,0,1,9,0],\n\"interface_satori_1_1_i_api_experiment_list.html\":[1,0,1,11],\n\"interface_satori_1_1_i_api_experiment_list.html\":[2,0,1,10],\n\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\":[1,0,1,11,0],\n\"interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2\":[2,0,1,10,0],\n\"interface_satori_1_1_i_api_flag.html\":[1,0,1,12],\n\"interface_satori_1_1_i_api_flag.html\":[2,0,1,11],\n\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\":[1,0,1,12,0],\n\"interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c\":[2,0,1,11,0],\n\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\":[1,0,1,12,2],\n\"interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04\":[2,0,1,11,2],\n\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\":[1,0,1,12,3],\n\"interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3\":[2,0,1,11,3],\n\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\":[1,0,1,12,1],\n\"interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52\":[2,0,1,11,1],\n\"interface_satori_1_1_i_api_flag_list.html\":[1,0,1,13],\n\"interface_satori_1_1_i_api_flag_list.html\":[2,0,1,12],\n\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\":[1,0,1,13,0],\n\"interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774\":[2,0,1,12,0],\n\"interface_satori_1_1_i_api_flag_override.html\":[1,0,1,14],\n\"interface_satori_1_1_i_api_flag_override.html\":[2,0,1,13],\n\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\":[1,0,1,14,1],\n\"interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91\":[2,0,1,13,1],\n\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\":[1,0,1,14,0],\n\"interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278\":[2,0,1,13,0],\n\"interface_satori_1_1_i_api_flag_override_list.html\":[1,0,1,15],\n\"interface_satori_1_1_i_api_flag_override_list.html\":[2,0,1,14],\n\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\":[1,0,1,15,0],\n\"interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03\":[2,0,1,14,0],\n\"interface_satori_1_1_i_api_flag_override_value.html\":[1,0,1,16],\n\"interface_satori_1_1_i_api_flag_override_value.html\":[2,0,1,15],\n\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\":[1,0,1,16,2],\n\"interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289\":[2,0,1,15,2],\n\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\":[1,0,1,16,3],\n\"interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323\":[2,0,1,15,3],\n\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\":[1,0,1,16,1],\n\"interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db\":[2,0,1,15,1],\n\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\":[1,0,1,16,4],\n\"interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd\":[2,0,1,15,4],\n\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\":[1,0,1,16,0],\n\"interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712\":[2,0,1,15,0],\n\"interface_satori_1_1_i_api_get_message_list_response.html\":[1,0,1,17],\n\"interface_satori_1_1_i_api_get_message_list_response.html\":[2,0,1,16],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\":[1,0,1,17,0],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82\":[2,0,1,16,0],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\":[1,0,1,17,1],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26\":[2,0,1,16,1],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\":[1,0,1,17,3],\n\"interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5\":[2,0,1,16,3],\n\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\":[1,0,1,17,2],\n\"interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e\":[2,0,1,16,2],\n\"interface_satori_1_1_i_api_identify_request.html\":[1,0,1,18]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex12.js",
    "content": "var NAVTREEINDEX12 =\n{\n\"interface_satori_1_1_i_api_identify_request.html\":[2,0,1,17],\n\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\":[1,0,1,18,2],\n\"interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603\":[2,0,1,17,2],\n\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\":[1,0,1,18,0],\n\"interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f\":[2,0,1,17,0],\n\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\":[1,0,1,18,1],\n\"interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d\":[2,0,1,17,1],\n\"interface_satori_1_1_i_api_live_event.html\":[1,0,1,19],\n\"interface_satori_1_1_i_api_live_event.html\":[2,0,1,18],\n\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\":[1,0,1,19,0],\n\"interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5\":[2,0,1,18,0],\n\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\":[1,0,1,19,4],\n\"interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c\":[2,0,1,18,4],\n\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\":[1,0,1,19,7],\n\"interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd\":[2,0,1,18,7],\n\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\":[1,0,1,19,3],\n\"interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc\":[2,0,1,18,3],\n\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\":[1,0,1,19,9],\n\"interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883\":[2,0,1,18,9],\n\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\":[1,0,1,19,8],\n\"interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba\":[2,0,1,18,8],\n\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\":[1,0,1,19,2],\n\"interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8\":[2,0,1,18,2],\n\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\":[1,0,1,19,5],\n\"interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7\":[2,0,1,18,5],\n\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\":[1,0,1,19,1],\n\"interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50\":[2,0,1,18,1],\n\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\":[1,0,1,19,6],\n\"interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32\":[2,0,1,18,6],\n\"interface_satori_1_1_i_api_live_event_list.html\":[1,0,1,20],\n\"interface_satori_1_1_i_api_live_event_list.html\":[2,0,1,19],\n\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\":[1,0,1,20,0],\n\"interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5\":[2,0,1,19,0],\n\"interface_satori_1_1_i_api_message.html\":[1,0,1,21],\n\"interface_satori_1_1_i_api_message.html\":[2,0,1,20],\n\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\":[1,0,1,21,2],\n\"interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae\":[2,0,1,20,2],\n\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\":[1,0,1,21,10],\n\"interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7\":[2,0,1,20,10],\n\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\":[1,0,1,21,5],\n\"interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770\":[2,0,1,20,5],\n\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\":[1,0,1,21,0],\n\"interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81\":[2,0,1,20,0],\n\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\":[1,0,1,21,6],\n\"interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927\":[2,0,1,20,6],\n\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\":[1,0,1,21,1],\n\"interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6\":[2,0,1,20,1],\n\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\":[1,0,1,21,4],\n\"interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198\":[2,0,1,20,4],\n\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\":[1,0,1,21,7],\n\"interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee\":[2,0,1,20,7],\n\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\":[1,0,1,21,8],\n\"interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa\":[2,0,1,20,8],\n\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\":[1,0,1,21,3],\n\"interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee\":[2,0,1,20,3],\n\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\":[1,0,1,21,9],\n\"interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277\":[2,0,1,20,9],\n\"interface_satori_1_1_i_api_properties.html\":[1,0,1,22],\n\"interface_satori_1_1_i_api_properties.html\":[2,0,1,21],\n\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\":[1,0,1,22,0],\n\"interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4\":[2,0,1,21,0],\n\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\":[1,0,1,22,1],\n\"interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff\":[2,0,1,21,1],\n\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\":[1,0,1,22,2],\n\"interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b\":[2,0,1,21,2],\n\"interface_satori_1_1_i_api_session.html\":[1,0,1,23],\n\"interface_satori_1_1_i_api_session.html\":[2,0,1,22],\n\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\":[1,0,1,23,1],\n\"interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91\":[2,0,1,22,1],\n\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\":[1,0,1,23,0],\n\"interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa\":[2,0,1,22,0],\n\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\":[1,0,1,23,2],\n\"interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97\":[2,0,1,22,2],\n\"interface_satori_1_1_i_api_update_message_request.html\":[1,0,1,24],\n\"interface_satori_1_1_i_api_update_message_request.html\":[2,0,1,23],\n\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\":[1,0,1,24,0],\n\"interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9\":[2,0,1,23,0],\n\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\":[1,0,1,24,1],\n\"interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970\":[2,0,1,23,1],\n\"interface_satori_1_1_i_api_update_properties_request.html\":[1,0,1,25],\n\"interface_satori_1_1_i_api_update_properties_request.html\":[2,0,1,24],\n\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\":[1,0,1,25,0],\n\"interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd\":[2,0,1,24,0],\n\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\":[1,0,1,25,2],\n\"interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d\":[2,0,1,24,2],\n\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\":[1,0,1,25,1],\n\"interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e\":[2,0,1,24,1],\n\"interface_satori_1_1_i_client.html\":[1,0,1,26],\n\"interface_satori_1_1_i_client.html\":[2,0,1,25],\n\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\":[1,0,1,26,20],\n\"interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca\":[2,0,1,25,20],\n\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\":[1,0,1,26,7],\n\"interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7\":[2,0,1,25,7],\n\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\":[1,0,1,26,6],\n\"interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387\":[2,0,1,25,6],\n\"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\":[1,0,1,26,11],\n\"interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5\":[2,0,1,25,11],\n\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\":[1,0,1,26,0],\n\"interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b\":[2,0,1,25,0],\n\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\":[1,0,1,26,24],\n\"interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9\":[2,0,1,25,24],\n\"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\":[1,0,1,26,9],\n\"interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60\":[2,0,1,25,9],\n\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\":[1,0,1,26,8],\n\"interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8\":[2,0,1,25,8],\n\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\":[1,0,1,26,13],\n\"interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e\":[2,0,1,25,13],\n\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\":[1,0,1,26,21],\n\"interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0\":[2,0,1,25,21],\n\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\":[1,0,1,26,10],\n\"interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e\":[2,0,1,25,10],\n\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\":[1,0,1,26,2],\n\"interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3\":[2,0,1,25,2],\n\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\":[1,0,1,26,22],\n\"interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd\":[2,0,1,25,22],\n\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\":[1,0,1,26,23],\n\"interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39\":[2,0,1,25,23],\n\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\":[1,0,1,26,19],\n\"interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5\":[2,0,1,25,19],\n\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\":[1,0,1,26,17],\n\"interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207\":[2,0,1,25,17],\n\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\":[1,0,1,26,1],\n\"interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238\":[2,0,1,25,1],\n\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\":[1,0,1,26,12],\n\"interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c\":[2,0,1,25,12],\n\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\":[1,0,1,26,26],\n\"interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d\":[2,0,1,25,26],\n\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\":[1,0,1,26,5],\n\"interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215\":[2,0,1,25,5],\n\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\":[1,0,1,26,25],\n\"interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab\":[2,0,1,25,25],\n\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\":[1,0,1,26,18],\n\"interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1\":[2,0,1,25,18],\n\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\":[1,0,1,26,16],\n\"interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233\":[2,0,1,25,16],\n\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\":[1,0,1,26,28],\n\"interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580\":[2,0,1,25,28],\n\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\":[1,0,1,26,4],\n\"interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92\":[2,0,1,25,4],\n\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\":[1,0,1,26,14],\n\"interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a\":[2,0,1,25,14],\n\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\":[1,0,1,26,29],\n\"interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b\":[2,0,1,25,29],\n\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\":[1,0,1,26,15],\n\"interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e\":[2,0,1,25,15],\n\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\":[1,0,1,26,3],\n\"interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5\":[2,0,1,25,3],\n\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\":[1,0,1,26,27],\n\"interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109\":[2,0,1,25,27],\n\"interface_satori_1_1_i_flag_value_change_reason.html\":[1,0,1,27],\n\"interface_satori_1_1_i_flag_value_change_reason.html\":[2,0,1,26],\n\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\":[1,0,1,27,1],\n\"interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90\":[2,0,1,26,1],\n\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\":[1,0,1,27,0],\n\"interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121\":[2,0,1,26,0],\n\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\":[1,0,1,27,2],\n\"interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68\":[2,0,1,26,2],\n\"interface_satori_1_1_i_http_adapter.html\":[1,0,1,28],\n\"interface_satori_1_1_i_http_adapter.html\":[2,0,1,27],\n\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\":[1,0,1,28,2],\n\"interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f\":[2,0,1,27,2],\n\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\":[1,0,1,28,0],\n\"interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344\":[2,0,1,27,0],\n\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\":[1,0,1,28,1],\n\"interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b\":[2,0,1,27,1],\n\"interface_satori_1_1_i_logger.html\":[1,0,1,29],\n\"interface_satori_1_1_i_logger.html\":[2,0,1,28],\n\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\":[1,0,1,29,2],\n\"interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb\":[2,0,1,28,2],\n\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\":[1,0,1,29,3],\n\"interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591\":[2,0,1,28,3],\n\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\":[1,0,1,29,1],\n\"interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd\":[2,0,1,28,1],\n\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\":[1,0,1,29,0],\n\"interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190\":[2,0,1,28,0],\n\"interface_satori_1_1_i_protobuf_any.html\":[1,0,1,30],\n\"interface_satori_1_1_i_protobuf_any.html\":[2,0,1,29],\n\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\":[1,0,1,30,0],\n\"interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d\":[2,0,1,29,0],\n\"interface_satori_1_1_i_rpc_status.html\":[1,0,1,31],\n\"interface_satori_1_1_i_rpc_status.html\":[2,0,1,30],\n\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\":[1,0,1,31,0],\n\"interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff\":[2,0,1,30,0],\n\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\":[1,0,1,31,1],\n\"interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9\":[2,0,1,30,1],\n\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\":[1,0,1,31,2],\n\"interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96\":[2,0,1,30,2],\n\"interface_satori_1_1_i_session.html\":[1,0,1,32],\n\"interface_satori_1_1_i_session.html\":[2,0,1,31],\n\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\":[1,0,1,32,4],\n\"interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f\":[2,0,1,31,4],\n\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\":[1,0,1,32,7],\n\"interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779\":[2,0,1,31,7],\n\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\":[1,0,1,32,2],\n\"interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba\":[2,0,1,31,2],\n\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\":[1,0,1,32,8],\n\"interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571\":[2,0,1,31,8],\n\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\":[1,0,1,32,3],\n\"interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a\":[2,0,1,31,3],\n\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\":[1,0,1,32,6],\n\"interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d\":[2,0,1,31,6],\n\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\":[1,0,1,32,1],\n\"interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac\":[2,0,1,31,1],\n\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\":[1,0,1,32,0],\n\"interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5\":[2,0,1,31,0],\n\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\":[1,0,1,32,9],\n\"interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf\":[2,0,1,31,9],\n\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\":[1,0,1,32,5],\n\"interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e\":[2,0,1,31,5],\n\"md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html\":[0],\n\"namespace_nakama.html\":[1,0,0],\n\"namespace_nakama.html#a016772f008c1c294bf609c6ece102445\":[1,0,0,122],\n\"namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59\":[1,0,0,120],\n\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6\":[1,0,0,117],\n\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8\":[1,0,0,117,1],\n\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3\":[1,0,0,117,0],\n\"namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118\":[1,0,0,117,2],\n\"namespace_nakama.html#a54689fcf19366a415851641cb61947d4\":[1,0,0,121],\n\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49\":[1,0,0,118],\n\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68\":[1,0,0,118,3],\n\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf\":[1,0,0,118,0],\n\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c\":[1,0,0,118,2],\n\"namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f\":[1,0,0,118,1],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7\":[1,0,0,116],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164\":[1,0,0,116,2],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534\":[1,0,0,116,3],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9\":[1,0,0,116,0],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106\":[1,0,0,116,4],\n\"namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6\":[1,0,0,116,1],\n\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307\":[1,0,0,119],\n\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0\":[1,0,0,119,2],\n\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa\":[1,0,0,119,1],\n\"namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f\":[1,0,0,119,0],\n\"namespace_nakama_1_1_console.html\":[1,0,0,0],\n\"namespace_nakama_1_1_ninja.html\":[1,0,0,1],\n\"namespace_nakama_1_1_ninja_1_1_web_sockets.html\":[1,0,0,1,0],\n\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html\":[1,0,0,1,0,0],\n\"namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html\":[1,0,0,1,0,1],\n\"namespace_nakama_1_1_tiny_json.html\":[1,0,0,2],\n\"namespace_satori.html\":[1,0,1],\n\"namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f\":[1,0,1,40],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d\":[1,0,1,36],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8\":[1,0,1,36,0],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59\":[1,0,1,36,1],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab\":[1,0,1,36,2],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4\":[1,0,1,36,3],\n\"namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f\":[1,0,1,36,4],\n\"namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7\":[1,0,1,38],\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f\":[1,0,1,37],\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59\":[1,0,1,37,1]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex13.js",
    "content": "var NAVTREEINDEX13 =\n{\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3\":[1,0,1,37,0],\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109\":[1,0,1,37,2],\n\"namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864\":[1,0,1,37,3],\n\"namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099\":[1,0,1,39],\n\"namespace_satori_1_1_tiny_json.html\":[1,0,1,0],\n\"namespacemembers.html\":[1,1,0],\n\"namespacemembers_enum.html\":[1,1,2],\n\"namespacemembers_func.html\":[1,1,1],\n\"namespaces.html\":[1,0],\n\"pages.html\":[]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex2.js",
    "content": "var NAVTREEINDEX2 =\n{\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\":[1,0,0,1,0,0,1,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba\":[2,0,0,1,0,0,1,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\":[1,0,0,1,0,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html\":[2,0,0,1,0,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a\":[1,0,0,1,0,0,2,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a\":[2,0,0,1,0,0,2,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640\":[1,0,0,1,0,0,2,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640\":[2,0,0,1,0,0,2,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\":[1,0,0,1,0,0,2,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101\":[2,0,0,1,0,0,2,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\":[1,0,0,1,0,0,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html\":[2,0,0,1,0,0,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e\":[1,0,0,1,0,0,3,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e\":[2,0,0,1,0,0,3,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\":[1,0,0,1,0,0,3,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7\":[2,0,0,1,0,0,3,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf\":[1,0,0,1,0,0,3,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf\":[2,0,0,1,0,0,3,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\":[1,0,0,1,0,0,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html\":[2,0,0,1,0,0,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d\":[1,0,0,1,0,0,4,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d\":[2,0,0,1,0,0,4,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1\":[1,0,0,1,0,0,4,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1\":[2,0,0,1,0,0,4,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\":[1,0,0,1,0,0,4,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767\":[2,0,0,1,0,0,4,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\":[1,0,0,1,0,0,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html\":[2,0,0,1,0,0,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\":[1,0,0,1,0,0,5,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a\":[2,0,0,1,0,0,5,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9\":[1,0,0,1,0,0,5,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9\":[2,0,0,1,0,0,5,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c\":[1,0,0,1,0,0,5,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c\":[2,0,0,1,0,0,5,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\":[1,0,0,1,0,0,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html\":[2,0,0,1,0,0,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607\":[1,0,0,1,0,0,6,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607\":[2,0,0,1,0,0,6,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\":[1,0,0,1,0,0,6,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4\":[2,0,0,1,0,0,6,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d\":[1,0,0,1,0,0,6,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d\":[2,0,0,1,0,0,6,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\":[1,0,0,1,0,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html\":[2,0,0,1,0,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\":[1,0,0,1,0,8],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html\":[2,0,0,1,0,7],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\":[1,0,0,1,0,8,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df\":[2,0,0,1,0,7,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\":[1,0,0,1,0,8,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c\":[2,0,0,1,0,7,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\":[1,0,0,1,0,8,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29\":[2,0,0,1,0,7,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\":[1,0,0,1,0,8,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf\":[2,0,0,1,0,7,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\":[1,0,0,1,0,9],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html\":[2,0,0,1,0,8],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\":[1,0,0,1,0,9,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c\":[2,0,0,1,0,8,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\":[1,0,0,1,0,9,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38\":[2,0,0,1,0,8,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\":[1,0,0,1,0,10],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html\":[2,0,0,1,0,9],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\":[1,0,0,1,0,10,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a\":[2,0,0,1,0,9,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\":[1,0,0,1,0,10,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192\":[2,0,0,1,0,9,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731\":[1,0,0,1,0,10,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731\":[2,0,0,1,0,9,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\":[1,0,0,1,0,10,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1\":[2,0,0,1,0,9,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\":[1,0,0,1,0,10,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04\":[2,0,0,1,0,9,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\":[1,0,0,1,0,10,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466\":[2,0,0,1,0,9,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\":[1,0,0,1,0,10,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9\":[2,0,0,1,0,9,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\":[1,0,0,1,0,11],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html\":[2,0,0,1,0,10],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\":[1,0,0,1,0,11,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162\":[2,0,0,1,0,10,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\":[1,0,0,1,0,11,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b\":[2,0,0,1,0,10,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\":[1,0,0,1,0,11,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f\":[2,0,0,1,0,10,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\":[1,0,0,1,0,11,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f\":[2,0,0,1,0,10,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\":[1,0,0,1,0,11,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337\":[2,0,0,1,0,10,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\":[1,0,0,1,0,11,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669\":[2,0,0,1,0,10,6],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\":[1,0,0,1,0,11,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04\":[2,0,0,1,0,10,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\":[1,0,0,1,0,12],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html\":[2,0,0,1,0,11],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\":[1,0,0,1,0,12,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c\":[2,0,0,1,0,11,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\":[1,0,0,1,0,12,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23\":[2,0,0,1,0,11,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\":[1,0,0,1,0,12,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8\":[2,0,0,1,0,11,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\":[1,0,0,1,0,12,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa\":[2,0,0,1,0,11,5],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\":[1,0,0,1,0,12,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c\":[2,0,0,1,0,11,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\":[1,0,0,1,0,12,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07\":[2,0,0,1,0,11,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\":[1,0,0,1,0,13],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html\":[2,0,0,1,0,12],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\":[1,0,0,1,0,13,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d\":[2,0,0,1,0,12,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\":[1,0,0,1,0,13,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f\":[2,0,0,1,0,12,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23\":[1,0,0,1,0,13,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23\":[2,0,0,1,0,12,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\":[1,0,0,1,0,13,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4\":[2,0,0,1,0,12,4],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\":[1,0,0,1,0,13,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe\":[2,0,0,1,0,12,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\":[1,0,0,1,0,14],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html\":[2,0,0,1,0,13],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\":[1,0,0,1,0,14,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d\":[2,0,0,1,0,13,1],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\":[1,0,0,1,0,14,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984\":[2,0,0,1,0,13,0],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\":[1,0,0,1,0,14,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd\":[2,0,0,1,0,13,2],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\":[1,0,0,1,0,14,3],\n\"class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640\":[2,0,0,1,0,13,3],\n\"class_nakama_1_1_retry.html\":[1,0,0,108],\n\"class_nakama_1_1_retry.html\":[2,0,0,107],\n\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\":[1,0,0,108,1],\n\"class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08\":[2,0,0,107,1],\n\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\":[1,0,0,108,0],\n\"class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8\":[2,0,0,107,0],\n\"class_nakama_1_1_retry_configuration.html\":[1,0,0,109],\n\"class_nakama_1_1_retry_configuration.html\":[2,0,0,108],\n\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\":[1,0,0,109,4],\n\"class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd\":[2,0,0,108,4],\n\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\":[1,0,0,109,5],\n\"class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e\":[2,0,0,108,5],\n\"class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f\":[1,0,0,109,2],\n\"class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f\":[2,0,0,108,2],\n\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\":[1,0,0,109,6],\n\"class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe\":[2,0,0,108,6],\n\"class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a\":[1,0,0,109,1],\n\"class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a\":[2,0,0,108,1],\n\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\":[1,0,0,109,3],\n\"class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75\":[2,0,0,108,3],\n\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\":[1,0,0,109,0],\n\"class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272\":[2,0,0,108,0],\n\"class_nakama_1_1_session.html\":[1,0,0,110],\n\"class_nakama_1_1_session.html\":[2,0,0,109],\n\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\":[1,0,0,110,5],\n\"class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb\":[2,0,0,109,5],\n\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\":[1,0,0,110,1],\n\"class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc\":[2,0,0,109,1],\n\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\":[1,0,0,110,8],\n\"class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129\":[2,0,0,109,8],\n\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\":[1,0,0,110,0],\n\"class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929\":[2,0,0,109,0],\n\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\":[1,0,0,110,11],\n\"class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0\":[2,0,0,109,11],\n\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\":[1,0,0,110,14],\n\"class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7\":[2,0,0,109,14],\n\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\":[1,0,0,110,4],\n\"class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf\":[2,0,0,109,4],\n\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\":[1,0,0,110,2],\n\"class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd\":[2,0,0,109,2],\n\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\":[1,0,0,110,9],\n\"class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac\":[2,0,0,109,9],\n\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\":[1,0,0,110,10],\n\"class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002\":[2,0,0,109,10],\n\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\":[1,0,0,110,13],\n\"class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e\":[2,0,0,109,13],\n\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\":[1,0,0,110,12],\n\"class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f\":[2,0,0,109,12],\n\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\":[1,0,0,110,7],\n\"class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91\":[2,0,0,109,7],\n\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\":[1,0,0,110,6],\n\"class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912\":[2,0,0,109,6],\n\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\":[1,0,0,110,3],\n\"class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace\":[2,0,0,109,3],\n\"class_nakama_1_1_socket.html\":[1,0,0,111],\n\"class_nakama_1_1_socket.html\":[2,0,0,110],\n\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\":[1,0,0,111,31],\n\"class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f\":[2,0,0,110,31],\n\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\":[1,0,0,111,66],\n\"class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f\":[2,0,0,110,66],\n\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\":[1,0,0,111,8],\n\"class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa\":[2,0,0,110,8],\n\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\":[1,0,0,111,48],\n\"class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195\":[2,0,0,110,48],\n\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\":[1,0,0,111,10],\n\"class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d\":[2,0,0,110,10],\n\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\":[1,0,0,111,60],\n\"class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db\":[2,0,0,110,60],\n\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\":[1,0,0,111,54],\n\"class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b\":[2,0,0,110,54],\n\"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\":[1,0,0,111,12],\n\"class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338\":[2,0,0,110,12],\n\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\":[1,0,0,111,57],\n\"class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8\":[2,0,0,110,57],\n\"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\":[1,0,0,111,36],\n\"class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47\":[2,0,0,110,36],\n\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\":[1,0,0,111,21],\n\"class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb\":[2,0,0,110,21],\n\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\":[1,0,0,111,17],\n\"class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7\":[2,0,0,110,17],\n\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\":[1,0,0,111,52],\n\"class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d\":[2,0,0,110,52],\n\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\":[1,0,0,111,14],\n\"class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80\":[2,0,0,110,14],\n\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\":[1,0,0,111,50],\n\"class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2\":[2,0,0,110,50],\n\"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\":[1,0,0,111,30],\n\"class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80\":[2,0,0,110,30],\n\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\":[1,0,0,111,47],\n\"class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639\":[2,0,0,110,47],\n\"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\":[1,0,0,111,25],\n\"class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e\":[2,0,0,110,25],\n\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\":[1,0,0,111,29],\n\"class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1\":[2,0,0,110,29],\n\"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\":[1,0,0,111,46],\n\"class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772\":[2,0,0,110,46],\n\"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\":[1,0,0,111,40],\n\"class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986\":[2,0,0,110,40],\n\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\":[1,0,0,111,41],\n\"class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b\":[2,0,0,110,41],\n\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\":[1,0,0,111,64],\n\"class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e\":[2,0,0,110,64],\n\"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\":[1,0,0,111,34],\n\"class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935\":[2,0,0,110,34],\n\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\":[1,0,0,111,38],\n\"class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d\":[2,0,0,110,38],\n\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\":[1,0,0,111,49],\n\"class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7\":[2,0,0,110,49],\n\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\":[1,0,0,111,32],\n\"class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a\":[2,0,0,110,32],\n\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\":[1,0,0,111,43],\n\"class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a\":[2,0,0,110,43],\n\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\":[1,0,0,111,7],\n\"class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237\":[2,0,0,110,7],\n\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\":[1,0,0,111,16],\n\"class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519\":[2,0,0,110,16],\n\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\":[1,0,0,111,55],\n\"class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53\":[2,0,0,110,55],\n\"class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7\":[1,0,0,111,1],\n\"class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7\":[2,0,0,110,1],\n\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\":[1,0,0,111,6],\n\"class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e\":[2,0,0,110,6]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex3.js",
    "content": "var NAVTREEINDEX3 =\n{\n\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\":[1,0,0,111,62],\n\"class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6\":[2,0,0,110,62],\n\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\":[1,0,0,111,5],\n\"class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de\":[2,0,0,110,5],\n\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\":[1,0,0,111,9],\n\"class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6\":[2,0,0,110,9],\n\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\":[1,0,0,111,63],\n\"class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53\":[2,0,0,110,63],\n\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\":[1,0,0,111,39],\n\"class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec\":[2,0,0,110,39],\n\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\":[1,0,0,111,45],\n\"class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc\":[2,0,0,110,45],\n\"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\":[1,0,0,111,15],\n\"class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb\":[2,0,0,110,15],\n\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\":[1,0,0,111,28],\n\"class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3\":[2,0,0,110,28],\n\"class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1\":[1,0,0,111,2],\n\"class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1\":[2,0,0,110,2],\n\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\":[1,0,0,111,53],\n\"class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436\":[2,0,0,110,53],\n\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\":[1,0,0,111,65],\n\"class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10\":[2,0,0,110,65],\n\"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\":[1,0,0,111,18],\n\"class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e\":[2,0,0,110,18],\n\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\":[1,0,0,111,44],\n\"class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707\":[2,0,0,110,44],\n\"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\":[1,0,0,111,27],\n\"class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72\":[2,0,0,110,27],\n\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\":[1,0,0,111,35],\n\"class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c\":[2,0,0,110,35],\n\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\":[1,0,0,111,68],\n\"class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53\":[2,0,0,110,68],\n\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\":[1,0,0,111,0],\n\"class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2\":[2,0,0,110,0],\n\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\":[1,0,0,111,51],\n\"class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac\":[2,0,0,110,51],\n\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\":[1,0,0,111,24],\n\"class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf\":[2,0,0,110,24],\n\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\":[1,0,0,111,26],\n\"class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827\":[2,0,0,110,26],\n\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\":[1,0,0,111,56],\n\"class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138\":[2,0,0,110,56],\n\"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\":[1,0,0,111,37],\n\"class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d\":[2,0,0,110,37],\n\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\":[1,0,0,111,67],\n\"class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579\":[2,0,0,110,67],\n\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\":[1,0,0,111,22],\n\"class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48\":[2,0,0,110,22],\n\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\":[1,0,0,111,69],\n\"class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8\":[2,0,0,110,69],\n\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\":[1,0,0,111,19],\n\"class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd\":[2,0,0,110,19],\n\"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\":[1,0,0,111,20],\n\"class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6\":[2,0,0,110,20],\n\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\":[1,0,0,111,13],\n\"class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4\":[2,0,0,110,13],\n\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\":[1,0,0,111,11],\n\"class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5\":[2,0,0,110,11],\n\"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\":[1,0,0,111,42],\n\"class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf\":[2,0,0,110,42],\n\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\":[1,0,0,111,23],\n\"class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0\":[2,0,0,110,23],\n\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\":[1,0,0,111,59],\n\"class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b\":[2,0,0,110,59],\n\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\":[1,0,0,111,58],\n\"class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a\":[2,0,0,110,58],\n\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\":[1,0,0,111,3],\n\"class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a\":[2,0,0,110,3],\n\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\":[1,0,0,111,4],\n\"class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848\":[2,0,0,110,4],\n\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\":[1,0,0,111,61],\n\"class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05\":[2,0,0,110,61],\n\"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\":[1,0,0,111,33],\n\"class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c\":[2,0,0,110,33],\n\"class_nakama_1_1_storage_object_id.html\":[1,0,0,112],\n\"class_nakama_1_1_storage_object_id.html\":[2,0,0,111],\n\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\":[1,0,0,112,3],\n\"class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6\":[2,0,0,111,3],\n\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\":[1,0,0,112,4],\n\"class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6\":[2,0,0,111,4],\n\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\":[1,0,0,112,1],\n\"class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95\":[2,0,0,111,1],\n\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\":[1,0,0,112,2],\n\"class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b\":[2,0,0,111,2],\n\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\":[1,0,0,112,0],\n\"class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4\":[2,0,0,111,0],\n\"class_nakama_1_1_web_socket_adapter.html\":[1,0,0,113],\n\"class_nakama_1_1_web_socket_adapter.html\":[2,0,0,112],\n\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\":[1,0,0,113,8],\n\"class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b\":[2,0,0,112,8],\n\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\":[1,0,0,113,3],\n\"class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0\":[2,0,0,112,3],\n\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\":[1,0,0,113,7],\n\"class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8\":[2,0,0,112,7],\n\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\":[1,0,0,113,2],\n\"class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a\":[2,0,0,112,2],\n\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\":[1,0,0,113,10],\n\"class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76\":[2,0,0,112,10],\n\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\":[1,0,0,113,11],\n\"class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5\":[2,0,0,112,11],\n\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\":[1,0,0,113,0],\n\"class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc\":[2,0,0,112,0],\n\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\":[1,0,0,113,5],\n\"class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457\":[2,0,0,112,5],\n\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\":[1,0,0,113,4],\n\"class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4\":[2,0,0,112,4],\n\"class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e\":[1,0,0,113,1],\n\"class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e\":[2,0,0,112,1],\n\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\":[1,0,0,113,6],\n\"class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3\":[2,0,0,112,6],\n\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\":[1,0,0,113,9],\n\"class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a\":[2,0,0,112,9],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html\":[1,0,0,114],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html\":[2,0,0,113],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\":[1,0,0,114,10],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845\":[2,0,0,113,10],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b\":[1,0,0,114,1],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b\":[2,0,0,113,1],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\":[1,0,0,114,0],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7\":[2,0,0,113,0],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\":[1,0,0,114,4],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f\":[2,0,0,113,4],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\":[1,0,0,114,5],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7\":[2,0,0,113,5],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\":[1,0,0,114,11],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed\":[2,0,0,113,11],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\":[1,0,0,114,9],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409\":[2,0,0,113,9],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\":[1,0,0,114,6],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced\":[2,0,0,113,6],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\":[1,0,0,114,8],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3\":[2,0,0,113,8],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\":[1,0,0,114,7],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74\":[2,0,0,113,7],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\":[1,0,0,114,3],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a\":[2,0,0,113,3],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\":[1,0,0,114,2],\n\"class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8\":[2,0,0,113,2],\n\"class_nakama_1_1_write_storage_object.html\":[1,0,0,115],\n\"class_nakama_1_1_write_storage_object.html\":[2,0,0,114],\n\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\":[1,0,0,115,5],\n\"class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2\":[2,0,0,114,5],\n\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\":[1,0,0,115,1],\n\"class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1\":[2,0,0,114,1],\n\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\":[1,0,0,115,4],\n\"class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026\":[2,0,0,114,4],\n\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\":[1,0,0,115,2],\n\"class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed\":[2,0,0,114,2],\n\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\":[1,0,0,115,0],\n\"class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3\":[2,0,0,114,0],\n\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\":[1,0,0,115,3],\n\"class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811\":[2,0,0,114,3],\n\"class_satori_1_1_api_response_exception.html\":[1,0,1,1],\n\"class_satori_1_1_api_response_exception.html\":[2,0,1,0],\n\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\":[1,0,1,1,4],\n\"class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042\":[2,0,1,0,4],\n\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\":[1,0,1,1,3],\n\"class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1\":[2,0,1,0,3],\n\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\":[1,0,1,1,0],\n\"class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936\":[2,0,1,0,0],\n\"class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df\":[1,0,1,1,2],\n\"class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df\":[2,0,1,0,2],\n\"class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926\":[1,0,1,1,1],\n\"class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926\":[2,0,1,0,1],\n\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\":[1,0,1,1,5],\n\"class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f\":[2,0,1,0,5],\n\"class_satori_1_1_client.html\":[1,0,1,2],\n\"class_satori_1_1_client.html\":[2,0,1,1],\n\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\":[1,0,1,2,19],\n\"class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b\":[2,0,1,1,19],\n\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\":[1,0,1,2,4],\n\"class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6\":[2,0,1,1,4],\n\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\":[1,0,1,2,7],\n\"class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1\":[2,0,1,1,7],\n\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\":[1,0,1,2,25],\n\"class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a\":[2,0,1,1,25],\n\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\":[1,0,1,2,23],\n\"class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b\":[2,0,1,1,23],\n\"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\":[1,0,1,2,11],\n\"class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536\":[2,0,1,1,11],\n\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\":[1,0,1,2,12],\n\"class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3\":[2,0,1,1,12],\n\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\":[1,0,1,2,2],\n\"class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57\":[2,0,1,1,2],\n\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\":[1,0,1,2,21],\n\"class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64\":[2,0,1,1,21],\n\"class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d\":[1,0,1,2,1],\n\"class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d\":[2,0,1,1,1],\n\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\":[1,0,1,2,10],\n\"class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787\":[2,0,1,1,10],\n\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\":[1,0,1,2,26],\n\"class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac\":[2,0,1,1,26],\n\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\":[1,0,1,2,24],\n\"class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35\":[2,0,1,1,24],\n\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\":[1,0,1,2,20],\n\"class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6\":[2,0,1,1,20],\n\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\":[1,0,1,2,28],\n\"class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b\":[2,0,1,1,28],\n\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\":[1,0,1,2,29],\n\"class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858\":[2,0,1,1,29],\n\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\":[1,0,1,2,27],\n\"class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561\":[2,0,1,1,27],\n\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\":[1,0,1,2,18],\n\"class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa\":[2,0,1,1,18],\n\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\":[1,0,1,2,3],\n\"class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02\":[2,0,1,1,3],\n\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\":[1,0,1,2,30],\n\"class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c\":[2,0,1,1,30],\n\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\":[1,0,1,2,14],\n\"class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d\":[2,0,1,1,14],\n\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\":[1,0,1,2,22],\n\"class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7\":[2,0,1,1,22],\n\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\":[1,0,1,2,6],\n\"class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc\":[2,0,1,1,6],\n\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\":[1,0,1,2,15],\n\"class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4\":[2,0,1,1,15],\n\"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\":[1,0,1,2,13],\n\"class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4\":[2,0,1,1,13],\n\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\":[1,0,1,2,9],\n\"class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a\":[2,0,1,1,9],\n\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\":[1,0,1,2,0],\n\"class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84\":[2,0,1,1,0],\n\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\":[1,0,1,2,16],\n\"class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23\":[2,0,1,1,16],\n\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\":[1,0,1,2,31],\n\"class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9\":[2,0,1,1,31],\n\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\":[1,0,1,2,17],\n\"class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d\":[2,0,1,1,17],\n\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\":[1,0,1,2,5],\n\"class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747\":[2,0,1,1,5],\n\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\":[1,0,1,2,8],\n\"class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b\":[2,0,1,1,8],\n\"class_satori_1_1_event.html\":[1,0,1,3],\n\"class_satori_1_1_event.html\":[2,0,1,2],\n\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\":[1,0,1,3,1],\n\"class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d\":[2,0,1,2,1],\n\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\":[1,0,1,3,4],\n\"class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36\":[2,0,1,2,4],\n\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\":[1,0,1,3,3],\n\"class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f\":[2,0,1,2,3],\n\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\":[1,0,1,3,0],\n\"class_satori_1_1_event.html#ae52296874234666607b8115b243beb60\":[2,0,1,2,0],\n\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\":[1,0,1,3,5],\n\"class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6\":[2,0,1,2,5],\n\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\":[1,0,1,3,2],\n\"class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873\":[2,0,1,2,2],\n\"class_satori_1_1_http_request_adapter.html\":[1,0,1,4],\n\"class_satori_1_1_http_request_adapter.html\":[2,0,1,3],\n\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\":[1,0,1,4,3],\n\"class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3\":[2,0,1,3,3]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex4.js",
    "content": "var NAVTREEINDEX4 =\n{\n\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\":[1,0,1,4,2],\n\"class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def\":[2,0,1,3,2],\n\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\":[1,0,1,4,1],\n\"class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a\":[2,0,1,3,1],\n\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\":[1,0,1,4,0],\n\"class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef\":[2,0,1,3,0],\n\"class_satori_1_1_retry.html\":[1,0,1,33],\n\"class_satori_1_1_retry.html\":[2,0,1,32],\n\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\":[1,0,1,33,1],\n\"class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974\":[2,0,1,32,1],\n\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\":[1,0,1,33,0],\n\"class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27\":[2,0,1,32,0],\n\"class_satori_1_1_retry_configuration.html\":[1,0,1,34],\n\"class_satori_1_1_retry_configuration.html\":[2,0,1,33],\n\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\":[1,0,1,34,5],\n\"class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599\":[2,0,1,33,5],\n\"class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f\":[1,0,1,34,1],\n\"class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f\":[2,0,1,33,1],\n\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\":[1,0,1,34,3],\n\"class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78\":[2,0,1,33,3],\n\"class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190\":[1,0,1,34,2],\n\"class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190\":[2,0,1,33,2],\n\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\":[1,0,1,34,6],\n\"class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a\":[2,0,1,33,6],\n\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\":[1,0,1,34,4],\n\"class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a\":[2,0,1,33,4],\n\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\":[1,0,1,34,0],\n\"class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58\":[2,0,1,33,0],\n\"class_satori_1_1_session.html\":[1,0,1,35],\n\"class_satori_1_1_session.html\":[2,0,1,34],\n\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\":[1,0,1,35,6],\n\"class_satori_1_1_session.html#a17977d09db716a100515246046689acb\":[2,0,1,34,6],\n\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\":[1,0,1,35,4],\n\"class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0\":[2,0,1,34,4],\n\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\":[1,0,1,35,1],\n\"class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe\":[2,0,1,34,1],\n\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\":[1,0,1,35,8],\n\"class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9\":[2,0,1,34,8],\n\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\":[1,0,1,35,10],\n\"class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122\":[2,0,1,34,10],\n\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\":[1,0,1,35,9],\n\"class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e\":[2,0,1,34,9],\n\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\":[1,0,1,35,7],\n\"class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135\":[2,0,1,34,7],\n\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\":[1,0,1,35,0],\n\"class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407\":[2,0,1,34,0],\n\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\":[1,0,1,35,2],\n\"class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c\":[2,0,1,34,2],\n\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\":[1,0,1,35,3],\n\"class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf\":[2,0,1,34,3],\n\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\":[1,0,1,35,5],\n\"class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e\":[2,0,1,34,5],\n\"classes.html\":[2,1],\n\"dir_00db1776877a30bd47a3324e3b896815.html\":[3,0,0,1],\n\"dir_0385b7cc93c13096276fd0475bf94138.html\":[3,0,0,3],\n\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\":[3,0,1,0],\n\"dir_1c3008a3c461c137d9f062e2a28e5366.html\":[3,0,0,1,0],\n\"dir_2024f50217af71df819eb31c540cc957.html\":[3,0,1,0,0,0],\n\"dir_29bd9dc1cd33dca2d02be697ebc424d5.html\":[3,0,0,2,1,2],\n\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\":[3,0,0,2,0],\n\"dir_4aba2f75ac06c997db6dcdd45b346bfc.html\":[3,0,0,2,0,2],\n\"dir_5986fb63ee1c250c22ec7255d2796bed.html\":[3,0,0,2,1],\n\"dir_5a43296f26836228c3ddbf8578e994aa.html\":[3,0,1,0,0,2],\n\"dir_5c537d2b32ff2d13d00336fbe6131750.html\":[3,0,1,0,1,2],\n\"dir_5d1450713377add98c1180fe0eb2f9ae.html\":[3,0,0,0],\n\"dir_5eb17383be0272b71916d4988c97ae3c.html\":[3,0,1,0,0,1],\n\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\":[3,0,0],\n\"dir_6c5dd7babc86647cb00b5f49e0afc051.html\":[3,0,0,2,1,0],\n\"dir_75202c243db9baf385df0aac94b0acc0.html\":[3,0,1,0,1,0],\n\"dir_7a595d23279f99f2e5346245557e8271.html\":[3,0,1,0,1,1],\n\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\":[3,0,0,2],\n\"dir_93c065d202f1b2ae4be97868117427d8.html\":[3,0,1,0,1],\n\"dir_ba769f4416b2c074a28c6130af43e345.html\":[3,0,1],\n\"dir_c0ea682cca75c87761dacf1668992820.html\":[3,0,0,2,0,1],\n\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\":[3,0,1,0,0],\n\"dir_ca7d207afbe6ec834644d82c9da0e27f.html\":[3,0,0,1,1],\n\"dir_d0af3520e52159625e5c54b0a0666246.html\":[3,0,0,2,1,1],\n\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\":[3,0,0,2,0,0],\n\"dir_ec82c3f1a2edb4d01443ada27de98406.html\":[3,0,1,1],\n\"files.html\":[3,0],\n\"functions.html\":[2,3,0],\n\"functions.html\":[2,3,0,0],\n\"functions_b.html\":[2,3,0,1],\n\"functions_c.html\":[2,3,0,2],\n\"functions_d.html\":[2,3,0,3],\n\"functions_e.html\":[2,3,0,4],\n\"functions_evnt.html\":[2,3,4],\n\"functions_f.html\":[2,3,0,5],\n\"functions_func.html\":[2,3,1],\n\"functions_func.html\":[2,3,1,0],\n\"functions_func_b.html\":[2,3,1,1],\n\"functions_func_c.html\":[2,3,1,2],\n\"functions_func_d.html\":[2,3,1,3],\n\"functions_func_e.html\":[2,3,1,4],\n\"functions_func_f.html\":[2,3,1,5],\n\"functions_func_g.html\":[2,3,1,6],\n\"functions_func_h.html\":[2,3,1,7],\n\"functions_func_i.html\":[2,3,1,8],\n\"functions_func_j.html\":[2,3,1,9],\n\"functions_func_k.html\":[2,3,1,10],\n\"functions_func_l.html\":[2,3,1,11],\n\"functions_func_o.html\":[2,3,1,12],\n\"functions_func_p.html\":[2,3,1,13],\n\"functions_func_r.html\":[2,3,1,14],\n\"functions_func_s.html\":[2,3,1,15],\n\"functions_func_t.html\":[2,3,1,16],\n\"functions_func_u.html\":[2,3,1,17],\n\"functions_func_v.html\":[2,3,1,18],\n\"functions_func_w.html\":[2,3,1,19],\n\"functions_g.html\":[2,3,0,6],\n\"functions_h.html\":[2,3,0,7],\n\"functions_i.html\":[2,3,0,8],\n\"functions_j.html\":[2,3,0,9],\n\"functions_k.html\":[2,3,0,10],\n\"functions_l.html\":[2,3,0,11],\n\"functions_m.html\":[2,3,0,12],\n\"functions_n.html\":[2,3,0,13],\n\"functions_o.html\":[2,3,0,14],\n\"functions_p.html\":[2,3,0,15],\n\"functions_prop.html\":[2,3,3],\n\"functions_prop.html\":[2,3,3,0],\n\"functions_prop_b.html\":[2,3,3,1],\n\"functions_prop_c.html\":[2,3,3,2],\n\"functions_prop_d.html\":[2,3,3,3],\n\"functions_prop_e.html\":[2,3,3,4],\n\"functions_prop_f.html\":[2,3,3,5],\n\"functions_prop_g.html\":[2,3,3,6],\n\"functions_prop_h.html\":[2,3,3,7],\n\"functions_prop_i.html\":[2,3,3,8],\n\"functions_prop_j.html\":[2,3,3,9],\n\"functions_prop_k.html\":[2,3,3,10],\n\"functions_prop_l.html\":[2,3,3,11],\n\"functions_prop_m.html\":[2,3,3,12],\n\"functions_prop_n.html\":[2,3,3,13],\n\"functions_prop_o.html\":[2,3,3,14],\n\"functions_prop_p.html\":[2,3,3,15],\n\"functions_prop_r.html\":[2,3,3,16],\n\"functions_prop_s.html\":[2,3,3,17],\n\"functions_prop_t.html\":[2,3,3,18],\n\"functions_prop_u.html\":[2,3,3,19],\n\"functions_prop_v.html\":[2,3,3,20],\n\"functions_prop_w.html\":[2,3,3,21],\n\"functions_r.html\":[2,3,0,16],\n\"functions_s.html\":[2,3,0,17],\n\"functions_t.html\":[2,3,0,18],\n\"functions_u.html\":[2,3,0,19],\n\"functions_v.html\":[2,3,0,20],\n\"functions_vars.html\":[2,3,2],\n\"functions_w.html\":[2,3,0,21],\n\"hierarchy.html\":[2,2],\n\"index.html\":[],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html\":[1,0,0,0,1],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html\":[2,0,0,0,1],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\":[1,0,0,0,1,0],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133\":[2,0,0,0,1,0],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\":[1,0,0,0,1,1],\n\"interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90\":[2,0,0,0,1,1],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\":[1,0,0,0,2],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html\":[2,0,0,0,2],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\":[1,0,0,0,2,12],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7\":[2,0,0,0,2,12],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\":[1,0,0,0,2,1],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b\":[2,0,0,0,2,1],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\":[1,0,0,0,2,8],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a\":[2,0,0,0,2,8],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\":[1,0,0,0,2,5],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3\":[2,0,0,0,2,5],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\":[1,0,0,0,2,2],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94\":[2,0,0,0,2,2],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\":[1,0,0,0,2,7],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83\":[2,0,0,0,2,7],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\":[1,0,0,0,2,6],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366\":[2,0,0,0,2,6],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\":[1,0,0,0,2,4],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74\":[2,0,0,0,2,4],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\":[1,0,0,0,2,10],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580\":[2,0,0,0,2,10],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\":[1,0,0,0,2,3],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6\":[2,0,0,0,2,3],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\":[1,0,0,0,2,11],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee\":[2,0,0,0,2,11],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\":[1,0,0,0,2,0],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050\":[2,0,0,0,2,0],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\":[1,0,0,0,2,9],\n\"interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c\":[2,0,0,0,2,9],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html\":[1,0,0,0,3],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html\":[2,0,0,0,3],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\":[1,0,0,0,3,0],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be\":[2,0,0,0,3,0],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\":[1,0,0,0,3,1],\n\"interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694\":[2,0,0,0,3,1],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\":[1,0,0,0,4],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html\":[2,0,0,0,4],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\":[1,0,0,0,4,0],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f\":[2,0,0,0,4,0],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\":[1,0,0,0,4,1],\n\"interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5\":[2,0,0,0,4,1],\n\"interface_nakama_1_1_console_1_1_i_api_group.html\":[1,0,0,0,5],\n\"interface_nakama_1_1_console_1_1_i_api_group.html\":[2,0,0,0,5],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\":[1,0,0,0,5,3],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4\":[2,0,0,0,5,3],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\":[1,0,0,0,5,7],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5\":[2,0,0,0,5,7],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\":[1,0,0,0,5,6],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6\":[2,0,0,0,5,6],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\":[1,0,0,0,5,2],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39\":[2,0,0,0,5,2],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\":[1,0,0,0,5,4],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be\":[2,0,0,0,5,4],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\":[1,0,0,0,5,5],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce\":[2,0,0,0,5,5],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\":[1,0,0,0,5,0],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8\":[2,0,0,0,5,0],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\":[1,0,0,0,5,10],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529\":[2,0,0,0,5,10],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\":[1,0,0,0,5,11],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8\":[2,0,0,0,5,11],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\":[1,0,0,0,5,9],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303\":[2,0,0,0,5,9],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\":[1,0,0,0,5,1],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67\":[2,0,0,0,5,1],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\":[1,0,0,0,5,8],\n\"interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8\":[2,0,0,0,5,8],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\":[1,0,0,0,6],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html\":[2,0,0,0,6],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\":[1,0,0,0,6,6],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d\":[2,0,0,0,6,6],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\":[1,0,0,0,6,4],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e\":[2,0,0,0,6,4],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\":[1,0,0,0,6,2],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1\":[2,0,0,0,6,2],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\":[1,0,0,0,6,9],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7\":[2,0,0,0,6,9],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\":[1,0,0,0,6,7],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e\":[2,0,0,0,6,7],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\":[1,0,0,0,6,11],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb\":[2,0,0,0,6,11],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\":[1,0,0,0,6,1],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3\":[2,0,0,0,6,1],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\":[1,0,0,0,6,3],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1\":[2,0,0,0,6,3],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\":[1,0,0,0,6,8],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807\":[2,0,0,0,6,8],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\":[1,0,0,0,6,10],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4\":[2,0,0,0,6,10],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\":[1,0,0,0,6,0],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04\":[2,0,0,0,6,0],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\":[1,0,0,0,6,5],\n\"interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3\":[2,0,0,0,6,5],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html\":[1,0,0,0,7]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex5.js",
    "content": "var NAVTREEINDEX5 =\n{\n\"interface_nakama_1_1_console_1_1_i_api_notification.html\":[2,0,0,0,7],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\":[1,0,0,0,7,1],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53\":[2,0,0,0,7,1],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\":[1,0,0,0,7,0],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f\":[2,0,0,0,7,0],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\":[1,0,0,0,7,6],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b\":[2,0,0,0,7,6],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\":[1,0,0,0,7,4],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491\":[2,0,0,0,7,4],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\":[1,0,0,0,7,5],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492\":[2,0,0,0,7,5],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\":[1,0,0,0,7,2],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf\":[2,0,0,0,7,2],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\":[1,0,0,0,7,3],\n\"interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0\":[2,0,0,0,7,3],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\":[1,0,0,0,8],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html\":[2,0,0,0,8],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\":[1,0,0,0,8,6],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92\":[2,0,0,0,8,6],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\":[1,0,0,0,8,1],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb\":[2,0,0,0,8,1],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\":[1,0,0,0,8,0],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998\":[2,0,0,0,8,0],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\":[1,0,0,0,8,4],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af\":[2,0,0,0,8,4],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\":[1,0,0,0,8,7],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba\":[2,0,0,0,8,7],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\":[1,0,0,0,8,8],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a\":[2,0,0,0,8,8],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\":[1,0,0,0,8,2],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995\":[2,0,0,0,8,2],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\":[1,0,0,0,8,3],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d\":[2,0,0,0,8,3],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\":[1,0,0,0,8,5],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7\":[2,0,0,0,8,5],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\":[1,0,0,0,9],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html\":[2,0,0,0,9],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\":[1,0,0,0,9,3],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e\":[2,0,0,0,9,3],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\":[1,0,0,0,9,1],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc\":[2,0,0,0,9,1],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\":[1,0,0,0,9,2],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db\":[2,0,0,0,9,2],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\":[1,0,0,0,9,0],\n\"interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f\":[2,0,0,0,9,0],\n\"interface_nakama_1_1_console_1_1_i_api_user.html\":[1,0,0,0,10],\n\"interface_nakama_1_1_console_1_1_i_api_user.html\":[2,0,0,0,10],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\":[1,0,0,0,10,9],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595\":[2,0,0,0,10,9],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\":[1,0,0,0,10,6],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995\":[2,0,0,0,10,6],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\":[1,0,0,0,10,7],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185\":[2,0,0,0,10,7],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\":[1,0,0,0,10,4],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde\":[2,0,0,0,10,4],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\":[1,0,0,0,10,3],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba\":[2,0,0,0,10,3],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\":[1,0,0,0,10,1],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442\":[2,0,0,0,10,1],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\":[1,0,0,0,10,11],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7\":[2,0,0,0,10,11],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\":[1,0,0,0,10,2],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298\":[2,0,0,0,10,2],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\":[1,0,0,0,10,12],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d\":[2,0,0,0,10,12],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\":[1,0,0,0,10,0],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e\":[2,0,0,0,10,0],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\":[1,0,0,0,10,16],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf\":[2,0,0,0,10,16],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\":[1,0,0,0,10,5],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d\":[2,0,0,0,10,5],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\":[1,0,0,0,10,13],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a\":[2,0,0,0,10,13],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\":[1,0,0,0,10,14],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5\":[2,0,0,0,10,14],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\":[1,0,0,0,10,10],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd\":[2,0,0,0,10,10],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\":[1,0,0,0,10,8],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555\":[2,0,0,0,10,8],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\":[1,0,0,0,10,15],\n\"interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f\":[2,0,0,0,10,15],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\":[1,0,0,0,11],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html\":[2,0,0,0,11],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\":[1,0,0,0,11,0],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933\":[2,0,0,0,11,0],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\":[1,0,0,0,11,1],\n\"interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e\":[2,0,0,0,11,1],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html\":[1,0,0,0,12],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html\":[2,0,0,0,12],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\":[1,0,0,0,12,1],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b\":[2,0,0,0,12,1],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\":[1,0,0,0,12,0],\n\"interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406\":[2,0,0,0,12,0],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html\":[1,0,0,0,13],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html\":[2,0,0,0,13],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\":[1,0,0,0,13,5],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108\":[2,0,0,0,13,5],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\":[1,0,0,0,13,4],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920\":[2,0,0,0,13,4],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\":[1,0,0,0,13,2],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021\":[2,0,0,0,13,2],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\":[1,0,0,0,13,1],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088\":[2,0,0,0,13,1],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\":[1,0,0,0,13,0],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65\":[2,0,0,0,13,0],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\":[1,0,0,0,13,7],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9\":[2,0,0,0,13,7],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\":[1,0,0,0,13,6],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc\":[2,0,0,0,13,6],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\":[1,0,0,0,13,3],\n\"interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856\":[2,0,0,0,13,3],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\":[1,0,0,0,14],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html\":[2,0,0,0,14],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\":[1,0,0,0,14,0],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966\":[2,0,0,0,14,0],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\":[1,0,0,0,14,1],\n\"interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419\":[2,0,0,0,14,1],\n\"interface_nakama_1_1_console_1_1_i_console_config.html\":[1,0,0,0,15],\n\"interface_nakama_1_1_console_1_1_i_console_config.html\":[2,0,0,0,15],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\":[1,0,0,0,15,2],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8\":[2,0,0,0,15,2],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\":[1,0,0,0,15,1],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35\":[2,0,0,0,15,1],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\":[1,0,0,0,15,0],\n\"interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79\":[2,0,0,0,15,0],\n\"interface_nakama_1_1_console_1_1_i_console_console_session.html\":[1,0,0,0,16],\n\"interface_nakama_1_1_console_1_1_i_console_console_session.html\":[2,0,0,0,16],\n\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\":[1,0,0,0,16,0],\n\"interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2\":[2,0,0,0,16,0],\n\"interface_nakama_1_1_console_1_1_i_console_status_list.html\":[1,0,0,0,17],\n\"interface_nakama_1_1_console_1_1_i_console_status_list.html\":[2,0,0,0,17],\n\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\":[1,0,0,0,17,0],\n\"interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d\":[2,0,0,0,17,0],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\":[1,0,0,0,18],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html\":[2,0,0,0,18],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\":[1,0,0,0,18,1],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454\":[2,0,0,0,18,1],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\":[1,0,0,0,18,0],\n\"interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238\":[2,0,0,0,18,0],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\":[1,0,0,0,19],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html\":[2,0,0,0,19],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\":[1,0,0,0,19,1],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7\":[2,0,0,0,19,1],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\":[1,0,0,0,19,0],\n\"interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd\":[2,0,0,0,19,0],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html\":[1,0,0,0,20],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html\":[2,0,0,0,20],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\":[1,0,0,0,20,0],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0\":[2,0,0,0,20,0],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\":[1,0,0,0,20,1],\n\"interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1\":[2,0,0,0,20,1],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\":[1,0,0,0,21],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html\":[2,0,0,0,21],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\":[1,0,0,0,21,4],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02\":[2,0,0,0,21,4],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\":[1,0,0,0,21,5],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c\":[2,0,0,0,21,5],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\":[1,0,0,0,21,0],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8\":[2,0,0,0,21,0],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\":[1,0,0,0,21,2],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174\":[2,0,0,0,21,2],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\":[1,0,0,0,21,3],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124\":[2,0,0,0,21,3],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\":[1,0,0,0,21,1],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c\":[2,0,0,0,21,1],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\":[1,0,0,0,22],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html\":[2,0,0,0,22],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\":[1,0,0,0,22,0],\n\"interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b\":[2,0,0,0,22,0],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\":[1,0,0,0,23],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html\":[2,0,0,0,23],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\":[1,0,0,0,23,5],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b\":[2,0,0,0,23,5],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\":[1,0,0,0,23,4],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f\":[2,0,0,0,23,4],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\":[1,0,0,0,23,3],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0\":[2,0,0,0,23,3],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\":[1,0,0,0,23,1],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2\":[2,0,0,0,23,1],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\":[1,0,0,0,23,6],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad\":[2,0,0,0,23,6],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\":[1,0,0,0,23,2],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee\":[2,0,0,0,23,2],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\":[1,0,0,0,23,0],\n\"interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853\":[2,0,0,0,23,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\":[1,0,0,0,24],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html\":[2,0,0,0,24],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\":[1,0,0,0,24,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad\":[2,0,0,0,24,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\":[1,0,0,0,24,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88\":[2,0,0,0,24,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\":[1,0,0,0,24,5],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603\":[2,0,0,0,24,5],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\":[1,0,0,0,24,2],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593\":[2,0,0,0,24,2],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\":[1,0,0,0,24,4],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021\":[2,0,0,0,24,4],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\":[1,0,0,0,24,3],\n\"interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7\":[2,0,0,0,24,3],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\":[1,0,0,0,25],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html\":[2,0,0,0,25],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\":[1,0,0,0,25,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d\":[2,0,0,0,25,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\":[1,0,0,0,25,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49\":[2,0,0,0,25,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\":[1,0,0,0,26],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html\":[2,0,0,0,26],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\":[1,0,0,0,26,5],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536\":[2,0,0,0,26,5],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\":[1,0,0,0,26,12],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0\":[2,0,0,0,26,12],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\":[1,0,0,0,26,2],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52\":[2,0,0,0,26,2],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\":[1,0,0,0,26,3],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632\":[2,0,0,0,26,3],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\":[1,0,0,0,26,9],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29\":[2,0,0,0,26,9],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\":[1,0,0,0,26,8],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d\":[2,0,0,0,26,8],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\":[1,0,0,0,26,4],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27\":[2,0,0,0,26,4],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\":[1,0,0,0,26,6],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d\":[2,0,0,0,26,6],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\":[1,0,0,0,26,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2\":[2,0,0,0,26,1],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\":[1,0,0,0,26,11],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e\":[2,0,0,0,26,11],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\":[1,0,0,0,26,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e\":[2,0,0,0,26,0],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\":[1,0,0,0,26,7],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058\":[2,0,0,0,26,7],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\":[1,0,0,0,26,10],\n\"interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0\":[2,0,0,0,26,10],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\":[1,0,0,0,27],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html\":[2,0,0,0,27],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\":[1,0,0,0,27,1],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc\":[2,0,0,0,27,1],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\":[1,0,0,0,27,0],\n\"interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a\":[2,0,0,0,27,0],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html\":[1,0,0,0,28],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html\":[2,0,0,0,28],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\":[1,0,0,0,28,3],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60\":[2,0,0,0,28,3],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\":[1,0,0,0,28,1],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af\":[2,0,0,0,28,1],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\":[1,0,0,0,28,2],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08\":[2,0,0,0,28,2],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\":[1,0,0,0,28,0],\n\"interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941\":[2,0,0,0,28,0],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html\":[1,0,0,0,29]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex6.js",
    "content": "var NAVTREEINDEX6 =\n{\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html\":[2,0,0,0,29],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\":[1,0,0,0,29,3],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add\":[2,0,0,0,29,3],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\":[1,0,0,0,29,1],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11\":[2,0,0,0,29,1],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\":[1,0,0,0,29,6],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b\":[2,0,0,0,29,6],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\":[1,0,0,0,29,2],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd\":[2,0,0,0,29,2],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\":[1,0,0,0,29,7],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d\":[2,0,0,0,29,7],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\":[1,0,0,0,29,8],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c\":[2,0,0,0,29,8],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\":[1,0,0,0,29,4],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9\":[2,0,0,0,29,4],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\":[1,0,0,0,29,9],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab\":[2,0,0,0,29,9],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\":[1,0,0,0,29,0],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2\":[2,0,0,0,29,0],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\":[1,0,0,0,29,5],\n\"interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37\":[2,0,0,0,29,5],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\":[1,0,0,0,30],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html\":[2,0,0,0,30],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\":[1,0,0,0,30,1],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007\":[2,0,0,0,30,1],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\":[1,0,0,0,30,0],\n\"interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827\":[2,0,0,0,30,0],\n\"interface_nakama_1_1_i_api_account.html\":[1,0,0,6],\n\"interface_nakama_1_1_i_api_account.html\":[2,0,0,5],\n\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\":[1,0,0,6,0],\n\"interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e\":[2,0,0,5,0],\n\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\":[1,0,0,6,4],\n\"interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f\":[2,0,0,5,4],\n\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\":[1,0,0,6,5],\n\"interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0\":[2,0,0,5,5],\n\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\":[1,0,0,6,6],\n\"interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355\":[2,0,0,5,6],\n\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\":[1,0,0,6,3],\n\"interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb\":[2,0,0,5,3],\n\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\":[1,0,0,6,1],\n\"interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a\":[2,0,0,5,1],\n\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\":[1,0,0,6,2],\n\"interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc\":[2,0,0,5,2],\n\"interface_nakama_1_1_i_api_account_apple.html\":[1,0,0,7],\n\"interface_nakama_1_1_i_api_account_apple.html\":[2,0,0,6],\n\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\":[1,0,0,7,0],\n\"interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5\":[2,0,0,6,0],\n\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\":[1,0,0,7,1],\n\"interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6\":[2,0,0,6,1],\n\"interface_nakama_1_1_i_api_account_custom.html\":[1,0,0,8],\n\"interface_nakama_1_1_i_api_account_custom.html\":[2,0,0,7],\n\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\":[1,0,0,8,1],\n\"interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78\":[2,0,0,7,1],\n\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\":[1,0,0,8,0],\n\"interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262\":[2,0,0,7,0],\n\"interface_nakama_1_1_i_api_account_device.html\":[1,0,0,9],\n\"interface_nakama_1_1_i_api_account_device.html\":[2,0,0,8],\n\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\":[1,0,0,9,1],\n\"interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec\":[2,0,0,8,1],\n\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\":[1,0,0,9,0],\n\"interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74\":[2,0,0,8,0],\n\"interface_nakama_1_1_i_api_account_email.html\":[1,0,0,10],\n\"interface_nakama_1_1_i_api_account_email.html\":[2,0,0,9],\n\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\":[1,0,0,10,1],\n\"interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2\":[2,0,0,9,1],\n\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\":[1,0,0,10,0],\n\"interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09\":[2,0,0,9,0],\n\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\":[1,0,0,10,2],\n\"interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6\":[2,0,0,9,2],\n\"interface_nakama_1_1_i_api_account_facebook.html\":[1,0,0,11],\n\"interface_nakama_1_1_i_api_account_facebook.html\":[2,0,0,10],\n\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\":[1,0,0,11,1],\n\"interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436\":[2,0,0,10,1],\n\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\":[1,0,0,11,0],\n\"interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283\":[2,0,0,10,0],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\":[1,0,0,12],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html\":[2,0,0,11],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\":[1,0,0,12,0],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610\":[2,0,0,11,0],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\":[1,0,0,12,1],\n\"interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802\":[2,0,0,11,1],\n\"interface_nakama_1_1_i_api_account_game_center.html\":[1,0,0,13],\n\"interface_nakama_1_1_i_api_account_game_center.html\":[2,0,0,12],\n\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\":[1,0,0,13,4],\n\"interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6\":[2,0,0,12,4],\n\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\":[1,0,0,13,1],\n\"interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9\":[2,0,0,12,1],\n\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\":[1,0,0,13,5],\n\"interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b\":[2,0,0,12,5],\n\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\":[1,0,0,13,0],\n\"interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b\":[2,0,0,12,0],\n\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\":[1,0,0,13,6],\n\"interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00\":[2,0,0,12,6],\n\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\":[1,0,0,13,2],\n\"interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7\":[2,0,0,12,2],\n\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\":[1,0,0,13,3],\n\"interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222\":[2,0,0,12,3],\n\"interface_nakama_1_1_i_api_account_google.html\":[1,0,0,14],\n\"interface_nakama_1_1_i_api_account_google.html\":[2,0,0,13],\n\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\":[1,0,0,14,0],\n\"interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0\":[2,0,0,13,0],\n\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\":[1,0,0,14,1],\n\"interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d\":[2,0,0,13,1],\n\"interface_nakama_1_1_i_api_account_steam.html\":[1,0,0,15],\n\"interface_nakama_1_1_i_api_account_steam.html\":[2,0,0,14],\n\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\":[1,0,0,15,0],\n\"interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d\":[2,0,0,14,0],\n\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\":[1,0,0,15,1],\n\"interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c\":[2,0,0,14,1],\n\"interface_nakama_1_1_i_api_channel_message.html\":[1,0,0,16],\n\"interface_nakama_1_1_i_api_channel_message.html\":[2,0,0,15],\n\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\":[1,0,0,16,0],\n\"interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96\":[2,0,0,15,0],\n\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\":[1,0,0,16,3],\n\"interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec\":[2,0,0,15,3],\n\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\":[1,0,0,16,10],\n\"interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a\":[2,0,0,15,10],\n\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\":[1,0,0,16,5],\n\"interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6\":[2,0,0,15,5],\n\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\":[1,0,0,16,9],\n\"interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18\":[2,0,0,15,9],\n\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\":[1,0,0,16,1],\n\"interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051\":[2,0,0,15,1],\n\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\":[1,0,0,16,6],\n\"interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800\":[2,0,0,15,6],\n\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\":[1,0,0,16,4],\n\"interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5\":[2,0,0,15,4],\n\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\":[1,0,0,16,2],\n\"interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a\":[2,0,0,15,2],\n\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\":[1,0,0,16,7],\n\"interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06\":[2,0,0,15,7],\n\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\":[1,0,0,16,8],\n\"interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414\":[2,0,0,15,8],\n\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\":[1,0,0,16,12],\n\"interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e\":[2,0,0,15,12],\n\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\":[1,0,0,16,11],\n\"interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9\":[2,0,0,15,11],\n\"interface_nakama_1_1_i_api_channel_message_list.html\":[1,0,0,17],\n\"interface_nakama_1_1_i_api_channel_message_list.html\":[2,0,0,16],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\":[1,0,0,17,1],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e\":[2,0,0,16,1],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\":[1,0,0,17,3],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff\":[2,0,0,16,3],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\":[1,0,0,17,2],\n\"interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4\":[2,0,0,16,2],\n\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\":[1,0,0,17,0],\n\"interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3\":[2,0,0,16,0],\n\"interface_nakama_1_1_i_api_create_group_request.html\":[1,0,0,18],\n\"interface_nakama_1_1_i_api_create_group_request.html\":[2,0,0,17],\n\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\":[1,0,0,18,5],\n\"interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36\":[2,0,0,17,5],\n\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\":[1,0,0,18,4],\n\"interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2\":[2,0,0,17,4],\n\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\":[1,0,0,18,1],\n\"interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2\":[2,0,0,17,1],\n\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\":[1,0,0,18,0],\n\"interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb\":[2,0,0,17,0],\n\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\":[1,0,0,18,2],\n\"interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9\":[2,0,0,17,2],\n\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\":[1,0,0,18,3],\n\"interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de\":[2,0,0,17,3],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html\":[1,0,0,19],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html\":[2,0,0,18],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\":[1,0,0,19,0],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024\":[2,0,0,18,0],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\":[1,0,0,19,1],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a\":[2,0,0,18,1],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\":[1,0,0,19,2],\n\"interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd\":[2,0,0,18,2],\n\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\":[1,0,0,20],\n\"interface_nakama_1_1_i_api_delete_storage_objects_request.html\":[2,0,0,19],\n\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\":[1,0,0,20,0],\n\"interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725\":[2,0,0,19,0],\n\"interface_nakama_1_1_i_api_event.html\":[1,0,0,21],\n\"interface_nakama_1_1_i_api_event.html\":[2,0,0,20],\n\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\":[1,0,0,21,3],\n\"interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf\":[2,0,0,20,3],\n\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\":[1,0,0,21,0],\n\"interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610\":[2,0,0,20,0],\n\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\":[1,0,0,21,1],\n\"interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923\":[2,0,0,20,1],\n\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\":[1,0,0,21,2],\n\"interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4\":[2,0,0,20,2],\n\"interface_nakama_1_1_i_api_friend.html\":[1,0,0,22],\n\"interface_nakama_1_1_i_api_friend.html\":[2,0,0,21],\n\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\":[1,0,0,22,1],\n\"interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b\":[2,0,0,21,1],\n\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\":[1,0,0,22,0],\n\"interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692\":[2,0,0,21,0],\n\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\":[1,0,0,22,3],\n\"interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8\":[2,0,0,21,3],\n\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\":[1,0,0,22,2],\n\"interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909\":[2,0,0,21,2],\n\"interface_nakama_1_1_i_api_friend_list.html\":[1,0,0,23],\n\"interface_nakama_1_1_i_api_friend_list.html\":[2,0,0,22],\n\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\":[1,0,0,23,0],\n\"interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f\":[2,0,0,22,0],\n\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\":[1,0,0,23,1],\n\"interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469\":[2,0,0,22,1],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html\":[1,0,0,24],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html\":[2,0,0,23],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\":[1,0,0,24,1],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39\":[2,0,0,23,1],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\":[1,0,0,24,0],\n\"interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc\":[2,0,0,23,0],\n\"interface_nakama_1_1_i_api_group.html\":[1,0,0,25],\n\"interface_nakama_1_1_i_api_group.html\":[2,0,0,24],\n\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\":[1,0,0,25,8],\n\"interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292\":[2,0,0,24,8],\n\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\":[1,0,0,25,1],\n\"interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671\":[2,0,0,24,1],\n\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\":[1,0,0,25,9],\n\"interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be\":[2,0,0,24,9],\n\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\":[1,0,0,25,6],\n\"interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959\":[2,0,0,24,6],\n\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\":[1,0,0,25,10],\n\"interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2\":[2,0,0,24,10],\n\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\":[1,0,0,25,7],\n\"interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27\":[2,0,0,24,7],\n\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\":[1,0,0,25,0],\n\"interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5\":[2,0,0,24,0],\n\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\":[1,0,0,25,3],\n\"interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62\":[2,0,0,24,3],\n\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\":[1,0,0,25,11],\n\"interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee\":[2,0,0,24,11],\n\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\":[1,0,0,25,2],\n\"interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92\":[2,0,0,24,2],\n\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\":[1,0,0,25,5],\n\"interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d\":[2,0,0,24,5],\n\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\":[1,0,0,25,4],\n\"interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6\":[2,0,0,24,4],\n\"interface_nakama_1_1_i_api_group_list.html\":[1,0,0,26],\n\"interface_nakama_1_1_i_api_group_list.html\":[2,0,0,25],\n\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\":[1,0,0,26,0],\n\"interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f\":[2,0,0,25,0],\n\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\":[1,0,0,26,1],\n\"interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b\":[2,0,0,25,1],\n\"interface_nakama_1_1_i_api_group_user_list.html\":[1,0,0,27],\n\"interface_nakama_1_1_i_api_group_user_list.html\":[2,0,0,26],\n\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\":[1,0,0,27,1],\n\"interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3\":[2,0,0,26,1],\n\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\":[1,0,0,27,0],\n\"interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f\":[2,0,0,26,0],\n\"interface_nakama_1_1_i_api_leaderboard_record.html\":[1,0,0,28],\n\"interface_nakama_1_1_i_api_leaderboard_record.html\":[2,0,0,27],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\":[1,0,0,28,2],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac\":[2,0,0,27,2],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\":[1,0,0,28,1],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1\":[2,0,0,27,1],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\":[1,0,0,28,7]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex7.js",
    "content": "var NAVTREEINDEX7 =\n{\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8\":[2,0,0,27,7],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\":[1,0,0,28,4],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c\":[2,0,0,27,4],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\":[1,0,0,28,8],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7\":[2,0,0,27,8],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\":[1,0,0,28,6],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999\":[2,0,0,27,6],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\":[1,0,0,28,9],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a\":[2,0,0,27,9],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\":[1,0,0,28,11],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966\":[2,0,0,27,11],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\":[1,0,0,28,3],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3\":[2,0,0,27,3],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\":[1,0,0,28,5],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3\":[2,0,0,27,5],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\":[1,0,0,28,0],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972\":[2,0,0,27,0],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\":[1,0,0,28,10],\n\"interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841\":[2,0,0,27,10],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html\":[1,0,0,29],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html\":[2,0,0,28],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\":[1,0,0,29,1],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa\":[2,0,0,28,1],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\":[1,0,0,29,3],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7\":[2,0,0,28,3],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\":[1,0,0,29,2],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880\":[2,0,0,28,2],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\":[1,0,0,29,0],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c\":[2,0,0,28,0],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\":[1,0,0,29,4],\n\"interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0\":[2,0,0,28,4],\n\"interface_nakama_1_1_i_api_link_steam_request.html\":[1,0,0,30],\n\"interface_nakama_1_1_i_api_link_steam_request.html\":[2,0,0,29],\n\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\":[1,0,0,30,1],\n\"interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8\":[2,0,0,29,1],\n\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\":[1,0,0,30,0],\n\"interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258\":[2,0,0,29,0],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html\":[1,0,0,31],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html\":[2,0,0,30],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\":[1,0,0,31,1],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1\":[2,0,0,30,1],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\":[1,0,0,31,0],\n\"interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4\":[2,0,0,30,0],\n\"interface_nakama_1_1_i_api_match.html\":[1,0,0,32],\n\"interface_nakama_1_1_i_api_match.html\":[2,0,0,31],\n\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\":[1,0,0,32,0],\n\"interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357\":[2,0,0,31,0],\n\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\":[1,0,0,32,4],\n\"interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280\":[2,0,0,31,4],\n\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\":[1,0,0,32,2],\n\"interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1\":[2,0,0,31,2],\n\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\":[1,0,0,32,5],\n\"interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529\":[2,0,0,31,5],\n\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\":[1,0,0,32,3],\n\"interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d\":[2,0,0,31,3],\n\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\":[1,0,0,32,1],\n\"interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753\":[2,0,0,31,1],\n\"interface_nakama_1_1_i_api_match_list.html\":[1,0,0,33],\n\"interface_nakama_1_1_i_api_match_list.html\":[2,0,0,32],\n\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\":[1,0,0,33,0],\n\"interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589\":[2,0,0,32,0],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\":[1,0,0,34],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html\":[2,0,0,33],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\":[1,0,0,34,1],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379\":[2,0,0,33,1],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\":[1,0,0,34,0],\n\"interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58\":[2,0,0,33,0],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html\":[1,0,0,35],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html\":[2,0,0,34],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\":[1,0,0,35,1],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6\":[2,0,0,34,1],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\":[1,0,0,35,2],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed\":[2,0,0,34,2],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\":[1,0,0,35,0],\n\"interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5\":[2,0,0,34,0],\n\"interface_nakama_1_1_i_api_notification.html\":[1,0,0,36],\n\"interface_nakama_1_1_i_api_notification.html\":[2,0,0,35],\n\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\":[1,0,0,36,3],\n\"interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab\":[2,0,0,35,3],\n\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\":[1,0,0,36,6],\n\"interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7\":[2,0,0,35,6],\n\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\":[1,0,0,36,0],\n\"interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54\":[2,0,0,35,0],\n\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\":[1,0,0,36,5],\n\"interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a\":[2,0,0,35,5],\n\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\":[1,0,0,36,2],\n\"interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab\":[2,0,0,35,2],\n\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\":[1,0,0,36,1],\n\"interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d\":[2,0,0,35,1],\n\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\":[1,0,0,36,4],\n\"interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a\":[2,0,0,35,4],\n\"interface_nakama_1_1_i_api_notification_list.html\":[1,0,0,37],\n\"interface_nakama_1_1_i_api_notification_list.html\":[2,0,0,36],\n\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\":[1,0,0,37,0],\n\"interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d\":[2,0,0,36,0],\n\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\":[1,0,0,37,1],\n\"interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72\":[2,0,0,36,1],\n\"interface_nakama_1_1_i_api_party.html\":[1,0,0,38],\n\"interface_nakama_1_1_i_api_party.html\":[2,0,0,37],\n\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\":[1,0,0,38,2],\n\"interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95\":[2,0,0,37,2],\n\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\":[1,0,0,38,3],\n\"interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5\":[2,0,0,37,3],\n\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\":[1,0,0,38,0],\n\"interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94\":[2,0,0,37,0],\n\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\":[1,0,0,38,1],\n\"interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc\":[2,0,0,37,1],\n\"interface_nakama_1_1_i_api_party_list.html\":[1,0,0,39],\n\"interface_nakama_1_1_i_api_party_list.html\":[2,0,0,38],\n\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\":[1,0,0,39,0],\n\"interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001\":[2,0,0,38,0],\n\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\":[1,0,0,39,1],\n\"interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a\":[2,0,0,38,1],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html\":[1,0,0,40],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html\":[2,0,0,39],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\":[1,0,0,40,2],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9\":[2,0,0,39,2],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\":[1,0,0,40,0],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362\":[2,0,0,39,0],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\":[1,0,0,40,1],\n\"interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c\":[2,0,0,39,1],\n\"interface_nakama_1_1_i_api_read_storage_objects_request.html\":[1,0,0,41],\n\"interface_nakama_1_1_i_api_read_storage_objects_request.html\":[2,0,0,40],\n\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\":[1,0,0,41,0],\n\"interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849\":[2,0,0,40,0],\n\"interface_nakama_1_1_i_api_rpc.html\":[1,0,0,42],\n\"interface_nakama_1_1_i_api_rpc.html\":[2,0,0,41],\n\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\":[1,0,0,42,2],\n\"interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246\":[2,0,0,41,2],\n\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\":[1,0,0,42,0],\n\"interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129\":[2,0,0,41,0],\n\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\":[1,0,0,42,1],\n\"interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274\":[2,0,0,41,1],\n\"interface_nakama_1_1_i_api_session.html\":[1,0,0,43],\n\"interface_nakama_1_1_i_api_session.html\":[2,0,0,42],\n\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\":[1,0,0,43,1],\n\"interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3\":[2,0,0,42,1],\n\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\":[1,0,0,43,0],\n\"interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce\":[2,0,0,42,0],\n\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\":[1,0,0,43,2],\n\"interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511\":[2,0,0,42,2],\n\"interface_nakama_1_1_i_api_session_logout_request.html\":[1,0,0,44],\n\"interface_nakama_1_1_i_api_session_logout_request.html\":[2,0,0,43],\n\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\":[1,0,0,44,1],\n\"interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61\":[2,0,0,43,1],\n\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\":[1,0,0,44,0],\n\"interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2\":[2,0,0,43,0],\n\"interface_nakama_1_1_i_api_session_refresh_request.html\":[1,0,0,45],\n\"interface_nakama_1_1_i_api_session_refresh_request.html\":[2,0,0,44],\n\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\":[1,0,0,45,1],\n\"interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369\":[2,0,0,44,1],\n\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\":[1,0,0,45,0],\n\"interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5\":[2,0,0,44,0],\n\"interface_nakama_1_1_i_api_storage_object.html\":[1,0,0,46],\n\"interface_nakama_1_1_i_api_storage_object.html\":[2,0,0,45],\n\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\":[1,0,0,46,4],\n\"interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef\":[2,0,0,45,4],\n\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\":[1,0,0,46,8],\n\"interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023\":[2,0,0,45,8],\n\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\":[1,0,0,46,6],\n\"interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390\":[2,0,0,45,6],\n\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\":[1,0,0,46,5],\n\"interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc\":[2,0,0,45,5],\n\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\":[1,0,0,46,7],\n\"interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8\":[2,0,0,45,7],\n\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\":[1,0,0,46,1],\n\"interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d\":[2,0,0,45,1],\n\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\":[1,0,0,46,0],\n\"interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc\":[2,0,0,45,0],\n\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\":[1,0,0,46,2],\n\"interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d\":[2,0,0,45,2],\n\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\":[1,0,0,46,3],\n\"interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d\":[2,0,0,45,3],\n\"interface_nakama_1_1_i_api_storage_object_ack.html\":[1,0,0,47],\n\"interface_nakama_1_1_i_api_storage_object_ack.html\":[2,0,0,46],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\":[1,0,0,47,3],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac\":[2,0,0,46,3],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\":[1,0,0,47,0],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826\":[2,0,0,46,0],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\":[1,0,0,47,2],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f\":[2,0,0,46,2],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\":[1,0,0,47,5],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f\":[2,0,0,46,5],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\":[1,0,0,47,4],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d\":[2,0,0,46,4],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\":[1,0,0,47,1],\n\"interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317\":[2,0,0,46,1],\n\"interface_nakama_1_1_i_api_storage_object_acks.html\":[1,0,0,48],\n\"interface_nakama_1_1_i_api_storage_object_acks.html\":[2,0,0,47],\n\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\":[1,0,0,48,0],\n\"interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456\":[2,0,0,47,0],\n\"interface_nakama_1_1_i_api_storage_object_list.html\":[1,0,0,49],\n\"interface_nakama_1_1_i_api_storage_object_list.html\":[2,0,0,48],\n\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\":[1,0,0,49,1],\n\"interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4\":[2,0,0,48,1],\n\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\":[1,0,0,49,0],\n\"interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca\":[2,0,0,48,0],\n\"interface_nakama_1_1_i_api_storage_objects.html\":[1,0,0,50],\n\"interface_nakama_1_1_i_api_storage_objects.html\":[2,0,0,49],\n\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\":[1,0,0,50,0],\n\"interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06\":[2,0,0,49,0],\n\"interface_nakama_1_1_i_api_subscription_list.html\":[1,0,0,51],\n\"interface_nakama_1_1_i_api_subscription_list.html\":[2,0,0,50],\n\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\":[1,0,0,51,0],\n\"interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41\":[2,0,0,50,0],\n\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\":[1,0,0,51,1],\n\"interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276\":[2,0,0,50,1],\n\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\":[1,0,0,51,2],\n\"interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906\":[2,0,0,50,2],\n\"interface_nakama_1_1_i_api_tournament.html\":[1,0,0,52],\n\"interface_nakama_1_1_i_api_tournament.html\":[2,0,0,51],\n\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\":[1,0,0,52,18],\n\"interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda\":[2,0,0,51,18],\n\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\":[1,0,0,52,19],\n\"interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41\":[2,0,0,51,19],\n\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\":[1,0,0,52,6],\n\"interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06\":[2,0,0,51,6],\n\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\":[1,0,0,52,15],\n\"interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7\":[2,0,0,51,15],\n\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\":[1,0,0,52,7],\n\"interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee\":[2,0,0,51,7],\n\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\":[1,0,0,52,3],\n\"interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671\":[2,0,0,51,3],\n\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\":[1,0,0,52,10],\n\"interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9\":[2,0,0,51,10],\n\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\":[1,0,0,52,9],\n\"interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7\":[2,0,0,51,9],\n\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\":[1,0,0,52,8],\n\"interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57\":[2,0,0,51,8],\n\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\":[1,0,0,52,11],\n\"interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7\":[2,0,0,51,11],\n\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\":[1,0,0,52,0],\n\"interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665\":[2,0,0,51,0],\n\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\":[1,0,0,52,5],\n\"interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748\":[2,0,0,51,5],\n\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\":[1,0,0,52,12],\n\"interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1\":[2,0,0,51,12],\n\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\":[1,0,0,52,4],\n\"interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356\":[2,0,0,51,4],\n\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\":[1,0,0,52,14],\n\"interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb\":[2,0,0,51,14],\n\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\":[1,0,0,52,1],\n\"interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630\":[2,0,0,51,1],\n\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\":[1,0,0,52,13],\n\"interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef\":[2,0,0,51,13],\n\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\":[1,0,0,52,16],\n\"interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf\":[2,0,0,51,16],\n\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\":[1,0,0,52,17],\n\"interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf\":[2,0,0,51,17],\n\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\":[1,0,0,52,2]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex8.js",
    "content": "var NAVTREEINDEX8 =\n{\n\"interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803\":[2,0,0,51,2],\n\"interface_nakama_1_1_i_api_tournament_list.html\":[1,0,0,53],\n\"interface_nakama_1_1_i_api_tournament_list.html\":[2,0,0,52],\n\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\":[1,0,0,53,0],\n\"interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241\":[2,0,0,52,0],\n\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\":[1,0,0,53,1],\n\"interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3\":[2,0,0,52,1],\n\"interface_nakama_1_1_i_api_tournament_record_list.html\":[1,0,0,54],\n\"interface_nakama_1_1_i_api_tournament_record_list.html\":[2,0,0,53],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\":[1,0,0,54,0],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0\":[2,0,0,53,0],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\":[1,0,0,54,4],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d\":[2,0,0,53,4],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\":[1,0,0,54,1],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe\":[2,0,0,53,1],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\":[1,0,0,54,2],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8\":[2,0,0,53,2],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\":[1,0,0,54,3],\n\"interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16\":[2,0,0,53,3],\n\"interface_nakama_1_1_i_api_update_account_request.html\":[1,0,0,55],\n\"interface_nakama_1_1_i_api_update_account_request.html\":[2,0,0,54],\n\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\":[1,0,0,55,5],\n\"interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d\":[2,0,0,54,5],\n\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\":[1,0,0,55,3],\n\"interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708\":[2,0,0,54,3],\n\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\":[1,0,0,55,2],\n\"interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445\":[2,0,0,54,2],\n\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\":[1,0,0,55,0],\n\"interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63\":[2,0,0,54,0],\n\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\":[1,0,0,55,1],\n\"interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904\":[2,0,0,54,1],\n\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\":[1,0,0,55,4],\n\"interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665\":[2,0,0,54,4],\n\"interface_nakama_1_1_i_api_update_group_request.html\":[1,0,0,56],\n\"interface_nakama_1_1_i_api_update_group_request.html\":[2,0,0,55],\n\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\":[1,0,0,56,3],\n\"interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660\":[2,0,0,55,3],\n\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\":[1,0,0,56,0],\n\"interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7\":[2,0,0,55,0],\n\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\":[1,0,0,56,4],\n\"interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262\":[2,0,0,55,4],\n\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\":[1,0,0,56,2],\n\"interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d\":[2,0,0,55,2],\n\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\":[1,0,0,56,1],\n\"interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab\":[2,0,0,55,1],\n\"interface_nakama_1_1_i_api_user.html\":[1,0,0,57],\n\"interface_nakama_1_1_i_api_user.html\":[2,0,0,56],\n\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\":[1,0,0,57,7],\n\"interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd\":[2,0,0,56,7],\n\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\":[1,0,0,57,17],\n\"interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266\":[2,0,0,56,17],\n\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\":[1,0,0,57,10],\n\"interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3\":[2,0,0,56,10],\n\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\":[1,0,0,57,9],\n\"interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05\":[2,0,0,56,9],\n\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\":[1,0,0,57,12],\n\"interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4\":[2,0,0,56,12],\n\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\":[1,0,0,57,14],\n\"interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9\":[2,0,0,56,14],\n\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\":[1,0,0,57,2],\n\"interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35\":[2,0,0,56,2],\n\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\":[1,0,0,57,6],\n\"interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f\":[2,0,0,56,6],\n\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\":[1,0,0,57,4],\n\"interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a\":[2,0,0,56,4],\n\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\":[1,0,0,57,16],\n\"interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd\":[2,0,0,56,16],\n\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\":[1,0,0,57,8],\n\"interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6\":[2,0,0,56,8],\n\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\":[1,0,0,57,0],\n\"interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c\":[2,0,0,56,0],\n\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\":[1,0,0,57,3],\n\"interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554\":[2,0,0,56,3],\n\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\":[1,0,0,57,13],\n\"interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623\":[2,0,0,56,13],\n\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\":[1,0,0,57,11],\n\"interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40\":[2,0,0,56,11],\n\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\":[1,0,0,57,15],\n\"interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5\":[2,0,0,56,15],\n\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\":[1,0,0,57,1],\n\"interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57\":[2,0,0,56,1],\n\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\":[1,0,0,57,5],\n\"interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194\":[2,0,0,56,5],\n\"interface_nakama_1_1_i_api_user_group_list.html\":[1,0,0,58],\n\"interface_nakama_1_1_i_api_user_group_list.html\":[2,0,0,57],\n\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\":[1,0,0,58,1],\n\"interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201\":[2,0,0,57,1],\n\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\":[1,0,0,58,0],\n\"interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de\":[2,0,0,57,0],\n\"interface_nakama_1_1_i_api_users.html\":[1,0,0,59],\n\"interface_nakama_1_1_i_api_users.html\":[2,0,0,58],\n\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\":[1,0,0,59,0],\n\"interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e\":[2,0,0,58,0],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\":[1,0,0,62],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html\":[2,0,0,61],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\":[1,0,0,62,0],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274\":[2,0,0,61,0],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\":[1,0,0,62,1],\n\"interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6\":[2,0,0,61,1],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\":[1,0,0,63],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html\":[2,0,0,62],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\":[1,0,0,63,0],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766\":[2,0,0,62,0],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\":[1,0,0,63,1],\n\"interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e\":[2,0,0,62,1],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\":[1,0,0,64],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html\":[2,0,0,63],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\":[1,0,0,64,0],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97\":[2,0,0,63,0],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\":[1,0,0,64,1],\n\"interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437\":[2,0,0,63,1],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\":[1,0,0,65],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html\":[2,0,0,64],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\":[1,0,0,65,0],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a\":[2,0,0,64,0],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\":[1,0,0,65,2],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489\":[2,0,0,64,2],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\":[1,0,0,65,1],\n\"interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670\":[2,0,0,64,1],\n\"interface_nakama_1_1_i_api_validate_purchase_response.html\":[1,0,0,66],\n\"interface_nakama_1_1_i_api_validate_purchase_response.html\":[2,0,0,65],\n\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\":[1,0,0,66,0],\n\"interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3\":[2,0,0,65,0],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\":[1,0,0,67],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html\":[2,0,0,66],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\":[1,0,0,67,0],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779\":[2,0,0,66,0],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\":[1,0,0,67,1],\n\"interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9\":[2,0,0,66,1],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\":[1,0,0,68],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html\":[2,0,0,67],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\":[1,0,0,68,0],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602\":[2,0,0,67,0],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\":[1,0,0,68,1],\n\"interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc\":[2,0,0,67,1],\n\"interface_nakama_1_1_i_api_validate_subscription_response.html\":[1,0,0,69],\n\"interface_nakama_1_1_i_api_validate_subscription_response.html\":[2,0,0,68],\n\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\":[1,0,0,69,0],\n\"interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1\":[2,0,0,68,0],\n\"interface_nakama_1_1_i_api_validated_purchase.html\":[1,0,0,60],\n\"interface_nakama_1_1_i_api_validated_purchase.html\":[2,0,0,59],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\":[1,0,0,60,3],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d\":[2,0,0,59,3],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\":[1,0,0,60,1],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33\":[2,0,0,59,1],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\":[1,0,0,60,8],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427\":[2,0,0,59,8],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\":[1,0,0,60,5],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf\":[2,0,0,59,5],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\":[1,0,0,60,7],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1\":[2,0,0,59,7],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\":[1,0,0,60,2],\n\"interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810\":[2,0,0,59,2],\n\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\":[1,0,0,60,10],\n\"interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5\":[2,0,0,59,10],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\":[1,0,0,60,0],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5\":[2,0,0,59,0],\n\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\":[1,0,0,60,4],\n\"interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395\":[2,0,0,59,4],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\":[1,0,0,60,6],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4\":[2,0,0,59,6],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\":[1,0,0,60,9],\n\"interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f\":[2,0,0,59,9],\n\"interface_nakama_1_1_i_api_validated_subscription.html\":[1,0,0,61],\n\"interface_nakama_1_1_i_api_validated_subscription.html\":[2,0,0,60],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\":[1,0,0,61,10],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24\":[2,0,0,60,10],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\":[1,0,0,61,3],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73\":[2,0,0,60,3],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\":[1,0,0,61,8],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f\":[2,0,0,60,8],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\":[1,0,0,61,6],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e\":[2,0,0,60,6],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\":[1,0,0,61,5],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb\":[2,0,0,60,5],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\":[1,0,0,61,1],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6\":[2,0,0,60,1],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\":[1,0,0,61,11],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695\":[2,0,0,60,11],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\":[1,0,0,61,12],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249\":[2,0,0,60,12],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\":[1,0,0,61,9],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29\":[2,0,0,60,9],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\":[1,0,0,61,7],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c\":[2,0,0,60,7],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\":[1,0,0,61,2],\n\"interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3\":[2,0,0,60,2],\n\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\":[1,0,0,61,0],\n\"interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013\":[2,0,0,60,0],\n\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\":[1,0,0,61,4],\n\"interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a\":[2,0,0,60,4],\n\"interface_nakama_1_1_i_api_write_storage_object.html\":[1,0,0,70],\n\"interface_nakama_1_1_i_api_write_storage_object.html\":[2,0,0,69],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\":[1,0,0,70,1],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757\":[2,0,0,69,1],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\":[1,0,0,70,3],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad\":[2,0,0,69,3],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\":[1,0,0,70,2],\n\"interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14\":[2,0,0,69,2],\n\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\":[1,0,0,70,5],\n\"interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068\":[2,0,0,69,5],\n\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\":[1,0,0,70,0],\n\"interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521\":[2,0,0,69,0],\n\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\":[1,0,0,70,4],\n\"interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5\":[2,0,0,69,4],\n\"interface_nakama_1_1_i_api_write_storage_objects_request.html\":[1,0,0,71],\n\"interface_nakama_1_1_i_api_write_storage_objects_request.html\":[2,0,0,70],\n\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\":[1,0,0,71,0],\n\"interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2\":[2,0,0,70,0],\n\"interface_nakama_1_1_i_channel.html\":[1,0,0,72],\n\"interface_nakama_1_1_i_channel.html\":[2,0,0,71],\n\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\":[1,0,0,72,3],\n\"interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc\":[2,0,0,71,3],\n\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\":[1,0,0,72,2],\n\"interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db\":[2,0,0,71,2],\n\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\":[1,0,0,72,1],\n\"interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5\":[2,0,0,71,1],\n\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\":[1,0,0,72,6],\n\"interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8\":[2,0,0,71,6],\n\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\":[1,0,0,72,0],\n\"interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312\":[2,0,0,71,0],\n\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\":[1,0,0,72,5],\n\"interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8\":[2,0,0,71,5],\n\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\":[1,0,0,72,4],\n\"interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f\":[2,0,0,71,4],\n\"interface_nakama_1_1_i_channel_message_ack.html\":[1,0,0,73],\n\"interface_nakama_1_1_i_channel_message_ack.html\":[2,0,0,72],\n\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\":[1,0,0,73,8],\n\"interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4\":[2,0,0,72,8],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\":[1,0,0,73,6],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa\":[2,0,0,72,6],\n\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\":[1,0,0,73,10],\n\"interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517\":[2,0,0,72,10],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\":[1,0,0,73,3],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf\":[2,0,0,72,3],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\":[1,0,0,73,5],\n\"interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd\":[2,0,0,72,5],\n\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\":[1,0,0,73,4],\n\"interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671\":[2,0,0,72,4],\n\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\":[1,0,0,73,7],\n\"interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3\":[2,0,0,72,7],\n\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\":[1,0,0,73,1],\n\"interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f\":[2,0,0,72,1],\n\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\":[1,0,0,73,9],\n\"interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1\":[2,0,0,72,9],\n\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\":[1,0,0,73,2],\n\"interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029\":[2,0,0,72,2],\n\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\":[1,0,0,73,0],\n\"interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c\":[2,0,0,72,0],\n\"interface_nakama_1_1_i_channel_presence_event.html\":[1,0,0,74]\n};\n"
  },
  {
    "path": "docs/html/navtreeindex9.js",
    "content": "var NAVTREEINDEX9 =\n{\n\"interface_nakama_1_1_i_channel_presence_event.html\":[2,0,0,73],\n\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\":[1,0,0,74,5],\n\"interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd\":[2,0,0,73,5],\n\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\":[1,0,0,74,3],\n\"interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4\":[2,0,0,73,3],\n\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\":[1,0,0,74,2],\n\"interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29\":[2,0,0,73,2],\n\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\":[1,0,0,74,0],\n\"interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29\":[2,0,0,73,0],\n\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\":[1,0,0,74,1],\n\"interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000\":[2,0,0,73,1],\n\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\":[1,0,0,74,6],\n\"interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e\":[2,0,0,73,6],\n\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\":[1,0,0,74,4],\n\"interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873\":[2,0,0,73,4],\n\"interface_nakama_1_1_i_client.html\":[1,0,0,75],\n\"interface_nakama_1_1_i_client.html\":[2,0,0,74],\n\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\":[1,0,0,75,80],\n\"interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3\":[2,0,0,74,80],\n\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\":[1,0,0,75,19],\n\"interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8\":[2,0,0,74,19],\n\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\":[1,0,0,75,74],\n\"interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d\":[2,0,0,74,74],\n\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\":[1,0,0,75,49],\n\"interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc\":[2,0,0,74,49],\n\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\":[1,0,0,75,85],\n\"interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a\":[2,0,0,74,85],\n\"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\":[1,0,0,75,40],\n\"interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac\":[2,0,0,74,40],\n\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\":[1,0,0,75,3],\n\"interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0\":[2,0,0,74,3],\n\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\":[1,0,0,75,20],\n\"interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb\":[2,0,0,74,20],\n\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\":[1,0,0,75,36],\n\"interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4\":[2,0,0,74,36],\n\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\":[1,0,0,75,76],\n\"interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176\":[2,0,0,74,76],\n\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\":[1,0,0,75,59],\n\"interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc\":[2,0,0,74,59],\n\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\":[1,0,0,75,5],\n\"interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b\":[2,0,0,74,5],\n\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\":[1,0,0,75,55],\n\"interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe\":[2,0,0,74,55],\n\"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\":[1,0,0,75,62],\n\"interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a\":[2,0,0,74,62],\n\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\":[1,0,0,75,22],\n\"interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e\":[2,0,0,74,22],\n\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\":[1,0,0,75,61],\n\"interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8\":[2,0,0,74,61],\n\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\":[1,0,0,75,52],\n\"interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3\":[2,0,0,74,52],\n\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\":[1,0,0,75,68],\n\"interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae\":[2,0,0,74,68],\n\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\":[1,0,0,75,9],\n\"interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c\":[2,0,0,74,9],\n\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\":[1,0,0,75,48],\n\"interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b\":[2,0,0,74,48],\n\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\":[1,0,0,75,18],\n\"interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a\":[2,0,0,74,18],\n\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\":[1,0,0,75,89],\n\"interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d\":[2,0,0,74,89],\n\"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\":[1,0,0,75,60],\n\"interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab\":[2,0,0,74,60],\n\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\":[1,0,0,75,77],\n\"interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286\":[2,0,0,74,77],\n\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\":[1,0,0,75,51],\n\"interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37\":[2,0,0,74,51],\n\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\":[1,0,0,75,37],\n\"interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf\":[2,0,0,74,37],\n\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\":[1,0,0,75,54],\n\"interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617\":[2,0,0,74,54],\n\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\":[1,0,0,75,78],\n\"interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035\":[2,0,0,74,78],\n\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\":[1,0,0,75,67],\n\"interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e\":[2,0,0,74,67],\n\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\":[1,0,0,75,69],\n\"interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc\":[2,0,0,74,69],\n\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\":[1,0,0,75,79],\n\"interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985\":[2,0,0,74,79],\n\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\":[1,0,0,75,21],\n\"interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682\":[2,0,0,74,21],\n\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\":[1,0,0,75,91],\n\"interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340\":[2,0,0,74,91],\n\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\":[1,0,0,75,11],\n\"interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378\":[2,0,0,74,11],\n\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\":[1,0,0,75,86],\n\"interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8\":[2,0,0,74,86],\n\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\":[1,0,0,75,27],\n\"interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0\":[2,0,0,74,27],\n\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\":[1,0,0,75,44],\n\"interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8\":[2,0,0,74,44],\n\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\":[1,0,0,75,35],\n\"interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c\":[2,0,0,74,35],\n\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\":[1,0,0,75,92],\n\"interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23\":[2,0,0,74,92],\n\"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\":[1,0,0,75,65],\n\"interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc\":[2,0,0,74,65],\n\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\":[1,0,0,75,14],\n\"interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1\":[2,0,0,74,14],\n\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\":[1,0,0,75,58],\n\"interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b\":[2,0,0,74,58],\n\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\":[1,0,0,75,83],\n\"interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1\":[2,0,0,74,83],\n\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\":[1,0,0,75,28],\n\"interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65\":[2,0,0,74,28],\n\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\":[1,0,0,75,23],\n\"interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e\":[2,0,0,74,23],\n\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\":[1,0,0,75,24],\n\"interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2\":[2,0,0,74,24],\n\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\":[1,0,0,75,72],\n\"interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c\":[2,0,0,74,72],\n\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\":[1,0,0,75,26],\n\"interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214\":[2,0,0,74,26],\n\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\":[1,0,0,75,15],\n\"interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005\":[2,0,0,74,15],\n\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\":[1,0,0,75,45],\n\"interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87\":[2,0,0,74,45],\n\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\":[1,0,0,75,71],\n\"interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e\":[2,0,0,74,71],\n\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\":[1,0,0,75,42],\n\"interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc\":[2,0,0,74,42],\n\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\":[1,0,0,75,88],\n\"interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8\":[2,0,0,74,88],\n\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\":[1,0,0,75,6],\n\"interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d\":[2,0,0,74,6],\n\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\":[1,0,0,75,47],\n\"interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1\":[2,0,0,74,47],\n\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\":[1,0,0,75,70],\n\"interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1\":[2,0,0,74,70],\n\"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\":[1,0,0,75,63],\n\"interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538\":[2,0,0,74,63],\n\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\":[1,0,0,75,75],\n\"interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f\":[2,0,0,74,75],\n\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\":[1,0,0,75,94],\n\"interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b\":[2,0,0,74,94],\n\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\":[1,0,0,75,8],\n\"interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16\":[2,0,0,74,8],\n\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\":[1,0,0,75,38],\n\"interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0\":[2,0,0,74,38],\n\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\":[1,0,0,75,93],\n\"interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af\":[2,0,0,74,93],\n\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\":[1,0,0,75,12],\n\"interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee\":[2,0,0,74,12],\n\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\":[1,0,0,75,0],\n\"interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23\":[2,0,0,74,0],\n\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\":[1,0,0,75,32],\n\"interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18\":[2,0,0,74,32],\n\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\":[1,0,0,75,7],\n\"interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233\":[2,0,0,74,7],\n\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\":[1,0,0,75,10],\n\"interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2\":[2,0,0,74,10],\n\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\":[1,0,0,75,81],\n\"interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90\":[2,0,0,74,81],\n\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\":[1,0,0,75,82],\n\"interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9\":[2,0,0,74,82],\n\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\":[1,0,0,75,30],\n\"interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa\":[2,0,0,74,30],\n\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\":[1,0,0,75,1],\n\"interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3\":[2,0,0,74,1],\n\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\":[1,0,0,75,64],\n\"interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93\":[2,0,0,74,64],\n\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\":[1,0,0,75,53],\n\"interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc\":[2,0,0,74,53],\n\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\":[1,0,0,75,43],\n\"interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351\":[2,0,0,74,43],\n\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\":[1,0,0,75,39],\n\"interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440\":[2,0,0,74,39],\n\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\":[1,0,0,75,13],\n\"interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613\":[2,0,0,74,13],\n\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\":[1,0,0,75,33],\n\"interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c\":[2,0,0,74,33],\n\"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\":[1,0,0,75,56],\n\"interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6\":[2,0,0,74,56],\n\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\":[1,0,0,75,90],\n\"interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26\":[2,0,0,74,90],\n\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\":[1,0,0,75,25],\n\"interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233\":[2,0,0,74,25],\n\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\":[1,0,0,75,87],\n\"interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa\":[2,0,0,74,87],\n\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\":[1,0,0,75,4],\n\"interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3\":[2,0,0,74,4],\n\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\":[1,0,0,75,17],\n\"interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb\":[2,0,0,74,17],\n\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\":[1,0,0,75,84],\n\"interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935\":[2,0,0,74,84],\n\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\":[1,0,0,75,29],\n\"interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829\":[2,0,0,74,29],\n\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\":[1,0,0,75,16],\n\"interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3\":[2,0,0,74,16],\n\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\":[1,0,0,75,34],\n\"interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63\":[2,0,0,74,34],\n\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\":[1,0,0,75,57],\n\"interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9\":[2,0,0,74,57],\n\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\":[1,0,0,75,73],\n\"interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7\":[2,0,0,74,73],\n\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\":[1,0,0,75,31],\n\"interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef\":[2,0,0,74,31],\n\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\":[1,0,0,75,41],\n\"interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8\":[2,0,0,74,41],\n\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\":[1,0,0,75,46],\n\"interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c\":[2,0,0,74,46],\n\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\":[1,0,0,75,2],\n\"interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220\":[2,0,0,74,2],\n\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\":[1,0,0,75,66],\n\"interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b\":[2,0,0,74,66],\n\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\":[1,0,0,75,50],\n\"interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046\":[2,0,0,74,50],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\":[1,0,0,76],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html\":[2,0,0,75],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\":[1,0,0,76,0],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3\":[2,0,0,75,0],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\":[1,0,0,76,1],\n\"interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10\":[2,0,0,75,1],\n\"interface_nakama_1_1_i_group_user_list_group_user.html\":[1,0,0,77],\n\"interface_nakama_1_1_i_group_user_list_group_user.html\":[2,0,0,76],\n\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\":[1,0,0,77,0],\n\"interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9\":[2,0,0,76,0],\n\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\":[1,0,0,77,1],\n\"interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1\":[2,0,0,76,1],\n\"interface_nakama_1_1_i_http_adapter.html\":[1,0,0,78],\n\"interface_nakama_1_1_i_http_adapter.html\":[2,0,0,77],\n\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\":[1,0,0,78,2],\n\"interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8\":[2,0,0,77,2],\n\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\":[1,0,0,78,1],\n\"interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e\":[2,0,0,77,1],\n\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\":[1,0,0,78,0],\n\"interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53\":[2,0,0,77,0],\n\"interface_nakama_1_1_i_logger.html\":[1,0,0,79],\n\"interface_nakama_1_1_i_logger.html\":[2,0,0,78],\n\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\":[1,0,0,79,2],\n\"interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901\":[2,0,0,78,2],\n\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\":[1,0,0,79,1],\n\"interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8\":[2,0,0,78,1],\n\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\":[1,0,0,79,0],\n\"interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091\":[2,0,0,78,0],\n\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\":[1,0,0,79,3],\n\"interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3\":[2,0,0,78,3],\n\"interface_nakama_1_1_i_match.html\":[1,0,0,80],\n\"interface_nakama_1_1_i_match.html\":[2,0,0,79],\n\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\":[1,0,0,80,5],\n\"interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f\":[2,0,0,79,5],\n\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\":[1,0,0,80,4],\n\"interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e\":[2,0,0,79,4],\n\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\":[1,0,0,80,2],\n\"interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb\":[2,0,0,79,2],\n\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\":[1,0,0,80,0],\n\"interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1\":[2,0,0,79,0],\n\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\":[1,0,0,80,6],\n\"interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5\":[2,0,0,79,6],\n\"interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b\":[1,0,0,80,1]\n};\n"
  },
  {
    "path": "docs/html/net46_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('net46_2_nakama_8_assembly_info_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46/Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_dbdb02b1c6a463d71690e5d1f101f3be.html\">net46</a></li><li class=\"navelem\"><a class=\"el\" href=\"net46_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/net46_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('net46_2_satori_8_assembly_info_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">net46/Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_2024f50217af71df819eb31c540cc957.html\">net46</a></li><li class=\"navelem\"><a class=\"el\" href=\"net46_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/netstandard2_80_2_nakama_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Nakama.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('netstandard2_80_2_nakama_8_assembly_info_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0/Nakama.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_64302e4ed8e680c5e7832e1b7ea09baa.html\">Nakama</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_87bdc2ec3fb2fe36f0442c7b9fa8c83c.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_2c78f4ea1566149e6f1239d9a2bbc92d.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_c0ea682cca75c87761dacf1668992820.html\">netstandard2.0</a></li><li class=\"navelem\"><a class=\"el\" href=\"netstandard2_80_2_nakama_8_assembly_info_8cs.html\">Nakama.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/netstandard2_80_2_satori_8_assembly_info_8cs.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.7\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client SDK: Satori.AssemblyInfo.cs File Reference</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"resize.js\"></script>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.png\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client SDK<span id=\"projectnumber\">&#160;3.8.0</span>\n   </div>\n   <div id=\"projectbrief\">Nakama .NET Client SDK</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.9.7 -->\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n/* @license-end */\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(function() {\n  initMenu('',true,false,'search.php','Search');\n  $(document).ready(function() { init_search(); });\n});\n/* @license-end */\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\n$(document).ready(function(){initNavTree('netstandard2_80_2_satori_8_assembly_info_8cs.html',''); initResizable(); });\n/* @license-end */\n</script>\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">netstandard2.0/Satori.AssemblyInfo.cs File Reference</div></div>\n</div><!--header-->\n<div class=\"contents\">\n</div><!-- contents -->\n</div><!-- doc-content -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"navelem\"><a class=\"el\" href=\"dir_ba769f4416b2c074a28c6130af43e345.html\">Satori</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_0a71ed179ba9d4357fa1a0aa4e188f77.html\">obj</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_c7fa37d54586c2d4e1bdb0bf9742bd86.html\">Debug</a></li><li class=\"navelem\"><a class=\"el\" href=\"dir_5eb17383be0272b71916d4988c97ae3c.html\">netstandard2.0</a></li><li class=\"navelem\"><a class=\"el\" href=\"netstandard2_80_2_satori_8_assembly_info_8cs.html\">Satori.AssemblyInfo.cs</a></li>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.9.7 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/pages.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en-US\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=11\"/>\n<meta name=\"generator\" content=\"Doxygen 1.14.0\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<title>Nakama .NET Client: Related Pages</title>\n<link href=\"tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"jquery.js\"></script>\n<script type=\"text/javascript\" src=\"dynsections.js\"></script>\n<script type=\"text/javascript\" src=\"clipboard.js\"></script>\n<link href=\"navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"navtreedata.js\"></script>\n<script type=\"text/javascript\" src=\"navtree.js\"></script>\n<script type=\"text/javascript\" src=\"cookie.js\"></script>\n<link href=\"search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n<script type=\"text/javascript\" src=\"search/searchdata.js\"></script>\n<script type=\"text/javascript\" src=\"search/search.js\"></script>\n<link href=\"doxygen.css\" rel=\"stylesheet\" type=\"text/css\" />\n</head>\n<body>\n<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n<div id=\"titlearea\">\n<table cellspacing=\"0\" cellpadding=\"0\">\n <tbody>\n <tr id=\"projectrow\">\n  <td id=\"projectlogo\"><img alt=\"Logo\" src=\"nakama_logo.svg\"/></td>\n  <td id=\"projectalign\">\n   <div id=\"projectname\">Nakama .NET Client<span id=\"projectnumber\">&#160;3.17.0</span>\n   </div>\n   <div id=\"projectbrief\">The official Nakama and Satori .NET client.</div>\n  </td>\n </tr>\n </tbody>\n</table>\n</div>\n<!-- end header part -->\n<!-- Generated by Doxygen 1.14.0 -->\n<script type=\"text/javascript\">\nvar searchBox = new SearchBox(\"searchBox\", \"search/\",'.html');\n</script>\n<script type=\"text/javascript\">\n$(function() { codefold.init(); });\n</script>\n<script type=\"text/javascript\" src=\"menudata.js\"></script>\n<script type=\"text/javascript\" src=\"menu.js\"></script>\n<script type=\"text/javascript\">\n$(function() {\n  initMenu('',true,false,'search.php','Search',true);\n  $(function() { init_search(); });\n});\n</script>\n<div id=\"main-nav\"></div>\n</div><!-- top -->\n<div id=\"side-nav\" class=\"ui-resizable side-nav-resizable\">\n  <div id=\"nav-tree\">\n    <div id=\"nav-tree-contents\">\n      <div id=\"nav-sync\" class=\"sync\"></div>\n    </div>\n  </div>\n  <div id=\"splitbar\" style=\"-moz-user-select:none;\" \n       class=\"ui-resizable-handle\">\n  </div>\n</div>\n<script type=\"text/javascript\">\n$(function(){initNavTree('pages.html','',''); });\n</script>\n<div id=\"container\">\n<div id=\"doc-content\">\n<!-- window showing the filter options -->\n<div id=\"MSearchSelectWindow\"\n     onmouseover=\"return searchBox.OnSearchSelectShow()\"\n     onmouseout=\"return searchBox.OnSearchSelectHide()\"\n     onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n</div>\n\n<!-- iframe showing the search results (closed by default) -->\n<div id=\"MSearchResultsWindow\">\n<div id=\"MSearchResults\">\n<div class=\"SRPage\">\n<div id=\"SRIndex\">\n<div id=\"SRResults\"></div>\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</div>\n</div>\n</div>\n\n<div class=\"header\">\n  <div class=\"headertitle\"><div class=\"title\">Related Pages</div></div>\n</div><!--header-->\n<div class=\"contents\">\n<div class=\"textblock\">Here is a list of all related documentation pages:</div><div class=\"directory\">\n<table class=\"directory\">\n<tr id=\"row_0_\" class=\"even\"><td class=\"entry\"><span style=\"width:16px;display:inline-block;\">&#160;</span><a class=\"el\" href=\"md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html\" target=\"_self\">Changelog</a></td><td class=\"desc\"></td></tr>\n</table>\n</div><!-- directory -->\n</div><!-- contents -->\n</div><!-- doc-content -->\n</div><!-- container -->\n<!-- start footer part -->\n<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n  <ul>\n    <li class=\"footer\">Generated by <a href=\"https://www.doxygen.org/index.html\"><img class=\"footer\" src=\"doxygen.svg\" width=\"104\" height=\"31\" alt=\"doxygen\"/></a> 1.14.0 </li>\n  </ul>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/resize.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n */\n\nfunction initResizable(treeview) {\n  let sidenav,navtree,content,header,footer,barWidth=6;\n  const RESIZE_COOKIE_NAME = ''+'width';\n\n  function resizeWidth() {\n    const sidenavWidth = $(sidenav).outerWidth();\n    content.css({marginLeft:parseInt(sidenavWidth)+\"px\"});\n    if (typeof page_layout!=='undefined' && page_layout==1) {\n      footer.css({marginLeft:parseInt(sidenavWidth)+\"px\"});\n    }\n    Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth);\n  }\n\n  function restoreWidth(navWidth) {\n    content.css({marginLeft:parseInt(navWidth)+barWidth+\"px\"});\n    if (typeof page_layout!=='undefined' && page_layout==1) {\n      footer.css({marginLeft:parseInt(navWidth)+barWidth+\"px\"});\n    }\n    sidenav.css({width:navWidth + \"px\"});\n  }\n\n  function resizeHeight(treeview) {\n    const headerHeight = header.outerHeight();\n    const windowHeight = $(window).height();\n    let contentHeight;\n    if (treeview)\n    {\n      const footerHeight = footer.outerHeight();\n      let navtreeHeight,sideNavHeight;\n      if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */\n        contentHeight = windowHeight - headerHeight - footerHeight;\n        navtreeHeight = contentHeight;\n        sideNavHeight = contentHeight;\n      } else if (page_layout==1) { /* DISABLE_INDEX=YES */\n        contentHeight = windowHeight - footerHeight;\n        navtreeHeight = windowHeight - headerHeight;\n        sideNavHeight = windowHeight;\n      }\n      navtree.css({height:navtreeHeight + \"px\"});\n      sidenav.css({height:sideNavHeight + \"px\"});\n    }\n    else\n    {\n      contentHeight = windowHeight - headerHeight;\n    }\n    content.css({height:contentHeight + \"px\"});\n    if (location.hash.slice(1)) {\n      (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();\n    }\n  }\n\n  function collapseExpand() {\n    let newWidth;\n    if (sidenav.width()>0) {\n      newWidth=0;\n    } else {\n      const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);\n      newWidth = (width>250 && width<$(window).width()) ? width : 250;\n    }\n    restoreWidth(newWidth);\n    const sidenavWidth = $(sidenav).outerWidth();\n    Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth);\n  }\n\n  header  = $(\"#top\");\n  content = $(\"#doc-content\");\n  footer  = $(\"#nav-path\");\n  sidenav = $(\"#side-nav\");\n  if (!treeview) {\n//    title   = $(\"#titlearea\");\n//    titleH  = $(title).height();\n//    let animating = false;\n//    content.on(\"scroll\", function() {\n//      slideOpts = { duration: 200,\n//                    step: function() {\n//                        contentHeight = $(window).height() - header.outerHeight();\n//                        content.css({ height : contentHeight + \"px\" });\n//                      },\n//                    done: function() { animating=false; }\n//                  };\n//      if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) {\n//        title.slideUp(slideOpts);\n//        animating=true;\n//      } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) {\n//        title.slideDown(slideOpts);\n//        animating=true;\n//      }\n//    });\n  } else {\n    navtree = $(\"#nav-tree\");\n    $(\".side-nav-resizable\").resizable({resize: function(e, ui) { resizeWidth(); } });\n    $(sidenav).resizable({ minWidth: 0 });\n  }\n  $(window).resize(function() { resizeHeight(treeview); });\n  if (treeview)\n  {\n    const device = navigator.userAgent.toLowerCase();\n    const touch_device = device.match(/(iphone|ipod|ipad|android)/);\n    if (touch_device) { /* wider split bar for touch only devices */\n      $(sidenav).css({ paddingRight:'20px' });\n      $('.ui-resizable-e').css({ width:'20px' });\n      $('#nav-sync').css({ right:'34px' });\n      barWidth=20;\n    }\n    const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250);\n    if (width) { restoreWidth(width); } else { resizeWidth(); }\n  }\n  resizeHeight(treeview);\n  const url = location.href;\n  const i=url.indexOf(\"#\");\n  if (i>=0) window.location.hash=url.substr(i);\n  const _preventDefault = function(evt) { evt.preventDefault(); };\n  if (treeview)\n  {\n    $(\"#splitbar\").bind(\"dragstart\", _preventDefault).bind(\"selectstart\", _preventDefault);\n    $(\".ui-resizable-handle\").dblclick(collapseExpand);\n    // workaround for firefox\n    $(\"body\").css({overflow: \"hidden\"});\n  }\n  $(window).on('load',function() { resizeHeight(treeview); });\n}\n/* @license-end */\n"
  },
  {
    "path": "docs/html/search/all_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_0.js",
    "content": "var searchData=\n[\n  ['acceptpartymemberasync_0',['AcceptPartyMemberAsync',['../interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51',1,'Nakama.ISocket.AcceptPartyMemberAsync()'],['../class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a',1,'Nakama.Socket.AcceptPartyMemberAsync()']]],\n  ['acceptwebsocketasync_1',['AcceptWebSocketAsync',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))']]],\n  ['account_2',['Account',['../interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258',1,'Nakama.IApiLinkSteamRequest.Account'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65',1,'Nakama.Console.IConsoleAccountExport.Account'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d',1,'Nakama.Console.INakamaconsoleAccount.Account']]],\n  ['acks_3',['Acks',['../interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456',1,'Nakama::IApiStorageObjectAcks']]],\n  ['active_4',['Active',['../interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013',1,'Nakama::IApiValidatedSubscription']]],\n  ['activeendtimesec_5',['ActiveEndTimeSec',['../interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5',1,'Satori::IApiLiveEvent']]],\n  ['activestarttimesec_6',['ActiveStartTimeSec',['../interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50',1,'Satori::IApiLiveEvent']]],\n  ['addfriendsasync_7',['AddFriendsAsync',['../class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0',1,'Nakama.Client.AddFriendsAsync()'],['../interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23',1,'Nakama.IClient.AddFriendsAsync()']]],\n  ['addgroupusersasync_8',['AddGroupUsersAsync',['../class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155',1,'Nakama.Client.AddGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3',1,'Nakama.IClient.AddGroupUsersAsync()']]],\n  ['additionalhttpheaders_9',['AdditionalHttpHeaders',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['addmatchmakerasync_10',['AddMatchmakerAsync',['../interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96',1,'Nakama.ISocket.AddMatchmakerAsync()'],['../class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848',1,'Nakama.Socket.AddMatchmakerAsync()']]],\n  ['addmatchmakerpartyasync_11',['AddMatchmakerPartyAsync',['../interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5',1,'Nakama.ISocket.AddMatchmakerPartyAsync()'],['../class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de',1,'Nakama.Socket.AddMatchmakerPartyAsync()']]],\n  ['apiflagoverridetype_12',['ApiFlagOverrideType',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d',1,'Satori']]],\n  ['apikey_13',['ApiKey',['../class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35',1,'Satori.Client.ApiKey'],['../interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd',1,'Satori.IClient.ApiKey']]],\n  ['apioperator_14',['ApiOperator',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7',1,'Nakama']]],\n  ['apiresponseexception_15',['ApiResponseException',['../class_nakama_1_1_api_response_exception.html',1,'Nakama.ApiResponseException'],['../class_nakama_1_1_console_1_1_api_response_exception.html',1,'Nakama.Console.ApiResponseException'],['../class_satori_1_1_api_response_exception.html',1,'Satori.ApiResponseException'],['../class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928',1,'Nakama.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8',1,'Nakama.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1',1,'Nakama.ApiResponseException.ApiResponseException(string content)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767',1,'Nakama.Console.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a',1,'Nakama.Console.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19',1,'Nakama.Console.ApiResponseException.ApiResponseException(string content)'],['../class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936',1,'Satori.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926',1,'Satori.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df',1,'Satori.ApiResponseException.ApiResponseException(string content)']]],\n  ['apistoreenvironment_16',['ApiStoreEnvironment',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6',1,'Nakama']]],\n  ['apistoreprovider_17',['ApiStoreProvider',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49',1,'Nakama']]],\n  ['apple_5fapp_5fstore_18',['APPLE_APP_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf',1,'Nakama']]],\n  ['appleid_19',['AppleId',['../interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c',1,'Nakama::IApiUser']]],\n  ['authenticateappleasync_20',['AuthenticateAppleAsync',['../class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35',1,'Nakama.Client.AuthenticateAppleAsync()'],['../interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220',1,'Nakama.IClient.AuthenticateAppleAsync()']]],\n  ['authenticateasync_21',['AuthenticateAsync',['../class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57',1,'Satori.Client.AuthenticateAsync()'],['../interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b',1,'Satori.IClient.AuthenticateAsync()']]],\n  ['authenticatecustomasync_22',['AuthenticateCustomAsync',['../class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d',1,'Nakama.Client.AuthenticateCustomAsync()'],['../interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0',1,'Nakama.IClient.AuthenticateCustomAsync()']]],\n  ['authenticatedeviceasync_23',['AuthenticateDeviceAsync',['../class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe',1,'Nakama.Client.AuthenticateDeviceAsync()'],['../interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3',1,'Nakama.IClient.AuthenticateDeviceAsync()']]],\n  ['authenticateemailasync_24',['AuthenticateEmailAsync',['../class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6',1,'Nakama.Client.AuthenticateEmailAsync()'],['../interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b',1,'Nakama.IClient.AuthenticateEmailAsync()']]],\n  ['authenticatefacebookasync_25',['AuthenticateFacebookAsync',['../class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499',1,'Nakama.Client.AuthenticateFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d',1,'Nakama.IClient.AuthenticateFacebookAsync()']]],\n  ['authenticategamecenterasync_26',['AuthenticateGameCenterAsync',['../class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f',1,'Nakama.Client.AuthenticateGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233',1,'Nakama.IClient.AuthenticateGameCenterAsync()']]],\n  ['authenticategoogleasync_27',['AuthenticateGoogleAsync',['../class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00',1,'Nakama.Client.AuthenticateGoogleAsync()'],['../interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16',1,'Nakama.IClient.AuthenticateGoogleAsync()']]],\n  ['authenticatelogoutasync_28',['AuthenticateLogoutAsync',['../class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02',1,'Satori.Client.AuthenticateLogoutAsync()'],['../interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238',1,'Satori.IClient.AuthenticateLogoutAsync()']]],\n  ['authenticatesteamasync_29',['AuthenticateSteamAsync',['../class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899',1,'Nakama.Client.AuthenticateSteamAsync()'],['../interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c',1,'Nakama.IClient.AuthenticateSteamAsync()']]],\n  ['authoritative_30',['Authoritative',['../interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357',1,'Nakama.IApiMatch.Authoritative'],['../interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665',1,'Nakama.IApiTournament.Authoritative'],['../interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b',1,'Nakama.IMatch.Authoritative']]],\n  ['authtoken_31',['AuthToken',['../interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91',1,'Nakama.ISession.AuthToken'],['../class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf',1,'Nakama.Session.AuthToken'],['../interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba',1,'Satori.ISession.AuthToken'],['../class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf',1,'Satori.Session.AuthToken']]],\n  ['autorefreshsession_32',['AutoRefreshSession',['../class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610',1,'Nakama.Client.AutoRefreshSession'],['../interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8',1,'Nakama.IClient.AutoRefreshSession'],['../class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a',1,'Satori.Client.AutoRefreshSession'],['../interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39',1,'Satori.IClient.AutoRefreshSession']]],\n  ['avatarurl_33',['AvatarUrl',['../interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7',1,'Nakama.IApiUpdateGroupRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb',1,'Nakama.IApiCreateGroupRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5',1,'Nakama.IApiGroup.AvatarUrl'],['../interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63',1,'Nakama.IApiUpdateAccountRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57',1,'Nakama.IApiUser.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8',1,'Nakama.Console.IApiGroup.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e',1,'Nakama.Console.IApiUser.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.AvatarUrl']]],\n  ['avginputkbs_34',['AvgInputKbs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2',1,'Nakama::Console::IStatusListStatus']]],\n  ['avglatencyms_35',['AvgLatencyMs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11',1,'Nakama::Console::IStatusListStatus']]],\n  ['avgoutputkbs_36',['AvgOutputKbs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd',1,'Nakama::Console::IStatusListStatus']]],\n  ['avgratesec_37',['AvgRateSec',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add',1,'Nakama::Console::IStatusListStatus']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_1.js",
    "content": "var searchData=\n[\n  ['bangroupusersasync_0',['BanGroupUsersAsync',['../class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1',1,'Nakama.Client.BanGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2',1,'Nakama.IClient.BanGroupUsersAsync()']]],\n  ['basedelayms_1',['BaseDelayMs',['../class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75',1,'Nakama.RetryConfiguration.BaseDelayMs'],['../class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78',1,'Satori.RetryConfiguration.BaseDelayMs']]],\n  ['beginread_2',['BeginRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['beginwrite_3',['BeginWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['best_4',['BEST',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6',1,'Nakama']]],\n  ['binaryreaderwriter_2ecs_5',['BinaryReaderWriter.cs',['../_binary_reader_writer_8cs.html',1,'']]],\n  ['blockfriendsasync_6',['BlockFriendsAsync',['../class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a',1,'Nakama.Client.BlockFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378',1,'Nakama.IClient.BlockFriendsAsync()']]],\n  ['bufferpool_7',['BufferPool',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html',1,'Nakama.Ninja.WebSockets.BufferPool'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4',1,'Nakama.Ninja.WebSockets.BufferPool.BufferPool()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc',1,'Nakama.Ninja.WebSockets.BufferPool.BufferPool(int bufferSize)']]],\n  ['bufferpool_2ecs_8',['BufferPool.cs',['../_buffer_pool_8cs.html',1,'']]],\n  ['bundleid_9',['BundleId',['../interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b',1,'Nakama::IApiAccountGameCenter']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_10.js",
    "content": "var searchData=\n[\n  ['rank_0',['Rank',['../interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8',1,'Nakama.IApiLeaderboardRecord.Rank'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e',1,'Nakama.Console.IApiLeaderboardRecord.Rank']]],\n  ['rankcount_1',['RankCount',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7',1,'Nakama.IApiLeaderboardRecordList.RankCount'],['../interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16',1,'Nakama.IApiTournamentRecordList.RankCount']]],\n  ['read_2',['Read',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readasync_3',['ReadAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readbyte_4',['ReadByte',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readhttpheaderasync_5',['ReadHttpHeaderAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['readhttpheaderfromstreamasync_6',['ReadHttpHeaderFromStreamAsync',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.ReadHttpHeaderFromStreamAsync()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.ReadHttpHeaderFromStreamAsync()']]],\n  ['readhttpresponsecode_7',['ReadHttpResponseCode',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['readme_2emd_8',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],\n  ['readstorageobjectsasync_9',['ReadStorageObjectsAsync',['../class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715',1,'Nakama.Client.ReadStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc',1,'Nakama.IClient.ReadStorageObjectsAsync()']]],\n  ['readtime_10',['ReadTime',['../interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970',1,'Satori.IApiUpdateMessageRequest.ReadTime'],['../interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770',1,'Satori.IApiMessage.ReadTime']]],\n  ['readtimeout_11',['ReadTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['receipt_12',['Receipt',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6',1,'Nakama.IApiValidatePurchaseAppleRequest.Receipt'],['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9',1,'Nakama.IApiValidateSubscriptionAppleRequest.Receipt'],['../interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc',1,'Nakama.IApiValidateSubscriptionGoogleRequest.Receipt']]],\n  ['received_13',['Received',['../interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008',1,'Nakama.ISocketAdapter.Received'],['../class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76',1,'Nakama.WebSocketAdapter.Received'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845',1,'Nakama.WebSocketStdlibAdapter.Received']]],\n  ['receivedchannelmessage_14',['ReceivedChannelMessage',['../interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680',1,'Nakama.ISocket.ReceivedChannelMessage'],['../class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d',1,'Nakama.Socket.ReceivedChannelMessage']]],\n  ['receivedchannelpresence_15',['ReceivedChannelPresence',['../interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700',1,'Nakama.ISocket.ReceivedChannelPresence'],['../class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436',1,'Nakama.Socket.ReceivedChannelPresence']]],\n  ['receivederror_16',['ReceivedError',['../interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86',1,'Nakama.ISocket.ReceivedError'],['../interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6',1,'Nakama.ISocketAdapter.ReceivedError'],['../class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b',1,'Nakama.Socket.ReceivedError'],['../class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5',1,'Nakama.WebSocketAdapter.ReceivedError'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed',1,'Nakama.WebSocketStdlibAdapter.ReceivedError']]],\n  ['receivedmatchmakermatched_17',['ReceivedMatchmakerMatched',['../interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834',1,'Nakama.ISocket.ReceivedMatchmakerMatched'],['../class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53',1,'Nakama.Socket.ReceivedMatchmakerMatched']]],\n  ['receivedmatchpresence_18',['ReceivedMatchPresence',['../interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b',1,'Nakama.ISocket.ReceivedMatchPresence'],['../class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138',1,'Nakama.Socket.ReceivedMatchPresence']]],\n  ['receivedmatchstate_19',['ReceivedMatchState',['../interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2',1,'Nakama.ISocket.ReceivedMatchState'],['../class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8',1,'Nakama.Socket.ReceivedMatchState']]],\n  ['receivednotification_20',['ReceivedNotification',['../interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c',1,'Nakama.ISocket.ReceivedNotification'],['../class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a',1,'Nakama.Socket.ReceivedNotification']]],\n  ['receivedparty_21',['ReceivedParty',['../interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c',1,'Nakama.ISocket.ReceivedParty'],['../class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b',1,'Nakama.Socket.ReceivedParty']]],\n  ['receivedpartyclose_22',['ReceivedPartyClose',['../interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3',1,'Nakama.ISocket.ReceivedPartyClose'],['../class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db',1,'Nakama.Socket.ReceivedPartyClose']]],\n  ['receivedpartydata_23',['ReceivedPartyData',['../interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a',1,'Nakama.ISocket.ReceivedPartyData'],['../class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05',1,'Nakama.Socket.ReceivedPartyData']]],\n  ['receivedpartyjoinrequest_24',['ReceivedPartyJoinRequest',['../interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3',1,'Nakama.ISocket.ReceivedPartyJoinRequest'],['../class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6',1,'Nakama.Socket.ReceivedPartyJoinRequest']]],\n  ['receivedpartyleader_25',['ReceivedPartyLeader',['../interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3',1,'Nakama.ISocket.ReceivedPartyLeader'],['../class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53',1,'Nakama.Socket.ReceivedPartyLeader']]],\n  ['receivedpartymatchmakerticket_26',['ReceivedPartyMatchmakerTicket',['../interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7',1,'Nakama.ISocket.ReceivedPartyMatchmakerTicket'],['../class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e',1,'Nakama.Socket.ReceivedPartyMatchmakerTicket']]],\n  ['receivedpartypresence_27',['ReceivedPartyPresence',['../interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d',1,'Nakama.ISocket.ReceivedPartyPresence'],['../class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10',1,'Nakama.Socket.ReceivedPartyPresence']]],\n  ['receivedpartyupdate_28',['ReceivedPartyUpdate',['../interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00',1,'Nakama.ISocket.ReceivedPartyUpdate'],['../class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f',1,'Nakama.Socket.ReceivedPartyUpdate']]],\n  ['receivedsessionupdated_29',['ReceivedSessionUpdated',['../class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217',1,'Nakama.Client.ReceivedSessionUpdated'],['../interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b',1,'Nakama.IClient.ReceivedSessionUpdated'],['../class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9',1,'Satori.Client.ReceivedSessionUpdated'],['../interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b',1,'Satori.IClient.ReceivedSessionUpdated']]],\n  ['receivedstatuspresence_30',['ReceivedStatusPresence',['../interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce',1,'Nakama.ISocket.ReceivedStatusPresence'],['../class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579',1,'Nakama.Socket.ReceivedStatusPresence']]],\n  ['receivedstreampresence_31',['ReceivedStreamPresence',['../interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a',1,'Nakama.ISocket.ReceivedStreamPresence'],['../class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53',1,'Nakama.Socket.ReceivedStreamPresence']]],\n  ['receivedstreamstate_32',['ReceivedStreamState',['../interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb',1,'Nakama.ISocket.ReceivedStreamState'],['../class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8',1,'Nakama.Socket.ReceivedStreamState']]],\n  ['recompute_33',['Recompute',['../interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d',1,'Satori::IApiUpdatePropertiesRequest']]],\n  ['records_34',['Records',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0',1,'Nakama.IApiLeaderboardRecordList.Records'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d',1,'Nakama.IApiTournamentRecordList.Records']]],\n  ['referrer_35',['Referrer',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3',1,'Nakama::IFriendsOfFriendsListFriendOfFriend']]],\n  ['refreshexpiretime_36',['RefreshExpireTime',['../interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f',1,'Nakama.ISession.RefreshExpireTime'],['../class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002',1,'Nakama.Session.RefreshExpireTime'],['../interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571',1,'Satori.ISession.RefreshExpireTime'],['../class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e',1,'Satori.Session.RefreshExpireTime']]],\n  ['refreshtoken_37',['RefreshToken',['../interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3',1,'Nakama.IApiSession.RefreshToken'],['../interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2',1,'Nakama.IApiSessionLogoutRequest.RefreshToken'],['../interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31',1,'Nakama.ISession.RefreshToken'],['../class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0',1,'Nakama.Session.RefreshToken'],['../interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65',1,'Satori.IApiAuthenticateLogoutRequest.RefreshToken'],['../interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1',1,'Satori.IApiAuthenticateRefreshRequest.RefreshToken'],['../interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91',1,'Satori.IApiSession.RefreshToken'],['../interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf',1,'Satori.ISession.RefreshToken'],['../class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122',1,'Satori.Session.RefreshToken']]],\n  ['refundtime_38',['RefundTime',['../interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf',1,'Nakama.IApiValidatedPurchase.RefundTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29',1,'Nakama.IApiValidatedSubscription.RefundTime']]],\n  ['release_2fnet46_2fnakama_2eassemblyinfo_2ecs_39',['Nakama.AssemblyInfo.cs',['../_release_2net46_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnet46_2fsatori_2eassemblyinfo_2ecs_40',['Satori.AssemblyInfo.cs',['../_release_2net46_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e0_2fnakama_2eassemblyinfo_2ecs_41',['Nakama.AssemblyInfo.cs',['../_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e0_2fsatori_2eassemblyinfo_2ecs_42',['Satori.AssemblyInfo.cs',['../_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e1_2fnakama_2eassemblyinfo_2ecs_43',['Nakama.AssemblyInfo.cs',['../_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e1_2fsatori_2eassemblyinfo_2ecs_44',['Satori.AssemblyInfo.cs',['../_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['removechatmessageasync_45',['RemoveChatMessageAsync',['../interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607',1,'Nakama.ISocket.RemoveChatMessageAsync(IChannel channel, string messageId)'],['../interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2',1,'Nakama.ISocket.RemoveChatMessageAsync(string channelId, string messageId)'],['../class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf',1,'Nakama.Socket.RemoveChatMessageAsync(IChannel channel, string messageId)'],['../class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e',1,'Nakama.Socket.RemoveChatMessageAsync(string channelId, string messageId)']]],\n  ['removematchmakerasync_46',['RemoveMatchmakerAsync',['../interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47',1,'Nakama.ISocket.RemoveMatchmakerAsync(IMatchmakerTicket ticket)'],['../interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae',1,'Nakama.ISocket.RemoveMatchmakerAsync(string ticket)'],['../class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827',1,'Nakama.Socket.RemoveMatchmakerAsync(IMatchmakerTicket ticket)'],['../class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72',1,'Nakama.Socket.RemoveMatchmakerAsync(string ticket)']]],\n  ['removematchmakerpartyasync_47',['RemoveMatchmakerPartyAsync',['../interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c',1,'Nakama.ISocket.RemoveMatchmakerPartyAsync()'],['../class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3',1,'Nakama.Socket.RemoveMatchmakerPartyAsync()']]],\n  ['removepartymemberasync_48',['RemovePartyMemberAsync',['../interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503',1,'Nakama.ISocket.RemovePartyMemberAsync()'],['../class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1',1,'Nakama.Socket.RemovePartyMemberAsync()']]],\n  ['resetcron_49',['ResetCron',['../interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd',1,'Satori::IApiLiveEvent']]],\n  ['responsecode_50',['ResponseCode',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['responsedetails_51',['ResponseDetails',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['responseheader_52',['ResponseHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['restore_53',['Restore',['../class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582',1,'Nakama.Session.Restore()'],['../class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed',1,'Satori.Session.Restore()']]],\n  ['retry_54',['Retry',['../class_nakama_1_1_retry.html',1,'Nakama.Retry'],['../class_satori_1_1_retry.html',1,'Satori.Retry']]],\n  ['retryconfiguration_55',['RetryConfiguration',['../class_nakama_1_1_retry_configuration.html',1,'Nakama.RetryConfiguration'],['../class_satori_1_1_retry_configuration.html',1,'Satori.RetryConfiguration'],['../class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries)'],['../class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener)'],['../class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)'],['../class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries)'],['../class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener)'],['../class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)']]],\n  ['retrylistener_56',['RetryListener',['../class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe',1,'Nakama.RetryConfiguration.RetryListener'],['../class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a',1,'Satori.RetryConfiguration.RetryListener'],['../namespace_nakama.html#a54689fcf19366a415851641cb61947d4',1,'Nakama.RetryListener()'],['../namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099',1,'Satori.RetryListener()']]],\n  ['returnbuffer_57',['ReturnBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574',1,'Nakama::Ninja::WebSockets::BufferPool']]],\n  ['room_58',['Room',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f',1,'Nakama']]],\n  ['roomname_59',['RoomName',['../interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06',1,'Nakama.IApiChannelMessage.RoomName'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83',1,'Nakama.Console.IApiChannelMessage.RoomName'],['../interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc',1,'Nakama.IChannel.RoomName'],['../interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa',1,'Nakama.IChannelMessageAck.RoomName'],['../interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873',1,'Nakama.IChannelPresenceEvent.RoomName']]],\n  ['rpcasync_60',['RpcAsync',['../class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d',1,'Nakama.Client.RpcAsync(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1',1,'Nakama.Client.RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416',1,'Nakama.Client.RpcAsync(string httpkey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de',1,'Nakama.Client.RpcAsync(string httpkey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8',1,'Nakama.IClient.RpcAsync(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab',1,'Nakama.IClient.RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538',1,'Nakama.IClient.RpcAsync(string httpKey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a',1,'Nakama.IClient.RpcAsync(string httpKey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6',1,'Nakama.ISocket.RpcAsync(string funcId, string payload=null)'],['../interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a',1,'Nakama.ISocket.RpcAsync(string funcId, ArraySegment&lt; byte &gt; payload)'],['../class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f',1,'Nakama.Socket.RpcAsync(string funcId, string payload=null)'],['../class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80',1,'Nakama.Socket.RpcAsync(string funcId, ArraySegment&lt; byte &gt; payload)']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_11.js",
    "content": "var searchData=\n[\n  ['salt_0',['Salt',['../interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222',1,'Nakama::IApiAccountGameCenter']]],\n  ['sandbox_1',['SANDBOX',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8',1,'Nakama']]],\n  ['satori_2',['Satori',['../namespace_satori.html',1,'']]],\n  ['satori_2fapiclient_2egen_2ecs_3',['ApiClient.gen.cs',['../_satori_2_api_client_8gen_8cs.html',1,'']]],\n  ['satori_2fclient_2ecs_4',['Client.cs',['../_satori_2_client_8cs.html',1,'']]],\n  ['satori_2fgziphttpclienthandler_2ecs_5',['GZipHttpClientHandler.cs',['../_satori_2_g_zip_http_client_handler_8cs.html',1,'']]],\n  ['satori_2fhttprequestadapter_2ecs_6',['HttpRequestAdapter.cs',['../_satori_2_http_request_adapter_8cs.html',1,'']]],\n  ['satori_2ficlient_2ecs_7',['IClient.cs',['../_satori_2_i_client_8cs.html',1,'']]],\n  ['satori_2fihttpadapter_2ecs_8',['IHttpAdapter.cs',['../_satori_2_i_http_adapter_8cs.html',1,'']]],\n  ['satori_2fihttpadapterutil_2ecs_9',['IHttpAdapterUtil.cs',['../_satori_2_i_http_adapter_util_8cs.html',1,'']]],\n  ['satori_2filogger_2ecs_10',['ILogger.cs',['../_satori_2_i_logger_8cs.html',1,'']]],\n  ['satori_2fisession_2ecs_11',['ISession.cs',['../_satori_2_i_session_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_12',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_13',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_14',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_15',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_16',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_17',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fpreserveattribute_2ecs_18',['PreserveAttribute.cs',['../_satori_2_preserve_attribute_8cs.html',1,'']]],\n  ['satori_2fretry_2ecs_19',['Retry.cs',['../_satori_2_retry_8cs.html',1,'']]],\n  ['satori_2fretryconfiguration_2ecs_20',['RetryConfiguration.cs',['../_satori_2_retry_configuration_8cs.html',1,'']]],\n  ['satori_2fretryhistory_2ecs_21',['RetryHistory.cs',['../_satori_2_retry_history_8cs.html',1,'']]],\n  ['satori_2fretryinvoker_2ecs_22',['RetryInvoker.cs',['../_satori_2_retry_invoker_8cs.html',1,'']]],\n  ['satori_2fretryjitter_2ecs_23',['RetryJitter.cs',['../_satori_2_retry_jitter_8cs.html',1,'']]],\n  ['satori_2fretrylistener_2ecs_24',['RetryListener.cs',['../_satori_2_retry_listener_8cs.html',1,'']]],\n  ['satori_2fsession_2ecs_25',['Session.cs',['../_satori_2_session_8cs.html',1,'']]],\n  ['satori_2ftinyjson_2fjsonparser_2ecs_26',['JsonParser.cs',['../_satori_2_tiny_json_2_json_parser_8cs.html',1,'']]],\n  ['satori_2ftinyjson_2fjsonwriter_2ecs_27',['JsonWriter.cs',['../_satori_2_tiny_json_2_json_writer_8cs.html',1,'']]],\n  ['satori_2ftransientexceptiondelegate_2ecs_28',['TransientExceptionDelegate.cs',['../_satori_2_transient_exception_delegate_8cs.html',1,'']]],\n  ['satori_3a_3atinyjson_29',['TinyJson',['../namespace_satori_1_1_tiny_json.html',1,'Satori']]],\n  ['scheduleid_30',['ScheduleId',['../interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927',1,'Satori::IApiMessage']]],\n  ['scheme_31',['Scheme',['../class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455',1,'Nakama.Client.Scheme'],['../interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340',1,'Nakama.IClient.Scheme'],['../class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858',1,'Satori.Client.Scheme'],['../interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109',1,'Satori.IClient.Scheme']]],\n  ['score_32',['Score',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Score'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Score'],['../interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7',1,'Nakama.IApiLeaderboardRecord.Score'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807',1,'Nakama.Console.IApiLeaderboardRecord.Score']]],\n  ['secwebsocketextensions_33',['SecWebSocketExtensions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['secwebsocketkeymissingexception_34',['SecWebSocketKeyMissingException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException(string message, Exception inner)']]],\n  ['secwebsocketkeymissingexception_2ecs_35',['SecWebSocketKeyMissingException.cs',['../_sec_web_socket_key_missing_exception_8cs.html',1,'']]],\n  ['secwebsocketprotocol_36',['SecWebSocketProtocol',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['seek_37',['Seek',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['seenbefore_38',['SeenBefore',['../interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4',1,'Nakama::IApiValidatedPurchase']]],\n  ['self_39',['Self',['../interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f',1,'Nakama.IChannel.Self'],['../interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f',1,'Nakama.IMatch.Self'],['../interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848',1,'Nakama.IMatchmakerMatched.Self'],['../interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2',1,'Nakama.IParty.Self']]],\n  ['sendasync_40',['SendAsync',['../class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7',1,'Nakama.HttpRequestAdapter.SendAsync()'],['../interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53',1,'Nakama.IHttpAdapter.SendAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4',1,'Nakama.ISocketAdapter.SendAsync()'],['../class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4',1,'Nakama.WebSocketAdapter.SendAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f',1,'Nakama.WebSocketStdlibAdapter.SendAsync()'],['../class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a',1,'Satori.HttpRequestAdapter.SendAsync()'],['../interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344',1,'Satori.IHttpAdapter.SendAsync()']]],\n  ['sender_41',['Sender',['../interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6',1,'Nakama::IStreamState']]],\n  ['senderid_42',['SenderId',['../interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414',1,'Nakama.IApiChannelMessage.SenderId'],['../interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a',1,'Nakama.IApiNotification.SenderId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a',1,'Nakama.Console.IApiChannelMessage.SenderId'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492',1,'Nakama.Console.IApiNotification.SenderId']]],\n  ['sendmatchstateasync_43',['SendMatchStateAsync',['../interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)']]],\n  ['sendpartydataasync_44',['SendPartyDataAsync',['../interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, ArraySegment&lt; byte &gt; data)'],['../interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, string data)'],['../interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, byte[] data)'],['../class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, ArraySegment&lt; byte &gt; data)'],['../class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, string data)'],['../class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, byte[] data)']]],\n  ['sendping_45',['SendPing',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941',1,'Nakama.Ninja.WebSockets.IPingPongManager.SendPing()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf',1,'Nakama.Ninja.WebSockets.PingPongManager.SendPing()']]],\n  ['sendtime_46',['SendTime',['../interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee',1,'Satori::IApiMessage']]],\n  ['serverkey_47',['ServerKey',['../class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1',1,'Nakama.Client.ServerKey'],['../interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23',1,'Nakama.IClient.ServerKey']]],\n  ['serverlistenersocketexception_48',['ServerListenerSocketException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException(string message, Exception inner)']]],\n  ['serverlistenersocketexception_2ecs_49',['ServerListenerSocketException.cs',['../_server_listener_socket_exception_8cs.html',1,'']]],\n  ['serverversion_50',['ServerVersion',['../interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35',1,'Nakama::Console::IConsoleConfig']]],\n  ['session_51',['Session',['../class_nakama_1_1_session.html',1,'Nakama.Session'],['../class_satori_1_1_session.html',1,'Satori.Session']]],\n  ['sessioncount_52',['SessionCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab',1,'Nakama::Console::IStatusListStatus']]],\n  ['sessionid_53',['SessionId',['../interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af',1,'Nakama::IUserPresence']]],\n  ['sessionlogoutasync_54',['SessionLogoutAsync',['../class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730',1,'Nakama.Client.SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374',1,'Nakama.Client.SessionLogoutAsync(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93',1,'Nakama.IClient.SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc',1,'Nakama.IClient.SessionLogoutAsync(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['sessionrefreshasync_55',['SessionRefreshAsync',['../class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d',1,'Nakama.Client.SessionRefreshAsync()'],['../interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b',1,'Nakama.IClient.SessionRefreshAsync()'],['../class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64',1,'Satori.Client.SessionRefreshAsync()'],['../interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5',1,'Satori.IClient.SessionRefreshAsync()']]],\n  ['set_56',['SET',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164',1,'Nakama']]],\n  ['setlength_57',['SetLength',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['signature_58',['Signature',['../interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6',1,'Nakama.IApiAccountGameCenter.Signature'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Signature']]],\n  ['signedplayerinfo_59',['SignedPlayerInfo',['../interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610',1,'Nakama::IApiAccountFacebookInstantGame']]],\n  ['signedrequest_60',['SignedRequest',['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e',1,'Nakama::IApiValidatePurchaseFacebookInstantRequest']]],\n  ['size_61',['Size',['../interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280',1,'Nakama.IApiMatch.Size'],['../interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7',1,'Nakama.IApiTournament.Size'],['../interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5',1,'Nakama.IMatch.Size']]],\n  ['socket_62',['Socket',['../class_nakama_1_1_socket.html',1,'Nakama.Socket'],['../class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2',1,'Nakama.Socket.Socket()'],['../class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7',1,'Nakama.Socket.Socket(ISocketAdapter adapter)'],['../class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1',1,'Nakama.Socket.Socket(string scheme, string host, int port, ISocketAdapter adapter, int sendTimeoutSec=DefaultSendTimeout)']]],\n  ['socket_2ecs_63',['Socket.cs',['../_socket_8cs.html',1,'']]],\n  ['sortorder_64',['SortOrder',['../interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf',1,'Nakama::IApiTournament']]],\n  ['startactive_65',['StartActive',['../interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf',1,'Nakama::IApiTournament']]],\n  ['starttime_66',['StartTime',['../interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda',1,'Nakama::IApiTournament']]],\n  ['starttimesec_67',['StartTimeSec',['../interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba',1,'Satori::IApiLiveEvent']]],\n  ['state_68',['State',['../interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9',1,'Nakama.IGroupUserListGroupUser.State'],['../interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f',1,'Nakama.IUserGroupListUserGroup.State'],['../interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b',1,'Nakama.IApiFriend.State'],['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007',1,'Nakama.Console.IUserGroupListUserGroup.State'],['../interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be',1,'Nakama.Console.IApiFriend.State'],['../interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae',1,'Nakama.IMatchState.State'],['../interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4',1,'Nakama.IStreamState.State']]],\n  ['status_69',['Status',['../interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954',1,'Nakama::IUserPresence']]],\n  ['statuscode_70',['StatusCode',['../class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee',1,'Nakama.ApiResponseException.StatusCode'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75',1,'Nakama.Console.ApiResponseException.StatusCode'],['../class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f',1,'Satori.ApiResponseException.StatusCode']]],\n  ['statusfollowmessage_2ecs_71',['StatusFollowMessage.cs',['../_status_follow_message_8cs.html',1,'']]],\n  ['statusunfollowmessage_2ecs_72',['StatusUnfollowMessage.cs',['../_status_unfollow_message_8cs.html',1,'']]],\n  ['statusupdatemessage_2ecs_73',['StatusUpdateMessage.cs',['../_status_update_message_8cs.html',1,'']]],\n  ['steamid_74',['SteamId',['../interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9',1,'Nakama.IApiUser.SteamId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a',1,'Nakama.Console.IApiUser.SteamId']]],\n  ['storageobjectid_75',['StorageObjectId',['../class_nakama_1_1_storage_object_id.html',1,'Nakama']]],\n  ['storageobjectid_2ecs_76',['StorageObjectId.cs',['../_storage_object_id_8cs.html',1,'']]],\n  ['store_77',['Store',['../interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1',1,'Nakama.IApiValidatedPurchase.Store'],['../interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24',1,'Nakama.IApiValidatedSubscription.Store']]],\n  ['stream_78',['Stream',['../interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c',1,'Nakama.IStreamPresenceEvent.Stream'],['../interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda',1,'Nakama.IStreamState.Stream'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8',1,'Nakama.Ninja.WebSockets.WebSocketHttpContext.Stream']]],\n  ['stringproperties_79',['StringProperties',['../interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa',1,'Nakama::IMatchmakerUser']]],\n  ['subject_80',['Subject',['../interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7',1,'Nakama.IApiNotification.Subject'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b',1,'Nakama.Console.IApiNotification.Subject'],['../interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989',1,'Nakama.IStream.Subject']]],\n  ['subprotocol_81',['SubProtocol',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640',1,'Nakama::Ninja::WebSockets::WebSocketServerOptions']]],\n  ['subscore_82',['Subscore',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Subscore'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Subscore'],['../interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a',1,'Nakama.IApiLeaderboardRecord.Subscore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7',1,'Nakama.Console.IApiLeaderboardRecord.Subscore']]],\n  ['sync_83',['Sync',['../interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8',1,'Nakama::IApiLinkSteamRequest']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_12.js",
    "content": "var searchData=\n[\n  ['text_0',['Text',['../interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa',1,'Satori::IApiMessage']]],\n  ['ticket_1',['Ticket',['../interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7',1,'Nakama.IMatchmakerMatched.Ticket'],['../interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef',1,'Nakama.IMatchmakerTicket.Ticket'],['../interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af',1,'Nakama.IPartyMatchmakerTicket.Ticket']]],\n  ['ticketcount_2',['TicketCount',['../interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed',1,'Nakama::IApiMatchmakerStats']]],\n  ['tickrate_3',['TickRate',['../interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529',1,'Nakama::IApiMatch']]],\n  ['timeout_4',['Timeout',['../class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2',1,'Nakama.Client.Timeout'],['../interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af',1,'Nakama.IClient.Timeout'],['../class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c',1,'Satori.Client.Timeout'],['../interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580',1,'Satori.IClient.Timeout']]],\n  ['timestamp_5',['Timestamp',['../interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf',1,'Nakama.IApiEvent.Timestamp'],['../interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d',1,'Satori.IApiEvent.Timestamp'],['../class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36',1,'Satori.Event.Timestamp']]],\n  ['timestampseconds_6',['TimestampSeconds',['../interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b',1,'Nakama::IApiAccountGameCenter']]],\n  ['timezone_7',['Timezone',['../interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665',1,'Nakama.IApiUpdateAccountRequest.Timezone'],['../interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5',1,'Nakama.IApiUser.Timezone'],['../interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5',1,'Nakama.Console.IApiUser.Timezone'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Timezone']]],\n  ['title_8',['Title',['../interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41',1,'Nakama.IApiTournament.Title'],['../interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277',1,'Satori.IApiMessage.Title']]],\n  ['tlsauthenticateasclient_9',['TlsAuthenticateAsClient',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9',1,'Nakama::Ninja::WebSockets::WebSocketClientFactory']]],\n  ['toarray_10',['ToArray',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['token_11',['Token',['../interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5',1,'Nakama.IApiAccountApple.Token'],['../interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283',1,'Nakama.IApiAccountFacebook.Token'],['../interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0',1,'Nakama.IApiAccountGoogle.Token'],['../interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d',1,'Nakama.IApiAccountSteam.Token'],['../interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511',1,'Nakama.IApiSession.Token'],['../interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61',1,'Nakama.IApiSessionLogoutRequest.Token'],['../interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5',1,'Nakama.IApiSessionRefreshRequest.Token'],['../interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2',1,'Nakama.Console.IConsoleConsoleSession.Token'],['../interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7',1,'Nakama.IMatchmakerMatched.Token'],['../interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972',1,'Satori.IApiAuthenticateLogoutRequest.Token'],['../interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97',1,'Satori.IApiSession.Token']]],\n  ['tostring_12',['ToString',['../class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f',1,'Nakama.ApiResponseException.ToString()'],['../class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352',1,'Nakama.Client.ToString()'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b',1,'Nakama.Console.ApiResponseException.ToString()'],['../class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd',1,'Nakama.Session.ToString()'],['../class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d',1,'Nakama.Socket.ToString()'],['../class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4',1,'Nakama.StorageObjectId.ToString()'],['../class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457',1,'Nakama.WebSocketAdapter.ToString()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7',1,'Nakama.WebSocketStdlibAdapter.ToString()'],['../class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1',1,'Satori.ApiResponseException.ToString()'],['../class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c',1,'Satori.Session.ToString()']]],\n  ['totalcount_13',['TotalCount',['../interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454',1,'Nakama.Console.IConsoleStorageList.TotalCount'],['../interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0',1,'Nakama.Console.IConsoleUserList.TotalCount']]],\n  ['tournaments_14',['Tournaments',['../interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3',1,'Nakama::IApiTournamentList']]],\n  ['transactionid_15',['TransactionId',['../interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427',1,'Nakama::IApiValidatedPurchase']]],\n  ['transientexceptiondelegate_16',['TransientExceptionDelegate',['../class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5',1,'Nakama.HttpRequestAdapter.TransientExceptionDelegate'],['../interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8',1,'Nakama.IHttpAdapter.TransientExceptionDelegate'],['../class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3',1,'Satori.HttpRequestAdapter.TransientExceptionDelegate'],['../interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f',1,'Satori.IHttpAdapter.TransientExceptionDelegate'],['../namespace_nakama.html#a016772f008c1c294bf609c6ece102445',1,'Nakama.TransientExceptionDelegate()'],['../namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f',1,'Satori.TransientExceptionDelegate()']]],\n  ['trygetbuffer_17',['TryGetBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['type_18',['Type',['../interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90',1,'Satori.IFlagValueChangeReason.Type'],['../interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289',1,'Satori.IApiFlagOverrideValue.Type']]],\n  ['type_19',['type',['../interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423',1,'Nakama.IProtobufAny.type'],['../interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d',1,'Satori.IProtobufAny.type']]],\n  ['typeurl_20',['TypeUrl',['../interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a',1,'Nakama::Console::IProtobufAny']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_13.js",
    "content": "var searchData=\n[\n  ['unfollowusersasync_0',['UnfollowUsersAsync',['../interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a',1,'Nakama.ISocket.UnfollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37',1,'Nakama.ISocket.UnfollowUsersAsync(IEnumerable&lt; string &gt; userIDs)'],['../class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec',1,'Nakama.Socket.UnfollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986',1,'Nakama.Socket.UnfollowUsersAsync(IEnumerable&lt; string &gt; userIDs)']]],\n  ['unknown_1',['UNKNOWN',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3',1,'Nakama.UNKNOWN'],['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3',1,'Satori.UNKNOWN']]],\n  ['unlinkappleasync_2',['UnlinkAppleAsync',['../class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e',1,'Nakama.Client.UnlinkAppleAsync()'],['../interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e',1,'Nakama.IClient.UnlinkAppleAsync()']]],\n  ['unlinkcustomasync_3',['UnlinkCustomAsync',['../class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523',1,'Nakama.Client.UnlinkCustomAsync()'],['../interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae',1,'Nakama.IClient.UnlinkCustomAsync()']]],\n  ['unlinkdeviceasync_4',['UnlinkDeviceAsync',['../class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d',1,'Nakama.Client.UnlinkDeviceAsync()'],['../interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc',1,'Nakama.IClient.UnlinkDeviceAsync()']]],\n  ['unlinkemailasync_5',['UnlinkEmailAsync',['../class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d',1,'Nakama.Client.UnlinkEmailAsync()'],['../interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1',1,'Nakama.IClient.UnlinkEmailAsync()']]],\n  ['unlinkfacebookasync_6',['UnlinkFacebookAsync',['../class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1',1,'Nakama.Client.UnlinkFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e',1,'Nakama.IClient.UnlinkFacebookAsync()']]],\n  ['unlinkgamecenterasync_7',['UnlinkGameCenterAsync',['../class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9',1,'Nakama.Client.UnlinkGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c',1,'Nakama.IClient.UnlinkGameCenterAsync()']]],\n  ['unlinkgoogleasync_8',['UnlinkGoogleAsync',['../class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc',1,'Nakama.Client.UnlinkGoogleAsync()'],['../interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7',1,'Nakama.IClient.UnlinkGoogleAsync()']]],\n  ['unlinksteamasync_9',['UnlinkSteamAsync',['../class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a',1,'Nakama.Client.UnlinkSteamAsync()'],['../interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d',1,'Nakama.IClient.UnlinkSteamAsync()']]],\n  ['update_10',['Update',['../class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace',1,'Nakama::Session']]],\n  ['updateaccountasync_11',['UpdateAccountAsync',['../class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7',1,'Nakama.Client.UpdateAccountAsync()'],['../interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f',1,'Nakama.IClient.UpdateAccountAsync()']]],\n  ['updatechatmessageasync_12',['UpdateChatMessageAsync',['../interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041',1,'Nakama.ISocket.UpdateChatMessageAsync(IChannel channel, string messageId, string content)'],['../interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0',1,'Nakama.ISocket.UpdateChatMessageAsync(string channelId, string messageId, string content)'],['../class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b',1,'Nakama.Socket.UpdateChatMessageAsync(IChannel channel, string messageId, string content)'],['../class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf',1,'Nakama.Socket.UpdateChatMessageAsync(string channelId, string messageId, string content)']]],\n  ['updategroupasync_13',['UpdateGroupAsync',['../class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b',1,'Nakama.Client.UpdateGroupAsync()'],['../interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176',1,'Nakama.IClient.UpdateGroupAsync()']]],\n  ['updatemessageasync_14',['UpdateMessageAsync',['../class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7',1,'Satori.Client.UpdateMessageAsync()'],['../interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca',1,'Satori.IClient.UpdateMessageAsync()']]],\n  ['updatepartyasync_15',['UpdatePartyAsync',['../interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5',1,'Nakama.ISocket.UpdatePartyAsync()'],['../class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a',1,'Nakama.Socket.UpdatePartyAsync()']]],\n  ['updatepresences_16',['UpdatePresences',['../interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1',1,'Nakama.IMatch.UpdatePresences()'],['../interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac',1,'Nakama.IParty.UpdatePresences()']]],\n  ['updatepropertiesasync_17',['UpdatePropertiesAsync',['../class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b',1,'Satori.Client.UpdatePropertiesAsync()'],['../interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0',1,'Satori.IClient.UpdatePropertiesAsync()']]],\n  ['updatestatusasync_18',['UpdateStatusAsync',['../interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614',1,'Nakama.ISocket.UpdateStatusAsync()'],['../class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707',1,'Nakama.Socket.UpdateStatusAsync()']]],\n  ['updatetime_19',['UpdateTime',['../interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18',1,'Nakama.IApiChannelMessage.UpdateTime'],['../interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909',1,'Nakama.IApiFriend.UpdateTime'],['../interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee',1,'Nakama.IApiGroup.UpdateTime'],['../interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841',1,'Nakama.IApiLeaderboardRecord.UpdateTime'],['../interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc',1,'Nakama.IApiStorageObject.UpdateTime'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac',1,'Nakama.IApiStorageObjectAck.UpdateTime'],['../interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd',1,'Nakama.IApiUser.UpdateTime'],['../interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f',1,'Nakama.IApiValidatedPurchase.UpdateTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695',1,'Nakama.IApiValidatedSubscription.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c',1,'Nakama.Console.IApiChannelMessage.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8',1,'Nakama.Console.IApiGroup.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4',1,'Nakama.Console.IApiLeaderboardRecord.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7',1,'Nakama.Console.IApiStorageObject.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f',1,'Nakama.Console.IApiUser.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02',1,'Nakama.Console.IConsoleWalletLedger.UpdateTime'],['../interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3',1,'Nakama.IChannelMessageAck.UpdateTime'],['../interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7',1,'Satori.IApiMessage.UpdateTime']]],\n  ['user_20',['User',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10',1,'Nakama.IFriendsOfFriendsListFriendOfFriend.User'],['../interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1',1,'Nakama.IGroupUserListGroupUser.User'],['../interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f',1,'Nakama.IApiAccount.User'],['../interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8',1,'Nakama.IApiFriend.User'],['../interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694',1,'Nakama.Console.IApiFriend.User'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7',1,'Nakama.Console.INakamaapiAccount.User']]],\n  ['usergroups_21',['UserGroups',['../interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201',1,'Nakama.IApiUserGroupList.UserGroups'],['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e',1,'Nakama.Console.IApiUserGroupList.UserGroups']]],\n  ['userid_22',['UserId',['../interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9',1,'Nakama.IApiReadStorageObjectId.UserId'],['../interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390',1,'Nakama.IApiStorageObject.UserId'],['../interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d',1,'Nakama.IApiStorageObjectAck.UserId'],['../interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5',1,'Nakama.IApiValidatedPurchase.UserId'],['../interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249',1,'Nakama.IApiValidatedSubscription.UserId'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92',1,'Nakama.Console.IApiStorageObject.UserId'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db',1,'Nakama.Console.IApiStorageObjectAck.UserId'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c',1,'Nakama.Console.IConsoleWalletLedger.UserId'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.UserId'],['../interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d',1,'Nakama.ISession.UserId'],['../interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a',1,'Nakama.IUserPresence.UserId'],['../class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f',1,'Nakama.Session.UserId'],['../class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6',1,'Nakama.StorageObjectId.UserId']]],\n  ['useridone_23',['UserIdOne',['../interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a',1,'Nakama.IApiChannelMessage.UserIdOne'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580',1,'Nakama.Console.IApiChannelMessage.UserIdOne'],['../interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8',1,'Nakama.IChannel.UserIdOne'],['../interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4',1,'Nakama.IChannelMessageAck.UserIdOne'],['../interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd',1,'Nakama.IChannelPresenceEvent.UserIdOne']]],\n  ['useridtwo_24',['UserIdTwo',['../interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9',1,'Nakama.IApiChannelMessage.UserIdTwo'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee',1,'Nakama.Console.IApiChannelMessage.UserIdTwo'],['../interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8',1,'Nakama.IChannel.UserIdTwo'],['../interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1',1,'Nakama.IChannelMessageAck.UserIdTwo'],['../interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e',1,'Nakama.IChannelPresenceEvent.UserIdTwo']]],\n  ['username_25',['Username',['../interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e',1,'Nakama.IApiChannelMessage.Username'],['../interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966',1,'Nakama.IApiLeaderboardRecord.Username'],['../interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d',1,'Nakama.IApiUpdateAccountRequest.Username'],['../interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266',1,'Nakama.IApiUser.Username'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7',1,'Nakama.Console.IApiChannelMessage.Username'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb',1,'Nakama.Console.IApiLeaderboardRecord.Username'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf',1,'Nakama.Console.IApiUser.Username'],['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419',1,'Nakama.Console.IConsoleAuthenticateRequest.Username'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Username'],['../interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517',1,'Nakama.IChannelMessageAck.Username'],['../interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5',1,'Nakama.ISession.Username'],['../interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f',1,'Nakama.IUserPresence.Username'],['../class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e',1,'Nakama.Session.Username']]],\n  ['userpresence_26',['UserPresence',['../interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3',1,'Nakama::IMatchState']]],\n  ['users_27',['Users',['../interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e',1,'Nakama.IApiUsers.Users'],['../interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1',1,'Nakama.Console.IConsoleUserList.Users'],['../interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10',1,'Nakama.IMatchmakerMatched.Users']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_14.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_14.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_14.js",
    "content": "var searchData=\n[\n  ['validatedpurchases_0',['ValidatedPurchases',['../interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3',1,'Nakama::IApiValidatePurchaseResponse']]],\n  ['validatedsubscription_1',['ValidatedSubscription',['../interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1',1,'Nakama::IApiValidateSubscriptionResponse']]],\n  ['validatedsubscriptions_2',['ValidatedSubscriptions',['../interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906',1,'Nakama::IApiSubscriptionList']]],\n  ['validatepurchaseappleasync_3',['ValidatePurchaseAppleAsync',['../class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846',1,'Nakama.Client.ValidatePurchaseAppleAsync()'],['../interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286',1,'Nakama.IClient.ValidatePurchaseAppleAsync()']]],\n  ['validatepurchasefacebookinstantasync_4',['ValidatePurchaseFacebookInstantAsync',['../class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9',1,'Nakama.Client.ValidatePurchaseFacebookInstantAsync()'],['../interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035',1,'Nakama.IClient.ValidatePurchaseFacebookInstantAsync()']]],\n  ['validatepurchasegoogleasync_5',['ValidatePurchaseGoogleAsync',['../class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276',1,'Nakama.Client.ValidatePurchaseGoogleAsync()'],['../interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985',1,'Nakama.IClient.ValidatePurchaseGoogleAsync()']]],\n  ['validatepurchasehuaweiasync_6',['ValidatePurchaseHuaweiAsync',['../class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66',1,'Nakama.Client.ValidatePurchaseHuaweiAsync()'],['../interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3',1,'Nakama.IClient.ValidatePurchaseHuaweiAsync()']]],\n  ['validatesubscriptionappleasync_7',['ValidateSubscriptionAppleAsync',['../class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f',1,'Nakama.Client.ValidateSubscriptionAppleAsync()'],['../interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90',1,'Nakama.IClient.ValidateSubscriptionAppleAsync()']]],\n  ['validatesubscriptiongoogleasync_8',['ValidateSubscriptionGoogleAsync',['../class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb',1,'Nakama.Client.ValidateSubscriptionGoogleAsync()'],['../interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9',1,'Nakama.IClient.ValidateSubscriptionGoogleAsync()']]],\n  ['value_9',['Value',['../interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8',1,'Nakama.IApiStorageObject.Value'],['../interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5',1,'Nakama.IApiWriteStorageObject.Value'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba',1,'Nakama.Console.IApiStorageObject.Value'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Value'],['../interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc',1,'Nakama.Console.IProtobufAny.Value'],['../class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026',1,'Nakama.WriteStorageObject.Value'],['../interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac',1,'Satori.IApiEvent.Value'],['../interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9',1,'Satori.IApiExperiment.Value'],['../interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3',1,'Satori.IApiFlag.Value'],['../interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323',1,'Satori.IApiFlagOverrideValue.Value'],['../interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883',1,'Satori.IApiLiveEvent.Value'],['../class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6',1,'Satori.Event.Value']]],\n  ['variantname_10',['VariantName',['../interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68',1,'Satori.IFlagValueChangeReason.VariantName'],['../interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd',1,'Satori.IApiFlagOverrideValue.VariantName']]],\n  ['vars_11',['Vars',['../interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6',1,'Nakama.IApiAccountApple.Vars'],['../interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78',1,'Nakama.IApiAccountCustom.Vars'],['../interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec',1,'Nakama.IApiAccountDevice.Vars'],['../interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6',1,'Nakama.IApiAccountEmail.Vars'],['../interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436',1,'Nakama.IApiAccountFacebook.Vars'],['../interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802',1,'Nakama.IApiAccountFacebookInstantGame.Vars'],['../interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00',1,'Nakama.IApiAccountGameCenter.Vars'],['../interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d',1,'Nakama.IApiAccountGoogle.Vars'],['../interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c',1,'Nakama.IApiAccountSteam.Vars'],['../interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369',1,'Nakama.IApiSessionRefreshRequest.Vars'],['../interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90',1,'Nakama.Console.IApiAccountDevice.Vars'],['../interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19',1,'Nakama.ISession.Vars'],['../class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7',1,'Nakama.Session.Vars']]],\n  ['verifytime_12',['VerifyTime',['../interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0',1,'Nakama.IApiAccount.VerifyTime'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021',1,'Nakama.Console.INakamaapiAccount.VerifyTime']]],\n  ['version_13',['Version',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd',1,'Nakama.IApiDeleteStorageObjectId.Version'],['../interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023',1,'Nakama.IApiStorageObject.Version'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f',1,'Nakama.IApiStorageObjectAck.Version'],['../interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068',1,'Nakama.IApiWriteStorageObject.Version'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a',1,'Nakama.Console.IApiStorageObject.Version'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e',1,'Nakama.Console.IApiStorageObjectAck.Version'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Version'],['../class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6',1,'Nakama.StorageObjectId.Version'],['../class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2',1,'Nakama.WriteStorageObject.Version']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_15.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_15.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_15.js",
    "content": "var searchData=\n[\n  ['wallet_0',['Wallet',['../interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355',1,'Nakama.IApiAccount.Wallet'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603',1,'Nakama.Console.INakamaapiAccount.Wallet'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Wallet']]],\n  ['walletledgers_1',['WalletLedgers',['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9',1,'Nakama::Console::IConsoleAccountExport']]],\n  ['warnformat_2',['WarnFormat',['../interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3',1,'Nakama.ILogger.WarnFormat()'],['../interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591',1,'Satori.ILogger.WarnFormat()']]],\n  ['warnings_3',['Warnings',['../interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8',1,'Nakama::Console::IConsoleConfig']]],\n  ['websocketadapter_4',['WebSocketAdapter',['../class_nakama_1_1_web_socket_adapter.html',1,'Nakama.WebSocketAdapter'],['../class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc',1,'Nakama.WebSocketAdapter.WebSocketAdapter(int keepAliveIntervalSec=KeepAliveIntervalSec, int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize, ILogger logger=null)'],['../class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e',1,'Nakama.WebSocketAdapter.WebSocketAdapter(WebSocketClientOptions options, int sendTimeoutSec, int maxMessageReadSize, ILogger logger)']]],\n  ['websocketadapter_2ecs_5',['WebSocketAdapter.cs',['../_web_socket_adapter_8cs.html',1,'']]],\n  ['websocketbufferoverflowexception_6',['WebSocketBufferOverflowException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException(string message, Exception inner)']]],\n  ['websocketbufferoverflowexception_2ecs_7',['WebSocketBufferOverflowException.cs',['../_web_socket_buffer_overflow_exception_8cs.html',1,'']]],\n  ['websocketclientfactory_8',['WebSocketClientFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory(Func&lt; MemoryStream &gt; bufferFactory)']]],\n  ['websocketclientfactory_2ecs_9',['WebSocketClientFactory.cs',['../_web_socket_client_factory_8cs.html',1,'']]],\n  ['websocketclientoptions_10',['WebSocketClientOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions.WebSocketClientOptions()']]],\n  ['websocketclientoptions_2ecs_11',['WebSocketClientOptions.cs',['../_web_socket_client_options_8cs.html',1,'']]],\n  ['websocketerrormessage_2ecs_12',['WebSocketErrorMessage.cs',['../_web_socket_error_message_8cs.html',1,'']]],\n  ['websocketframe_2ecs_13',['WebSocketFrame.cs',['../_web_socket_frame_8cs.html',1,'']]],\n  ['websocketframecommon_2ecs_14',['WebSocketFrameCommon.cs',['../_web_socket_frame_common_8cs.html',1,'']]],\n  ['websocketframereader_2ecs_15',['WebSocketFrameReader.cs',['../_web_socket_frame_reader_8cs.html',1,'']]],\n  ['websocketframewriter_2ecs_16',['WebSocketFrameWriter.cs',['../_web_socket_frame_writer_8cs.html',1,'']]],\n  ['websockethandshakefailedexception_17',['WebSocketHandshakeFailedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException(string message, Exception inner)']]],\n  ['websockethandshakefailedexception_2ecs_18',['WebSocketHandshakeFailedException.cs',['../_web_socket_handshake_failed_exception_8cs.html',1,'']]],\n  ['websockethttpcontext_19',['WebSocketHttpContext',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html',1,'Nakama.Ninja.WebSockets.WebSocketHttpContext'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07',1,'Nakama.Ninja.WebSockets.WebSocketHttpContext.WebSocketHttpContext()']]],\n  ['websockethttpcontext_2ecs_20',['WebSocketHttpContext.cs',['../_web_socket_http_context_8cs.html',1,'']]],\n  ['websocketimplementation_2ecs_21',['WebSocketImplementation.cs',['../_web_socket_implementation_8cs.html',1,'']]],\n  ['websocketmessageenvelope_2ecs_22',['WebSocketMessageEnvelope.cs',['../_web_socket_message_envelope_8cs.html',1,'']]],\n  ['websocketopcode_2ecs_23',['WebSocketOpCode.cs',['../_web_socket_op_code_8cs.html',1,'']]],\n  ['websocketreadcursor_2ecs_24',['WebSocketReadCursor.cs',['../_web_socket_read_cursor_8cs.html',1,'']]],\n  ['websocketrequestedprotocols_25',['WebSocketRequestedProtocols',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['websocketserverfactory_26',['WebSocketServerFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory(Func&lt; MemoryStream &gt; bufferFactory)']]],\n  ['websocketserverfactory_2ecs_27',['WebSocketServerFactory.cs',['../_web_socket_server_factory_8cs.html',1,'']]],\n  ['websocketserveroptions_28',['WebSocketServerOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions.WebSocketServerOptions()']]],\n  ['websocketserveroptions_2ecs_29',['WebSocketServerOptions.cs',['../_web_socket_server_options_8cs.html',1,'']]],\n  ['websocketstdlibadapter_30',['WebSocketStdlibAdapter',['../class_nakama_1_1_web_socket_stdlib_adapter.html',1,'Nakama.WebSocketStdlibAdapter'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7',1,'Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter(int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize)'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b',1,'Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter(ClientWebSocket webSocket)']]],\n  ['websocketstdlibadapter_2ecs_31',['WebSocketStdlibAdapter.cs',['../_web_socket_stdlib_adapter_8cs.html',1,'']]],\n  ['websocketversionnotsupportedexception_32',['WebSocketVersionNotSupportedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException(string message, Exception inner)']]],\n  ['websocketversionnotsupportedexception_2ecs_33',['WebSocketVersionNotSupportedException.cs',['../_web_socket_version_not_supported_exception_8cs.html',1,'']]],\n  ['withgzip_34',['WithGzip',['../class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e',1,'Nakama.HttpRequestAdapter.WithGzip()'],['../class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd',1,'Satori.HttpRequestAdapter.WithGzip()']]],\n  ['write_35',['Write',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writeasync_36',['WriteAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writebyte_37',['WriteByte',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writechatmessageasync_38',['WriteChatMessageAsync',['../interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db',1,'Nakama.ISocket.WriteChatMessageAsync(IChannel channel, string content)'],['../interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210',1,'Nakama.ISocket.WriteChatMessageAsync(string channelId, string content)'],['../class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc',1,'Nakama.Socket.WriteChatMessageAsync(IChannel channel, string content)'],['../class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772',1,'Nakama.Socket.WriteChatMessageAsync(string channelId, string content)']]],\n  ['writehttpheaderasync_39',['WriteHttpHeaderAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['writeleaderboardrecordasync_40',['WriteLeaderboardRecordAsync',['../class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb',1,'Nakama.Client.WriteLeaderboardRecordAsync()'],['../interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1',1,'Nakama.IClient.WriteLeaderboardRecordAsync()']]],\n  ['writestorageobject_41',['WriteStorageObject',['../class_nakama_1_1_write_storage_object.html',1,'Nakama']]],\n  ['writestorageobject_2ecs_42',['WriteStorageObject.cs',['../_write_storage_object_8cs.html',1,'']]],\n  ['writestorageobjectsasync_43',['WriteStorageObjectsAsync',['../class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815',1,'Nakama.Client.WriteStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935',1,'Nakama.IClient.WriteStorageObjectsAsync()']]],\n  ['writetimeout_44',['WriteTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writeto_45',['WriteTo',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writetournamentrecordasync_46',['WriteTournamentRecordAsync',['../class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d',1,'Nakama.Client.WriteTournamentRecordAsync()'],['../interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a',1,'Nakama.IClient.WriteTournamentRecordAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_2.js",
    "content": "var searchData=\n[\n  ['cacheablecursor_0',['CacheableCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3',1,'Nakama.IApiChannelMessageList.CacheableCursor'],['../interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d',1,'Nakama.IApiNotificationList.CacheableCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82',1,'Satori.IApiGetMessageListResponse.CacheableCursor']]],\n  ['calculatewebsocketkey_1',['CalculateWebSocketKey',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['canenter_2',['CanEnter',['../interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630',1,'Nakama::IApiTournament']]],\n  ['canread_3',['CanRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['canseek_4',['CanSeek',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['cantimeout_5',['CanTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['canwrite_6',['CanWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['capacity_7',['Capacity',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['category_8',['Category',['../interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803',1,'Nakama::IApiTournament']]],\n  ['changelog_9',['Changelog',['../md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',1,'']]],\n  ['changelog_2emd_10',['CHANGELOG.md',['../_c_h_a_n_g_e_l_o_g_8md.html',1,'']]],\n  ['changereason_11',['ChangeReason',['../interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c',1,'Satori::IApiFlag']]],\n  ['changeset_12',['Changeset',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8',1,'Nakama::Console::IConsoleWalletLedger']]],\n  ['channelid_13',['ChannelId',['../interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96',1,'Nakama.IApiChannelMessage.ChannelId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050',1,'Nakama.Console.IApiChannelMessage.ChannelId'],['../interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c',1,'Nakama.IChannelMessageAck.ChannelId'],['../interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29',1,'Nakama.IChannelPresenceEvent.ChannelId']]],\n  ['channeljoinmessage_2ecs_14',['ChannelJoinMessage.cs',['../_channel_join_message_8cs.html',1,'']]],\n  ['channelleavemessage_2ecs_15',['ChannelLeaveMessage.cs',['../_channel_leave_message_8cs.html',1,'']]],\n  ['channelremovemessage_2ecs_16',['ChannelRemoveMessage.cs',['../_channel_remove_message_8cs.html',1,'']]],\n  ['channelsendmessage_2ecs_17',['ChannelSendMessage.cs',['../_channel_send_message_8cs.html',1,'']]],\n  ['channeltype_18',['ChannelType',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307',1,'Nakama']]],\n  ['channelupdatemessage_2ecs_19',['ChannelUpdateMessage.cs',['../_channel_update_message_8cs.html',1,'']]],\n  ['client_20',['Client',['../class_nakama_1_1_client.html',1,'Nakama.Client'],['../class_satori_1_1_client.html',1,'Satori.Client'],['../class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59',1,'Nakama.Client.Client(string serverKey)'],['../class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460',1,'Nakama.Client.Client(string serverKey, IHttpAdapter adapter)'],['../class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6',1,'Nakama.Client.Client(string scheme, string host, int port, string serverKey)'],['../class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711',1,'Nakama.Client.Client(string scheme, string host, int port, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)'],['../class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04',1,'Nakama.Client.Client(Uri uri, string serverKey)'],['../class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830',1,'Nakama.Client.Client(Uri uri, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)'],['../class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84',1,'Satori.Client.Client(string scheme, string host, int port, string apiKey)'],['../class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d',1,'Satori.Client.Client(string scheme, string host, int port, string apiKey, IHttpAdapter adapter, bool autoRefreshSession=true)']]],\n  ['close_21',['Close',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['closeasync_22',['CloseAsync',['../interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff',1,'Nakama.ISocket.CloseAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e',1,'Nakama.ISocketAdapter.CloseAsync()'],['../class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e',1,'Nakama.Socket.CloseAsync()'],['../class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a',1,'Nakama.WebSocketAdapter.CloseAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8',1,'Nakama.WebSocketStdlibAdapter.CloseAsync()']]],\n  ['closed_23',['Closed',['../interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483',1,'Nakama.ISocket.Closed'],['../interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679',1,'Nakama.ISocketAdapter.Closed'],['../class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2',1,'Nakama.Socket.Closed'],['../class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b',1,'Nakama.WebSocketAdapter.Closed'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3',1,'Nakama.WebSocketStdlibAdapter.Closed']]],\n  ['closepartyasync_24',['ClosePartyAsync',['../interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c',1,'Nakama.ISocket.ClosePartyAsync()'],['../class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237',1,'Nakama.Socket.ClosePartyAsync()']]],\n  ['code_25',['Code',['../interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051',1,'Nakama.IApiChannelMessage.Code'],['../interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54',1,'Nakama.IApiNotification.Code'],['../interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69',1,'Nakama.IRpcStatus.Code'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b',1,'Nakama.Console.IApiChannelMessage.Code'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f',1,'Nakama.Console.IApiNotification.Code'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941',1,'Nakama.Console.IRuntimeError.Code'],['../interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f',1,'Nakama.IChannelMessageAck.Code'],['../interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff',1,'Satori.IRpcStatus.Code']]],\n  ['collection_26',['Collection',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024',1,'Nakama.IApiDeleteStorageObjectId.Collection'],['../interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362',1,'Nakama.IApiReadStorageObjectId.Collection'],['../interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc',1,'Nakama.IApiStorageObject.Collection'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826',1,'Nakama.IApiStorageObjectAck.Collection'],['../interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521',1,'Nakama.IApiWriteStorageObject.Collection'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998',1,'Nakama.Console.IApiStorageObject.Collection'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f',1,'Nakama.Console.IApiStorageObjectAck.Collection'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Collection'],['../class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95',1,'Nakama.StorageObjectId.Collection'],['../class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3',1,'Nakama.WriteStorageObject.Collection']]],\n  ['completetime_27',['CompleteTime',['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58',1,'Nakama::IApiMatchmakerCompletionStats']]],\n  ['completions_28',['Completions',['../interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5',1,'Nakama::IApiMatchmakerStats']]],\n  ['computed_29',['Computed',['../interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4',1,'Satori::IApiProperties']]],\n  ['computesocketacceptstring_30',['ComputeSocketAcceptString',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['conditionchanged_31',['ConditionChanged',['../interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52',1,'Satori::IApiFlag']]],\n  ['config_32',['Config',['../interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79',1,'Nakama::Console::IConsoleConfig']]],\n  ['connectasync_33',['ConnectAsync',['../interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118',1,'Nakama.ISocket.ConnectAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06',1,'Nakama.ISocketAdapter.ConnectAsync()'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(Uri uri, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(Uri uri, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa',1,'Nakama.Socket.ConnectAsync()'],['../class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0',1,'Nakama.WebSocketAdapter.ConnectAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a',1,'Nakama.WebSocketStdlibAdapter.ConnectAsync()']]],\n  ['connected_34',['Connected',['../interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd',1,'Nakama.ISocket.Connected'],['../interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea',1,'Nakama.ISocketAdapter.Connected'],['../class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac',1,'Nakama.Socket.Connected'],['../class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a',1,'Nakama.WebSocketAdapter.Connected'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409',1,'Nakama.WebSocketStdlibAdapter.Connected']]],\n  ['consoleclient_2egen_2ecs_35',['ConsoleClient.gen.cs',['../_console_client_8gen_8cs.html',1,'']]],\n  ['consumetime_36',['ConsumeTime',['../interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9',1,'Satori.IApiUpdateMessageRequest.ConsumeTime'],['../interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81',1,'Satori.IApiMessage.ConsumeTime']]],\n  ['content_37',['Content',['../interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a',1,'Nakama.IApiChannelMessage.Content'],['../interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d',1,'Nakama.IApiNotification.Content'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94',1,'Nakama.Console.IApiChannelMessage.Content'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53',1,'Nakama.Console.IApiNotification.Content']]],\n  ['copytoasync_38',['CopyToAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['created_39',['Created',['../interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce',1,'Nakama.IApiSession.Created'],['../interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd',1,'Nakama.ISession.Created'],['../class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb',1,'Nakama.Session.Created']]],\n  ['creategroupasync_40',['CreateGroupAsync',['../class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798',1,'Nakama.Client.CreateGroupAsync()'],['../interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee',1,'Nakama.IClient.CreateGroupAsync()']]],\n  ['creatematchasync_41',['CreateMatchAsync',['../interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c',1,'Nakama.ISocket.CreateMatchAsync()'],['../class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6',1,'Nakama.Socket.CreateMatchAsync()']]],\n  ['createpartyasync_42',['CreatePartyAsync',['../interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce',1,'Nakama.ISocket.CreatePartyAsync()'],['../class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d',1,'Nakama.Socket.CreatePartyAsync()']]],\n  ['createtime_43',['CreateTime',['../interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec',1,'Nakama.IApiChannelMessage.CreateTime'],['../interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671',1,'Nakama.IApiGroup.CreateTime'],['../interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972',1,'Nakama.IApiLeaderboardRecord.CreateTime'],['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379',1,'Nakama.IApiMatchmakerCompletionStats.CreateTime'],['../interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab',1,'Nakama.IApiNotification.CreateTime'],['../interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d',1,'Nakama.IApiStorageObject.CreateTime'],['../interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317',1,'Nakama.IApiStorageObjectAck.CreateTime'],['../interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671',1,'Nakama.IApiTournament.CreateTime'],['../interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35',1,'Nakama.IApiUser.CreateTime'],['../interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5',1,'Nakama.IApiValidatedPurchase.CreateTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6',1,'Nakama.IApiValidatedSubscription.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6',1,'Nakama.Console.IApiChannelMessage.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67',1,'Nakama.Console.IApiGroup.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04',1,'Nakama.Console.IApiLeaderboardRecord.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf',1,'Nakama.Console.IApiNotification.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb',1,'Nakama.Console.IApiStorageObject.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442',1,'Nakama.Console.IApiUser.CreateTime'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c',1,'Nakama.Console.IConsoleWalletLedger.CreateTime'],['../interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029',1,'Nakama.IChannelMessageAck.CreateTime'],['../interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7',1,'Nakama.ISession.CreateTime'],['../class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912',1,'Nakama.Session.CreateTime'],['../interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6',1,'Satori.IApiMessage.CreateTime'],['../interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a',1,'Satori.ISession.CreateTime'],['../class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0',1,'Satori.Session.CreateTime']]],\n  ['createtimesec_44',['CreateTimeSec',['../interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712',1,'Satori::IApiFlagOverrideValue']]],\n  ['creatorid_45',['CreatorId',['../interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92',1,'Nakama.IApiGroup.CreatorId'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39',1,'Nakama.Console.IApiGroup.CreatorId']]],\n  ['cursor_46',['Cursor',['../interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f',1,'Nakama.IApiFriendList.Cursor'],['../interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc',1,'Nakama.IApiFriendsOfFriendsList.Cursor'],['../interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f',1,'Nakama.IApiGroupList.Cursor'],['../interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f',1,'Nakama.IApiGroupUserList.Cursor'],['../interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4',1,'Nakama.IApiListSubscriptionsRequest.Cursor'],['../interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001',1,'Nakama.IApiPartyList.Cursor'],['../interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca',1,'Nakama.IApiStorageObjectList.Cursor'],['../interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41',1,'Nakama.IApiSubscriptionList.Cursor'],['../interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241',1,'Nakama.IApiTournamentList.Cursor'],['../interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de',1,'Nakama.IApiUserGroupList.Cursor'],['../interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f',1,'Nakama.Console.IApiFriendList.Cursor'],['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933',1,'Nakama.Console.IApiUserGroupList.Cursor']]],\n  ['custom_47',['Custom',['../interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995',1,'Satori.IApiAuthenticateRequest.Custom'],['../interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f',1,'Satori.IApiIdentifyRequest.Custom'],['../interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff',1,'Satori.IApiProperties.Custom'],['../interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd',1,'Satori.IApiUpdatePropertiesRequest.Custom']]],\n  ['customid_48',['CustomId',['../interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e',1,'Nakama.IApiAccount.CustomId'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88',1,'Nakama.Console.INakamaapiAccount.CustomId'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.CustomId']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_3.js",
    "content": "var searchData=\n[\n  ['data_0',['Data',['../interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e',1,'Nakama::IPartyData']]],\n  ['debug_2fnet46_2fnakama_2eassemblyinfo_2ecs_1',['Nakama.AssemblyInfo.cs',['../_debug_2net46_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnet46_2fsatori_2eassemblyinfo_2ecs_2',['Satori.AssemblyInfo.cs',['../_debug_2net46_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e0_2fnakama_2eassemblyinfo_2ecs_3',['Nakama.AssemblyInfo.cs',['../_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e0_2fsatori_2eassemblyinfo_2ecs_4',['Satori.AssemblyInfo.cs',['../_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e1_2fnakama_2eassemblyinfo_2ecs_5',['Nakama.AssemblyInfo.cs',['../_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e1_2fsatori_2eassemblyinfo_2ecs_6',['Satori.AssemblyInfo.cs',['../_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['debugformat_7',['DebugFormat',['../interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091',1,'Nakama.ILogger.DebugFormat()'],['../interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190',1,'Satori.ILogger.DebugFormat()']]],\n  ['decrement_8',['DECREMENT',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106',1,'Nakama']]],\n  ['default_9',['Default',['../interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b',1,'Satori.IApiAuthenticateRequest.Default'],['../interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d',1,'Satori.IApiIdentifyRequest.Default'],['../interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b',1,'Satori.IApiProperties.Default'],['../interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e',1,'Satori.IApiUpdatePropertiesRequest.Default']]],\n  ['defaultconnecttimeout_10',['DefaultConnectTimeout',['../class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216',1,'Nakama::Socket']]],\n  ['defaultexpiredtimespan_11',['DefaultExpiredTimeSpan',['../class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621',1,'Nakama.Client.DefaultExpiredTimeSpan'],['../class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0',1,'Satori.Client.DefaultExpiredTimeSpan']]],\n  ['defaulthost_12',['DefaultHost',['../class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35',1,'Nakama::Client']]],\n  ['defaultport_13',['DefaultPort',['../class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756',1,'Nakama::Client']]],\n  ['defaultscheme_14',['DefaultScheme',['../class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493',1,'Nakama::Client']]],\n  ['defaultsendtimeout_15',['DefaultSendTimeout',['../class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7',1,'Nakama::Socket']]],\n  ['defaulttimeout_16',['DefaultTimeout',['../class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de',1,'Satori::Client']]],\n  ['deleteaccountasync_17',['DeleteAccountAsync',['../class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5',1,'Nakama.Client.DeleteAccountAsync()'],['../interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613',1,'Nakama.IClient.DeleteAccountAsync()']]],\n  ['deletefriendsasync_18',['DeleteFriendsAsync',['../class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d',1,'Nakama.Client.DeleteFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1',1,'Nakama.IClient.DeleteFriendsAsync()']]],\n  ['deletegroupasync_19',['DeleteGroupAsync',['../class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5',1,'Nakama.Client.DeleteGroupAsync()'],['../interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005',1,'Nakama.IClient.DeleteGroupAsync()']]],\n  ['deleteidentityasync_20',['DeleteIdentityAsync',['../class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6',1,'Satori.Client.DeleteIdentityAsync()'],['../interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3',1,'Satori.IClient.DeleteIdentityAsync()']]],\n  ['deleteleaderboardrecordasync_21',['DeleteLeaderboardRecordAsync',['../class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a',1,'Nakama.Client.DeleteLeaderboardRecordAsync()'],['../interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3',1,'Nakama.IClient.DeleteLeaderboardRecordAsync()']]],\n  ['deletemessageasync_22',['DeleteMessageAsync',['../class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747',1,'Satori.Client.DeleteMessageAsync()'],['../interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5',1,'Satori.IClient.DeleteMessageAsync()']]],\n  ['deletenotificationsasync_23',['DeleteNotificationsAsync',['../class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456',1,'Nakama.Client.DeleteNotificationsAsync()'],['../interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb',1,'Nakama.IClient.DeleteNotificationsAsync()']]],\n  ['deletestorageobjectsasync_24',['DeleteStorageObjectsAsync',['../class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b',1,'Nakama.Client.DeleteStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a',1,'Nakama.IClient.DeleteStorageObjectsAsync()']]],\n  ['deletetournamentrecordasync_25',['DeleteTournamentRecordAsync',['../class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b',1,'Nakama.Client.DeleteTournamentRecordAsync()'],['../interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8',1,'Nakama.IClient.DeleteTournamentRecordAsync()']]],\n  ['demotegroupusersasync_26',['DemoteGroupUsersAsync',['../class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab',1,'Nakama.Client.DemoteGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb',1,'Nakama.IClient.DemoteGroupUsersAsync()']]],\n  ['description_27',['Description',['../interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab',1,'Nakama.IApiUpdateGroupRequest.Description'],['../interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2',1,'Nakama.IApiCreateGroupRequest.Description'],['../interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62',1,'Nakama.IApiGroup.Description'],['../interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356',1,'Nakama.IApiTournament.Description'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4',1,'Nakama.Console.IApiGroup.Description'],['../interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8',1,'Satori.IApiLiveEvent.Description']]],\n  ['descriptor_28',['Descriptor',['../interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777',1,'Nakama::IStream']]],\n  ['details_29',['Details',['../interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471',1,'Nakama.IRpcStatus.Details'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af',1,'Nakama.Console.IRuntimeError.Details'],['../interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9',1,'Satori.IRpcStatus.Details']]],\n  ['deviceid_30',['DeviceId',['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd',1,'Nakama::Console::IConsoleUnlinkDeviceRequest']]],\n  ['deviceids_31',['DeviceIds',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52',1,'Nakama::Console::INakamaconsoleUpdateAccountRequest']]],\n  ['devices_32',['Devices',['../interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a',1,'Nakama.IApiAccount.Devices'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad',1,'Nakama.Console.INakamaapiAccount.Devices']]],\n  ['directmessage_33',['DirectMessage',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa',1,'Nakama']]],\n  ['disabletime_34',['DisableTime',['../interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc',1,'Nakama.IApiAccount.DisableTime'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49',1,'Nakama.Console.INakamaconsoleAccount.DisableTime']]],\n  ['displayname_35',['DisplayName',['../interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904',1,'Nakama.IApiUpdateAccountRequest.DisplayName'],['../interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554',1,'Nakama.IApiUser.DisplayName'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298',1,'Nakama.Console.IApiUser.DisplayName'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.DisplayName']]],\n  ['duration_36',['Duration',['../interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748',1,'Nakama::IApiTournament']]],\n  ['durationsec_37',['DurationSec',['../interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc',1,'Satori::IApiLiveEvent']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_4.js",
    "content": "var searchData=\n[\n  ['edgecount_0',['EdgeCount',['../interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6',1,'Nakama.IApiGroup.EdgeCount'],['../interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a',1,'Nakama.IApiUser.EdgeCount'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be',1,'Nakama.Console.IApiGroup.EdgeCount'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba',1,'Nakama.Console.IApiUser.EdgeCount']]],\n  ['email_1',['Email',['../interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb',1,'Nakama.IApiAccount.Email'],['../interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09',1,'Nakama.IApiAccountEmail.Email'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593',1,'Nakama.Console.INakamaapiAccount.Email'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Email']]],\n  ['endactive_2',['EndActive',['../interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06',1,'Nakama::IApiTournament']]],\n  ['endread_3',['EndRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['endtime_4',['EndTime',['../interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee',1,'Nakama::IApiTournament']]],\n  ['endtimesec_5',['EndTimeSec',['../interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c',1,'Satori::IApiLiveEvent']]],\n  ['endwrite_6',['EndWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['entitytoolargeexception_7',['EntityTooLargeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException(string message, Exception inner)']]],\n  ['entitytoolargeexception_2ecs_8',['EntityTooLargeException.cs',['../_entity_too_large_exception_8cs.html',1,'']]],\n  ['environment_9',['Environment',['../interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33',1,'Nakama.IApiValidatedPurchase.Environment'],['../interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3',1,'Nakama.IApiValidatedSubscription.Environment']]],\n  ['epoch_10',['Epoch',['../class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f',1,'Nakama.Session.Epoch'],['../class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4',1,'Satori.Session.Epoch']]],\n  ['error_11',['Error',['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08',1,'Nakama::Console::IRuntimeError']]],\n  ['errorformat_12',['ErrorFormat',['../interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8',1,'Nakama.ILogger.ErrorFormat()'],['../interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd',1,'Satori.ILogger.ErrorFormat()']]],\n  ['event_13',['Event',['../class_satori_1_1_event.html',1,'Satori.Event'],['../class_satori_1_1_event.html#ae52296874234666607b8115b243beb60',1,'Satori.Event.Event()']]],\n  ['event_2ecs_14',['Event.cs',['../_event_8cs.html',1,'']]],\n  ['eventasync_15',['EventAsync',['../class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6',1,'Nakama.Client.EventAsync()'],['../interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682',1,'Nakama.IClient.EventAsync()'],['../class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc',1,'Satori.Client.EventAsync()'],['../interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92',1,'Satori.IClient.EventAsync()']]],\n  ['events_16',['Events',['../interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2',1,'Satori::IApiEventRequest']]],\n  ['eventsasync_17',['EventsAsync',['../class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1',1,'Satori.Client.EventsAsync()'],['../interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215',1,'Satori.IClient.EventsAsync()']]],\n  ['experiment_18',['EXPERIMENT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864',1,'Satori']]],\n  ['experiment_5fphase_5fvariant_5fflag_19',['EXPERIMENT_PHASE_VARIANT_FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f',1,'Satori']]],\n  ['experiments_20',['Experiments',['../interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2',1,'Satori::IApiExperimentList']]],\n  ['expiretime_21',['ExpireTime',['../interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc',1,'Nakama.ISession.ExpireTime'],['../class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91',1,'Nakama.Session.ExpireTime'],['../interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f',1,'Satori.ISession.ExpireTime'],['../class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e',1,'Satori.Session.ExpireTime']]],\n  ['expirytime_22',['ExpiryTime',['../interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1',1,'Nakama.IApiLeaderboardRecord.ExpiryTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73',1,'Nakama.IApiValidatedSubscription.ExpiryTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3',1,'Nakama.Console.IApiLeaderboardRecord.ExpiryTime']]],\n  ['exponentialbackoff_23',['ExponentialBackoff',['../class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8',1,'Nakama.Retry.ExponentialBackoff'],['../class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27',1,'Satori.Retry.ExponentialBackoff']]],\n  ['external_24',['External',['../interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610',1,'Nakama::IApiEvent']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_5.js",
    "content": "var searchData=\n[\n  ['facebook_5finstant_5fstore_0',['FACEBOOK_INSTANT_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68',1,'Nakama']]],\n  ['facebookid_1',['FacebookId',['../interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194',1,'Nakama.IApiUser.FacebookId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde',1,'Nakama.Console.IApiUser.FacebookId']]],\n  ['facebookinstantgameid_2',['FacebookInstantGameId',['../interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f',1,'Nakama.IApiUser.FacebookInstantGameId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d',1,'Nakama.Console.IApiUser.FacebookInstantGameId']]],\n  ['field_3',['Field',['../interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406',1,'Nakama::Console::IConfigWarning']]],\n  ['flag_4',['FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8',1,'Satori']]],\n  ['flag_5fvariant_5',['FLAG_VARIANT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59',1,'Satori.FLAG_VARIANT'],['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59',1,'Satori.FLAG_VARIANT']]],\n  ['flagname_6',['FlagName',['../interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278',1,'Satori::IApiFlagOverride']]],\n  ['flags_7',['Flags',['../interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774',1,'Satori.IApiFlagList.Flags'],['../interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03',1,'Satori.IApiFlagOverrideList.Flags']]],\n  ['flagvaluechangereasontype_8',['FlagValueChangeReasonType',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f',1,'Satori']]],\n  ['flush_9',['Flush',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['flushasync_10',['FlushAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['followusersasync_11',['FollowUsersAsync',['../interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf',1,'Nakama.ISocket.FollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf',1,'Nakama.ISocket.FollowUsersAsync(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)'],['../class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5',1,'Nakama.Socket.FollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338',1,'Nakama.Socket.FollowUsersAsync(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)']]],\n  ['friends_12',['Friends',['../interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469',1,'Nakama.IApiFriendList.Friends'],['../interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5',1,'Nakama.Console.IApiFriendList.Friends'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088',1,'Nakama.Console.IConsoleAccountExport.Friends']]],\n  ['friendsoffriends_13',['FriendsOfFriends',['../interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39',1,'Nakama::IApiFriendsOfFriendsList']]],\n  ['from_14',['From',['../class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d',1,'Nakama.Socket.From(IClient client)'],['../class_nakama_1_1_socket.html#ac4201f5bdda381252451e4aef465b498',1,'Nakama.Socket.From(IClient client, ISocketAdapter adapter)']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_6.js",
    "content": "var searchData=\n[\n  ['gamecenterid_0',['GamecenterId',['../interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd',1,'Nakama.IApiUser.GamecenterId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995',1,'Nakama.Console.IApiUser.GamecenterId']]],\n  ['getaccountasync_1',['GetAccountAsync',['../class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825',1,'Nakama.Client.GetAccountAsync()'],['../interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e',1,'Nakama.IClient.GetAccountAsync()']]],\n  ['getallexperimentsasync_2',['GetAllExperimentsAsync',['../class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b',1,'Satori.Client.GetAllExperimentsAsync()'],['../interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387',1,'Satori.IClient.GetAllExperimentsAsync()']]],\n  ['getbuffer_3',['GetBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d',1,'Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.GetBuffer()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67',1,'Nakama.Ninja.WebSockets.BufferPool.GetBuffer()'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2',1,'Nakama.Ninja.WebSockets.IBufferPool.GetBuffer()']]],\n  ['getexperimentsasync_4',['GetExperimentsAsync',['../class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a',1,'Satori.Client.GetExperimentsAsync()'],['../interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7',1,'Satori.IClient.GetExperimentsAsync()']]],\n  ['getflagasync_5',['GetFlagAsync',['../class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787',1,'Satori.Client.GetFlagAsync(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536',1,'Satori.Client.GetFlagAsync(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)'],['../interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8',1,'Satori.IClient.GetFlagAsync(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60',1,'Satori.IClient.GetFlagAsync(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)']]],\n  ['getflagdefaultasync_6',['GetFlagDefaultAsync',['../class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3',1,'Satori.Client.GetFlagDefaultAsync(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4',1,'Satori.Client.GetFlagDefaultAsync(string name, string defaultValue, CancellationToken? cancellationToken=default)'],['../interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e',1,'Satori.IClient.GetFlagDefaultAsync(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5',1,'Satori.IClient.GetFlagDefaultAsync(string name, string defaultValue, CancellationToken? cancellationToken=default)']]],\n  ['getflagoverridesasync_7',['GetFlagOverridesAsync',['../class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d',1,'Satori.Client.GetFlagOverridesAsync()'],['../interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c',1,'Satori.IClient.GetFlagOverridesAsync()']]],\n  ['getflagsasync_8',['GetFlagsAsync',['../class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4',1,'Satori.Client.GetFlagsAsync()'],['../interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e',1,'Satori.IClient.GetFlagsAsync()']]],\n  ['getflagsdefaultasync_9',['GetFlagsDefaultAsync',['../class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23',1,'Satori.Client.GetFlagsDefaultAsync()'],['../interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a',1,'Satori.IClient.GetFlagsDefaultAsync()']]],\n  ['getliveeventsasync_10',['GetLiveEventsAsync',['../class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d',1,'Satori.Client.GetLiveEventsAsync()'],['../interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e',1,'Satori.IClient.GetLiveEventsAsync()']]],\n  ['getmessagelistasync_11',['GetMessageListAsync',['../class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa',1,'Satori.Client.GetMessageListAsync()'],['../interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233',1,'Satori.IClient.GetMessageListAsync()']]],\n  ['getpathfromheader_12',['GetPathFromHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['getstream_13',['GetStream',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466',1,'Nakama::Ninja::WebSockets::WebSocketClientFactory']]],\n  ['getsubprotocols_14',['GetSubProtocols',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['getsubscriptionasync_15',['GetSubscriptionAsync',['../class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31',1,'Nakama.Client.GetSubscriptionAsync()'],['../interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e',1,'Nakama.IClient.GetSubscriptionAsync()']]],\n  ['getusersasync_16',['GetUsersAsync',['../class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697',1,'Nakama.Client.GetUsersAsync()'],['../interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2',1,'Nakama.IClient.GetUsersAsync()']]],\n  ['globalretryconfiguration_17',['GlobalRetryConfiguration',['../class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8',1,'Nakama.Client.GlobalRetryConfiguration'],['../interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa',1,'Nakama.IClient.GlobalRetryConfiguration'],['../class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac',1,'Satori.Client.GlobalRetryConfiguration'],['../interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9',1,'Satori.IClient.GlobalRetryConfiguration']]],\n  ['google_5fplay_5fstore_18',['GOOGLE_PLAY_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f',1,'Nakama']]],\n  ['googleid_19',['GoogleId',['../interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6',1,'Nakama.IApiUser.GoogleId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185',1,'Nakama.Console.IApiUser.GoogleId']]],\n  ['goroutinecount_20',['GoroutineCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9',1,'Nakama::Console::IStatusListStatus']]],\n  ['group_21',['Group',['../interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647',1,'Nakama.IUserGroupListUserGroup.Group'],['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827',1,'Nakama.Console.IUserGroupListUserGroup.Group'],['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0',1,'Nakama.Group']]],\n  ['groupid_22',['GroupId',['../interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5',1,'Nakama.IApiChannelMessage.GroupId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74',1,'Nakama.Console.IApiChannelMessage.GroupId'],['../interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312',1,'Nakama.IChannel.GroupId'],['../interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf',1,'Nakama.IChannelMessageAck.GroupId'],['../interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000',1,'Nakama.IChannelPresenceEvent.GroupId']]],\n  ['groups_23',['Groups',['../interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b',1,'Nakama.IApiGroupList.Groups'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021',1,'Nakama.Console.IConsoleAccountExport.Groups']]],\n  ['groupusers_24',['GroupUsers',['../interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3',1,'Nakama::IApiGroupUserList']]],\n  ['grpcstatuscode_25',['GrpcStatusCode',['../class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14',1,'Nakama.ApiResponseException.GrpcStatusCode'],['../class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c',1,'Nakama.Console.ApiResponseException.GrpcStatusCode'],['../class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042',1,'Satori.ApiResponseException.GrpcStatusCode']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_7.js",
    "content": "var searchData=\n[\n  ['handlername_0',['HandlerName',['../interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753',1,'Nakama::IApiMatch']]],\n  ['hasexpired_1',['HasExpired',['../interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6',1,'Nakama.ISession.HasExpired()'],['../class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929',1,'Nakama.Session.HasExpired()'],['../interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5',1,'Satori.ISession.HasExpired()'],['../class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407',1,'Satori.Session.HasExpired()']]],\n  ['hasrefreshexpired_2',['HasRefreshExpired',['../interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35',1,'Nakama.ISession.HasRefreshExpired()'],['../class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc',1,'Nakama.Session.HasRefreshExpired()'],['../interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac',1,'Satori.ISession.HasRefreshExpired()'],['../class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe',1,'Satori.Session.HasRefreshExpired()']]],\n  ['health_3',['Health',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37',1,'Nakama::Console::IStatusListStatus']]],\n  ['hidden_4',['Hidden',['../interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e',1,'Nakama.IParty.Hidden'],['../interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d',1,'Nakama.IPartyUpdate.Hidden']]],\n  ['host_5',['Host',['../class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f',1,'Nakama.Client.Host'],['../interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8',1,'Nakama.IClient.Host'],['../class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561',1,'Satori.Client.Host'],['../interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab',1,'Satori.IClient.Host']]],\n  ['httpheader_6',['HttpHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['httphelper_7',['HttpHelper',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html',1,'Nakama::Ninja::WebSockets']]],\n  ['httphelper_2ecs_8',['HttpHelper.cs',['../_http_helper_8cs.html',1,'']]],\n  ['httpkey_9',['HttpKey',['../interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129',1,'Nakama::IApiRpc']]],\n  ['httprequestadapter_10',['HttpRequestAdapter',['../class_nakama_1_1_http_request_adapter.html',1,'Nakama.HttpRequestAdapter'],['../class_satori_1_1_http_request_adapter.html',1,'Satori.HttpRequestAdapter'],['../class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a',1,'Nakama.HttpRequestAdapter.HttpRequestAdapter()'],['../class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef',1,'Satori.HttpRequestAdapter.HttpRequestAdapter()']]],\n  ['huawei_5fapp_5fgallery_11',['HUAWEI_APP_GALLERY',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_8.js",
    "content": "var searchData=\n[\n  ['iapiaccount_0',['IApiAccount',['../interface_nakama_1_1_i_api_account.html',1,'Nakama']]],\n  ['iapiaccountapple_1',['IApiAccountApple',['../interface_nakama_1_1_i_api_account_apple.html',1,'Nakama']]],\n  ['iapiaccountcustom_2',['IApiAccountCustom',['../interface_nakama_1_1_i_api_account_custom.html',1,'Nakama']]],\n  ['iapiaccountdevice_3',['IApiAccountDevice',['../interface_nakama_1_1_console_1_1_i_api_account_device.html',1,'Nakama.Console.IApiAccountDevice'],['../interface_nakama_1_1_i_api_account_device.html',1,'Nakama.IApiAccountDevice']]],\n  ['iapiaccountemail_4',['IApiAccountEmail',['../interface_nakama_1_1_i_api_account_email.html',1,'Nakama']]],\n  ['iapiaccountfacebook_5',['IApiAccountFacebook',['../interface_nakama_1_1_i_api_account_facebook.html',1,'Nakama']]],\n  ['iapiaccountfacebookinstantgame_6',['IApiAccountFacebookInstantGame',['../interface_nakama_1_1_i_api_account_facebook_instant_game.html',1,'Nakama']]],\n  ['iapiaccountgamecenter_7',['IApiAccountGameCenter',['../interface_nakama_1_1_i_api_account_game_center.html',1,'Nakama']]],\n  ['iapiaccountgoogle_8',['IApiAccountGoogle',['../interface_nakama_1_1_i_api_account_google.html',1,'Nakama']]],\n  ['iapiaccountsteam_9',['IApiAccountSteam',['../interface_nakama_1_1_i_api_account_steam.html',1,'Nakama']]],\n  ['iapiauthenticatelogoutrequest_10',['IApiAuthenticateLogoutRequest',['../interface_satori_1_1_i_api_authenticate_logout_request.html',1,'Satori']]],\n  ['iapiauthenticaterefreshrequest_11',['IApiAuthenticateRefreshRequest',['../interface_satori_1_1_i_api_authenticate_refresh_request.html',1,'Satori']]],\n  ['iapiauthenticaterequest_12',['IApiAuthenticateRequest',['../interface_satori_1_1_i_api_authenticate_request.html',1,'Satori']]],\n  ['iapichannelmessage_13',['IApiChannelMessage',['../interface_nakama_1_1_console_1_1_i_api_channel_message.html',1,'Nakama.Console.IApiChannelMessage'],['../interface_nakama_1_1_i_api_channel_message.html',1,'Nakama.IApiChannelMessage']]],\n  ['iapichannelmessagelist_14',['IApiChannelMessageList',['../interface_nakama_1_1_i_api_channel_message_list.html',1,'Nakama']]],\n  ['iapicreategrouprequest_15',['IApiCreateGroupRequest',['../interface_nakama_1_1_i_api_create_group_request.html',1,'Nakama']]],\n  ['iapideletestorageobjectid_16',['IApiDeleteStorageObjectId',['../interface_nakama_1_1_i_api_delete_storage_object_id.html',1,'Nakama']]],\n  ['iapideletestorageobjectsrequest_17',['IApiDeleteStorageObjectsRequest',['../interface_nakama_1_1_i_api_delete_storage_objects_request.html',1,'Nakama']]],\n  ['iapievent_18',['IApiEvent',['../interface_nakama_1_1_i_api_event.html',1,'Nakama.IApiEvent'],['../interface_satori_1_1_i_api_event.html',1,'Satori.IApiEvent']]],\n  ['iapieventrequest_19',['IApiEventRequest',['../interface_satori_1_1_i_api_event_request.html',1,'Satori']]],\n  ['iapiexperiment_20',['IApiExperiment',['../interface_satori_1_1_i_api_experiment.html',1,'Satori']]],\n  ['iapiexperimentlist_21',['IApiExperimentList',['../interface_satori_1_1_i_api_experiment_list.html',1,'Satori']]],\n  ['iapiflag_22',['IApiFlag',['../interface_satori_1_1_i_api_flag.html',1,'Satori']]],\n  ['iapiflaglist_23',['IApiFlagList',['../interface_satori_1_1_i_api_flag_list.html',1,'Satori']]],\n  ['iapiflagoverride_24',['IApiFlagOverride',['../interface_satori_1_1_i_api_flag_override.html',1,'Satori']]],\n  ['iapiflagoverridelist_25',['IApiFlagOverrideList',['../interface_satori_1_1_i_api_flag_override_list.html',1,'Satori']]],\n  ['iapiflagoverridevalue_26',['IApiFlagOverrideValue',['../interface_satori_1_1_i_api_flag_override_value.html',1,'Satori']]],\n  ['iapifriend_27',['IApiFriend',['../interface_nakama_1_1_console_1_1_i_api_friend.html',1,'Nakama.Console.IApiFriend'],['../interface_nakama_1_1_i_api_friend.html',1,'Nakama.IApiFriend']]],\n  ['iapifriendlist_28',['IApiFriendList',['../interface_nakama_1_1_console_1_1_i_api_friend_list.html',1,'Nakama.Console.IApiFriendList'],['../interface_nakama_1_1_i_api_friend_list.html',1,'Nakama.IApiFriendList']]],\n  ['iapifriendsoffriendslist_29',['IApiFriendsOfFriendsList',['../interface_nakama_1_1_i_api_friends_of_friends_list.html',1,'Nakama']]],\n  ['iapigetmessagelistresponse_30',['IApiGetMessageListResponse',['../interface_satori_1_1_i_api_get_message_list_response.html',1,'Satori']]],\n  ['iapigroup_31',['IApiGroup',['../interface_nakama_1_1_console_1_1_i_api_group.html',1,'Nakama.Console.IApiGroup'],['../interface_nakama_1_1_i_api_group.html',1,'Nakama.IApiGroup']]],\n  ['iapigrouplist_32',['IApiGroupList',['../interface_nakama_1_1_i_api_group_list.html',1,'Nakama']]],\n  ['iapigroupuserlist_33',['IApiGroupUserList',['../interface_nakama_1_1_i_api_group_user_list.html',1,'Nakama']]],\n  ['iapiidentifyrequest_34',['IApiIdentifyRequest',['../interface_satori_1_1_i_api_identify_request.html',1,'Satori']]],\n  ['iapileaderboardrecord_35',['IApiLeaderboardRecord',['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html',1,'Nakama.Console.IApiLeaderboardRecord'],['../interface_nakama_1_1_i_api_leaderboard_record.html',1,'Nakama.IApiLeaderboardRecord']]],\n  ['iapileaderboardrecordlist_36',['IApiLeaderboardRecordList',['../interface_nakama_1_1_i_api_leaderboard_record_list.html',1,'Nakama']]],\n  ['iapilinksteamrequest_37',['IApiLinkSteamRequest',['../interface_nakama_1_1_i_api_link_steam_request.html',1,'Nakama']]],\n  ['iapilistsubscriptionsrequest_38',['IApiListSubscriptionsRequest',['../interface_nakama_1_1_i_api_list_subscriptions_request.html',1,'Nakama']]],\n  ['iapiliveevent_39',['IApiLiveEvent',['../interface_satori_1_1_i_api_live_event.html',1,'Satori']]],\n  ['iapiliveeventlist_40',['IApiLiveEventList',['../interface_satori_1_1_i_api_live_event_list.html',1,'Satori']]],\n  ['iapimatch_41',['IApiMatch',['../interface_nakama_1_1_i_api_match.html',1,'Nakama']]],\n  ['iapimatchlist_42',['IApiMatchList',['../interface_nakama_1_1_i_api_match_list.html',1,'Nakama']]],\n  ['iapimatchmakercompletionstats_43',['IApiMatchmakerCompletionStats',['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html',1,'Nakama']]],\n  ['iapimatchmakerstats_44',['IApiMatchmakerStats',['../interface_nakama_1_1_i_api_matchmaker_stats.html',1,'Nakama']]],\n  ['iapimessage_45',['IApiMessage',['../interface_satori_1_1_i_api_message.html',1,'Satori']]],\n  ['iapinotification_46',['IApiNotification',['../interface_nakama_1_1_console_1_1_i_api_notification.html',1,'Nakama.Console.IApiNotification'],['../interface_nakama_1_1_i_api_notification.html',1,'Nakama.IApiNotification']]],\n  ['iapinotificationlist_47',['IApiNotificationList',['../interface_nakama_1_1_i_api_notification_list.html',1,'Nakama']]],\n  ['iapiparty_48',['IApiParty',['../interface_nakama_1_1_i_api_party.html',1,'Nakama']]],\n  ['iapipartylist_49',['IApiPartyList',['../interface_nakama_1_1_i_api_party_list.html',1,'Nakama']]],\n  ['iapiproperties_50',['IApiProperties',['../interface_satori_1_1_i_api_properties.html',1,'Satori']]],\n  ['iapireadstorageobjectid_51',['IApiReadStorageObjectId',['../interface_nakama_1_1_i_api_read_storage_object_id.html',1,'Nakama']]],\n  ['iapireadstorageobjectsrequest_52',['IApiReadStorageObjectsRequest',['../interface_nakama_1_1_i_api_read_storage_objects_request.html',1,'Nakama']]],\n  ['iapirpc_53',['IApiRpc',['../interface_nakama_1_1_i_api_rpc.html',1,'Nakama']]],\n  ['iapisession_54',['IApiSession',['../interface_nakama_1_1_i_api_session.html',1,'Nakama.IApiSession'],['../interface_satori_1_1_i_api_session.html',1,'Satori.IApiSession']]],\n  ['iapisessionlogoutrequest_55',['IApiSessionLogoutRequest',['../interface_nakama_1_1_i_api_session_logout_request.html',1,'Nakama']]],\n  ['iapisessionrefreshrequest_56',['IApiSessionRefreshRequest',['../interface_nakama_1_1_i_api_session_refresh_request.html',1,'Nakama']]],\n  ['iapistorageobject_57',['IApiStorageObject',['../interface_nakama_1_1_console_1_1_i_api_storage_object.html',1,'Nakama.Console.IApiStorageObject'],['../interface_nakama_1_1_i_api_storage_object.html',1,'Nakama.IApiStorageObject']]],\n  ['iapistorageobjectack_58',['IApiStorageObjectAck',['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html',1,'Nakama.Console.IApiStorageObjectAck'],['../interface_nakama_1_1_i_api_storage_object_ack.html',1,'Nakama.IApiStorageObjectAck']]],\n  ['iapistorageobjectacks_59',['IApiStorageObjectAcks',['../interface_nakama_1_1_i_api_storage_object_acks.html',1,'Nakama']]],\n  ['iapistorageobjectlist_60',['IApiStorageObjectList',['../interface_nakama_1_1_i_api_storage_object_list.html',1,'Nakama']]],\n  ['iapistorageobjects_61',['IApiStorageObjects',['../interface_nakama_1_1_i_api_storage_objects.html',1,'Nakama']]],\n  ['iapisubscriptionlist_62',['IApiSubscriptionList',['../interface_nakama_1_1_i_api_subscription_list.html',1,'Nakama']]],\n  ['iapitournament_63',['IApiTournament',['../interface_nakama_1_1_i_api_tournament.html',1,'Nakama']]],\n  ['iapitournamentlist_64',['IApiTournamentList',['../interface_nakama_1_1_i_api_tournament_list.html',1,'Nakama']]],\n  ['iapitournamentrecordlist_65',['IApiTournamentRecordList',['../interface_nakama_1_1_i_api_tournament_record_list.html',1,'Nakama']]],\n  ['iapiupdateaccountrequest_66',['IApiUpdateAccountRequest',['../interface_nakama_1_1_i_api_update_account_request.html',1,'Nakama']]],\n  ['iapiupdategrouprequest_67',['IApiUpdateGroupRequest',['../interface_nakama_1_1_i_api_update_group_request.html',1,'Nakama']]],\n  ['iapiupdatemessagerequest_68',['IApiUpdateMessageRequest',['../interface_satori_1_1_i_api_update_message_request.html',1,'Satori']]],\n  ['iapiupdatepropertiesrequest_69',['IApiUpdatePropertiesRequest',['../interface_satori_1_1_i_api_update_properties_request.html',1,'Satori']]],\n  ['iapiuser_70',['IApiUser',['../interface_nakama_1_1_console_1_1_i_api_user.html',1,'Nakama.Console.IApiUser'],['../interface_nakama_1_1_i_api_user.html',1,'Nakama.IApiUser']]],\n  ['iapiusergrouplist_71',['IApiUserGroupList',['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html',1,'Nakama.Console.IApiUserGroupList'],['../interface_nakama_1_1_i_api_user_group_list.html',1,'Nakama.IApiUserGroupList']]],\n  ['iapiusers_72',['IApiUsers',['../interface_nakama_1_1_i_api_users.html',1,'Nakama']]],\n  ['iapivalidatedpurchase_73',['IApiValidatedPurchase',['../interface_nakama_1_1_i_api_validated_purchase.html',1,'Nakama']]],\n  ['iapivalidatedsubscription_74',['IApiValidatedSubscription',['../interface_nakama_1_1_i_api_validated_subscription.html',1,'Nakama']]],\n  ['iapivalidatepurchaseapplerequest_75',['IApiValidatePurchaseAppleRequest',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasefacebookinstantrequest_76',['IApiValidatePurchaseFacebookInstantRequest',['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasegooglerequest_77',['IApiValidatePurchaseGoogleRequest',['../interface_nakama_1_1_i_api_validate_purchase_google_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasehuaweirequest_78',['IApiValidatePurchaseHuaweiRequest',['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html',1,'Nakama']]],\n  ['iapivalidatepurchaseresponse_79',['IApiValidatePurchaseResponse',['../interface_nakama_1_1_i_api_validate_purchase_response.html',1,'Nakama']]],\n  ['iapivalidatesubscriptionapplerequest_80',['IApiValidateSubscriptionAppleRequest',['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html',1,'Nakama']]],\n  ['iapivalidatesubscriptiongooglerequest_81',['IApiValidateSubscriptionGoogleRequest',['../interface_nakama_1_1_i_api_validate_subscription_google_request.html',1,'Nakama']]],\n  ['iapivalidatesubscriptionresponse_82',['IApiValidateSubscriptionResponse',['../interface_nakama_1_1_i_api_validate_subscription_response.html',1,'Nakama']]],\n  ['iapiwritestorageobject_83',['IApiWriteStorageObject',['../interface_nakama_1_1_i_api_write_storage_object.html',1,'Nakama']]],\n  ['iapiwritestorageobjectsrequest_84',['IApiWriteStorageObjectsRequest',['../interface_nakama_1_1_i_api_write_storage_objects_request.html',1,'Nakama']]],\n  ['ibufferpool_85',['IBufferPool',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html',1,'Nakama::Ninja::WebSockets']]],\n  ['ibufferpool_2ecs_86',['IBufferPool.cs',['../_i_buffer_pool_8cs.html',1,'']]],\n  ['ichannel_87',['IChannel',['../interface_nakama_1_1_i_channel.html',1,'Nakama']]],\n  ['ichannel_2ecs_88',['IChannel.cs',['../_i_channel_8cs.html',1,'']]],\n  ['ichannelmessageack_89',['IChannelMessageAck',['../interface_nakama_1_1_i_channel_message_ack.html',1,'Nakama']]],\n  ['ichannelmessageack_2ecs_90',['IChannelMessageAck.cs',['../_i_channel_message_ack_8cs.html',1,'']]],\n  ['ichannelpresenceevent_91',['IChannelPresenceEvent',['../interface_nakama_1_1_i_channel_presence_event.html',1,'Nakama']]],\n  ['ichannelpresenceevent_2ecs_92',['IChannelPresenceEvent.cs',['../_i_channel_presence_event_8cs.html',1,'']]],\n  ['iclient_93',['IClient',['../interface_nakama_1_1_i_client.html',1,'Nakama.IClient'],['../interface_satori_1_1_i_client.html',1,'Satori.IClient']]],\n  ['iconfigwarning_94',['IConfigWarning',['../interface_nakama_1_1_console_1_1_i_config_warning.html',1,'Nakama::Console']]],\n  ['iconsoleaccountexport_95',['IConsoleAccountExport',['../interface_nakama_1_1_console_1_1_i_console_account_export.html',1,'Nakama::Console']]],\n  ['iconsoleauthenticaterequest_96',['IConsoleAuthenticateRequest',['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html',1,'Nakama::Console']]],\n  ['iconsoleconfig_97',['IConsoleConfig',['../interface_nakama_1_1_console_1_1_i_console_config.html',1,'Nakama::Console']]],\n  ['iconsoleconsolesession_98',['IConsoleConsoleSession',['../interface_nakama_1_1_console_1_1_i_console_console_session.html',1,'Nakama::Console']]],\n  ['iconsolestatuslist_99',['IConsoleStatusList',['../interface_nakama_1_1_console_1_1_i_console_status_list.html',1,'Nakama::Console']]],\n  ['iconsolestoragelist_100',['IConsoleStorageList',['../interface_nakama_1_1_console_1_1_i_console_storage_list.html',1,'Nakama::Console']]],\n  ['iconsoleunlinkdevicerequest_101',['IConsoleUnlinkDeviceRequest',['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html',1,'Nakama::Console']]],\n  ['iconsoleuserlist_102',['IConsoleUserList',['../interface_nakama_1_1_console_1_1_i_console_user_list.html',1,'Nakama::Console']]],\n  ['iconsolewalletledger_103',['IConsoleWalletLedger',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html',1,'Nakama::Console']]],\n  ['iconsolewalletledgerlist_104',['IConsoleWalletLedgerList',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html',1,'Nakama::Console']]],\n  ['iconsolewritestorageobjectrequest_105',['IConsoleWriteStorageObjectRequest',['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html',1,'Nakama::Console']]],\n  ['id_106',['Id',['../interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262',1,'Nakama.IApiAccountCustom.Id'],['../interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74',1,'Nakama.IApiAccountDevice.Id'],['../interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d',1,'Nakama.IApiGroup.Id'],['../interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab',1,'Nakama.IApiNotification.Id'],['../interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274',1,'Nakama.IApiRpc.Id'],['../interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57',1,'Nakama.IApiTournament.Id'],['../interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05',1,'Nakama.IApiUser.Id'],['../interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133',1,'Nakama.Console.IApiAccountDevice.Id'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce',1,'Nakama.Console.IApiGroup.Id'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0',1,'Nakama.Console.IApiNotification.Id'],['../interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555',1,'Nakama.Console.IApiUser.Id'],['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7',1,'Nakama.Console.IConsoleUnlinkDeviceRequest.Id'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174',1,'Nakama.Console.IConsoleWalletLedger.Id'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Id'],['../interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5',1,'Nakama.IChannel.Id'],['../interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb',1,'Nakama.IMatch.Id'],['../interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf',1,'Nakama.IParty.Id'],['../interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c',1,'Satori.IApiAuthenticateRequest.Id'],['../interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629',1,'Satori.IApiEvent.Id'],['../interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603',1,'Satori.IApiIdentifyRequest.Id'],['../interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7',1,'Satori.IApiLiveEvent.Id'],['../interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae',1,'Satori.IApiMessage.Id'],['../class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d',1,'Satori.Event.Id']]],\n  ['identifyasync_107',['IdentifyAsync',['../class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b',1,'Satori.Client.IdentifyAsync()'],['../interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207',1,'Satori.IClient.IdentifyAsync()']]],\n  ['identityid_108',['IdentityId',['../interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e',1,'Satori.ISession.IdentityId'],['../class_satori_1_1_session.html#a17977d09db716a100515246046689acb',1,'Satori.Session.IdentityId']]],\n  ['iflagvaluechangereason_109',['IFlagValueChangeReason',['../interface_satori_1_1_i_flag_value_change_reason.html',1,'Satori']]],\n  ['ifriendsoffriendslistfriendoffriend_110',['IFriendsOfFriendsListFriendOfFriend',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html',1,'Nakama']]],\n  ['igroupuserlistgroupuser_111',['IGroupUserListGroupUser',['../interface_nakama_1_1_i_group_user_list_group_user.html',1,'Nakama']]],\n  ['ihttpadapter_112',['IHttpAdapter',['../interface_nakama_1_1_i_http_adapter.html',1,'Nakama.IHttpAdapter'],['../interface_satori_1_1_i_http_adapter.html',1,'Satori.IHttpAdapter']]],\n  ['ilogger_113',['ILogger',['../interface_nakama_1_1_i_logger.html',1,'Nakama.ILogger'],['../interface_satori_1_1_i_logger.html',1,'Satori.ILogger']]],\n  ['imageurl_114',['ImageUrl',['../interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee',1,'Satori::IApiMessage']]],\n  ['imatch_115',['IMatch',['../interface_nakama_1_1_i_match.html',1,'Nakama']]],\n  ['imatch_2ecs_116',['IMatch.cs',['../_i_match_8cs.html',1,'']]],\n  ['imatchmakermatched_117',['IMatchmakerMatched',['../interface_nakama_1_1_i_matchmaker_matched.html',1,'Nakama']]],\n  ['imatchmakermatched_2ecs_118',['IMatchmakerMatched.cs',['../_i_matchmaker_matched_8cs.html',1,'']]],\n  ['imatchmakerticket_119',['IMatchmakerTicket',['../interface_nakama_1_1_i_matchmaker_ticket.html',1,'Nakama']]],\n  ['imatchmakerticket_2ecs_120',['IMatchmakerTicket.cs',['../_i_matchmaker_ticket_8cs.html',1,'']]],\n  ['imatchmakeruser_121',['IMatchmakerUser',['../interface_nakama_1_1_i_matchmaker_user.html',1,'Nakama']]],\n  ['imatchpresenceevent_122',['IMatchPresenceEvent',['../interface_nakama_1_1_i_match_presence_event.html',1,'Nakama']]],\n  ['imatchpresenceevent_2ecs_123',['IMatchPresenceEvent.cs',['../_i_match_presence_event_8cs.html',1,'']]],\n  ['imatchstate_124',['IMatchState',['../interface_nakama_1_1_i_match_state.html',1,'Nakama']]],\n  ['imatchstate_2ecs_125',['IMatchState.cs',['../_i_match_state_8cs.html',1,'']]],\n  ['importfacebookfriendsasync_126',['ImportFacebookFriendsAsync',['../class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271',1,'Nakama.Client.ImportFacebookFriendsAsync()'],['../interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233',1,'Nakama.IClient.ImportFacebookFriendsAsync()']]],\n  ['importsteamfriendsasync_127',['ImportSteamFriendsAsync',['../class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0',1,'Nakama.Client.ImportSteamFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214',1,'Nakama.IClient.ImportSteamFriendsAsync()']]],\n  ['inakamaapiaccount_128',['INakamaapiAccount',['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html',1,'Nakama::Console']]],\n  ['inakamaconsoleaccount_129',['INakamaconsoleAccount',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html',1,'Nakama::Console']]],\n  ['inakamaconsoleupdateaccountrequest_130',['INakamaconsoleUpdateAccountRequest',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html',1,'Nakama::Console']]],\n  ['includeexceptionincloseresponse_131',['IncludeExceptionInCloseResponse',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions.IncludeExceptionInCloseResponse'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions.IncludeExceptionInCloseResponse']]],\n  ['increment_132',['INCREMENT',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534',1,'Nakama']]],\n  ['infoformat_133',['InfoFormat',['../interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901',1,'Nakama.ILogger.InfoFormat()'],['../interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb',1,'Satori.ILogger.InfoFormat()']]],\n  ['initializelifetimeservice_134',['InitializeLifetimeService',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['invalidhttpresponsecodeexception_135',['InvalidHttpResponseCodeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string responseCode, string responseDetails, string responseHeader)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string message, Exception inner)']]],\n  ['invalidhttpresponsecodeexception_2ecs_136',['InvalidHttpResponseCodeException.cs',['../_invalid_http_response_code_exception_8cs.html',1,'']]],\n  ['iparty_137',['IParty',['../interface_nakama_1_1_i_party.html',1,'Nakama']]],\n  ['iparty_2ecs_138',['IParty.cs',['../_i_party_8cs.html',1,'']]],\n  ['ipartyclose_139',['IPartyClose',['../interface_nakama_1_1_i_party_close.html',1,'Nakama']]],\n  ['ipartyclose_2ecs_140',['IPartyClose.cs',['../_i_party_close_8cs.html',1,'']]],\n  ['ipartydata_141',['IPartyData',['../interface_nakama_1_1_i_party_data.html',1,'Nakama']]],\n  ['ipartydata_2ecs_142',['IPartyData.cs',['../_i_party_data_8cs.html',1,'']]],\n  ['ipartyjoinrequest_143',['IPartyJoinRequest',['../interface_nakama_1_1_i_party_join_request.html',1,'Nakama']]],\n  ['ipartyjoinrequest_2ecs_144',['IPartyJoinRequest.cs',['../_i_party_join_request_8cs.html',1,'']]],\n  ['ipartyleader_145',['IPartyLeader',['../interface_nakama_1_1_i_party_leader.html',1,'Nakama']]],\n  ['ipartyleader_2ecs_146',['IPartyLeader.cs',['../_i_party_leader_8cs.html',1,'']]],\n  ['ipartymatchmakerticket_147',['IPartyMatchmakerTicket',['../interface_nakama_1_1_i_party_matchmaker_ticket.html',1,'Nakama']]],\n  ['ipartymatchmakerticket_2ecs_148',['IPartyMatchmakerTicket.cs',['../_i_party_matchmaker_ticket_8cs.html',1,'']]],\n  ['ipartypresenceevent_149',['IPartyPresenceEvent',['../interface_nakama_1_1_i_party_presence_event.html',1,'Nakama']]],\n  ['ipartypresenceevent_2ecs_150',['IPartyPresenceEvent.cs',['../_i_party_presence_event_8cs.html',1,'']]],\n  ['ipartyupdate_151',['IPartyUpdate',['../interface_nakama_1_1_i_party_update.html',1,'Nakama']]],\n  ['ipartyupdate_2ecs_152',['IPartyUpdate.cs',['../_i_party_update_8cs.html',1,'']]],\n  ['ipingpongmanager_153',['IPingPongManager',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html',1,'Nakama::Ninja::WebSockets']]],\n  ['ipingpongmanager_2ecs_154',['IPingPongManager.cs',['../_i_ping_pong_manager_8cs.html',1,'']]],\n  ['iprotobufany_155',['IProtobufAny',['../interface_nakama_1_1_console_1_1_i_protobuf_any.html',1,'Nakama.Console.IProtobufAny'],['../interface_nakama_1_1_i_protobuf_any.html',1,'Nakama.IProtobufAny'],['../interface_satori_1_1_i_protobuf_any.html',1,'Satori.IProtobufAny']]],\n  ['irpcstatus_156',['IRpcStatus',['../interface_nakama_1_1_i_rpc_status.html',1,'Nakama.IRpcStatus'],['../interface_satori_1_1_i_rpc_status.html',1,'Satori.IRpcStatus']]],\n  ['iruntimeerror_157',['IRuntimeError',['../interface_nakama_1_1_console_1_1_i_runtime_error.html',1,'Nakama::Console']]],\n  ['isconnected_158',['IsConnected',['../interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943',1,'Nakama.ISocket.IsConnected'],['../interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2',1,'Nakama.ISocketAdapter.IsConnected'],['../class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639',1,'Nakama.Socket.IsConnected'],['../class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3',1,'Nakama.WebSocketAdapter.IsConnected'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced',1,'Nakama.WebSocketStdlibAdapter.IsConnected']]],\n  ['isconnecting_159',['IsConnecting',['../interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140',1,'Nakama.ISocket.IsConnecting'],['../interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2',1,'Nakama.ISocketAdapter.IsConnecting'],['../class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195',1,'Nakama.Socket.IsConnecting'],['../class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8',1,'Nakama.WebSocketAdapter.IsConnecting'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74',1,'Nakama.WebSocketStdlibAdapter.IsConnecting']]],\n  ['isession_160',['ISession',['../interface_nakama_1_1_i_session.html',1,'Nakama.ISession'],['../interface_satori_1_1_i_session.html',1,'Satori.ISession']]],\n  ['isexpired_161',['IsExpired',['../interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791',1,'Nakama.ISession.IsExpired'],['../class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129',1,'Nakama.Session.IsExpired'],['../interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d',1,'Satori.ISession.IsExpired'],['../class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135',1,'Satori.Session.IsExpired']]],\n  ['isocket_162',['ISocket',['../interface_nakama_1_1_i_socket.html',1,'Nakama']]],\n  ['isocket_2ecs_163',['ISocket.cs',['../_i_socket_8cs.html',1,'']]],\n  ['isocketadapter_164',['ISocketAdapter',['../interface_nakama_1_1_i_socket_adapter.html',1,'Nakama']]],\n  ['isocketadapter_2ecs_165',['ISocketAdapter.cs',['../_i_socket_adapter_8cs.html',1,'']]],\n  ['isrefreshexpired_166',['IsRefreshExpired',['../interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813',1,'Nakama.ISession.IsRefreshExpired'],['../class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac',1,'Nakama.Session.IsRefreshExpired'],['../interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779',1,'Satori.ISession.IsRefreshExpired'],['../class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9',1,'Satori.Session.IsRefreshExpired']]],\n  ['istatus_167',['IStatus',['../interface_nakama_1_1_i_status.html',1,'Nakama']]],\n  ['istatus_2ecs_168',['IStatus.cs',['../_i_status_8cs.html',1,'']]],\n  ['istatusliststatus_169',['IStatusListStatus',['../interface_nakama_1_1_console_1_1_i_status_list_status.html',1,'Nakama::Console']]],\n  ['istatuspresenceevent_170',['IStatusPresenceEvent',['../interface_nakama_1_1_i_status_presence_event.html',1,'Nakama']]],\n  ['istatuspresenceevent_2ecs_171',['IStatusPresenceEvent.cs',['../_i_status_presence_event_8cs.html',1,'']]],\n  ['istransientexception_172',['IsTransientException',['../class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269',1,'Nakama.HttpRequestAdapter.IsTransientException()'],['../class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b',1,'Satori.HttpRequestAdapter.IsTransientException()']]],\n  ['istream_173',['IStream',['../interface_nakama_1_1_i_stream.html',1,'Nakama']]],\n  ['istreampresenceevent_174',['IStreamPresenceEvent',['../interface_nakama_1_1_i_stream_presence_event.html',1,'Nakama']]],\n  ['istreampresenceevent_2ecs_175',['IStreamPresenceEvent.cs',['../_i_stream_presence_event_8cs.html',1,'']]],\n  ['istreamstate_176',['IStreamState',['../interface_nakama_1_1_i_stream_state.html',1,'Nakama']]],\n  ['iswebsocketrequest_177',['IsWebSocketRequest',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['iswebsocketupgraderequest_178',['IsWebSocketUpgradeRequest',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['items_179',['Items',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b',1,'Nakama::Console::IConsoleWalletLedgerList']]],\n  ['iusergrouplistusergroup_180',['IUserGroupListUserGroup',['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html',1,'Nakama.Console.IUserGroupListUserGroup'],['../interface_nakama_1_1_i_user_group_list_user_group.html',1,'Nakama.IUserGroupListUserGroup']]],\n  ['iuserpresence_181',['IUserPresence',['../interface_nakama_1_1_i_user_presence.html',1,'Nakama']]],\n  ['iuserpresence_2ecs_182',['IUserPresence.cs',['../_i_user_presence_8cs.html',1,'']]],\n  ['iwebsocketclientfactory_183',['IWebSocketClientFactory',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['iwebsocketclientfactory_2ecs_184',['IWebSocketClientFactory.cs',['../_i_web_socket_client_factory_8cs.html',1,'']]],\n  ['iwebsocketserverfactory_185',['IWebSocketServerFactory',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['iwebsocketserverfactory_2ecs_186',['IWebSocketServerFactory.cs',['../_i_web_socket_server_factory_8cs.html',1,'']]],\n  ['iwriteleaderboardrecordrequestleaderboardrecordwrite_187',['IWriteLeaderboardRecordRequestLeaderboardRecordWrite',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html',1,'Nakama']]],\n  ['iwritetournamentrecordrequesttournamentrecordwrite_188',['IWriteTournamentRecordRequestTournamentRecordWrite',['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_9.js",
    "content": "var searchData=\n[\n  ['jitter_0',['Jitter',['../class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd',1,'Nakama.RetryConfiguration.Jitter'],['../class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a',1,'Satori.RetryConfiguration.Jitter'],['../namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59',1,'Nakama.Jitter()'],['../namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7',1,'Satori.Jitter()']]],\n  ['jitterbackoff_1',['JitterBackoff',['../class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08',1,'Nakama.Retry.JitterBackoff'],['../class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974',1,'Satori.Retry.JitterBackoff']]],\n  ['joinchatasync_2',['JoinChatAsync',['../interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950',1,'Nakama.ISocket.JoinChatAsync()'],['../class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4',1,'Nakama.Socket.JoinChatAsync()']]],\n  ['joingroupasync_3',['JoinGroupAsync',['../class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b',1,'Nakama.Client.JoinGroupAsync()'],['../interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0',1,'Nakama.IClient.JoinGroupAsync()']]],\n  ['joinmatchasync_4',['JoinMatchAsync',['../interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34',1,'Nakama.ISocket.JoinMatchAsync(IMatchmakerMatched matched)'],['../interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27',1,'Nakama.ISocket.JoinMatchAsync(string matchId, IDictionary&lt; string, string &gt; metadata=null)'],['../class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80',1,'Nakama.Socket.JoinMatchAsync(IMatchmakerMatched matched)'],['../class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb',1,'Nakama.Socket.JoinMatchAsync(string matchId, IDictionary&lt; string, string &gt; metadata=null)']]],\n  ['joinpartyasync_5',['JoinPartyAsync',['../interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670',1,'Nakama.ISocket.JoinPartyAsync()'],['../class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519',1,'Nakama.Socket.JoinPartyAsync()']]],\n  ['joins_6',['Joins',['../interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29',1,'Nakama.IChannelPresenceEvent.Joins'],['../interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d',1,'Nakama.IMatchPresenceEvent.Joins'],['../interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce',1,'Nakama.IPartyPresenceEvent.Joins'],['../interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb',1,'Nakama.IStatusPresenceEvent.Joins'],['../interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb',1,'Nakama.IStreamPresenceEvent.Joins']]],\n  ['jointournamentasync_7',['JoinTournamentAsync',['../class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641',1,'Nakama.Client.JoinTournamentAsync()'],['../interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65',1,'Nakama.IClient.JoinTournamentAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_a.js",
    "content": "var searchData=\n[\n  ['keepaliveinterval_0',['KeepAliveInterval',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions.KeepAliveInterval'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions.KeepAliveInterval']]],\n  ['key_1',['Key',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a',1,'Nakama.IApiDeleteStorageObjectId.Key'],['../interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c',1,'Nakama.IApiReadStorageObjectId.Key'],['../interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d',1,'Nakama.IApiStorageObject.Key'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f',1,'Nakama.IApiStorageObjectAck.Key'],['../interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757',1,'Nakama.IApiWriteStorageObject.Key'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995',1,'Nakama.Console.IApiStorageObject.Key'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc',1,'Nakama.Console.IApiStorageObjectAck.Key'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Key'],['../class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b',1,'Nakama.StorageObjectId.Key'],['../class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1',1,'Nakama.WriteStorageObject.Key']]],\n  ['kickgroupusersasync_2',['KickGroupUsersAsync',['../class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505',1,'Nakama.Client.KickGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829',1,'Nakama.IClient.KickGroupUsersAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_b.js",
    "content": "var searchData=\n[\n  ['label_0',['Label',['../interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1',1,'Nakama.IApiMatch.Label'],['../interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94',1,'Nakama.IApiParty.Label'],['../interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91',1,'Nakama.IMatch.Label'],['../interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb',1,'Nakama.IParty.Label'],['../interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7',1,'Nakama.IPartyUpdate.Label'],['../interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad',1,'Nakama.IStream.Label']]],\n  ['langtag_1',['LangTag',['../interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d',1,'Nakama.IApiUpdateGroupRequest.LangTag'],['../interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9',1,'Nakama.IApiCreateGroupRequest.LangTag'],['../interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959',1,'Nakama.IApiGroup.LangTag'],['../interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445',1,'Nakama.IApiUpdateAccountRequest.LangTag'],['../interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3',1,'Nakama.IApiUser.LangTag'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6',1,'Nakama.Console.IApiGroup.LangTag'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595',1,'Nakama.Console.IApiUser.LangTag'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.LangTag']]],\n  ['leader_2',['Leader',['../interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991',1,'Nakama::IParty']]],\n  ['leaderboardid_3',['LeaderboardId',['../interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac',1,'Nakama.IApiLeaderboardRecord.LeaderboardId'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1',1,'Nakama.Console.IApiLeaderboardRecord.LeaderboardId']]],\n  ['leaderboardrecords_4',['LeaderboardRecords',['../interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856',1,'Nakama::Console::IConsoleAccountExport']]],\n  ['leavechatasync_5',['LeaveChatAsync',['../interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41',1,'Nakama.ISocket.LeaveChatAsync(IChannel channel)'],['../interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada',1,'Nakama.ISocket.LeaveChatAsync(string channelId)'],['../class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7',1,'Nakama.Socket.LeaveChatAsync(IChannel channel)'],['../class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e',1,'Nakama.Socket.LeaveChatAsync(string channelId)']]],\n  ['leavegroupasync_6',['LeaveGroupAsync',['../class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24',1,'Nakama.Client.LeaveGroupAsync()'],['../interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa',1,'Nakama.IClient.LeaveGroupAsync()']]],\n  ['leavematchasync_7',['LeaveMatchAsync',['../interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3',1,'Nakama.ISocket.LeaveMatchAsync(IMatch match)'],['../interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d',1,'Nakama.ISocket.LeaveMatchAsync(string matchId)'],['../class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd',1,'Nakama.Socket.LeaveMatchAsync(IMatch match)'],['../class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6',1,'Nakama.Socket.LeaveMatchAsync(string matchId)']]],\n  ['leavepartyasync_8',['LeavePartyAsync',['../interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b',1,'Nakama.ISocket.LeavePartyAsync()'],['../class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb',1,'Nakama.Socket.LeavePartyAsync()']]],\n  ['leaves_9',['Leaves',['../interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4',1,'Nakama.IChannelPresenceEvent.Leaves'],['../interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81',1,'Nakama.IMatchPresenceEvent.Leaves'],['../interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447',1,'Nakama.IPartyPresenceEvent.Leaves'],['../interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95',1,'Nakama.IStatusPresenceEvent.Leaves'],['../interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff',1,'Nakama.IStreamPresenceEvent.Leaves']]],\n  ['length_10',['Length',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['limit_11',['Limit',['../interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1',1,'Nakama::IApiListSubscriptionsRequest']]],\n  ['linkappleasync_12',['LinkAppleAsync',['../class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758',1,'Nakama.Client.LinkAppleAsync()'],['../interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef',1,'Nakama.IClient.LinkAppleAsync()']]],\n  ['linkcustomasync_13',['LinkCustomAsync',['../class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00',1,'Nakama.Client.LinkCustomAsync()'],['../interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18',1,'Nakama.IClient.LinkCustomAsync()']]],\n  ['linkdeviceasync_14',['LinkDeviceAsync',['../class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e',1,'Nakama.Client.LinkDeviceAsync()'],['../interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c',1,'Nakama.IClient.LinkDeviceAsync()']]],\n  ['linkemailasync_15',['LinkEmailAsync',['../class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db',1,'Nakama.Client.LinkEmailAsync()'],['../interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63',1,'Nakama.IClient.LinkEmailAsync()']]],\n  ['linkfacebookasync_16',['LinkFacebookAsync',['../class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8',1,'Nakama.Client.LinkFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c',1,'Nakama.IClient.LinkFacebookAsync()']]],\n  ['linkgamecenterasync_17',['LinkGameCenterAsync',['../class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa',1,'Nakama.Client.LinkGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4',1,'Nakama.IClient.LinkGameCenterAsync()']]],\n  ['linkgoogleasync_18',['LinkGoogleAsync',['../class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b',1,'Nakama.Client.LinkGoogleAsync()'],['../interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf',1,'Nakama.IClient.LinkGoogleAsync()']]],\n  ['linksteamasync_19',['LinkSteamAsync',['../class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec',1,'Nakama.Client.LinkSteamAsync()'],['../interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0',1,'Nakama.IClient.LinkSteamAsync()']]],\n  ['listchannelmessagesasync_20',['ListChannelMessagesAsync',['../class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b',1,'Nakama.Client.ListChannelMessagesAsync(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781',1,'Nakama.Client.ListChannelMessagesAsync(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440',1,'Nakama.IClient.ListChannelMessagesAsync(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac',1,'Nakama.IClient.ListChannelMessagesAsync(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['listfriendsasync_21',['ListFriendsAsync',['../class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756',1,'Nakama.Client.ListFriendsAsync()'],['../interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8',1,'Nakama.IClient.ListFriendsAsync()']]],\n  ['listgroupsasync_22',['ListGroupsAsync',['../class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f',1,'Nakama.Client.ListGroupsAsync()'],['../interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc',1,'Nakama.IClient.ListGroupsAsync()']]],\n  ['listgroupusersasync_23',['ListGroupUsersAsync',['../class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90',1,'Nakama.Client.ListGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351',1,'Nakama.IClient.ListGroupUsersAsync()']]],\n  ['listleaderboardrecordsaroundownerasync_24',['ListLeaderboardRecordsAroundOwnerAsync',['../class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e',1,'Nakama.Client.ListLeaderboardRecordsAroundOwnerAsync()'],['../interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8',1,'Nakama.IClient.ListLeaderboardRecordsAroundOwnerAsync()']]],\n  ['listleaderboardrecordsasync_25',['ListLeaderboardRecordsAsync',['../class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1',1,'Nakama.Client.ListLeaderboardRecordsAsync()'],['../interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87',1,'Nakama.IClient.ListLeaderboardRecordsAsync()']]],\n  ['listmatchesasync_26',['ListMatchesAsync',['../class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310',1,'Nakama.Client.ListMatchesAsync()'],['../interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c',1,'Nakama.IClient.ListMatchesAsync()']]],\n  ['listnotificationsasync_27',['ListNotificationsAsync',['../class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284',1,'Nakama.Client.ListNotificationsAsync()'],['../interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1',1,'Nakama.IClient.ListNotificationsAsync()']]],\n  ['listpartiesasync_28',['ListPartiesAsync',['../class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6',1,'Nakama.Client.ListPartiesAsync()'],['../interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b',1,'Nakama.IClient.ListPartiesAsync()']]],\n  ['listpartyjoinrequestsasync_29',['ListPartyJoinRequestsAsync',['../interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4',1,'Nakama.ISocket.ListPartyJoinRequestsAsync()'],['../class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48',1,'Nakama.Socket.ListPartyJoinRequestsAsync()']]],\n  ['listpropertiesasync_30',['ListPropertiesAsync',['../class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6',1,'Satori.Client.ListPropertiesAsync()'],['../interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1',1,'Satori.IClient.ListPropertiesAsync()']]],\n  ['liststorageobjects_31',['ListStorageObjects',['../class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1',1,'Nakama.Client.ListStorageObjects()'],['../interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc',1,'Nakama.IClient.ListStorageObjects()']]],\n  ['liststorageobjectsasync_32',['ListStorageObjectsAsync',['../class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9',1,'Nakama.Client.ListStorageObjectsAsync(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270',1,'Nakama.Client.ListStorageObjectsAsync(ISession session, string collection, string userId=&quot;&quot;, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046',1,'Nakama.IClient.ListStorageObjectsAsync()']]],\n  ['listsubscriptionsasync_33',['ListSubscriptionsAsync',['../class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329',1,'Nakama.Client.ListSubscriptionsAsync()'],['../interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37',1,'Nakama.IClient.ListSubscriptionsAsync()']]],\n  ['listtournamentrecordsaroundownerasync_34',['ListTournamentRecordsAroundOwnerAsync',['../class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65',1,'Nakama.Client.ListTournamentRecordsAroundOwnerAsync()'],['../interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3',1,'Nakama.IClient.ListTournamentRecordsAroundOwnerAsync()']]],\n  ['listtournamentrecordsasync_35',['ListTournamentRecordsAsync',['../class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119',1,'Nakama.Client.ListTournamentRecordsAsync()'],['../interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc',1,'Nakama.IClient.ListTournamentRecordsAsync()']]],\n  ['listtournamentsasync_36',['ListTournamentsAsync',['../class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342',1,'Nakama.Client.ListTournamentsAsync()'],['../interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617',1,'Nakama.IClient.ListTournamentsAsync()']]],\n  ['listusergroupsasync_37',['ListUserGroupsAsync',['../class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1',1,'Nakama.Client.ListUserGroupsAsync(ISession session, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8',1,'Nakama.Client.ListUserGroupsAsync(ISession session, string userId, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe',1,'Nakama.IClient.ListUserGroupsAsync(ISession session, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6',1,'Nakama.IClient.ListUserGroupsAsync(ISession session, string userId, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['listusersstorageobjectsasync_38',['ListUsersStorageObjectsAsync',['../class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381',1,'Nakama.Client.ListUsersStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9',1,'Nakama.IClient.ListUsersStorageObjectsAsync()']]],\n  ['live_5fevent_39',['LIVE_EVENT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109',1,'Satori']]],\n  ['live_5fevent_5fflag_40',['LIVE_EVENT_FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab',1,'Satori']]],\n  ['live_5fevent_5fflag_5fvariant_41',['LIVE_EVENT_FLAG_VARIANT',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4',1,'Satori']]],\n  ['liveevents_42',['LiveEvents',['../interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5',1,'Satori::IApiLiveEventList']]],\n  ['location_43',['Location',['../interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708',1,'Nakama.IApiUpdateAccountRequest.Location'],['../interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40',1,'Nakama.IApiUser.Location'],['../interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd',1,'Nakama.Console.IApiUser.Location'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Location']]],\n  ['logger_44',['Logger',['../class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651',1,'Nakama.Client.Logger'],['../class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533',1,'Nakama.HttpRequestAdapter.Logger'],['../interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d',1,'Nakama.IClient.Logger'],['../interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e',1,'Nakama.IHttpAdapter.Logger'],['../class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7',1,'Nakama.Socket.Logger'],['../class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def',1,'Satori.HttpRequestAdapter.Logger'],['../interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b',1,'Satori.IHttpAdapter.Logger']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_c.js",
    "content": "var searchData=\n[\n  ['matchcount_0',['MatchCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b',1,'Nakama::Console::IStatusListStatus']]],\n  ['matchcreatemessage_2ecs_1',['MatchCreateMessage.cs',['../_match_create_message_8cs.html',1,'']]],\n  ['matches_2',['Matches',['../interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589',1,'Nakama::IApiMatchList']]],\n  ['matchid_3',['MatchId',['../interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d',1,'Nakama.IApiMatch.MatchId'],['../interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e',1,'Nakama.IMatchmakerMatched.MatchId'],['../interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f',1,'Nakama.IMatchPresenceEvent.MatchId'],['../interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73',1,'Nakama.IMatchState.MatchId']]],\n  ['matchjoinmessage_2ecs_4',['MatchJoinMessage.cs',['../_match_join_message_8cs.html',1,'']]],\n  ['matchleavemessage_2ecs_5',['MatchLeaveMessage.cs',['../_match_leave_message_8cs.html',1,'']]],\n  ['matchmakeraddmessage_2ecs_6',['MatchmakerAddMessage.cs',['../_matchmaker_add_message_8cs.html',1,'']]],\n  ['matchmakerremovemessage_2ecs_7',['MatchmakerRemoveMessage.cs',['../_matchmaker_remove_message_8cs.html',1,'']]],\n  ['matchsendmessage_2ecs_8',['MatchSendMessage.cs',['../_match_send_message_8cs.html',1,'']]],\n  ['maxattempts_9',['MaxAttempts',['../class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e',1,'Nakama.RetryConfiguration.MaxAttempts'],['../class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599',1,'Satori.RetryConfiguration.MaxAttempts']]],\n  ['maxcount_10',['MaxCount',['../interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de',1,'Nakama.IApiCreateGroupRequest.MaxCount'],['../interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27',1,'Nakama.IApiGroup.MaxCount'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5',1,'Nakama.Console.IApiGroup.MaxCount']]],\n  ['maxnumscore_11',['MaxNumScore',['../interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3',1,'Nakama.IApiLeaderboardRecord.MaxNumScore'],['../interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7',1,'Nakama.IApiTournament.MaxNumScore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1',1,'Nakama.Console.IApiLeaderboardRecord.MaxNumScore']]],\n  ['maxsize_12',['MaxSize',['../interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc',1,'Nakama.IApiParty.MaxSize'],['../interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9',1,'Nakama.IApiTournament.MaxSize'],['../interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869',1,'Nakama.IParty.MaxSize']]],\n  ['message_13',['Message',['../interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487',1,'Nakama.IRpcStatus.Message'],['../interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b',1,'Nakama.Console.IConfigWarning.Message'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60',1,'Nakama.Console.IRuntimeError.Message'],['../interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96',1,'Satori.IRpcStatus.Message']]],\n  ['messageid_14',['MessageId',['../interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6',1,'Nakama.IApiChannelMessage.MessageId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3',1,'Nakama.Console.IApiChannelMessage.MessageId'],['../interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671',1,'Nakama.IChannelMessageAck.MessageId']]],\n  ['messages_15',['Messages',['../interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e',1,'Nakama.IApiChannelMessageList.Messages'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920',1,'Nakama.Console.IConsoleAccountExport.Messages'],['../interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26',1,'Satori.IApiGetMessageListResponse.Messages']]],\n  ['metadata_16',['Metadata',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Metadata'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Metadata'],['../interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692',1,'Nakama.IApiFriend.Metadata'],['../interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292',1,'Nakama.IApiGroup.Metadata'],['../interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c',1,'Nakama.IApiLeaderboardRecord.Metadata'],['../interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7',1,'Nakama.IApiTournament.Metadata'],['../interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4',1,'Nakama.IApiUser.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8',1,'Nakama.Console.IApiGroup.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e',1,'Nakama.Console.IApiLeaderboardRecord.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7',1,'Nakama.Console.IApiUser.Metadata'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124',1,'Nakama.Console.IConsoleWalletLedger.Metadata'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Metadata'],['../interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3',1,'Satori.IApiEvent.Metadata'],['../interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198',1,'Satori.IApiMessage.Metadata'],['../class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873',1,'Satori.Event.Metadata']]],\n  ['mode_17',['Mode',['../interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d',1,'Nakama::IStream']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_d.js",
    "content": "var searchData=\n[\n  ['nakama_0',['Nakama',['../namespace_nakama.html',1,'']]],\n  ['nakama_2fapiclient_2egen_2ecs_1',['ApiClient.gen.cs',['../_nakama_2_api_client_8gen_8cs.html',1,'']]],\n  ['nakama_2fclient_2ecs_2',['Client.cs',['../_nakama_2_client_8cs.html',1,'']]],\n  ['nakama_2fgziphttpclienthandler_2ecs_3',['GZipHttpClientHandler.cs',['../_nakama_2_g_zip_http_client_handler_8cs.html',1,'']]],\n  ['nakama_2fhttprequestadapter_2ecs_4',['HttpRequestAdapter.cs',['../_nakama_2_http_request_adapter_8cs.html',1,'']]],\n  ['nakama_2ficlient_2ecs_5',['IClient.cs',['../_nakama_2_i_client_8cs.html',1,'']]],\n  ['nakama_2fihttpadapter_2ecs_6',['IHttpAdapter.cs',['../_nakama_2_i_http_adapter_8cs.html',1,'']]],\n  ['nakama_2fihttpadapterutil_2ecs_7',['IHttpAdapterUtil.cs',['../_nakama_2_i_http_adapter_util_8cs.html',1,'']]],\n  ['nakama_2filogger_2ecs_8',['ILogger.cs',['../_nakama_2_i_logger_8cs.html',1,'']]],\n  ['nakama_2fisession_2ecs_9',['ISession.cs',['../_nakama_2_i_session_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_10',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_11',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_12',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_13',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_14',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_15',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fpreserveattribute_2ecs_16',['PreserveAttribute.cs',['../_nakama_2_preserve_attribute_8cs.html',1,'']]],\n  ['nakama_2fretry_2ecs_17',['Retry.cs',['../_nakama_2_retry_8cs.html',1,'']]],\n  ['nakama_2fretryconfiguration_2ecs_18',['RetryConfiguration.cs',['../_nakama_2_retry_configuration_8cs.html',1,'']]],\n  ['nakama_2fretryhistory_2ecs_19',['RetryHistory.cs',['../_nakama_2_retry_history_8cs.html',1,'']]],\n  ['nakama_2fretryinvoker_2ecs_20',['RetryInvoker.cs',['../_nakama_2_retry_invoker_8cs.html',1,'']]],\n  ['nakama_2fretryjitter_2ecs_21',['RetryJitter.cs',['../_nakama_2_retry_jitter_8cs.html',1,'']]],\n  ['nakama_2fretrylistener_2ecs_22',['RetryListener.cs',['../_nakama_2_retry_listener_8cs.html',1,'']]],\n  ['nakama_2fsession_2ecs_23',['Session.cs',['../_nakama_2_session_8cs.html',1,'']]],\n  ['nakama_2ftinyjson_2fjsonparser_2ecs_24',['JsonParser.cs',['../_nakama_2_tiny_json_2_json_parser_8cs.html',1,'']]],\n  ['nakama_2ftinyjson_2fjsonwriter_2ecs_25',['JsonWriter.cs',['../_nakama_2_tiny_json_2_json_writer_8cs.html',1,'']]],\n  ['nakama_2ftransientexceptiondelegate_2ecs_26',['TransientExceptionDelegate.cs',['../_nakama_2_transient_exception_delegate_8cs.html',1,'']]],\n  ['nakama_3a_3aconsole_27',['Console',['../namespace_nakama_1_1_console.html',1,'Nakama']]],\n  ['nakama_3a_3aninja_28',['Ninja',['../namespace_nakama_1_1_ninja.html',1,'Nakama']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_29',['WebSockets',['../namespace_nakama_1_1_ninja_1_1_web_sockets.html',1,'Nakama::Ninja']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_3a_3aexceptions_30',['Exceptions',['../namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html',1,'Nakama::Ninja::WebSockets']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_3a_3ainternal_31',['Internal',['../namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html',1,'Nakama::Ninja::WebSockets']]],\n  ['nakama_3a_3atinyjson_32',['TinyJson',['../namespace_nakama_1_1_tiny_json.html',1,'Nakama']]],\n  ['name_33',['Name',['../interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660',1,'Nakama.IApiUpdateGroupRequest.Name'],['../interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2',1,'Nakama.IApiCreateGroupRequest.Name'],['../interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923',1,'Nakama.IApiEvent.Name'],['../interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be',1,'Nakama.IApiGroup.Name'],['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d',1,'Nakama.Console.IStatusListStatus.Name'],['../interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303',1,'Nakama.Console.IApiGroup.Name'],['../interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121',1,'Satori.IFlagValueChangeReason.Name'],['../interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470',1,'Satori.IApiEvent.Name'],['../interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b',1,'Satori.IApiExperiment.Name'],['../interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04',1,'Satori.IApiFlag.Name'],['../interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db',1,'Satori.IApiFlagOverrideValue.Name'],['../interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32',1,'Satori.IApiLiveEvent.Name'],['../class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f',1,'Satori.Event.Name']]],\n  ['nextcursor_34',['NextCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4',1,'Nakama.IApiChannelMessageList.NextCursor'],['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c',1,'Nakama.IApiLeaderboardRecordList.NextCursor'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0',1,'Nakama.IApiTournamentRecordList.NextCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e',1,'Satori.IApiGetMessageListResponse.NextCursor']]],\n  ['nextreset_35',['NextReset',['../interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1',1,'Nakama::IApiTournament']]],\n  ['no_5foverride_36',['NO_OVERRIDE',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9',1,'Nakama']]],\n  ['nodelay_37',['NoDelay',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['nodes_38',['Nodes',['../interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d',1,'Nakama::Console::IConsoleStatusList']]],\n  ['nosession_39',['NoSession',['../interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639',1,'Satori::IApiAuthenticateRequest']]],\n  ['notifications_40',['Notifications',['../interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72',1,'Nakama.IApiNotificationList.Notifications'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108',1,'Nakama.Console.IConsoleAccountExport.Notifications']]],\n  ['nulllogger_2ecs_41',['NullLogger.cs',['../_null_logger_8cs.html',1,'']]],\n  ['numericproperties_42',['NumericProperties',['../interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96',1,'Nakama::IMatchmakerUser']]],\n  ['numscore_43',['NumScore',['../interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3',1,'Nakama.IApiLeaderboardRecord.NumScore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3',1,'Nakama.Console.IApiLeaderboardRecord.NumScore']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_e.js",
    "content": "var searchData=\n[\n  ['objectids_0',['ObjectIds',['../interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725',1,'Nakama.IApiDeleteStorageObjectsRequest.ObjectIds'],['../interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849',1,'Nakama.IApiReadStorageObjectsRequest.ObjectIds']]],\n  ['objects_1',['Objects',['../interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4',1,'Nakama.IApiStorageObjectList.Objects'],['../interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06',1,'Nakama.IApiStorageObjects.Objects'],['../interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2',1,'Nakama.IApiWriteStorageObjectsRequest.Objects'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc',1,'Nakama.Console.IConsoleAccountExport.Objects'],['../interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238',1,'Nakama.Console.IConsoleStorageList.Objects']]],\n  ['oldestticketcreatetime_2',['OldestTicketCreateTime',['../interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6',1,'Nakama::IApiMatchmakerStats']]],\n  ['online_3',['Online',['../interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623',1,'Nakama.IApiUser.Online'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d',1,'Nakama.Console.IApiUser.Online']]],\n  ['onpong_4',['OnPong',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29',1,'Nakama::Ninja::WebSockets::PingPongManager']]],\n  ['opcode_5',['OpCode',['../interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca',1,'Nakama.IMatchState.OpCode'],['../interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1',1,'Nakama.IPartyData.OpCode']]],\n  ['open_6',['Open',['../interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262',1,'Nakama.IApiUpdateGroupRequest.Open'],['../interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36',1,'Nakama.IApiCreateGroupRequest.Open'],['../interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2',1,'Nakama.IApiGroup.Open'],['../interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95',1,'Nakama.IApiParty.Open'],['../interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529',1,'Nakama.Console.IApiGroup.Open'],['../interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e',1,'Nakama.IParty.Open'],['../interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6',1,'Nakama.IPartyUpdate.Open']]],\n  ['operator_7',['Operator',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Operator'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Operator'],['../interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef',1,'Nakama.IApiTournament.Operator']]],\n  ['originaltransactionid_8',['OriginalTransactionId',['../interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a',1,'Nakama::IApiValidatedSubscription']]],\n  ['overrides_9',['Overrides',['../interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91',1,'Satori::IApiFlagOverride']]],\n  ['ownerid_10',['OwnerId',['../interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999',1,'Nakama.IApiLeaderboardRecord.OwnerId'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d',1,'Nakama.Console.IApiLeaderboardRecord.OwnerId']]],\n  ['ownerrecords_11',['OwnerRecords',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa',1,'Nakama.IApiLeaderboardRecordList.OwnerRecords'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe',1,'Nakama.IApiTournamentRecordList.OwnerRecords']]]\n];\n"
  },
  {
    "path": "docs/html/search/all_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"all_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/all_f.js",
    "content": "var searchData=\n[\n  ['parties_0',['Parties',['../interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a',1,'Nakama::IApiPartyList']]],\n  ['party_2ecs_1',['Party.cs',['../_party_8cs.html',1,'']]],\n  ['partyaccept_2ecs_2',['PartyAccept.cs',['../_party_accept_8cs.html',1,'']]],\n  ['partyclose_2ecs_3',['PartyClose.cs',['../_party_close_8cs.html',1,'']]],\n  ['partycreate_2ecs_4',['PartyCreate.cs',['../_party_create_8cs.html',1,'']]],\n  ['partydata_2ecs_5',['PartyData.cs',['../_party_data_8cs.html',1,'']]],\n  ['partydatasend_2ecs_6',['PartyDataSend.cs',['../_party_data_send_8cs.html',1,'']]],\n  ['partyid_7',['PartyId',['../interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5',1,'Nakama.IApiParty.PartyId'],['../interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b',1,'Nakama.IPartyClose.PartyId'],['../interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314',1,'Nakama.IPartyData.PartyId'],['../interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d',1,'Nakama.IPartyJoinRequest.PartyId'],['../interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8',1,'Nakama.IPartyLeader.PartyId'],['../interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c',1,'Nakama.IPartyMatchmakerTicket.PartyId'],['../interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83',1,'Nakama.IPartyPresenceEvent.PartyId'],['../interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547',1,'Nakama.IPartyUpdate.PartyId']]],\n  ['partyjoin_2ecs_8',['PartyJoin.cs',['../_party_join_8cs.html',1,'']]],\n  ['partyjoinrequest_2ecs_9',['PartyJoinRequest.cs',['../_party_join_request_8cs.html',1,'']]],\n  ['partyjoinrequestlist_2ecs_10',['PartyJoinRequestList.cs',['../_party_join_request_list_8cs.html',1,'']]],\n  ['partyleader_2ecs_11',['PartyLeader.cs',['../_party_leader_8cs.html',1,'']]],\n  ['partyleave_2ecs_12',['PartyLeave.cs',['../_party_leave_8cs.html',1,'']]],\n  ['partymatchmakeradd_2ecs_13',['PartyMatchmakerAdd.cs',['../_party_matchmaker_add_8cs.html',1,'']]],\n  ['partymatchmakerremove_2ecs_14',['PartyMatchmakerRemove.cs',['../_party_matchmaker_remove_8cs.html',1,'']]],\n  ['partymatchmakerticket_2ecs_15',['PartyMatchmakerTicket.cs',['../_party_matchmaker_ticket_8cs.html',1,'']]],\n  ['partymemberremove_2ecs_16',['PartyMemberRemove.cs',['../_party_member_remove_8cs.html',1,'']]],\n  ['partypresenceevent_2ecs_17',['PartyPresenceEvent.cs',['../_party_presence_event_8cs.html',1,'']]],\n  ['partypromote_2ecs_18',['PartyPromote.cs',['../_party_promote_8cs.html',1,'']]],\n  ['partyupdate_2ecs_19',['PartyUpdate.cs',['../_party_update_8cs.html',1,'']]],\n  ['password_20',['Password',['../interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2',1,'Nakama.IApiAccountEmail.Password'],['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966',1,'Nakama.Console.IConsoleAuthenticateRequest.Password'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Password']]],\n  ['path_21',['Path',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['payload_22',['Payload',['../interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246',1,'Nakama.IApiRpc.Payload'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38',1,'Nakama.Ninja.WebSockets.PongEventArgs.Payload']]],\n  ['permissionread_23',['PermissionRead',['../interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d',1,'Nakama.IApiStorageObject.PermissionRead'],['../interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14',1,'Nakama.IApiWriteStorageObject.PermissionRead'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d',1,'Nakama.Console.IApiStorageObject.PermissionRead'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionRead'],['../class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed',1,'Nakama.WriteStorageObject.PermissionRead']]],\n  ['permissionwrite_24',['PermissionWrite',['../interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef',1,'Nakama.IApiStorageObject.PermissionWrite'],['../interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad',1,'Nakama.IApiWriteStorageObject.PermissionWrite'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af',1,'Nakama.Console.IApiStorageObject.PermissionWrite'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionWrite'],['../class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811',1,'Nakama.WriteStorageObject.PermissionWrite']]],\n  ['persist_25',['Persist',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274',1,'Nakama.IApiValidatePurchaseAppleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766',1,'Nakama.IApiValidatePurchaseFacebookInstantRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97',1,'Nakama.IApiValidatePurchaseGoogleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Persist'],['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779',1,'Nakama.IApiValidateSubscriptionAppleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602',1,'Nakama.IApiValidateSubscriptionGoogleRequest.Persist']]],\n  ['persistence_26',['Persistence',['../interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830',1,'Nakama::IUserPresence']]],\n  ['persistent_27',['Persistent',['../interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800',1,'Nakama.IApiChannelMessage.Persistent'],['../interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a',1,'Nakama.IApiNotification.Persistent'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366',1,'Nakama.Console.IApiChannelMessage.Persistent'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491',1,'Nakama.Console.IApiNotification.Persistent'],['../interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd',1,'Nakama.IChannelMessageAck.Persistent']]],\n  ['pingpongmanager_28',['PingPongManager',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html',1,'Nakama.Ninja.WebSockets.PingPongManager'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df',1,'Nakama.Ninja.WebSockets.PingPongManager.PingPongManager()']]],\n  ['pingpongmanager_2ecs_29',['PingPongManager.cs',['../_ping_pong_manager_8cs.html',1,'']]],\n  ['playerid_30',['PlayerId',['../interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9',1,'Nakama::IApiAccountGameCenter']]],\n  ['pong_31',['Pong',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8',1,'Nakama.Ninja.WebSockets.IPingPongManager.Pong'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c',1,'Nakama.Ninja.WebSockets.PingPongManager.Pong']]],\n  ['pongeventargs_32',['PongEventArgs',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html',1,'Nakama.Ninja.WebSockets.PongEventArgs'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c',1,'Nakama.Ninja.WebSockets.PongEventArgs.PongEventArgs()']]],\n  ['pongeventargs_2ecs_33',['PongEventArgs.cs',['../_pong_event_args_8cs.html',1,'']]],\n  ['port_34',['Port',['../class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8',1,'Nakama.Client.Port'],['../interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26',1,'Nakama.IClient.Port'],['../class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b',1,'Satori.Client.Port'],['../interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d',1,'Satori.IClient.Port']]],\n  ['position_35',['Position',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['presence_36',['Presence',['../interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62',1,'Nakama.IMatchmakerUser.Presence'],['../interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5',1,'Nakama.IPartyData.Presence'],['../interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7',1,'Nakama.IPartyLeader.Presence']]],\n  ['presencecount_37',['PresenceCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c',1,'Nakama::Console::IStatusListStatus']]],\n  ['presences_38',['Presences',['../interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db',1,'Nakama.IChannel.Presences'],['../interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e',1,'Nakama.IMatch.Presences'],['../interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e',1,'Nakama.IParty.Presences'],['../interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29',1,'Nakama.IPartyJoinRequest.Presences'],['../interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae',1,'Nakama.IStatus.Presences']]],\n  ['presenceutil_2ecs_39',['PresenceUtil.cs',['../_presence_util_8cs.html',1,'']]],\n  ['prevcursor_40',['PrevCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff',1,'Nakama.IApiChannelMessageList.PrevCursor'],['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880',1,'Nakama.IApiLeaderboardRecordList.PrevCursor'],['../interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276',1,'Nakama.IApiSubscriptionList.PrevCursor'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8',1,'Nakama.IApiTournamentRecordList.PrevCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5',1,'Satori.IApiGetMessageListResponse.PrevCursor']]],\n  ['prevreset_41',['PrevReset',['../interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb',1,'Nakama::IApiTournament']]],\n  ['productid_42',['ProductId',['../interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810',1,'Nakama.IApiValidatedPurchase.ProductId'],['../interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb',1,'Nakama.IApiValidatedSubscription.ProductId']]],\n  ['production_43',['PRODUCTION',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118',1,'Nakama']]],\n  ['promotegroupusersasync_44',['PromoteGroupUsersAsync',['../class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda',1,'Nakama.Client.PromoteGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b',1,'Nakama.IClient.PromoteGroupUsersAsync()']]],\n  ['promotepartymemberasync_45',['PromotePartyMemberAsync',['../interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e',1,'Nakama.ISocket.PromotePartyMemberAsync()'],['../class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0',1,'Nakama.Socket.PromotePartyMemberAsync()']]],\n  ['properties_46',['Properties',['../interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4',1,'Nakama.IApiEvent.Properties'],['../interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa',1,'Satori.IApiSession.Properties']]],\n  ['providernotification_47',['ProviderNotification',['../interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e',1,'Nakama::IApiValidatedSubscription']]],\n  ['providerresponse_48',['ProviderResponse',['../interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d',1,'Nakama.IApiValidatedPurchase.ProviderResponse'],['../interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c',1,'Nakama.IApiValidatedSubscription.ProviderResponse']]],\n  ['publicbuffermemorystream_49',['PublicBufferMemoryStream',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html',1,'Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db',1,'Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.PublicBufferMemoryStream()']]],\n  ['publickeyurl_50',['PublicKeyUrl',['../interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7',1,'Nakama::IApiAccountGameCenter']]],\n  ['purchase_51',['Purchase',['../interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437',1,'Nakama.IApiValidatePurchaseGoogleRequest.Purchase'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Purchase']]],\n  ['purchasetime_52',['PurchaseTime',['../interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395',1,'Nakama.IApiValidatedPurchase.PurchaseTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f',1,'Nakama.IApiValidatedSubscription.PurchaseTime']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_0.js",
    "content": "var searchData=\n[\n  ['apiresponseexception_0',['ApiResponseException',['../class_nakama_1_1_api_response_exception.html',1,'Nakama.ApiResponseException'],['../class_nakama_1_1_console_1_1_api_response_exception.html',1,'Nakama.Console.ApiResponseException'],['../class_satori_1_1_api_response_exception.html',1,'Satori.ApiResponseException']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_1.js",
    "content": "var searchData=\n[\n  ['bufferpool_0',['BufferPool',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html',1,'Nakama::Ninja::WebSockets']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_2.js",
    "content": "var searchData=\n[\n  ['client_0',['Client',['../class_nakama_1_1_client.html',1,'Nakama.Client'],['../class_satori_1_1_client.html',1,'Satori.Client']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_3.js",
    "content": "var searchData=\n[\n  ['entitytoolargeexception_0',['EntityTooLargeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['event_1',['Event',['../class_satori_1_1_event.html',1,'Satori']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_4.js",
    "content": "var searchData=\n[\n  ['httphelper_0',['HttpHelper',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html',1,'Nakama::Ninja::WebSockets']]],\n  ['httprequestadapter_1',['HttpRequestAdapter',['../class_nakama_1_1_http_request_adapter.html',1,'Nakama.HttpRequestAdapter'],['../class_satori_1_1_http_request_adapter.html',1,'Satori.HttpRequestAdapter']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_5.js",
    "content": "var searchData=\n[\n  ['iapiaccount_0',['IApiAccount',['../interface_nakama_1_1_i_api_account.html',1,'Nakama']]],\n  ['iapiaccountapple_1',['IApiAccountApple',['../interface_nakama_1_1_i_api_account_apple.html',1,'Nakama']]],\n  ['iapiaccountcustom_2',['IApiAccountCustom',['../interface_nakama_1_1_i_api_account_custom.html',1,'Nakama']]],\n  ['iapiaccountdevice_3',['IApiAccountDevice',['../interface_nakama_1_1_console_1_1_i_api_account_device.html',1,'Nakama.Console.IApiAccountDevice'],['../interface_nakama_1_1_i_api_account_device.html',1,'Nakama.IApiAccountDevice']]],\n  ['iapiaccountemail_4',['IApiAccountEmail',['../interface_nakama_1_1_i_api_account_email.html',1,'Nakama']]],\n  ['iapiaccountfacebook_5',['IApiAccountFacebook',['../interface_nakama_1_1_i_api_account_facebook.html',1,'Nakama']]],\n  ['iapiaccountfacebookinstantgame_6',['IApiAccountFacebookInstantGame',['../interface_nakama_1_1_i_api_account_facebook_instant_game.html',1,'Nakama']]],\n  ['iapiaccountgamecenter_7',['IApiAccountGameCenter',['../interface_nakama_1_1_i_api_account_game_center.html',1,'Nakama']]],\n  ['iapiaccountgoogle_8',['IApiAccountGoogle',['../interface_nakama_1_1_i_api_account_google.html',1,'Nakama']]],\n  ['iapiaccountsteam_9',['IApiAccountSteam',['../interface_nakama_1_1_i_api_account_steam.html',1,'Nakama']]],\n  ['iapiauthenticatelogoutrequest_10',['IApiAuthenticateLogoutRequest',['../interface_satori_1_1_i_api_authenticate_logout_request.html',1,'Satori']]],\n  ['iapiauthenticaterefreshrequest_11',['IApiAuthenticateRefreshRequest',['../interface_satori_1_1_i_api_authenticate_refresh_request.html',1,'Satori']]],\n  ['iapiauthenticaterequest_12',['IApiAuthenticateRequest',['../interface_satori_1_1_i_api_authenticate_request.html',1,'Satori']]],\n  ['iapichannelmessage_13',['IApiChannelMessage',['../interface_nakama_1_1_console_1_1_i_api_channel_message.html',1,'Nakama.Console.IApiChannelMessage'],['../interface_nakama_1_1_i_api_channel_message.html',1,'Nakama.IApiChannelMessage']]],\n  ['iapichannelmessagelist_14',['IApiChannelMessageList',['../interface_nakama_1_1_i_api_channel_message_list.html',1,'Nakama']]],\n  ['iapicreategrouprequest_15',['IApiCreateGroupRequest',['../interface_nakama_1_1_i_api_create_group_request.html',1,'Nakama']]],\n  ['iapideletestorageobjectid_16',['IApiDeleteStorageObjectId',['../interface_nakama_1_1_i_api_delete_storage_object_id.html',1,'Nakama']]],\n  ['iapideletestorageobjectsrequest_17',['IApiDeleteStorageObjectsRequest',['../interface_nakama_1_1_i_api_delete_storage_objects_request.html',1,'Nakama']]],\n  ['iapievent_18',['IApiEvent',['../interface_nakama_1_1_i_api_event.html',1,'Nakama.IApiEvent'],['../interface_satori_1_1_i_api_event.html',1,'Satori.IApiEvent']]],\n  ['iapieventrequest_19',['IApiEventRequest',['../interface_satori_1_1_i_api_event_request.html',1,'Satori']]],\n  ['iapiexperiment_20',['IApiExperiment',['../interface_satori_1_1_i_api_experiment.html',1,'Satori']]],\n  ['iapiexperimentlist_21',['IApiExperimentList',['../interface_satori_1_1_i_api_experiment_list.html',1,'Satori']]],\n  ['iapiflag_22',['IApiFlag',['../interface_satori_1_1_i_api_flag.html',1,'Satori']]],\n  ['iapiflaglist_23',['IApiFlagList',['../interface_satori_1_1_i_api_flag_list.html',1,'Satori']]],\n  ['iapiflagoverride_24',['IApiFlagOverride',['../interface_satori_1_1_i_api_flag_override.html',1,'Satori']]],\n  ['iapiflagoverridelist_25',['IApiFlagOverrideList',['../interface_satori_1_1_i_api_flag_override_list.html',1,'Satori']]],\n  ['iapiflagoverridevalue_26',['IApiFlagOverrideValue',['../interface_satori_1_1_i_api_flag_override_value.html',1,'Satori']]],\n  ['iapifriend_27',['IApiFriend',['../interface_nakama_1_1_console_1_1_i_api_friend.html',1,'Nakama.Console.IApiFriend'],['../interface_nakama_1_1_i_api_friend.html',1,'Nakama.IApiFriend']]],\n  ['iapifriendlist_28',['IApiFriendList',['../interface_nakama_1_1_console_1_1_i_api_friend_list.html',1,'Nakama.Console.IApiFriendList'],['../interface_nakama_1_1_i_api_friend_list.html',1,'Nakama.IApiFriendList']]],\n  ['iapifriendsoffriendslist_29',['IApiFriendsOfFriendsList',['../interface_nakama_1_1_i_api_friends_of_friends_list.html',1,'Nakama']]],\n  ['iapigetmessagelistresponse_30',['IApiGetMessageListResponse',['../interface_satori_1_1_i_api_get_message_list_response.html',1,'Satori']]],\n  ['iapigroup_31',['IApiGroup',['../interface_nakama_1_1_console_1_1_i_api_group.html',1,'Nakama.Console.IApiGroup'],['../interface_nakama_1_1_i_api_group.html',1,'Nakama.IApiGroup']]],\n  ['iapigrouplist_32',['IApiGroupList',['../interface_nakama_1_1_i_api_group_list.html',1,'Nakama']]],\n  ['iapigroupuserlist_33',['IApiGroupUserList',['../interface_nakama_1_1_i_api_group_user_list.html',1,'Nakama']]],\n  ['iapiidentifyrequest_34',['IApiIdentifyRequest',['../interface_satori_1_1_i_api_identify_request.html',1,'Satori']]],\n  ['iapileaderboardrecord_35',['IApiLeaderboardRecord',['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html',1,'Nakama.Console.IApiLeaderboardRecord'],['../interface_nakama_1_1_i_api_leaderboard_record.html',1,'Nakama.IApiLeaderboardRecord']]],\n  ['iapileaderboardrecordlist_36',['IApiLeaderboardRecordList',['../interface_nakama_1_1_i_api_leaderboard_record_list.html',1,'Nakama']]],\n  ['iapilinksteamrequest_37',['IApiLinkSteamRequest',['../interface_nakama_1_1_i_api_link_steam_request.html',1,'Nakama']]],\n  ['iapilistsubscriptionsrequest_38',['IApiListSubscriptionsRequest',['../interface_nakama_1_1_i_api_list_subscriptions_request.html',1,'Nakama']]],\n  ['iapiliveevent_39',['IApiLiveEvent',['../interface_satori_1_1_i_api_live_event.html',1,'Satori']]],\n  ['iapiliveeventlist_40',['IApiLiveEventList',['../interface_satori_1_1_i_api_live_event_list.html',1,'Satori']]],\n  ['iapimatch_41',['IApiMatch',['../interface_nakama_1_1_i_api_match.html',1,'Nakama']]],\n  ['iapimatchlist_42',['IApiMatchList',['../interface_nakama_1_1_i_api_match_list.html',1,'Nakama']]],\n  ['iapimatchmakercompletionstats_43',['IApiMatchmakerCompletionStats',['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html',1,'Nakama']]],\n  ['iapimatchmakerstats_44',['IApiMatchmakerStats',['../interface_nakama_1_1_i_api_matchmaker_stats.html',1,'Nakama']]],\n  ['iapimessage_45',['IApiMessage',['../interface_satori_1_1_i_api_message.html',1,'Satori']]],\n  ['iapinotification_46',['IApiNotification',['../interface_nakama_1_1_console_1_1_i_api_notification.html',1,'Nakama.Console.IApiNotification'],['../interface_nakama_1_1_i_api_notification.html',1,'Nakama.IApiNotification']]],\n  ['iapinotificationlist_47',['IApiNotificationList',['../interface_nakama_1_1_i_api_notification_list.html',1,'Nakama']]],\n  ['iapiparty_48',['IApiParty',['../interface_nakama_1_1_i_api_party.html',1,'Nakama']]],\n  ['iapipartylist_49',['IApiPartyList',['../interface_nakama_1_1_i_api_party_list.html',1,'Nakama']]],\n  ['iapiproperties_50',['IApiProperties',['../interface_satori_1_1_i_api_properties.html',1,'Satori']]],\n  ['iapireadstorageobjectid_51',['IApiReadStorageObjectId',['../interface_nakama_1_1_i_api_read_storage_object_id.html',1,'Nakama']]],\n  ['iapireadstorageobjectsrequest_52',['IApiReadStorageObjectsRequest',['../interface_nakama_1_1_i_api_read_storage_objects_request.html',1,'Nakama']]],\n  ['iapirpc_53',['IApiRpc',['../interface_nakama_1_1_i_api_rpc.html',1,'Nakama']]],\n  ['iapisession_54',['IApiSession',['../interface_nakama_1_1_i_api_session.html',1,'Nakama.IApiSession'],['../interface_satori_1_1_i_api_session.html',1,'Satori.IApiSession']]],\n  ['iapisessionlogoutrequest_55',['IApiSessionLogoutRequest',['../interface_nakama_1_1_i_api_session_logout_request.html',1,'Nakama']]],\n  ['iapisessionrefreshrequest_56',['IApiSessionRefreshRequest',['../interface_nakama_1_1_i_api_session_refresh_request.html',1,'Nakama']]],\n  ['iapistorageobject_57',['IApiStorageObject',['../interface_nakama_1_1_console_1_1_i_api_storage_object.html',1,'Nakama.Console.IApiStorageObject'],['../interface_nakama_1_1_i_api_storage_object.html',1,'Nakama.IApiStorageObject']]],\n  ['iapistorageobjectack_58',['IApiStorageObjectAck',['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html',1,'Nakama.Console.IApiStorageObjectAck'],['../interface_nakama_1_1_i_api_storage_object_ack.html',1,'Nakama.IApiStorageObjectAck']]],\n  ['iapistorageobjectacks_59',['IApiStorageObjectAcks',['../interface_nakama_1_1_i_api_storage_object_acks.html',1,'Nakama']]],\n  ['iapistorageobjectlist_60',['IApiStorageObjectList',['../interface_nakama_1_1_i_api_storage_object_list.html',1,'Nakama']]],\n  ['iapistorageobjects_61',['IApiStorageObjects',['../interface_nakama_1_1_i_api_storage_objects.html',1,'Nakama']]],\n  ['iapisubscriptionlist_62',['IApiSubscriptionList',['../interface_nakama_1_1_i_api_subscription_list.html',1,'Nakama']]],\n  ['iapitournament_63',['IApiTournament',['../interface_nakama_1_1_i_api_tournament.html',1,'Nakama']]],\n  ['iapitournamentlist_64',['IApiTournamentList',['../interface_nakama_1_1_i_api_tournament_list.html',1,'Nakama']]],\n  ['iapitournamentrecordlist_65',['IApiTournamentRecordList',['../interface_nakama_1_1_i_api_tournament_record_list.html',1,'Nakama']]],\n  ['iapiupdateaccountrequest_66',['IApiUpdateAccountRequest',['../interface_nakama_1_1_i_api_update_account_request.html',1,'Nakama']]],\n  ['iapiupdategrouprequest_67',['IApiUpdateGroupRequest',['../interface_nakama_1_1_i_api_update_group_request.html',1,'Nakama']]],\n  ['iapiupdatemessagerequest_68',['IApiUpdateMessageRequest',['../interface_satori_1_1_i_api_update_message_request.html',1,'Satori']]],\n  ['iapiupdatepropertiesrequest_69',['IApiUpdatePropertiesRequest',['../interface_satori_1_1_i_api_update_properties_request.html',1,'Satori']]],\n  ['iapiuser_70',['IApiUser',['../interface_nakama_1_1_console_1_1_i_api_user.html',1,'Nakama.Console.IApiUser'],['../interface_nakama_1_1_i_api_user.html',1,'Nakama.IApiUser']]],\n  ['iapiusergrouplist_71',['IApiUserGroupList',['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html',1,'Nakama.Console.IApiUserGroupList'],['../interface_nakama_1_1_i_api_user_group_list.html',1,'Nakama.IApiUserGroupList']]],\n  ['iapiusers_72',['IApiUsers',['../interface_nakama_1_1_i_api_users.html',1,'Nakama']]],\n  ['iapivalidatedpurchase_73',['IApiValidatedPurchase',['../interface_nakama_1_1_i_api_validated_purchase.html',1,'Nakama']]],\n  ['iapivalidatedsubscription_74',['IApiValidatedSubscription',['../interface_nakama_1_1_i_api_validated_subscription.html',1,'Nakama']]],\n  ['iapivalidatepurchaseapplerequest_75',['IApiValidatePurchaseAppleRequest',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasefacebookinstantrequest_76',['IApiValidatePurchaseFacebookInstantRequest',['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasegooglerequest_77',['IApiValidatePurchaseGoogleRequest',['../interface_nakama_1_1_i_api_validate_purchase_google_request.html',1,'Nakama']]],\n  ['iapivalidatepurchasehuaweirequest_78',['IApiValidatePurchaseHuaweiRequest',['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html',1,'Nakama']]],\n  ['iapivalidatepurchaseresponse_79',['IApiValidatePurchaseResponse',['../interface_nakama_1_1_i_api_validate_purchase_response.html',1,'Nakama']]],\n  ['iapivalidatesubscriptionapplerequest_80',['IApiValidateSubscriptionAppleRequest',['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html',1,'Nakama']]],\n  ['iapivalidatesubscriptiongooglerequest_81',['IApiValidateSubscriptionGoogleRequest',['../interface_nakama_1_1_i_api_validate_subscription_google_request.html',1,'Nakama']]],\n  ['iapivalidatesubscriptionresponse_82',['IApiValidateSubscriptionResponse',['../interface_nakama_1_1_i_api_validate_subscription_response.html',1,'Nakama']]],\n  ['iapiwritestorageobject_83',['IApiWriteStorageObject',['../interface_nakama_1_1_i_api_write_storage_object.html',1,'Nakama']]],\n  ['iapiwritestorageobjectsrequest_84',['IApiWriteStorageObjectsRequest',['../interface_nakama_1_1_i_api_write_storage_objects_request.html',1,'Nakama']]],\n  ['ibufferpool_85',['IBufferPool',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html',1,'Nakama::Ninja::WebSockets']]],\n  ['ichannel_86',['IChannel',['../interface_nakama_1_1_i_channel.html',1,'Nakama']]],\n  ['ichannelmessageack_87',['IChannelMessageAck',['../interface_nakama_1_1_i_channel_message_ack.html',1,'Nakama']]],\n  ['ichannelpresenceevent_88',['IChannelPresenceEvent',['../interface_nakama_1_1_i_channel_presence_event.html',1,'Nakama']]],\n  ['iclient_89',['IClient',['../interface_nakama_1_1_i_client.html',1,'Nakama.IClient'],['../interface_satori_1_1_i_client.html',1,'Satori.IClient']]],\n  ['iconfigwarning_90',['IConfigWarning',['../interface_nakama_1_1_console_1_1_i_config_warning.html',1,'Nakama::Console']]],\n  ['iconsoleaccountexport_91',['IConsoleAccountExport',['../interface_nakama_1_1_console_1_1_i_console_account_export.html',1,'Nakama::Console']]],\n  ['iconsoleauthenticaterequest_92',['IConsoleAuthenticateRequest',['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html',1,'Nakama::Console']]],\n  ['iconsoleconfig_93',['IConsoleConfig',['../interface_nakama_1_1_console_1_1_i_console_config.html',1,'Nakama::Console']]],\n  ['iconsoleconsolesession_94',['IConsoleConsoleSession',['../interface_nakama_1_1_console_1_1_i_console_console_session.html',1,'Nakama::Console']]],\n  ['iconsolestatuslist_95',['IConsoleStatusList',['../interface_nakama_1_1_console_1_1_i_console_status_list.html',1,'Nakama::Console']]],\n  ['iconsolestoragelist_96',['IConsoleStorageList',['../interface_nakama_1_1_console_1_1_i_console_storage_list.html',1,'Nakama::Console']]],\n  ['iconsoleunlinkdevicerequest_97',['IConsoleUnlinkDeviceRequest',['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html',1,'Nakama::Console']]],\n  ['iconsoleuserlist_98',['IConsoleUserList',['../interface_nakama_1_1_console_1_1_i_console_user_list.html',1,'Nakama::Console']]],\n  ['iconsolewalletledger_99',['IConsoleWalletLedger',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html',1,'Nakama::Console']]],\n  ['iconsolewalletledgerlist_100',['IConsoleWalletLedgerList',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html',1,'Nakama::Console']]],\n  ['iconsolewritestorageobjectrequest_101',['IConsoleWriteStorageObjectRequest',['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html',1,'Nakama::Console']]],\n  ['iflagvaluechangereason_102',['IFlagValueChangeReason',['../interface_satori_1_1_i_flag_value_change_reason.html',1,'Satori']]],\n  ['ifriendsoffriendslistfriendoffriend_103',['IFriendsOfFriendsListFriendOfFriend',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html',1,'Nakama']]],\n  ['igroupuserlistgroupuser_104',['IGroupUserListGroupUser',['../interface_nakama_1_1_i_group_user_list_group_user.html',1,'Nakama']]],\n  ['ihttpadapter_105',['IHttpAdapter',['../interface_nakama_1_1_i_http_adapter.html',1,'Nakama.IHttpAdapter'],['../interface_satori_1_1_i_http_adapter.html',1,'Satori.IHttpAdapter']]],\n  ['ilogger_106',['ILogger',['../interface_nakama_1_1_i_logger.html',1,'Nakama.ILogger'],['../interface_satori_1_1_i_logger.html',1,'Satori.ILogger']]],\n  ['imatch_107',['IMatch',['../interface_nakama_1_1_i_match.html',1,'Nakama']]],\n  ['imatchmakermatched_108',['IMatchmakerMatched',['../interface_nakama_1_1_i_matchmaker_matched.html',1,'Nakama']]],\n  ['imatchmakerticket_109',['IMatchmakerTicket',['../interface_nakama_1_1_i_matchmaker_ticket.html',1,'Nakama']]],\n  ['imatchmakeruser_110',['IMatchmakerUser',['../interface_nakama_1_1_i_matchmaker_user.html',1,'Nakama']]],\n  ['imatchpresenceevent_111',['IMatchPresenceEvent',['../interface_nakama_1_1_i_match_presence_event.html',1,'Nakama']]],\n  ['imatchstate_112',['IMatchState',['../interface_nakama_1_1_i_match_state.html',1,'Nakama']]],\n  ['inakamaapiaccount_113',['INakamaapiAccount',['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html',1,'Nakama::Console']]],\n  ['inakamaconsoleaccount_114',['INakamaconsoleAccount',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html',1,'Nakama::Console']]],\n  ['inakamaconsoleupdateaccountrequest_115',['INakamaconsoleUpdateAccountRequest',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html',1,'Nakama::Console']]],\n  ['invalidhttpresponsecodeexception_116',['InvalidHttpResponseCodeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['iparty_117',['IParty',['../interface_nakama_1_1_i_party.html',1,'Nakama']]],\n  ['ipartyclose_118',['IPartyClose',['../interface_nakama_1_1_i_party_close.html',1,'Nakama']]],\n  ['ipartydata_119',['IPartyData',['../interface_nakama_1_1_i_party_data.html',1,'Nakama']]],\n  ['ipartyjoinrequest_120',['IPartyJoinRequest',['../interface_nakama_1_1_i_party_join_request.html',1,'Nakama']]],\n  ['ipartyleader_121',['IPartyLeader',['../interface_nakama_1_1_i_party_leader.html',1,'Nakama']]],\n  ['ipartymatchmakerticket_122',['IPartyMatchmakerTicket',['../interface_nakama_1_1_i_party_matchmaker_ticket.html',1,'Nakama']]],\n  ['ipartypresenceevent_123',['IPartyPresenceEvent',['../interface_nakama_1_1_i_party_presence_event.html',1,'Nakama']]],\n  ['ipartyupdate_124',['IPartyUpdate',['../interface_nakama_1_1_i_party_update.html',1,'Nakama']]],\n  ['ipingpongmanager_125',['IPingPongManager',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html',1,'Nakama::Ninja::WebSockets']]],\n  ['iprotobufany_126',['IProtobufAny',['../interface_nakama_1_1_console_1_1_i_protobuf_any.html',1,'Nakama.Console.IProtobufAny'],['../interface_nakama_1_1_i_protobuf_any.html',1,'Nakama.IProtobufAny'],['../interface_satori_1_1_i_protobuf_any.html',1,'Satori.IProtobufAny']]],\n  ['irpcstatus_127',['IRpcStatus',['../interface_nakama_1_1_i_rpc_status.html',1,'Nakama.IRpcStatus'],['../interface_satori_1_1_i_rpc_status.html',1,'Satori.IRpcStatus']]],\n  ['iruntimeerror_128',['IRuntimeError',['../interface_nakama_1_1_console_1_1_i_runtime_error.html',1,'Nakama::Console']]],\n  ['isession_129',['ISession',['../interface_nakama_1_1_i_session.html',1,'Nakama.ISession'],['../interface_satori_1_1_i_session.html',1,'Satori.ISession']]],\n  ['isocket_130',['ISocket',['../interface_nakama_1_1_i_socket.html',1,'Nakama']]],\n  ['isocketadapter_131',['ISocketAdapter',['../interface_nakama_1_1_i_socket_adapter.html',1,'Nakama']]],\n  ['istatus_132',['IStatus',['../interface_nakama_1_1_i_status.html',1,'Nakama']]],\n  ['istatusliststatus_133',['IStatusListStatus',['../interface_nakama_1_1_console_1_1_i_status_list_status.html',1,'Nakama::Console']]],\n  ['istatuspresenceevent_134',['IStatusPresenceEvent',['../interface_nakama_1_1_i_status_presence_event.html',1,'Nakama']]],\n  ['istream_135',['IStream',['../interface_nakama_1_1_i_stream.html',1,'Nakama']]],\n  ['istreampresenceevent_136',['IStreamPresenceEvent',['../interface_nakama_1_1_i_stream_presence_event.html',1,'Nakama']]],\n  ['istreamstate_137',['IStreamState',['../interface_nakama_1_1_i_stream_state.html',1,'Nakama']]],\n  ['iusergrouplistusergroup_138',['IUserGroupListUserGroup',['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html',1,'Nakama.Console.IUserGroupListUserGroup'],['../interface_nakama_1_1_i_user_group_list_user_group.html',1,'Nakama.IUserGroupListUserGroup']]],\n  ['iuserpresence_139',['IUserPresence',['../interface_nakama_1_1_i_user_presence.html',1,'Nakama']]],\n  ['iwebsocketclientfactory_140',['IWebSocketClientFactory',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['iwebsocketserverfactory_141',['IWebSocketServerFactory',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['iwriteleaderboardrecordrequestleaderboardrecordwrite_142',['IWriteLeaderboardRecordRequestLeaderboardRecordWrite',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html',1,'Nakama']]],\n  ['iwritetournamentrecordrequesttournamentrecordwrite_143',['IWriteTournamentRecordRequestTournamentRecordWrite',['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_6.js",
    "content": "var searchData=\n[\n  ['pingpongmanager_0',['PingPongManager',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html',1,'Nakama::Ninja::WebSockets']]],\n  ['pongeventargs_1',['PongEventArgs',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html',1,'Nakama::Ninja::WebSockets']]],\n  ['publicbuffermemorystream_2',['PublicBufferMemoryStream',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html',1,'Nakama::Ninja::WebSockets::BufferPool']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_7.js",
    "content": "var searchData=\n[\n  ['retry_0',['Retry',['../class_nakama_1_1_retry.html',1,'Nakama.Retry'],['../class_satori_1_1_retry.html',1,'Satori.Retry']]],\n  ['retryconfiguration_1',['RetryConfiguration',['../class_nakama_1_1_retry_configuration.html',1,'Nakama.RetryConfiguration'],['../class_satori_1_1_retry_configuration.html',1,'Satori.RetryConfiguration']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_8.js",
    "content": "var searchData=\n[\n  ['secwebsocketkeymissingexception_0',['SecWebSocketKeyMissingException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['serverlistenersocketexception_1',['ServerListenerSocketException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['session_2',['Session',['../class_nakama_1_1_session.html',1,'Nakama.Session'],['../class_satori_1_1_session.html',1,'Satori.Session']]],\n  ['socket_3',['Socket',['../class_nakama_1_1_socket.html',1,'Nakama']]],\n  ['storageobjectid_4',['StorageObjectId',['../class_nakama_1_1_storage_object_id.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"classes_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/classes_9.js",
    "content": "var searchData=\n[\n  ['websocketadapter_0',['WebSocketAdapter',['../class_nakama_1_1_web_socket_adapter.html',1,'Nakama']]],\n  ['websocketbufferoverflowexception_1',['WebSocketBufferOverflowException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['websocketclientfactory_2',['WebSocketClientFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketclientoptions_3',['WebSocketClientOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websockethandshakefailedexception_4',['WebSocketHandshakeFailedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['websockethttpcontext_5',['WebSocketHttpContext',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketserverfactory_6',['WebSocketServerFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketserveroptions_7',['WebSocketServerOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketstdlibadapter_8',['WebSocketStdlibAdapter',['../class_nakama_1_1_web_socket_stdlib_adapter.html',1,'Nakama']]],\n  ['websocketversionnotsupportedexception_9',['WebSocketVersionNotSupportedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['writestorageobject_10',['WriteStorageObject',['../class_nakama_1_1_write_storage_object.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_a.js",
    "content": "var searchData=\n[\n  ['secwebsocketkeymissingexception_0',['SecWebSocketKeyMissingException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['serverlistenersocketexception_1',['ServerListenerSocketException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['session_2',['Session',['../class_nakama_1_1_session.html',1,'Nakama.Session'],['../class_satori_1_1_session.html',1,'Satori.Session']]],\n  ['sessiontest_3',['SessionTest',['../class_nakama_1_1_tests_1_1_session_test.html',1,'Nakama::Tests']]],\n  ['socket_4',['Socket',['../class_nakama_1_1_socket.html',1,'Nakama']]],\n  ['stdoutlogger_5',['StdoutLogger',['../class_nakama_1_1_tests_1_1_stdout_logger.html',1,'Nakama::Tests']]],\n  ['storageobjectid_6',['StorageObjectId',['../class_nakama_1_1_storage_object_id.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_b.js",
    "content": "var searchData=\n[\n  ['tinyjsonparsertest_0',['TinyJsonParserTest',['../class_nakama_1_1_tests_1_1_tiny_json_parser_test.html',1,'Nakama::Tests']]],\n  ['transientexceptionhttpadapter_1',['TransientExceptionHttpAdapter',['../class_nakama_1_1_tests_1_1_transient_exception_http_adapter.html',1,'Nakama::Tests']]]\n];\n"
  },
  {
    "path": "docs/html/search/classes_c.js",
    "content": "var searchData=\n[\n  ['websocketadapter_0',['WebSocketAdapter',['../class_nakama_1_1_web_socket_adapter.html',1,'Nakama']]],\n  ['websocketbufferoverflowexception_1',['WebSocketBufferOverflowException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['websocketchanneltest_2',['WebSocketChannelTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketclientfactory_3',['WebSocketClientFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketclientoptions_4',['WebSocketClientOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websockethandshakefailedexception_5',['WebSocketHandshakeFailedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['websockethttpcontext_6',['WebSocketHttpContext',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketmatchmakertest_7',['WebSocketMatchmakerTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketmatchtest_8',['WebSocketMatchTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketnotificationtest_9',['WebSocketNotificationTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketpartytest_10',['WebSocketPartyTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketrpctest_11',['WebSocketRpcTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketserverfactory_12',['WebSocketServerFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketserveroptions_13',['WebSocketServerOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html',1,'Nakama::Ninja::WebSockets']]],\n  ['websocketstdlibadapter_14',['WebSocketStdlibAdapter',['../class_nakama_1_1_web_socket_stdlib_adapter.html',1,'Nakama']]],\n  ['websockettest_15',['WebSocketTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketuserstatustest_16',['WebSocketUserStatusTest',['../class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.html',1,'Nakama::Tests::Socket']]],\n  ['websocketversionnotsupportedexception_17',['WebSocketVersionNotSupportedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html',1,'Nakama::Ninja::WebSockets::Exceptions']]],\n  ['writestorageobject_18',['WriteStorageObject',['../class_nakama_1_1_write_storage_object.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enums_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enums_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enums_0.js",
    "content": "var searchData=\n[\n  ['apiflagoverridetype_0',['ApiFlagOverrideType',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50d',1,'Satori']]],\n  ['apioperator_1',['ApiOperator',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7',1,'Nakama']]],\n  ['apistoreenvironment_2',['ApiStoreEnvironment',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6',1,'Nakama']]],\n  ['apistoreprovider_3',['ApiStoreProvider',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enums_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enums_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enums_1.js",
    "content": "var searchData=\n[\n  ['channeltype_0',['ChannelType',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enums_2.js",
    "content": "var searchData=\n[\n  ['flagvaluechangereasontype_0',['FlagValueChangeReasonType',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653f',1,'Satori']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_0.js",
    "content": "var searchData=\n[\n  ['apple_5fapp_5fstore_0',['APPLE_APP_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a4142ec218b299cb29da17393e166a0bf',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_1.js",
    "content": "var searchData=\n[\n  ['best_0',['BEST',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ada034de38c791a4e574a513e7b97bec6',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_2.js",
    "content": "var searchData=\n[\n  ['decrement_0',['DECREMENT',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7ac0ffa6e46086551bc5113d1238faf106',1,'Nakama']]],\n  ['directmessage_1',['DirectMessage',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a1189cba3ed448908f0ab3b5af22dbffa',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_3.js",
    "content": "var searchData=\n[\n  ['experiment_0',['EXPERIMENT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa8df329b49b6668b7b1ec13ba71c72864',1,'Satori']]],\n  ['experiment_5fphase_5fvariant_5fflag_1',['EXPERIMENT_PHASE_VARIANT_FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dac02c04ccf40f0a7132402f6351d2227f',1,'Satori']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_4.js",
    "content": "var searchData=\n[\n  ['facebook_5finstant_5fstore_0',['FACEBOOK_INSTANT_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a2d91804ae2367e7ee28b145f3efb1b68',1,'Nakama']]],\n  ['flag_1',['FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0f4d0db3668dd58cabb9eb409657eaa8',1,'Satori']]],\n  ['flag_5fvariant_2',['FLAG_VARIANT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa0fb2ba395f70bc9bc76086d03e136b59',1,'Satori.FLAG_VARIANT'],['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da0fb2ba395f70bc9bc76086d03e136b59',1,'Satori.FLAG_VARIANT']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_5.js",
    "content": "var searchData=\n[\n  ['google_5fplay_5fstore_0',['GOOGLE_PLAY_STORE',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49ae8126d6db8bb0ca0c6557130eb2d4c7f',1,'Nakama']]],\n  ['group_1',['Group',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307a03937134cedab9078be39a77ee3a48a0',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_6.js",
    "content": "var searchData=\n[\n  ['huawei_5fapp_5fgallery_0',['HUAWEI_APP_GALLERY',['../namespace_nakama.html#a80ae1f687aff9e2cdddb9e69a557cc49a76c8d7237ca9427f64e470d61d34246c',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"enumvalues_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/enumvalues_7.js",
    "content": "var searchData=\n[\n  ['increment_0',['INCREMENT',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a90cf1f5206b348a822cc1a453a587534',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_8.js",
    "content": "var searchData=\n[\n  ['live_5fevent_0',['LIVE_EVENT',['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa729ac0ce06c0d3ca4b064e761cee8109',1,'Satori']]],\n  ['live_5fevent_5fflag_1',['LIVE_EVENT_FLAG',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50da27b889715efe285aadd5365572878eab',1,'Satori']]],\n  ['live_5fevent_5fflag_5fvariant_2',['LIVE_EVENT_FLAG_VARIANT',['../namespace_satori.html#a5b84f4807e2f627294a0a6fee00ab50dab363d8f6a4cafbe0b1bb33801bfa1cf4',1,'Satori']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_9.js",
    "content": "var searchData=\n[\n  ['no_5foverride_0',['NO_OVERRIDE',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a9ed9fde06cff703c7420b059dd1bfca9',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_a.js",
    "content": "var searchData=\n[\n  ['production_0',['PRODUCTION',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a86601675138015edb458866e7d879118',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_b.js",
    "content": "var searchData=\n[\n  ['room_0',['Room',['../namespace_nakama.html#addd7f097ac4c449d75e44da62657f307acc3abcf4426bff80257d22999d0eda8f',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_c.js",
    "content": "var searchData=\n[\n  ['sandbox_0',['SANDBOX',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a439d8eeff1670efd5d1eb2a4232254e8',1,'Nakama']]],\n  ['set_1',['SET',['../namespace_nakama.html#a8e9c42a36e780e31a03f2ba94a3bb6e7a8c52684db8f49511e9b44471716bf164',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/enumvalues_d.js",
    "content": "var searchData=\n[\n  ['unknown_0',['UNKNOWN',['../namespace_nakama.html#a216a2d7c4acbc3a4f29a98514c483cd6a696b031073e74bf2cb98e5ef201d4aa3',1,'Nakama.UNKNOWN'],['../namespace_satori.html#a951af93b9ee547b7c4747566a1b5653fa696b031073e74bf2cb98e5ef201d4aa3',1,'Satori.UNKNOWN']]]\n];\n"
  },
  {
    "path": "docs/html/search/events_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"events_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/events_0.js",
    "content": "var searchData=\n[\n  ['closed_0',['Closed',['../interface_nakama_1_1_i_socket.html#afe4d8fe65118a41d40732a82908ab483',1,'Nakama.ISocket.Closed'],['../interface_nakama_1_1_i_socket_adapter.html#a711266e5d8ab7fe8ca6feb1c70a79679',1,'Nakama.ISocketAdapter.Closed'],['../class_nakama_1_1_socket.html#a300991e0a08a180f811dd86cc81756f2',1,'Nakama.Socket.Closed'],['../class_nakama_1_1_web_socket_adapter.html#a2266ef4818b6ed5d211d056a66b7c21b',1,'Nakama.WebSocketAdapter.Closed'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ab79baa0d1f5fafec41b04c42308fe2e3',1,'Nakama.WebSocketStdlibAdapter.Closed']]],\n  ['connected_1',['Connected',['../interface_nakama_1_1_i_socket.html#a66bcbfecb40518837510e12cd48b7acd',1,'Nakama.ISocket.Connected'],['../interface_nakama_1_1_i_socket_adapter.html#a130b25217829edc3307fb83d665eacea',1,'Nakama.ISocketAdapter.Connected'],['../class_nakama_1_1_socket.html#a96b11a256b14b2f940d74ce55c6bcfac',1,'Nakama.Socket.Connected'],['../class_nakama_1_1_web_socket_adapter.html#af8d0fc4d17f63c187397e777c10ecb7a',1,'Nakama.WebSocketAdapter.Connected'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a64c972fdb7ba486e19bcd0671dec5409',1,'Nakama.WebSocketStdlibAdapter.Connected']]]\n];\n"
  },
  {
    "path": "docs/html/search/events_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"events_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/events_1.js",
    "content": "var searchData=\n[\n  ['pong_0',['Pong',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a745f1289cfea320742116e665442b4b8',1,'Nakama.Ninja.WebSockets.IPingPongManager.Pong'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a2f1ae430d5ee59981e308167590b941c',1,'Nakama.Ninja.WebSockets.PingPongManager.Pong']]]\n];\n"
  },
  {
    "path": "docs/html/search/events_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"events_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/events_2.js",
    "content": "var searchData=\n[\n  ['received_0',['Received',['../interface_nakama_1_1_i_socket_adapter.html#a0c9baa386c7cba1edc6bf1d6765fc008',1,'Nakama.ISocketAdapter.Received'],['../class_nakama_1_1_web_socket_adapter.html#a81ef85e5dae12ff8168055a0594e8c76',1,'Nakama.WebSocketAdapter.Received'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a00d89be74b84ba97c9c327d61fc22845',1,'Nakama.WebSocketStdlibAdapter.Received']]],\n  ['receivedchannelmessage_1',['ReceivedChannelMessage',['../interface_nakama_1_1_i_socket.html#a0cc3f5be403f1189d4e72c51b96d9680',1,'Nakama.ISocket.ReceivedChannelMessage'],['../class_nakama_1_1_socket.html#a2fc741ef8ec0c967409927269fe17b2d',1,'Nakama.Socket.ReceivedChannelMessage']]],\n  ['receivedchannelpresence_2',['ReceivedChannelPresence',['../interface_nakama_1_1_i_socket.html#a515084ae8f6466b60570292eadf4c700',1,'Nakama.ISocket.ReceivedChannelPresence'],['../class_nakama_1_1_socket.html#a7df1f68cfed0dbc80c151d9fc9146436',1,'Nakama.Socket.ReceivedChannelPresence']]],\n  ['receivederror_3',['ReceivedError',['../interface_nakama_1_1_i_socket.html#a8318c9b7e2709e8306d00bc2a0d03e86',1,'Nakama.ISocket.ReceivedError'],['../interface_nakama_1_1_i_socket_adapter.html#a60e05f18eda93116edb329193b7c20a6',1,'Nakama.ISocketAdapter.ReceivedError'],['../class_nakama_1_1_socket.html#a1d55fb80f035773813b9c20836fd7d4b',1,'Nakama.Socket.ReceivedError'],['../class_nakama_1_1_web_socket_adapter.html#a9b94af8c8f2bd785e67e01ab521e1fb5',1,'Nakama.WebSocketAdapter.ReceivedError'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a4a219fe7e294787d2cb6bd0307057bed',1,'Nakama.WebSocketStdlibAdapter.ReceivedError']]],\n  ['receivedmatchmakermatched_4',['ReceivedMatchmakerMatched',['../interface_nakama_1_1_i_socket.html#aee6beff734538a19c915d37fcf703834',1,'Nakama.ISocket.ReceivedMatchmakerMatched'],['../class_nakama_1_1_socket.html#a58bda7f53b946b4aeea917fb410d5b53',1,'Nakama.Socket.ReceivedMatchmakerMatched']]],\n  ['receivedmatchpresence_5',['ReceivedMatchPresence',['../interface_nakama_1_1_i_socket.html#ac02519653c675729d70dbf70ed84d57b',1,'Nakama.ISocket.ReceivedMatchPresence'],['../class_nakama_1_1_socket.html#aa994986e8223a436057a51123b53c138',1,'Nakama.Socket.ReceivedMatchPresence']]],\n  ['receivedmatchstate_6',['ReceivedMatchState',['../interface_nakama_1_1_i_socket.html#a17b98d2b0b33fcf3e0d956d05fddcdf2',1,'Nakama.ISocket.ReceivedMatchState'],['../class_nakama_1_1_socket.html#a2126823bf94305bc690de717c204ddc8',1,'Nakama.Socket.ReceivedMatchState']]],\n  ['receivednotification_7',['ReceivedNotification',['../interface_nakama_1_1_i_socket.html#a21c8dec048d4d59faef0f5177d5dd57c',1,'Nakama.ISocket.ReceivedNotification'],['../class_nakama_1_1_socket.html#ae852000e396b907fe3427275e20a438a',1,'Nakama.Socket.ReceivedNotification']]],\n  ['receivedparty_8',['ReceivedParty',['../interface_nakama_1_1_i_socket.html#aef9916951402f7727f07f6964412738c',1,'Nakama.ISocket.ReceivedParty'],['../class_nakama_1_1_socket.html#ae0aea1347e564c5b4e05808f8b4f7c7b',1,'Nakama.Socket.ReceivedParty']]],\n  ['receivedpartyclose_9',['ReceivedPartyClose',['../interface_nakama_1_1_i_socket.html#a689062bafabff8c4ef43eb778e28ccc3',1,'Nakama.ISocket.ReceivedPartyClose'],['../class_nakama_1_1_socket.html#a1c7b6705495d0d792ea206c2c3ec60db',1,'Nakama.Socket.ReceivedPartyClose']]],\n  ['receivedpartydata_10',['ReceivedPartyData',['../interface_nakama_1_1_i_socket.html#aa857c8d6d11304b468fd20f8201dcc2a',1,'Nakama.ISocket.ReceivedPartyData'],['../class_nakama_1_1_socket.html#af68d467390d65c70387cdb4a81f07b05',1,'Nakama.Socket.ReceivedPartyData']]],\n  ['receivedpartyjoinrequest_11',['ReceivedPartyJoinRequest',['../interface_nakama_1_1_i_socket.html#ae8b2267febd5ee639429aa65fcc774e3',1,'Nakama.ISocket.ReceivedPartyJoinRequest'],['../class_nakama_1_1_socket.html#a5e3f748ba1eb18860832bf62c820bcd6',1,'Nakama.Socket.ReceivedPartyJoinRequest']]],\n  ['receivedpartyleader_12',['ReceivedPartyLeader',['../interface_nakama_1_1_i_socket.html#a8ac582863e0349af106020bddea8aca3',1,'Nakama.ISocket.ReceivedPartyLeader'],['../class_nakama_1_1_socket.html#a65997479fd70edd6a4c343d00413ca53',1,'Nakama.Socket.ReceivedPartyLeader']]],\n  ['receivedpartymatchmakerticket_13',['ReceivedPartyMatchmakerTicket',['../interface_nakama_1_1_i_socket.html#a6537de9e92b9e3073d425178c88fbfe7',1,'Nakama.ISocket.ReceivedPartyMatchmakerTicket'],['../class_nakama_1_1_socket.html#a3d974d278adc00819b18a946f07d467e',1,'Nakama.Socket.ReceivedPartyMatchmakerTicket']]],\n  ['receivedpartypresence_14',['ReceivedPartyPresence',['../interface_nakama_1_1_i_socket.html#a826e3c85c992db9c009ad30a31280f5d',1,'Nakama.ISocket.ReceivedPartyPresence'],['../class_nakama_1_1_socket.html#a7efe921c019734677c663fadd61abd10',1,'Nakama.Socket.ReceivedPartyPresence']]],\n  ['receivedpartyupdate_15',['ReceivedPartyUpdate',['../interface_nakama_1_1_i_socket.html#a9927bfe41792b4791f1fb4d2eb5cbc00',1,'Nakama.ISocket.ReceivedPartyUpdate'],['../class_nakama_1_1_socket.html#a0d55c55027d6793198c512a035b3d33f',1,'Nakama.Socket.ReceivedPartyUpdate']]],\n  ['receivedsessionupdated_16',['ReceivedSessionUpdated',['../class_nakama_1_1_client.html#a9dc5ecc3c4faaa26b8508a931a086217',1,'Nakama.Client.ReceivedSessionUpdated'],['../interface_nakama_1_1_i_client.html#a9d6c9e57b47566fe3b5184166786a30b',1,'Nakama.IClient.ReceivedSessionUpdated'],['../class_satori_1_1_client.html#ae9a328a8cf234ecc9e8ef811f4cb05b9',1,'Satori.Client.ReceivedSessionUpdated'],['../interface_satori_1_1_i_client.html#af0bb8217badaf363744c5b982d6d4f0b',1,'Satori.IClient.ReceivedSessionUpdated']]],\n  ['receivedstatuspresence_17',['ReceivedStatusPresence',['../interface_nakama_1_1_i_socket.html#a8ffa8e010664063ab88ffd2b5db472ce',1,'Nakama.ISocket.ReceivedStatusPresence'],['../class_nakama_1_1_socket.html#aafb682456f9e2f2f6786c7a604068579',1,'Nakama.Socket.ReceivedStatusPresence']]],\n  ['receivedstreampresence_18',['ReceivedStreamPresence',['../interface_nakama_1_1_i_socket.html#af79cb677935c51a7271a9cb95f84353a',1,'Nakama.ISocket.ReceivedStreamPresence'],['../class_nakama_1_1_socket.html#a8f87e235201537ea096e9f7644fcbb53',1,'Nakama.Socket.ReceivedStreamPresence']]],\n  ['receivedstreamstate_19',['ReceivedStreamState',['../interface_nakama_1_1_i_socket.html#ac38386b65fb4b5a4a0cd96a22e20cefb',1,'Nakama.ISocket.ReceivedStreamState'],['../class_nakama_1_1_socket.html#ab74f9b37e9a85409f5c742c1f7472df8',1,'Nakama.Socket.ReceivedStreamState']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_0.js",
    "content": "var searchData=\n[\n  ['binaryreaderwriter_2ecs_0',['BinaryReaderWriter.cs',['../_binary_reader_writer_8cs.html',1,'']]],\n  ['bufferpool_2ecs_1',['BufferPool.cs',['../_buffer_pool_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_1.js",
    "content": "var searchData=\n[\n  ['changelog_2emd_0',['CHANGELOG.md',['../_c_h_a_n_g_e_l_o_g_8md.html',1,'']]],\n  ['channeljoinmessage_2ecs_1',['ChannelJoinMessage.cs',['../_channel_join_message_8cs.html',1,'']]],\n  ['channelleavemessage_2ecs_2',['ChannelLeaveMessage.cs',['../_channel_leave_message_8cs.html',1,'']]],\n  ['channelremovemessage_2ecs_3',['ChannelRemoveMessage.cs',['../_channel_remove_message_8cs.html',1,'']]],\n  ['channelsendmessage_2ecs_4',['ChannelSendMessage.cs',['../_channel_send_message_8cs.html',1,'']]],\n  ['channelupdatemessage_2ecs_5',['ChannelUpdateMessage.cs',['../_channel_update_message_8cs.html',1,'']]],\n  ['consoleclient_2egen_2ecs_6',['ConsoleClient.gen.cs',['../_console_client_8gen_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_2.js",
    "content": "var searchData=\n[\n  ['debug_2fnet46_2fnakama_2eassemblyinfo_2ecs_0',['Nakama.AssemblyInfo.cs',['../_debug_2net46_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnet46_2fsatori_2eassemblyinfo_2ecs_1',['Satori.AssemblyInfo.cs',['../_debug_2net46_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e0_2fnakama_2eassemblyinfo_2ecs_2',['Nakama.AssemblyInfo.cs',['../_debug_2netstandard2_80_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e0_2fsatori_2eassemblyinfo_2ecs_3',['Satori.AssemblyInfo.cs',['../_debug_2netstandard2_80_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e1_2fnakama_2eassemblyinfo_2ecs_4',['Nakama.AssemblyInfo.cs',['../_debug_2netstandard2_81_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['debug_2fnetstandard2_2e1_2fsatori_2eassemblyinfo_2ecs_5',['Satori.AssemblyInfo.cs',['../_debug_2netstandard2_81_2_satori_8_assembly_info_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_3.js",
    "content": "var searchData=\n[\n  ['entitytoolargeexception_2ecs_0',['EntityTooLargeException.cs',['../_entity_too_large_exception_8cs.html',1,'']]],\n  ['event_2ecs_1',['Event.cs',['../_event_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_4.js",
    "content": "var searchData=\n[\n  ['httphelper_2ecs_0',['HttpHelper.cs',['../_http_helper_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_5.js",
    "content": "var searchData=\n[\n  ['ibufferpool_2ecs_0',['IBufferPool.cs',['../_i_buffer_pool_8cs.html',1,'']]],\n  ['ichannel_2ecs_1',['IChannel.cs',['../_i_channel_8cs.html',1,'']]],\n  ['ichannelmessageack_2ecs_2',['IChannelMessageAck.cs',['../_i_channel_message_ack_8cs.html',1,'']]],\n  ['ichannelpresenceevent_2ecs_3',['IChannelPresenceEvent.cs',['../_i_channel_presence_event_8cs.html',1,'']]],\n  ['imatch_2ecs_4',['IMatch.cs',['../_i_match_8cs.html',1,'']]],\n  ['imatchmakermatched_2ecs_5',['IMatchmakerMatched.cs',['../_i_matchmaker_matched_8cs.html',1,'']]],\n  ['imatchmakerticket_2ecs_6',['IMatchmakerTicket.cs',['../_i_matchmaker_ticket_8cs.html',1,'']]],\n  ['imatchpresenceevent_2ecs_7',['IMatchPresenceEvent.cs',['../_i_match_presence_event_8cs.html',1,'']]],\n  ['imatchstate_2ecs_8',['IMatchState.cs',['../_i_match_state_8cs.html',1,'']]],\n  ['invalidhttpresponsecodeexception_2ecs_9',['InvalidHttpResponseCodeException.cs',['../_invalid_http_response_code_exception_8cs.html',1,'']]],\n  ['iparty_2ecs_10',['IParty.cs',['../_i_party_8cs.html',1,'']]],\n  ['ipartyclose_2ecs_11',['IPartyClose.cs',['../_i_party_close_8cs.html',1,'']]],\n  ['ipartydata_2ecs_12',['IPartyData.cs',['../_i_party_data_8cs.html',1,'']]],\n  ['ipartyjoinrequest_2ecs_13',['IPartyJoinRequest.cs',['../_i_party_join_request_8cs.html',1,'']]],\n  ['ipartyleader_2ecs_14',['IPartyLeader.cs',['../_i_party_leader_8cs.html',1,'']]],\n  ['ipartymatchmakerticket_2ecs_15',['IPartyMatchmakerTicket.cs',['../_i_party_matchmaker_ticket_8cs.html',1,'']]],\n  ['ipartypresenceevent_2ecs_16',['IPartyPresenceEvent.cs',['../_i_party_presence_event_8cs.html',1,'']]],\n  ['ipartyupdate_2ecs_17',['IPartyUpdate.cs',['../_i_party_update_8cs.html',1,'']]],\n  ['ipingpongmanager_2ecs_18',['IPingPongManager.cs',['../_i_ping_pong_manager_8cs.html',1,'']]],\n  ['isocket_2ecs_19',['ISocket.cs',['../_i_socket_8cs.html',1,'']]],\n  ['isocketadapter_2ecs_20',['ISocketAdapter.cs',['../_i_socket_adapter_8cs.html',1,'']]],\n  ['istatus_2ecs_21',['IStatus.cs',['../_i_status_8cs.html',1,'']]],\n  ['istatuspresenceevent_2ecs_22',['IStatusPresenceEvent.cs',['../_i_status_presence_event_8cs.html',1,'']]],\n  ['istreampresenceevent_2ecs_23',['IStreamPresenceEvent.cs',['../_i_stream_presence_event_8cs.html',1,'']]],\n  ['iuserpresence_2ecs_24',['IUserPresence.cs',['../_i_user_presence_8cs.html',1,'']]],\n  ['iwebsocketclientfactory_2ecs_25',['IWebSocketClientFactory.cs',['../_i_web_socket_client_factory_8cs.html',1,'']]],\n  ['iwebsocketserverfactory_2ecs_26',['IWebSocketServerFactory.cs',['../_i_web_socket_server_factory_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_6.js",
    "content": "var searchData=\n[\n  ['matchcreatemessage_2ecs_0',['MatchCreateMessage.cs',['../_match_create_message_8cs.html',1,'']]],\n  ['matchjoinmessage_2ecs_1',['MatchJoinMessage.cs',['../_match_join_message_8cs.html',1,'']]],\n  ['matchleavemessage_2ecs_2',['MatchLeaveMessage.cs',['../_match_leave_message_8cs.html',1,'']]],\n  ['matchmakeraddmessage_2ecs_3',['MatchmakerAddMessage.cs',['../_matchmaker_add_message_8cs.html',1,'']]],\n  ['matchmakerremovemessage_2ecs_4',['MatchmakerRemoveMessage.cs',['../_matchmaker_remove_message_8cs.html',1,'']]],\n  ['matchsendmessage_2ecs_5',['MatchSendMessage.cs',['../_match_send_message_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_7.js",
    "content": "var searchData=\n[\n  ['nakama_2fapiclient_2egen_2ecs_0',['ApiClient.gen.cs',['../_nakama_2_api_client_8gen_8cs.html',1,'']]],\n  ['nakama_2fclient_2ecs_1',['Client.cs',['../_nakama_2_client_8cs.html',1,'']]],\n  ['nakama_2fgziphttpclienthandler_2ecs_2',['GZipHttpClientHandler.cs',['../_nakama_2_g_zip_http_client_handler_8cs.html',1,'']]],\n  ['nakama_2fhttprequestadapter_2ecs_3',['HttpRequestAdapter.cs',['../_nakama_2_http_request_adapter_8cs.html',1,'']]],\n  ['nakama_2ficlient_2ecs_4',['IClient.cs',['../_nakama_2_i_client_8cs.html',1,'']]],\n  ['nakama_2fihttpadapter_2ecs_5',['IHttpAdapter.cs',['../_nakama_2_i_http_adapter_8cs.html',1,'']]],\n  ['nakama_2fihttpadapterutil_2ecs_6',['IHttpAdapterUtil.cs',['../_nakama_2_i_http_adapter_util_8cs.html',1,'']]],\n  ['nakama_2filogger_2ecs_7',['ILogger.cs',['../_nakama_2_i_logger_8cs.html',1,'']]],\n  ['nakama_2fisession_2ecs_8',['ISession.cs',['../_nakama_2_i_session_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_9',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_10',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2fdebug_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_11',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_nakama_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_12',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_13',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fobj_2frelease_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_14',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_nakama_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2fpreserveattribute_2ecs_15',['PreserveAttribute.cs',['../_nakama_2_preserve_attribute_8cs.html',1,'']]],\n  ['nakama_2fretry_2ecs_16',['Retry.cs',['../_nakama_2_retry_8cs.html',1,'']]],\n  ['nakama_2fretryconfiguration_2ecs_17',['RetryConfiguration.cs',['../_nakama_2_retry_configuration_8cs.html',1,'']]],\n  ['nakama_2fretryhistory_2ecs_18',['RetryHistory.cs',['../_nakama_2_retry_history_8cs.html',1,'']]],\n  ['nakama_2fretryinvoker_2ecs_19',['RetryInvoker.cs',['../_nakama_2_retry_invoker_8cs.html',1,'']]],\n  ['nakama_2fretryjitter_2ecs_20',['RetryJitter.cs',['../_nakama_2_retry_jitter_8cs.html',1,'']]],\n  ['nakama_2fretrylistener_2ecs_21',['RetryListener.cs',['../_nakama_2_retry_listener_8cs.html',1,'']]],\n  ['nakama_2fsession_2ecs_22',['Session.cs',['../_nakama_2_session_8cs.html',1,'']]],\n  ['nakama_2ftinyjson_2fjsonparser_2ecs_23',['JsonParser.cs',['../_nakama_2_tiny_json_2_json_parser_8cs.html',1,'']]],\n  ['nakama_2ftinyjson_2fjsonwriter_2ecs_24',['JsonWriter.cs',['../_nakama_2_tiny_json_2_json_writer_8cs.html',1,'']]],\n  ['nakama_2ftransientexceptiondelegate_2ecs_25',['TransientExceptionDelegate.cs',['../_nakama_2_transient_exception_delegate_8cs.html',1,'']]],\n  ['nulllogger_2ecs_26',['NullLogger.cs',['../_null_logger_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_8.js",
    "content": "var searchData=\n[\n  ['party_2ecs_0',['Party.cs',['../_party_8cs.html',1,'']]],\n  ['partyaccept_2ecs_1',['PartyAccept.cs',['../_party_accept_8cs.html',1,'']]],\n  ['partyclose_2ecs_2',['PartyClose.cs',['../_party_close_8cs.html',1,'']]],\n  ['partycreate_2ecs_3',['PartyCreate.cs',['../_party_create_8cs.html',1,'']]],\n  ['partydata_2ecs_4',['PartyData.cs',['../_party_data_8cs.html',1,'']]],\n  ['partydatasend_2ecs_5',['PartyDataSend.cs',['../_party_data_send_8cs.html',1,'']]],\n  ['partyjoin_2ecs_6',['PartyJoin.cs',['../_party_join_8cs.html',1,'']]],\n  ['partyjoinrequest_2ecs_7',['PartyJoinRequest.cs',['../_party_join_request_8cs.html',1,'']]],\n  ['partyjoinrequestlist_2ecs_8',['PartyJoinRequestList.cs',['../_party_join_request_list_8cs.html',1,'']]],\n  ['partyleader_2ecs_9',['PartyLeader.cs',['../_party_leader_8cs.html',1,'']]],\n  ['partyleave_2ecs_10',['PartyLeave.cs',['../_party_leave_8cs.html',1,'']]],\n  ['partymatchmakeradd_2ecs_11',['PartyMatchmakerAdd.cs',['../_party_matchmaker_add_8cs.html',1,'']]],\n  ['partymatchmakerremove_2ecs_12',['PartyMatchmakerRemove.cs',['../_party_matchmaker_remove_8cs.html',1,'']]],\n  ['partymatchmakerticket_2ecs_13',['PartyMatchmakerTicket.cs',['../_party_matchmaker_ticket_8cs.html',1,'']]],\n  ['partymemberremove_2ecs_14',['PartyMemberRemove.cs',['../_party_member_remove_8cs.html',1,'']]],\n  ['partypresenceevent_2ecs_15',['PartyPresenceEvent.cs',['../_party_presence_event_8cs.html',1,'']]],\n  ['partypromote_2ecs_16',['PartyPromote.cs',['../_party_promote_8cs.html',1,'']]],\n  ['partyupdate_2ecs_17',['PartyUpdate.cs',['../_party_update_8cs.html',1,'']]],\n  ['pingpongmanager_2ecs_18',['PingPongManager.cs',['../_ping_pong_manager_8cs.html',1,'']]],\n  ['pongeventargs_2ecs_19',['PongEventArgs.cs',['../_pong_event_args_8cs.html',1,'']]],\n  ['presenceutil_2ecs_20',['PresenceUtil.cs',['../_presence_util_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_9.js",
    "content": "var searchData=\n[\n  ['readme_2emd_0',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],\n  ['release_2fnet46_2fnakama_2eassemblyinfo_2ecs_1',['Nakama.AssemblyInfo.cs',['../_release_2net46_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnet46_2fsatori_2eassemblyinfo_2ecs_2',['Satori.AssemblyInfo.cs',['../_release_2net46_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e0_2fnakama_2eassemblyinfo_2ecs_3',['Nakama.AssemblyInfo.cs',['../_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e0_2fsatori_2eassemblyinfo_2ecs_4',['Satori.AssemblyInfo.cs',['../_release_2netstandard2_80_2_satori_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e1_2fnakama_2eassemblyinfo_2ecs_5',['Nakama.AssemblyInfo.cs',['../_release_2netstandard2_81_2_nakama_8_assembly_info_8cs.html',1,'']]],\n  ['release_2fnetstandard2_2e1_2fsatori_2eassemblyinfo_2ecs_6',['Satori.AssemblyInfo.cs',['../_release_2netstandard2_81_2_satori_8_assembly_info_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_a.js",
    "content": "var searchData=\n[\n  ['satori_2fapiclient_2egen_2ecs_0',['ApiClient.gen.cs',['../_satori_2_api_client_8gen_8cs.html',1,'']]],\n  ['satori_2fclient_2ecs_1',['Client.cs',['../_satori_2_client_8cs.html',1,'']]],\n  ['satori_2fgziphttpclienthandler_2ecs_2',['GZipHttpClientHandler.cs',['../_satori_2_g_zip_http_client_handler_8cs.html',1,'']]],\n  ['satori_2fhttprequestadapter_2ecs_3',['HttpRequestAdapter.cs',['../_satori_2_http_request_adapter_8cs.html',1,'']]],\n  ['satori_2ficlient_2ecs_4',['IClient.cs',['../_satori_2_i_client_8cs.html',1,'']]],\n  ['satori_2fihttpadapter_2ecs_5',['IHttpAdapter.cs',['../_satori_2_i_http_adapter_8cs.html',1,'']]],\n  ['satori_2fihttpadapterutil_2ecs_6',['IHttpAdapterUtil.cs',['../_satori_2_i_http_adapter_util_8cs.html',1,'']]],\n  ['satori_2filogger_2ecs_7',['ILogger.cs',['../_satori_2_i_logger_8cs.html',1,'']]],\n  ['satori_2fisession_2ecs_8',['ISession.cs',['../_satori_2_i_session_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_9',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_10',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2fdebug_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_11',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_satori_2obj_2_debug_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnet46_2f_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_12',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_satori_2obj_2_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnetstandard2_2e0_2f_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_13',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_satori_2obj_2_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fobj_2frelease_2fnetstandard2_2e1_2f_2enetstandard_2cversion_3dv2_2e1_2eassemblyattributes_2ecs_14',['.NETStandard,Version=v2.1.AssemblyAttributes.cs',['../_satori_2obj_2_release_2netstandard2_81_2_8_n_e_t_standard_00_version_0av2_81_8_assembly_attributes_8cs.html',1,'']]],\n  ['satori_2fpreserveattribute_2ecs_15',['PreserveAttribute.cs',['../_satori_2_preserve_attribute_8cs.html',1,'']]],\n  ['satori_2fretry_2ecs_16',['Retry.cs',['../_satori_2_retry_8cs.html',1,'']]],\n  ['satori_2fretryconfiguration_2ecs_17',['RetryConfiguration.cs',['../_satori_2_retry_configuration_8cs.html',1,'']]],\n  ['satori_2fretryhistory_2ecs_18',['RetryHistory.cs',['../_satori_2_retry_history_8cs.html',1,'']]],\n  ['satori_2fretryinvoker_2ecs_19',['RetryInvoker.cs',['../_satori_2_retry_invoker_8cs.html',1,'']]],\n  ['satori_2fretryjitter_2ecs_20',['RetryJitter.cs',['../_satori_2_retry_jitter_8cs.html',1,'']]],\n  ['satori_2fretrylistener_2ecs_21',['RetryListener.cs',['../_satori_2_retry_listener_8cs.html',1,'']]],\n  ['satori_2fsession_2ecs_22',['Session.cs',['../_satori_2_session_8cs.html',1,'']]],\n  ['satori_2ftinyjson_2fjsonparser_2ecs_23',['JsonParser.cs',['../_satori_2_tiny_json_2_json_parser_8cs.html',1,'']]],\n  ['satori_2ftinyjson_2fjsonwriter_2ecs_24',['JsonWriter.cs',['../_satori_2_tiny_json_2_json_writer_8cs.html',1,'']]],\n  ['satori_2ftransientexceptiondelegate_2ecs_25',['TransientExceptionDelegate.cs',['../_satori_2_transient_exception_delegate_8cs.html',1,'']]],\n  ['secwebsocketkeymissingexception_2ecs_26',['SecWebSocketKeyMissingException.cs',['../_sec_web_socket_key_missing_exception_8cs.html',1,'']]],\n  ['serverlistenersocketexception_2ecs_27',['ServerListenerSocketException.cs',['../_server_listener_socket_exception_8cs.html',1,'']]],\n  ['socket_2ecs_28',['Socket.cs',['../_socket_8cs.html',1,'']]],\n  ['statusfollowmessage_2ecs_29',['StatusFollowMessage.cs',['../_status_follow_message_8cs.html',1,'']]],\n  ['statusunfollowmessage_2ecs_30',['StatusUnfollowMessage.cs',['../_status_unfollow_message_8cs.html',1,'']]],\n  ['statusupdatemessage_2ecs_31',['StatusUpdateMessage.cs',['../_status_update_message_8cs.html',1,'']]],\n  ['storageobjectid_2ecs_32',['StorageObjectId.cs',['../_storage_object_id_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_b.js",
    "content": "var searchData=\n[\n  ['websocketadapter_2ecs_0',['WebSocketAdapter.cs',['../_web_socket_adapter_8cs.html',1,'']]],\n  ['websocketbufferoverflowexception_2ecs_1',['WebSocketBufferOverflowException.cs',['../_web_socket_buffer_overflow_exception_8cs.html',1,'']]],\n  ['websocketclientfactory_2ecs_2',['WebSocketClientFactory.cs',['../_web_socket_client_factory_8cs.html',1,'']]],\n  ['websocketclientoptions_2ecs_3',['WebSocketClientOptions.cs',['../_web_socket_client_options_8cs.html',1,'']]],\n  ['websocketerrormessage_2ecs_4',['WebSocketErrorMessage.cs',['../_web_socket_error_message_8cs.html',1,'']]],\n  ['websocketframe_2ecs_5',['WebSocketFrame.cs',['../_web_socket_frame_8cs.html',1,'']]],\n  ['websocketframecommon_2ecs_6',['WebSocketFrameCommon.cs',['../_web_socket_frame_common_8cs.html',1,'']]],\n  ['websocketframereader_2ecs_7',['WebSocketFrameReader.cs',['../_web_socket_frame_reader_8cs.html',1,'']]],\n  ['websocketframewriter_2ecs_8',['WebSocketFrameWriter.cs',['../_web_socket_frame_writer_8cs.html',1,'']]],\n  ['websockethandshakefailedexception_2ecs_9',['WebSocketHandshakeFailedException.cs',['../_web_socket_handshake_failed_exception_8cs.html',1,'']]],\n  ['websockethttpcontext_2ecs_10',['WebSocketHttpContext.cs',['../_web_socket_http_context_8cs.html',1,'']]],\n  ['websocketimplementation_2ecs_11',['WebSocketImplementation.cs',['../_web_socket_implementation_8cs.html',1,'']]],\n  ['websocketmessageenvelope_2ecs_12',['WebSocketMessageEnvelope.cs',['../_web_socket_message_envelope_8cs.html',1,'']]],\n  ['websocketopcode_2ecs_13',['WebSocketOpCode.cs',['../_web_socket_op_code_8cs.html',1,'']]],\n  ['websocketreadcursor_2ecs_14',['WebSocketReadCursor.cs',['../_web_socket_read_cursor_8cs.html',1,'']]],\n  ['websocketserverfactory_2ecs_15',['WebSocketServerFactory.cs',['../_web_socket_server_factory_8cs.html',1,'']]],\n  ['websocketserveroptions_2ecs_16',['WebSocketServerOptions.cs',['../_web_socket_server_options_8cs.html',1,'']]],\n  ['websocketstdlibadapter_2ecs_17',['WebSocketStdlibAdapter.cs',['../_web_socket_stdlib_adapter_8cs.html',1,'']]],\n  ['websocketversionnotsupportedexception_2ecs_18',['WebSocketVersionNotSupportedException.cs',['../_web_socket_version_not_supported_exception_8cs.html',1,'']]],\n  ['writestorageobject_2ecs_19',['WriteStorageObject.cs',['../_write_storage_object_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_c.js",
    "content": "var searchData=\n[\n  ['_2enetframework_2cversion_3dv4_2e6_2eassemblyattributes_2ecs_0',['.NETFramework,Version=v4.6.AssemblyAttributes.cs',['../_release_2net46_2_8_n_e_t_framework_00_version_0av4_86_8_assembly_attributes_8cs.html',1,'']]],\n  ['_2enetstandard_2cversion_3dv2_2e0_2eassemblyattributes_2ecs_1',['.NETStandard,Version=v2.0.AssemblyAttributes.cs',['../_release_2netstandard2_80_2_8_n_e_t_standard_00_version_0av2_80_8_assembly_attributes_8cs.html',1,'']]],\n  ['nakama_2eassemblyinfo_2ecs_2',['Nakama.AssemblyInfo.cs',['../_release_2net46_2_nakama_8_assembly_info_8cs.html',1,'(Global Namespace)'],['../_release_2netstandard2_80_2_nakama_8_assembly_info_8cs.html',1,'(Global Namespace)']]],\n  ['readme_2emd_3',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]],\n  ['retry_2ecs_4',['Retry.cs',['../_retry_8cs.html',1,'']]],\n  ['retryconfiguration_2ecs_5',['RetryConfiguration.cs',['../_retry_configuration_8cs.html',1,'']]],\n  ['retryhistory_2ecs_6',['RetryHistory.cs',['../_retry_history_8cs.html',1,'']]],\n  ['retryinvoker_2ecs_7',['RetryInvoker.cs',['../_retry_invoker_8cs.html',1,'']]],\n  ['retryjitter_2ecs_8',['RetryJitter.cs',['../_retry_jitter_8cs.html',1,'']]],\n  ['retrylistener_2ecs_9',['RetryListener.cs',['../_retry_listener_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"files_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/files_d.js",
    "content": "var searchData=\n[\n  ['secwebsocketkeymissingexception_2ecs_0',['SecWebSocketKeyMissingException.cs',['../_sec_web_socket_key_missing_exception_8cs.html',1,'']]],\n  ['serverlistenersocketexception_2ecs_1',['ServerListenerSocketException.cs',['../_server_listener_socket_exception_8cs.html',1,'']]],\n  ['session_2ecs_2',['Session.cs',['../_session_8cs.html',1,'']]],\n  ['socket_2ecs_3',['Socket.cs',['../_socket_8cs.html',1,'']]],\n  ['statusfollowmessage_2ecs_4',['StatusFollowMessage.cs',['../_status_follow_message_8cs.html',1,'']]],\n  ['statusunfollowmessage_2ecs_5',['StatusUnfollowMessage.cs',['../_status_unfollow_message_8cs.html',1,'']]],\n  ['statusupdatemessage_2ecs_6',['StatusUpdateMessage.cs',['../_status_update_message_8cs.html',1,'']]],\n  ['storageobjectid_2ecs_7',['StorageObjectId.cs',['../_storage_object_id_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_e.js",
    "content": "var searchData=\n[\n  ['transientexceptiondelegate_2ecs_0',['TransientExceptionDelegate.cs',['../_transient_exception_delegate_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/files_f.js",
    "content": "var searchData=\n[\n  ['websocketadapter_2ecs_0',['WebSocketAdapter.cs',['../_web_socket_adapter_8cs.html',1,'']]],\n  ['websocketbufferoverflowexception_2ecs_1',['WebSocketBufferOverflowException.cs',['../_web_socket_buffer_overflow_exception_8cs.html',1,'']]],\n  ['websocketclientfactory_2ecs_2',['WebSocketClientFactory.cs',['../_web_socket_client_factory_8cs.html',1,'']]],\n  ['websocketclientoptions_2ecs_3',['WebSocketClientOptions.cs',['../_web_socket_client_options_8cs.html',1,'']]],\n  ['websocketerrormessage_2ecs_4',['WebSocketErrorMessage.cs',['../_web_socket_error_message_8cs.html',1,'']]],\n  ['websocketframe_2ecs_5',['WebSocketFrame.cs',['../_web_socket_frame_8cs.html',1,'']]],\n  ['websocketframecommon_2ecs_6',['WebSocketFrameCommon.cs',['../_web_socket_frame_common_8cs.html',1,'']]],\n  ['websocketframereader_2ecs_7',['WebSocketFrameReader.cs',['../_web_socket_frame_reader_8cs.html',1,'']]],\n  ['websocketframewriter_2ecs_8',['WebSocketFrameWriter.cs',['../_web_socket_frame_writer_8cs.html',1,'']]],\n  ['websockethandshakefailedexception_2ecs_9',['WebSocketHandshakeFailedException.cs',['../_web_socket_handshake_failed_exception_8cs.html',1,'']]],\n  ['websockethttpcontext_2ecs_10',['WebSocketHttpContext.cs',['../_web_socket_http_context_8cs.html',1,'']]],\n  ['websocketimplementation_2ecs_11',['WebSocketImplementation.cs',['../_web_socket_implementation_8cs.html',1,'']]],\n  ['websocketmessageenvelope_2ecs_12',['WebSocketMessageEnvelope.cs',['../_web_socket_message_envelope_8cs.html',1,'']]],\n  ['websocketopcode_2ecs_13',['WebSocketOpCode.cs',['../_web_socket_op_code_8cs.html',1,'']]],\n  ['websocketreadcursor_2ecs_14',['WebSocketReadCursor.cs',['../_web_socket_read_cursor_8cs.html',1,'']]],\n  ['websocketserverfactory_2ecs_15',['WebSocketServerFactory.cs',['../_web_socket_server_factory_8cs.html',1,'']]],\n  ['websocketserveroptions_2ecs_16',['WebSocketServerOptions.cs',['../_web_socket_server_options_8cs.html',1,'']]],\n  ['websocketstdlibadapter_2ecs_17',['WebSocketStdlibAdapter.cs',['../_web_socket_stdlib_adapter_8cs.html',1,'']]],\n  ['websocketversionnotsupportedexception_2ecs_18',['WebSocketVersionNotSupportedException.cs',['../_web_socket_version_not_supported_exception_8cs.html',1,'']]],\n  ['writestorageobject_2ecs_19',['WriteStorageObject.cs',['../_write_storage_object_8cs.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_0.js",
    "content": "var searchData=\n[\n  ['acceptpartymemberasync_0',['AcceptPartyMemberAsync',['../interface_nakama_1_1_i_socket.html#a1bde1efda48cb1aac4d0e049dbe05e51',1,'Nakama.ISocket.AcceptPartyMemberAsync()'],['../class_nakama_1_1_socket.html#ae9fa18dcb3d306d29c7dc97a8e64687a',1,'Nakama.Socket.AcceptPartyMemberAsync()']]],\n  ['acceptwebsocketasync_1',['AcceptWebSocketAsync',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a324539f6e78653fdc0dc5808a32382f9',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a8606821c9e7ab2e7e314406740c93669',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a047b8446ad6f83559eed6d9203efaf4d',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a6f531a90110af6ae8015aebf690cf27f',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.AcceptWebSocketAsync(WebSocketHttpContext context, WebSocketServerOptions options, CancellationToken token=default(CancellationToken))']]],\n  ['addfriendsasync_2',['AddFriendsAsync',['../class_nakama_1_1_client.html#a2c2aa0509927ec99a260681056ffc0d0',1,'Nakama.Client.AddFriendsAsync()'],['../interface_nakama_1_1_i_client.html#aae3144e0e3d8ea9a2c6d5df25b647e23',1,'Nakama.IClient.AddFriendsAsync()']]],\n  ['addgroupusersasync_3',['AddGroupUsersAsync',['../class_nakama_1_1_client.html#a769d19ca9593f14fc8a3f91d1950f155',1,'Nakama.Client.AddGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#abec54a30d216a009e04cb7df410e15f3',1,'Nakama.IClient.AddGroupUsersAsync()']]],\n  ['addmatchmakerasync_4',['AddMatchmakerAsync',['../interface_nakama_1_1_i_socket.html#a162c3e3aae5243cd0d8aa39b588f6d96',1,'Nakama.ISocket.AddMatchmakerAsync()'],['../class_nakama_1_1_socket.html#aed1cb5c5784d1fd08bf5e63ab270a848',1,'Nakama.Socket.AddMatchmakerAsync()']]],\n  ['addmatchmakerpartyasync_5',['AddMatchmakerPartyAsync',['../interface_nakama_1_1_i_socket.html#a4309cafc8d3b17ddfdbeb3196bad98d5',1,'Nakama.ISocket.AddMatchmakerPartyAsync()'],['../class_nakama_1_1_socket.html#a5ed1f27ccf52792a55363ce3273e22de',1,'Nakama.Socket.AddMatchmakerPartyAsync()']]],\n  ['apiresponseexception_6',['ApiResponseException',['../class_nakama_1_1_api_response_exception.html#a77dfa1e69b45294a8be2755b0a95d928',1,'Nakama.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_nakama_1_1_api_response_exception.html#a0d264746286648211638110f05e80ac8',1,'Nakama.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_nakama_1_1_api_response_exception.html#a261e959445b965fea35318918d6bc1f1',1,'Nakama.ApiResponseException.ApiResponseException(string content)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a933cc0e479dba1f3cd313f4b1c20d767',1,'Nakama.Console.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a86369acf7418c84ce4a240da5265426a',1,'Nakama.Console.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a01bba3c61b60831e541fa66042a02b19',1,'Nakama.Console.ApiResponseException.ApiResponseException(string content)'],['../class_satori_1_1_api_response_exception.html#a7dff8536db4f58609912a614892fd936',1,'Satori.ApiResponseException.ApiResponseException(long statusCode, string content, int grpcCode)'],['../class_satori_1_1_api_response_exception.html#ae1355f7662390b58fa0b6ba5c9666926',1,'Satori.ApiResponseException.ApiResponseException(string message, Exception e)'],['../class_satori_1_1_api_response_exception.html#add8410b006b9f8688943eb865bed21df',1,'Satori.ApiResponseException.ApiResponseException(string content)']]],\n  ['authenticateappleasync_7',['AuthenticateAppleAsync',['../class_nakama_1_1_client.html#ae30e21d72b2f12cdb23d03994e6dfd35',1,'Nakama.Client.AuthenticateAppleAsync()'],['../interface_nakama_1_1_i_client.html#af56a59b69e6416645041852198bbc220',1,'Nakama.IClient.AuthenticateAppleAsync()']]],\n  ['authenticateasync_8',['AuthenticateAsync',['../class_satori_1_1_client.html#a48fe3ab83de7e5a0b70d45e939a93f57',1,'Satori.Client.AuthenticateAsync()'],['../interface_satori_1_1_i_client.html#a2cd228b8edf1c83582670629bf410a8b',1,'Satori.IClient.AuthenticateAsync()']]],\n  ['authenticatecustomasync_9',['AuthenticateCustomAsync',['../class_nakama_1_1_client.html#aecf7fd6a4745f23d3e411b3911ef7b8d',1,'Nakama.Client.AuthenticateCustomAsync()'],['../interface_nakama_1_1_i_client.html#a1081470b3d1dc65a43e57e158118dde0',1,'Nakama.IClient.AuthenticateCustomAsync()']]],\n  ['authenticatedeviceasync_10',['AuthenticateDeviceAsync',['../class_nakama_1_1_client.html#afe268da1eb4063933420c27ac8ce6bfe',1,'Nakama.Client.AuthenticateDeviceAsync()'],['../interface_nakama_1_1_i_client.html#ad9a6d4b73bc4ac965a7d913fcc7d5ee3',1,'Nakama.IClient.AuthenticateDeviceAsync()']]],\n  ['authenticateemailasync_11',['AuthenticateEmailAsync',['../class_nakama_1_1_client.html#a40bb677a0c6360f6402850720de573a6',1,'Nakama.Client.AuthenticateEmailAsync()'],['../interface_nakama_1_1_i_client.html#a1b77958ff52a879a27a5bfd0b97dfa6b',1,'Nakama.IClient.AuthenticateEmailAsync()']]],\n  ['authenticatefacebookasync_12',['AuthenticateFacebookAsync',['../class_nakama_1_1_client.html#a8965dfabd8ea716c3b119fb57b93d499',1,'Nakama.Client.AuthenticateFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a94137b0b4dd44bae5fcf4d112d4cab4d',1,'Nakama.IClient.AuthenticateFacebookAsync()']]],\n  ['authenticategamecenterasync_13',['AuthenticateGameCenterAsync',['../class_nakama_1_1_client.html#a275feb7d3de0a6b85741f463645fad3f',1,'Nakama.Client.AuthenticateGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#ab1b035116f1e0a1cf22d2f5fd8ed9233',1,'Nakama.IClient.AuthenticateGameCenterAsync()']]],\n  ['authenticategoogleasync_14',['AuthenticateGoogleAsync',['../class_nakama_1_1_client.html#a09315e1b205b1b94074f4137e6be9f00',1,'Nakama.Client.AuthenticateGoogleAsync()'],['../interface_nakama_1_1_i_client.html#aa7d5ea6ff35652864256236b6a298e16',1,'Nakama.IClient.AuthenticateGoogleAsync()']]],\n  ['authenticatelogoutasync_15',['AuthenticateLogoutAsync',['../class_satori_1_1_client.html#a927be3e3f8d4ddba36221d6c42310a02',1,'Satori.Client.AuthenticateLogoutAsync()'],['../interface_satori_1_1_i_client.html#aa9065d9dbe25cf136fedb3bf47f90238',1,'Satori.IClient.AuthenticateLogoutAsync()']]],\n  ['authenticatesteamasync_16',['AuthenticateSteamAsync',['../class_nakama_1_1_client.html#a2e075e4cf4c522e3de378a855dc34899',1,'Nakama.Client.AuthenticateSteamAsync()'],['../interface_nakama_1_1_i_client.html#a2f1dee9bd5c5761d55e5ab5a4d12690c',1,'Nakama.IClient.AuthenticateSteamAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_1.js",
    "content": "var searchData=\n[\n  ['bangroupusersasync_0',['BanGroupUsersAsync',['../class_nakama_1_1_client.html#af3738338a0465f5bb312b8c8ea9a5cf1',1,'Nakama.Client.BanGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ab22184136c797808a2aebe53100804e2',1,'Nakama.IClient.BanGroupUsersAsync()']]],\n  ['beginread_1',['BeginRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a282c64e19a381ae3112c1c6dcc9edbc1',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['beginwrite_2',['BeginWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0817a70e52ee58f07dc7b2439ff4e118',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['blockfriendsasync_3',['BlockFriendsAsync',['../class_nakama_1_1_client.html#ac0dc24ed36ac130f370fe7e9d47a109a',1,'Nakama.Client.BlockFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a625ec426d7062f4c118f3f014dd6e378',1,'Nakama.IClient.BlockFriendsAsync()']]],\n  ['bufferpool_4',['BufferPool',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#af9baf99ac988522e6bbacde7669aaaa4',1,'Nakama.Ninja.WebSockets.BufferPool.BufferPool()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#abb99536c0129f9ccbba8ad57e772d5fc',1,'Nakama.Ninja.WebSockets.BufferPool.BufferPool(int bufferSize)']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_10.js",
    "content": "var searchData=\n[\n  ['tlsauthenticateasclient_0',['TlsAuthenticateAsClient',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae82bdab87a83f521602e1a3608ea7bb9',1,'Nakama::Ninja::WebSockets::WebSocketClientFactory']]],\n  ['toarray_1',['ToArray',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aedb7be72f275938ff045731903d69c0b',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['tostring_2',['ToString',['../class_nakama_1_1_api_response_exception.html#a8bdf4cef42dbc531d7a96b655713918f',1,'Nakama.ApiResponseException.ToString()'],['../class_nakama_1_1_client.html#ae1aeb5b30fed94af008058803b5bd352',1,'Nakama.Client.ToString()'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a2f8ee604a09e87845c62e456c971b80b',1,'Nakama.Console.ApiResponseException.ToString()'],['../class_nakama_1_1_session.html#a8387864684cbee2f57ed82211c12e6cd',1,'Nakama.Session.ToString()'],['../class_nakama_1_1_socket.html#a3f20c76d13d14d9f7b3e82555815d39d',1,'Nakama.Socket.ToString()'],['../class_nakama_1_1_storage_object_id.html#a97002e9e8415e9ba6c778f03b5c803f4',1,'Nakama.StorageObjectId.ToString()'],['../class_nakama_1_1_web_socket_adapter.html#ac91f2ff65f7450ecb11574922989d457',1,'Nakama.WebSocketAdapter.ToString()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a499684d8c92a1bdf65e40663d9f327d7',1,'Nakama.WebSocketStdlibAdapter.ToString()'],['../class_satori_1_1_api_response_exception.html#a28bbbfe3b8dce84d5982886ca3d98cc1',1,'Satori.ApiResponseException.ToString()'],['../class_satori_1_1_session.html#ad241a4da8f93b528fff4c0f3e080165c',1,'Satori.Session.ToString()']]],\n  ['transientexceptiondelegate_3',['TransientExceptionDelegate',['../namespace_nakama.html#a016772f008c1c294bf609c6ece102445',1,'Nakama.TransientExceptionDelegate()'],['../namespace_satori.html#a511888108671df4cff6cd4bbb1ff498f',1,'Satori.TransientExceptionDelegate()']]],\n  ['trygetbuffer_4',['TryGetBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa52f535e992c3dd6b6c20ad130e66cf1',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_11.js",
    "content": "var searchData=\n[\n  ['unfollowusersasync_0',['UnfollowUsersAsync',['../interface_nakama_1_1_i_socket.html#a89c6778b3357f5c3d305b291847cb44a',1,'Nakama.ISocket.UnfollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../interface_nakama_1_1_i_socket.html#a8266f3c4803246a46e4066703ae62d37',1,'Nakama.ISocket.UnfollowUsersAsync(IEnumerable&lt; string &gt; userIDs)'],['../class_nakama_1_1_socket.html#a69d7b68ed48c79402440a90101981eec',1,'Nakama.Socket.UnfollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../class_nakama_1_1_socket.html#a3834aed45938e02964a4f29adcb51986',1,'Nakama.Socket.UnfollowUsersAsync(IEnumerable&lt; string &gt; userIDs)']]],\n  ['unlinkappleasync_1',['UnlinkAppleAsync',['../class_nakama_1_1_client.html#adf62218ff4074ee7847260fb69f7a40e',1,'Nakama.Client.UnlinkAppleAsync()'],['../interface_nakama_1_1_i_client.html#a4ba0c6637b9685eb0474352de1797a2e',1,'Nakama.IClient.UnlinkAppleAsync()']]],\n  ['unlinkcustomasync_2',['UnlinkCustomAsync',['../class_nakama_1_1_client.html#adb85bd4e511e508ef6858b103aa31523',1,'Nakama.Client.UnlinkCustomAsync()'],['../interface_nakama_1_1_i_client.html#a2c4af0c1a411fff04f6f68427d9c82ae',1,'Nakama.IClient.UnlinkCustomAsync()']]],\n  ['unlinkdeviceasync_3',['UnlinkDeviceAsync',['../class_nakama_1_1_client.html#a04f2596af7c5ffde9353981faed6443d',1,'Nakama.Client.UnlinkDeviceAsync()'],['../interface_nakama_1_1_i_client.html#a4be577065a26f40b5c8fcf501b83c7fc',1,'Nakama.IClient.UnlinkDeviceAsync()']]],\n  ['unlinkemailasync_4',['UnlinkEmailAsync',['../class_nakama_1_1_client.html#a93428352ac3edb3e35d00afe0e108f5d',1,'Nakama.Client.UnlinkEmailAsync()'],['../interface_nakama_1_1_i_client.html#a94c94fa13db5528abe5fc6a13cb469f1',1,'Nakama.IClient.UnlinkEmailAsync()']]],\n  ['unlinkfacebookasync_5',['UnlinkFacebookAsync',['../class_nakama_1_1_client.html#a116b79c31bc4bf94f0b037e6ecb33fc1',1,'Nakama.Client.UnlinkFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a9209cbf097fc5d612df113dc1f7a380e',1,'Nakama.IClient.UnlinkFacebookAsync()']]],\n  ['unlinkgamecenterasync_6',['UnlinkGameCenterAsync',['../class_nakama_1_1_client.html#adb1615cbce3978b43928c6dc1641fcd9',1,'Nakama.Client.UnlinkGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#a8db620f585a3b1c6b33c83ffa959759c',1,'Nakama.IClient.UnlinkGameCenterAsync()']]],\n  ['unlinkgoogleasync_7',['UnlinkGoogleAsync',['../class_nakama_1_1_client.html#ad30a4f27ec44259a72fb7ecd55b855cc',1,'Nakama.Client.UnlinkGoogleAsync()'],['../interface_nakama_1_1_i_client.html#aec2588fcb68ad3807af840f6886f79e7',1,'Nakama.IClient.UnlinkGoogleAsync()']]],\n  ['unlinksteamasync_8',['UnlinkSteamAsync',['../class_nakama_1_1_client.html#aa7cf34d32c3bd2dd89224491dd03627a',1,'Nakama.Client.UnlinkSteamAsync()'],['../interface_nakama_1_1_i_client.html#a0b5ce7e1a9d3707e2a098ea531a26b5d',1,'Nakama.IClient.UnlinkSteamAsync()']]],\n  ['update_9',['Update',['../class_nakama_1_1_session.html#af8b93681b0868726ad3d77c3f59c3ace',1,'Nakama::Session']]],\n  ['updateaccountasync_10',['UpdateAccountAsync',['../class_nakama_1_1_client.html#a493aaa96074ed53faae99041c1ff71e7',1,'Nakama.Client.UpdateAccountAsync()'],['../interface_nakama_1_1_i_client.html#a981b2780f9f9bf2b8e2b4f423680013f',1,'Nakama.IClient.UpdateAccountAsync()']]],\n  ['updatechatmessageasync_11',['UpdateChatMessageAsync',['../interface_nakama_1_1_i_socket.html#aceed2d36c564cb6eb71d060a07c9c041',1,'Nakama.ISocket.UpdateChatMessageAsync(IChannel channel, string messageId, string content)'],['../interface_nakama_1_1_i_socket.html#abda0b03723050cdcba1c765f501f1ce0',1,'Nakama.ISocket.UpdateChatMessageAsync(string channelId, string messageId, string content)'],['../class_nakama_1_1_socket.html#a3c3fbea58ee3a2f6e3d3885ca79ded9b',1,'Nakama.Socket.UpdateChatMessageAsync(IChannel channel, string messageId, string content)'],['../class_nakama_1_1_socket.html#adcc67413fe0ddd3aa5125290680151cf',1,'Nakama.Socket.UpdateChatMessageAsync(string channelId, string messageId, string content)']]],\n  ['updategroupasync_12',['UpdateGroupAsync',['../class_nakama_1_1_client.html#ae4721e57aa314b32152069e2644eb02b',1,'Nakama.Client.UpdateGroupAsync()'],['../interface_nakama_1_1_i_client.html#a1ab56488f06c34d4c8e7a184ef923176',1,'Nakama.IClient.UpdateGroupAsync()']]],\n  ['updatemessageasync_13',['UpdateMessageAsync',['../class_satori_1_1_client.html#aac785b841cecfc38b3b5c5a8c097bdd7',1,'Satori.Client.UpdateMessageAsync()'],['../interface_satori_1_1_i_client.html#a1266e5cbdb2ad6082010b6f630d4a3ca',1,'Satori.IClient.UpdateMessageAsync()']]],\n  ['updatepartyasync_14',['UpdatePartyAsync',['../interface_nakama_1_1_i_socket.html#a07a0201f9d1eb3e810eaaf80df0222c5',1,'Nakama.ISocket.UpdatePartyAsync()'],['../class_nakama_1_1_socket.html#a4ef44e17bdfac9f72f0bec033321b22a',1,'Nakama.Socket.UpdatePartyAsync()']]],\n  ['updatepresences_15',['UpdatePresences',['../interface_nakama_1_1_i_match.html#a7f2202fa2cf096415690d99c716f3cd1',1,'Nakama.IMatch.UpdatePresences()'],['../interface_nakama_1_1_i_party.html#a7b2c8949ded6a0fd6f2e075a4d13fdac',1,'Nakama.IParty.UpdatePresences()']]],\n  ['updatepropertiesasync_16',['UpdatePropertiesAsync',['../class_satori_1_1_client.html#a2a198da8925ebba18f6d90ada234c69b',1,'Satori.Client.UpdatePropertiesAsync()'],['../interface_satori_1_1_i_client.html#a5b6655c089427fb690ea2e70c4b4fed0',1,'Satori.IClient.UpdatePropertiesAsync()']]],\n  ['updatestatusasync_17',['UpdateStatusAsync',['../interface_nakama_1_1_i_socket.html#aaf666992ffd841ac9486a9433aab6614',1,'Nakama.ISocket.UpdateStatusAsync()'],['../class_nakama_1_1_socket.html#a869d3761f21ba7a2578f005a6690f707',1,'Nakama.Socket.UpdateStatusAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_12.js",
    "content": "var searchData=\n[\n  ['validatepurchaseappleasync_0',['ValidatePurchaseAppleAsync',['../class_nakama_1_1_client.html#a03a03e289c71ee9a21c6dc03241bd846',1,'Nakama.Client.ValidatePurchaseAppleAsync()'],['../interface_nakama_1_1_i_client.html#a3b4319cfed8f66406e01105fcbd46286',1,'Nakama.IClient.ValidatePurchaseAppleAsync()']]],\n  ['validatepurchasefacebookinstantasync_1',['ValidatePurchaseFacebookInstantAsync',['../class_nakama_1_1_client.html#a8badc57f270e3324fccb046a58b7c8a9',1,'Nakama.Client.ValidatePurchaseFacebookInstantAsync()'],['../interface_nakama_1_1_i_client.html#a4a8c0bf42e908cb3a71865c89877a035',1,'Nakama.IClient.ValidatePurchaseFacebookInstantAsync()']]],\n  ['validatepurchasegoogleasync_2',['ValidatePurchaseGoogleAsync',['../class_nakama_1_1_client.html#a08e6406e21fd5fc52ee905b586210276',1,'Nakama.Client.ValidatePurchaseGoogleAsync()'],['../interface_nakama_1_1_i_client.html#a58ec876cf25e2c0a096fa02dac977985',1,'Nakama.IClient.ValidatePurchaseGoogleAsync()']]],\n  ['validatepurchasehuaweiasync_3',['ValidatePurchaseHuaweiAsync',['../class_nakama_1_1_client.html#a7d49b887e6d302f68917162a0567ad66',1,'Nakama.Client.ValidatePurchaseHuaweiAsync()'],['../interface_nakama_1_1_i_client.html#a04cd45c9b6e5cc2333f7299a55a182a3',1,'Nakama.IClient.ValidatePurchaseHuaweiAsync()']]],\n  ['validatesubscriptionappleasync_4',['ValidateSubscriptionAppleAsync',['../class_nakama_1_1_client.html#a63b6bc07335627f58236ba0c9997336f',1,'Nakama.Client.ValidateSubscriptionAppleAsync()'],['../interface_nakama_1_1_i_client.html#abc626bfa5a312f23033b1dcce16abe90',1,'Nakama.IClient.ValidateSubscriptionAppleAsync()']]],\n  ['validatesubscriptiongoogleasync_5',['ValidateSubscriptionGoogleAsync',['../class_nakama_1_1_client.html#a30b942db8e51709901e60c6a5d26c5bb',1,'Nakama.Client.ValidateSubscriptionGoogleAsync()'],['../interface_nakama_1_1_i_client.html#abdceffcc291e56bf4de8683fb6386fe9',1,'Nakama.IClient.ValidateSubscriptionGoogleAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_13.js",
    "content": "var searchData=\n[\n  ['warnformat_0',['WarnFormat',['../interface_nakama_1_1_i_logger.html#aea853b29e33993f4fbfe55ff9413e7c3',1,'Nakama.ILogger.WarnFormat()'],['../interface_satori_1_1_i_logger.html#a30adb5d4ad5400e125795f35eff17591',1,'Satori.ILogger.WarnFormat()']]],\n  ['websocketadapter_1',['WebSocketAdapter',['../class_nakama_1_1_web_socket_adapter.html#abb3f830ffb2dbb9ea5d394916eb93fdc',1,'Nakama.WebSocketAdapter.WebSocketAdapter(int keepAliveIntervalSec=KeepAliveIntervalSec, int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize, ILogger logger=null)'],['../class_nakama_1_1_web_socket_adapter.html#ae1f7b96091445409691e5a5acb44040e',1,'Nakama.WebSocketAdapter.WebSocketAdapter(WebSocketClientOptions options, int sendTimeoutSec, int maxMessageReadSize, ILogger logger)']]],\n  ['websocketbufferoverflowexception_2',['WebSocketBufferOverflowException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a7995307d8f8510a62068b2efef8a0767',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a06646121cfc19cefa45dfe3c237744f1',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.html#a02de4e50e60e158d84e0d4fa8417e04d',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException.WebSocketBufferOverflowException(string message, Exception inner)']]],\n  ['websocketclientfactory_3',['WebSocketClientFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a2a013885f5f062a116c300d3bb5bb192',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a8cabd737201862075fe8587573f96731',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.WebSocketClientFactory(Func&lt; MemoryStream &gt; bufferFactory)']]],\n  ['websocketclientoptions_4',['WebSocketClientOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a60d072f7c1b6cdf03216249e257efe6f',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['websockethandshakefailedexception_5',['WebSocketHandshakeFailedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aa056e2cb8e72b87c28015d9947ef0c7a',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#aaa3d64dd95ff3b88121c7d5136f086b9',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.html#af4212c589c1575d390845be9e6b0e27c',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException.WebSocketHandshakeFailedException(string message, Exception inner)']]],\n  ['websockethttpcontext_6',['WebSocketHttpContext',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#aa24f04051ef73f6a5d98fc6633f6df07',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['websocketserverfactory_7',['WebSocketServerFactory',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#af85018d663e9cc04e4d9e8cd2886fcbe',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#a955e882752665598157e9a5d02deca23',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.WebSocketServerFactory(Func&lt; MemoryStream &gt; bufferFactory)']]],\n  ['websocketserveroptions_8',['WebSocketServerOptions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6426bfca9608a20915f11ef0955d1984',1,'Nakama::Ninja::WebSockets::WebSocketServerOptions']]],\n  ['websocketstdlibadapter_9',['WebSocketStdlibAdapter',['../class_nakama_1_1_web_socket_stdlib_adapter.html#a22ffb61a97bc21b86fa177a5025ebac7',1,'Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter(int sendTimeoutSec=SendTimeoutSec, int maxMessageReadSize=MaxMessageReadSize)'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a0d9779f96e2101f63852fe232e38c98b',1,'Nakama.WebSocketStdlibAdapter.WebSocketStdlibAdapter(ClientWebSocket webSocket)']]],\n  ['websocketversionnotsupportedexception_10',['WebSocketVersionNotSupportedException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a622db3686e8c00a0354965941af5b6b4',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a46f2737701bdc2e3933a4f2450307607',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.html#a890f584a8f8b7235778088dfec119b7d',1,'Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException.WebSocketVersionNotSupportedException(string message, Exception inner)']]],\n  ['withgzip_11',['WithGzip',['../class_nakama_1_1_http_request_adapter.html#ac251341e77f88116e774bddd549c330e',1,'Nakama.HttpRequestAdapter.WithGzip()'],['../class_satori_1_1_http_request_adapter.html#a625d2031f4142607a1b5a4c7054e77fd',1,'Satori.HttpRequestAdapter.WithGzip()']]],\n  ['write_12',['Write',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3c4ef8d23b7a74be94cc3e92346a38f',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writeasync_13',['WriteAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ae5791506aa3049962dba047ebacffa6c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writebyte_14',['WriteByte',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac1c46516d90ca145d1bd7094ac258ebd',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writechatmessageasync_15',['WriteChatMessageAsync',['../interface_nakama_1_1_i_socket.html#aabcd26e73944cfdb51a1c3585c9348db',1,'Nakama.ISocket.WriteChatMessageAsync(IChannel channel, string content)'],['../interface_nakama_1_1_i_socket.html#a7f6f7d4e31a11b3a2cf9284b86568210',1,'Nakama.ISocket.WriteChatMessageAsync(string channelId, string content)'],['../class_nakama_1_1_socket.html#a6cb398d1815a5a14d0e98dbe726a45dc',1,'Nakama.Socket.WriteChatMessageAsync(IChannel channel, string content)'],['../class_nakama_1_1_socket.html#a36c7765ff46d9f1fa8d3d9114311d772',1,'Nakama.Socket.WriteChatMessageAsync(string channelId, string content)']]],\n  ['writehttpheaderasync_16',['WriteHttpHeaderAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a6e758500694c66088449bc7ff86c6634',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['writeleaderboardrecordasync_17',['WriteLeaderboardRecordAsync',['../class_nakama_1_1_client.html#a6b44990352ecbf4c847b29ac715014fb',1,'Nakama.Client.WriteLeaderboardRecordAsync()'],['../interface_nakama_1_1_i_client.html#a75172b3237e2c1a0dd2df2d1e0a19ec1',1,'Nakama.IClient.WriteLeaderboardRecordAsync()']]],\n  ['writestorageobjectsasync_18',['WriteStorageObjectsAsync',['../class_nakama_1_1_client.html#ad2d4bb27d5340afb6be824a2bc2e7815',1,'Nakama.Client.WriteStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#adc8f34b5cacc6e61d0240d53c1383935',1,'Nakama.IClient.WriteStorageObjectsAsync()']]],\n  ['writeto_19',['WriteTo',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a013c3a3c4ea163fb9c77c73af20ff246',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['writetournamentrecordasync_20',['WriteTournamentRecordAsync',['../class_nakama_1_1_client.html#af0b988b7a04b78b7aac805dc502ff52d',1,'Nakama.Client.WriteTournamentRecordAsync()'],['../interface_nakama_1_1_i_client.html#a0e18257ebdd85c9a0d56c501e221e90a',1,'Nakama.IClient.WriteTournamentRecordAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_2.js",
    "content": "var searchData=\n[\n  ['calculatewebsocketkey_0',['CalculateWebSocketKey',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a9b5b222971fabf47b7dcf9124e4cd6e5',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['client_1',['Client',['../class_nakama_1_1_client.html#a5158082c303c41499cd7e31e4834cb59',1,'Nakama.Client.Client(string serverKey)'],['../class_nakama_1_1_client.html#a86b0693fa59c2083725ed015b4bcc460',1,'Nakama.Client.Client(string serverKey, IHttpAdapter adapter)'],['../class_nakama_1_1_client.html#a053ab2c59dedc46d1fb3f34f7b10e9d6',1,'Nakama.Client.Client(string scheme, string host, int port, string serverKey)'],['../class_nakama_1_1_client.html#a547987248989d14b05cc7760034fc711',1,'Nakama.Client.Client(string scheme, string host, int port, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)'],['../class_nakama_1_1_client.html#ab36fa5c0c9ea2a99f8afa1d8b6d26b04',1,'Nakama.Client.Client(Uri uri, string serverKey)'],['../class_nakama_1_1_client.html#a869bb89ffb168e3e4134a8d7955e4830',1,'Nakama.Client.Client(Uri uri, string serverKey, IHttpAdapter adapter, bool autoRefreshSession=true)'],['../class_satori_1_1_client.html#ad4a1744be01088948fd4724253720a84',1,'Satori.Client.Client(string scheme, string host, int port, string apiKey)'],['../class_satori_1_1_client.html#a52592e348df73a0d8776b7620666607d',1,'Satori.Client.Client(string scheme, string host, int port, string apiKey, IHttpAdapter adapter, bool autoRefreshSession=true)']]],\n  ['close_2',['Close',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a3f1bc42f24e76c1e6bdd1aa40cdd1a01',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['closeasync_3',['CloseAsync',['../interface_nakama_1_1_i_socket.html#a47d4805e5bc797be4640b9b40fd0a1ff',1,'Nakama.ISocket.CloseAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#ac4fdf85f7e31f3ef6fb573656081130e',1,'Nakama.ISocketAdapter.CloseAsync()'],['../class_nakama_1_1_socket.html#a5d033f1ff9973aa3e53a5675c91d108e',1,'Nakama.Socket.CloseAsync()'],['../class_nakama_1_1_web_socket_adapter.html#a8116b06e25e735a83f9f109fc15a7e3a',1,'Nakama.WebSocketAdapter.CloseAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#afa4ce22a1f21cc76441a555bd3f193e8',1,'Nakama.WebSocketStdlibAdapter.CloseAsync()']]],\n  ['closepartyasync_4',['ClosePartyAsync',['../interface_nakama_1_1_i_socket.html#a1e0dfa45e55ac98a90bd61ba68b3739c',1,'Nakama.ISocket.ClosePartyAsync()'],['../class_nakama_1_1_socket.html#a56e29efdc1831754a70b889a08588237',1,'Nakama.Socket.ClosePartyAsync()']]],\n  ['computesocketacceptstring_5',['ComputeSocketAcceptString',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#ac7996ac7be1b518142877ae09e7a8337',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['connectasync_6',['ConnectAsync',['../interface_nakama_1_1_i_socket.html#afce0421b802a0610d5ba0df073c76118',1,'Nakama.ISocket.ConnectAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#a98391b86100741424b89284cd2db8e06',1,'Nakama.ISocketAdapter.ConnectAsync()'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#a09487c4902848a49ab288c6349135075',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(Uri uri, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#aa6292760fcc97b83660588a66d427f68',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.html#af8ed478fd433a7261c2ed1010e19592d',1,'Nakama.Ninja.WebSockets.IWebSocketClientFactory.ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ac2b906812572c082e8d283ea7edca1d1',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(Uri uri, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#a08071ad49b700843123a9eee3593338a',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(Uri uri, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ada652ae0129477188e577b13ee36bd04',1,'Nakama.Ninja.WebSockets.WebSocketClientFactory.ConnectAsync(System.IO.Stream responseStream, string secWebSocketKey, WebSocketClientOptions options, CancellationToken token=default(CancellationToken))'],['../class_nakama_1_1_socket.html#a11620a9e6706ddaf48d260d56c7cdcaa',1,'Nakama.Socket.ConnectAsync()'],['../class_nakama_1_1_web_socket_adapter.html#a3097564c6c6ff6ff8945d0def0d4c1e0',1,'Nakama.WebSocketAdapter.ConnectAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ae94a4c3b78f1d523257950553bea085a',1,'Nakama.WebSocketStdlibAdapter.ConnectAsync()']]],\n  ['copytoasync_7',['CopyToAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad9c1a68bbd0be9674b1836a387e1fb99',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['creategroupasync_8',['CreateGroupAsync',['../class_nakama_1_1_client.html#ad74fadcf61eebd9cb089641775671798',1,'Nakama.Client.CreateGroupAsync()'],['../interface_nakama_1_1_i_client.html#aae0252ef30e7b6f9a1e2dc518f7478ee',1,'Nakama.IClient.CreateGroupAsync()']]],\n  ['creatematchasync_9',['CreateMatchAsync',['../interface_nakama_1_1_i_socket.html#a82169726f5414f591824413d3a38f49c',1,'Nakama.ISocket.CreateMatchAsync()'],['../class_nakama_1_1_socket.html#a62f9170d0c155670b7fb57d7de9884a6',1,'Nakama.Socket.CreateMatchAsync()']]],\n  ['createpartyasync_10',['CreatePartyAsync',['../interface_nakama_1_1_i_socket.html#ad69ab381962fee86f0a583fac8acd5ce',1,'Nakama.ISocket.CreatePartyAsync()'],['../class_nakama_1_1_socket.html#a1374f5d0081d33b17a6bda84978f069d',1,'Nakama.Socket.CreatePartyAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_3.js",
    "content": "var searchData=\n[\n  ['debugformat_0',['DebugFormat',['../interface_nakama_1_1_i_logger.html#a7b8a076d052336b4bc965caba104d091',1,'Nakama.ILogger.DebugFormat()'],['../interface_satori_1_1_i_logger.html#acb889cdb5e1738367ac3d0f3690fa190',1,'Satori.ILogger.DebugFormat()']]],\n  ['deleteaccountasync_1',['DeleteAccountAsync',['../class_nakama_1_1_client.html#a1a6889f635581df903db628b0b6edab5',1,'Nakama.Client.DeleteAccountAsync()'],['../interface_nakama_1_1_i_client.html#acc6d8f02d597837cf8e891a9016be613',1,'Nakama.IClient.DeleteAccountAsync()']]],\n  ['deletefriendsasync_2',['DeleteFriendsAsync',['../class_nakama_1_1_client.html#a638d387931e416f96e3355dbcc9dd95d',1,'Nakama.Client.DeleteFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a6c9418726e8c74b0cefff24bccf335e1',1,'Nakama.IClient.DeleteFriendsAsync()']]],\n  ['deletegroupasync_3',['DeleteGroupAsync',['../class_nakama_1_1_client.html#ab2c13e106e4abaad160c025fd4b171f5',1,'Nakama.Client.DeleteGroupAsync()'],['../interface_nakama_1_1_i_client.html#a90a221604c5aee514bae83bfce921005',1,'Nakama.IClient.DeleteGroupAsync()']]],\n  ['deleteidentityasync_4',['DeleteIdentityAsync',['../class_satori_1_1_client.html#a0e011ac391e342ec74ed6de30a4151f6',1,'Satori.Client.DeleteIdentityAsync()'],['../interface_satori_1_1_i_client.html#a7f14ef54f2d6c9394d58d4938b1638c3',1,'Satori.IClient.DeleteIdentityAsync()']]],\n  ['deleteleaderboardrecordasync_5',['DeleteLeaderboardRecordAsync',['../class_nakama_1_1_client.html#a4c3aa998092d7fd8d4a5e57eac1adc7a',1,'Nakama.Client.DeleteLeaderboardRecordAsync()'],['../interface_nakama_1_1_i_client.html#ae50039a13b1b5d75613030d130f9d5e3',1,'Nakama.IClient.DeleteLeaderboardRecordAsync()']]],\n  ['deletemessageasync_6',['DeleteMessageAsync',['../class_satori_1_1_client.html#afabdd3165dd3c625765fa6a953234747',1,'Satori.Client.DeleteMessageAsync()'],['../interface_satori_1_1_i_client.html#af8b7ad1d44dc02bfc1f1b58a8d701eb5',1,'Satori.IClient.DeleteMessageAsync()']]],\n  ['deletenotificationsasync_7',['DeleteNotificationsAsync',['../class_nakama_1_1_client.html#aaca81a7fc8183e44c7f6e10071d9a456',1,'Nakama.Client.DeleteNotificationsAsync()'],['../interface_nakama_1_1_i_client.html#adab62219d9b6f091995738a8746b8bcb',1,'Nakama.IClient.DeleteNotificationsAsync()']]],\n  ['deletestorageobjectsasync_8',['DeleteStorageObjectsAsync',['../class_nakama_1_1_client.html#a745a2c98d488d19c2abad03aa914f97b',1,'Nakama.Client.DeleteStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#a359f19ae1aad413e47565b355380b63a',1,'Nakama.IClient.DeleteStorageObjectsAsync()']]],\n  ['deletetournamentrecordasync_9',['DeleteTournamentRecordAsync',['../class_nakama_1_1_client.html#aba74817698adc4b1692eb6766b792c0b',1,'Nakama.Client.DeleteTournamentRecordAsync()'],['../interface_nakama_1_1_i_client.html#a071b39c59ef92a84774e06dc102a5fe8',1,'Nakama.IClient.DeleteTournamentRecordAsync()']]],\n  ['demotegroupusersasync_10',['DemoteGroupUsersAsync',['../class_nakama_1_1_client.html#acc21379975775bac5077abf0ef956fab',1,'Nakama.Client.DemoteGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#a134eedfe28270dc3086b490fd16c5efb',1,'Nakama.IClient.DemoteGroupUsersAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_4.js",
    "content": "var searchData=\n[\n  ['endread_0',['EndRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59594ae24d7d39ef08e9b73292324ee7',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['endwrite_1',['EndWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a71d425d0d6626926a04dc11d01886a8c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['entitytoolargeexception_2',['EntityTooLargeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#abc1f5d6066924fd459fce627fa2b554c',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#a628ff4e3f729f87e5b894ef03764c0e1',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.html#afad15e3f4c217372acdc26ba564694da',1,'Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException.EntityTooLargeException(string message, Exception inner)']]],\n  ['errorformat_3',['ErrorFormat',['../interface_nakama_1_1_i_logger.html#a7a32d0f6eadfce1dcdcd1884767978e8',1,'Nakama.ILogger.ErrorFormat()'],['../interface_satori_1_1_i_logger.html#a85c6046abce4142fdb6efedeafe7b8cd',1,'Satori.ILogger.ErrorFormat()']]],\n  ['event_4',['Event',['../class_satori_1_1_event.html#ae52296874234666607b8115b243beb60',1,'Satori::Event']]],\n  ['eventasync_5',['EventAsync',['../class_nakama_1_1_client.html#a50215658d4619df72a664d635a0aefe6',1,'Nakama.Client.EventAsync()'],['../interface_nakama_1_1_i_client.html#a5a255470f06a9004673ba8fc6f8af682',1,'Nakama.IClient.EventAsync()'],['../class_satori_1_1_client.html#ab20d4e928588c8fb1af338df608c19fc',1,'Satori.Client.EventAsync()'],['../interface_satori_1_1_i_client.html#ae8f0e598b1759ea69263e802e05ddb92',1,'Satori.IClient.EventAsync()']]],\n  ['eventsasync_6',['EventsAsync',['../class_satori_1_1_client.html#a149dcbf99ccba5480af6e18f1afea7d1',1,'Satori.Client.EventsAsync()'],['../interface_satori_1_1_i_client.html#ab87f2f750a3ab77c3fb1dabfa4282215',1,'Satori.IClient.EventsAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_5.js",
    "content": "var searchData=\n[\n  ['flush_0',['Flush',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1b7518b4364bf38343f92a307d2c6b43',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['flushasync_1',['FlushAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a5372442ce53b399347db05b9e733945c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['followusersasync_2',['FollowUsersAsync',['../interface_nakama_1_1_i_socket.html#a35fcf5e7221f3f4fb99629c7f7ffe2cf',1,'Nakama.ISocket.FollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../interface_nakama_1_1_i_socket.html#aa1fc00a1c5e65035102d69c0da9c9bcf',1,'Nakama.ISocket.FollowUsersAsync(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)'],['../class_nakama_1_1_socket.html#ad6180b6f74a9adfdbc53b1c19c63efa5',1,'Nakama.Socket.FollowUsersAsync(IEnumerable&lt; IApiUser &gt; users)'],['../class_nakama_1_1_socket.html#a1f567b12eb7a0d498edb3bcea9518338',1,'Nakama.Socket.FollowUsersAsync(IEnumerable&lt; string &gt; userIDs, IEnumerable&lt; string &gt; usernames=null)']]],\n  ['from_3',['From',['../class_nakama_1_1_socket.html#a05a1bfe0921f27da4243fc6e829aa28d',1,'Nakama.Socket.From(IClient client)'],['../class_nakama_1_1_socket.html#ac4201f5bdda381252451e4aef465b498',1,'Nakama.Socket.From(IClient client, ISocketAdapter adapter)']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_6.js",
    "content": "var searchData=\n[\n  ['getaccountasync_0',['GetAccountAsync',['../class_nakama_1_1_client.html#a8333b61102e6af80cdaa17b8c79d9825',1,'Nakama.Client.GetAccountAsync()'],['../interface_nakama_1_1_i_client.html#a291886d28a053ef9db0d231b1f74140e',1,'Nakama.IClient.GetAccountAsync()']]],\n  ['getallexperimentsasync_1',['GetAllExperimentsAsync',['../class_satori_1_1_client.html#afc8e1cdbda848d4b777304a4e5f2702b',1,'Satori.Client.GetAllExperimentsAsync()'],['../interface_satori_1_1_i_client.html#a281b0af8c507ba0826dae6cf65d2d387',1,'Satori.IClient.GetAllExperimentsAsync()']]],\n  ['getbuffer_2',['GetBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a1122a5146dc370748b8581da8c0ab41d',1,'Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream.GetBuffer()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#a3eacbad8a136b33a3c2e859c0cf6fe67',1,'Nakama.Ninja.WebSockets.BufferPool.GetBuffer()'],['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.html#aba30a1520b1f1733d019704827fbcef2',1,'Nakama.Ninja.WebSockets.IBufferPool.GetBuffer()']]],\n  ['getexperimentsasync_3',['GetExperimentsAsync',['../class_satori_1_1_client.html#ac7f477d78e8497af5bfe02826106d42a',1,'Satori.Client.GetExperimentsAsync()'],['../interface_satori_1_1_i_client.html#a15b8bbf87db82248d5e7bf1f982afea7',1,'Satori.IClient.GetExperimentsAsync()']]],\n  ['getflagasync_4',['GetFlagAsync',['../class_satori_1_1_client.html#a5a77e3939bae7e22c1a8f6d7f8bfb787',1,'Satori.Client.GetFlagAsync(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../class_satori_1_1_client.html#a2b05b22f9f9071f6c26614a13997c536',1,'Satori.Client.GetFlagAsync(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)'],['../interface_satori_1_1_i_client.html#a57c517196ee9b263b5649ecd21d949e8',1,'Satori.IClient.GetFlagAsync(ISession session, string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../interface_satori_1_1_i_client.html#a486e38938074ed725715c81e64166f60',1,'Satori.IClient.GetFlagAsync(ISession session, string name, string defaultValue, CancellationToken? cancellationToken=default)']]],\n  ['getflagdefaultasync_5',['GetFlagDefaultAsync',['../class_satori_1_1_client.html#a3790964df626d23ed923aff09c3218f3',1,'Satori.Client.GetFlagDefaultAsync(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../class_satori_1_1_client.html#ac1070241851b6656fc6cd217828d3ab4',1,'Satori.Client.GetFlagDefaultAsync(string name, string defaultValue, CancellationToken? cancellationToken=default)'],['../interface_satori_1_1_i_client.html#a5d43fb9e9a71b347fd9b5047b622362e',1,'Satori.IClient.GetFlagDefaultAsync(string name, CancellationToken? cancellationToken=default, RetryConfiguration retryConfiguration=null)'],['../interface_satori_1_1_i_client.html#a2ac8ed383d158eefdc503b1307093ff5',1,'Satori.IClient.GetFlagDefaultAsync(string name, string defaultValue, CancellationToken? cancellationToken=default)']]],\n  ['getflagoverridesasync_6',['GetFlagOverridesAsync',['../class_satori_1_1_client.html#aa8f193f06a9b3c6f63a78e2becf05e5d',1,'Satori.Client.GetFlagOverridesAsync()'],['../interface_satori_1_1_i_client.html#ab1fb83c7c7f7e0f406919bddcc10f71c',1,'Satori.IClient.GetFlagOverridesAsync()']]],\n  ['getflagsasync_7',['GetFlagsAsync',['../class_satori_1_1_client.html#abb91421131325ba25dc20ec46f4872a4',1,'Satori.Client.GetFlagsAsync()'],['../interface_satori_1_1_i_client.html#a58c5f9f785c3e17f99ee15b40f504f3e',1,'Satori.IClient.GetFlagsAsync()']]],\n  ['getflagsdefaultasync_8',['GetFlagsDefaultAsync',['../class_satori_1_1_client.html#ad6fb7297a85f8de0384e05e6ed2c4d23',1,'Satori.Client.GetFlagsDefaultAsync()'],['../interface_satori_1_1_i_client.html#af09676d829f982627bdf713bc1c8619a',1,'Satori.IClient.GetFlagsDefaultAsync()']]],\n  ['getliveeventsasync_9',['GetLiveEventsAsync',['../class_satori_1_1_client.html#afa20e4e8cbb6b6de8a1614463551ce2d',1,'Satori.Client.GetLiveEventsAsync()'],['../interface_satori_1_1_i_client.html#af5e2d3254af0d5c17120ed153fc18d8e',1,'Satori.IClient.GetLiveEventsAsync()']]],\n  ['getmessagelistasync_10',['GetMessageListAsync',['../class_satori_1_1_client.html#a8df44a521ff1587a924d6263cb1c37aa',1,'Satori.Client.GetMessageListAsync()'],['../interface_satori_1_1_i_client.html#ad76b6376c8bc2ee97618b883cff42233',1,'Satori.IClient.GetMessageListAsync()']]],\n  ['getpathfromheader_11',['GetPathFromHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5d4a53f6713ee2dd4447b333389c26ab',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['getstream_12',['GetStream',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.html#ae3747882e5308def7db0b4a387fdb466',1,'Nakama::Ninja::WebSockets::WebSocketClientFactory']]],\n  ['getsubprotocols_13',['GetSubProtocols',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a5b5e11646f512d03ba8c2c9b61fa2d7f',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['getsubscriptionasync_14',['GetSubscriptionAsync',['../class_nakama_1_1_client.html#a6632bd7f63f6c739cc587bb6a5d88f31',1,'Nakama.Client.GetSubscriptionAsync()'],['../interface_nakama_1_1_i_client.html#a8ad3b6d4f866d3b4d8cd54cbeaf5a01e',1,'Nakama.IClient.GetSubscriptionAsync()']]],\n  ['getusersasync_15',['GetUsersAsync',['../class_nakama_1_1_client.html#ae8a6ed442cf4d4fe757b8af4ccf0f697',1,'Nakama.Client.GetUsersAsync()'],['../interface_nakama_1_1_i_client.html#a8b4075bc49ee57670e94a56557be05d2',1,'Nakama.IClient.GetUsersAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_7.js",
    "content": "var searchData=\n[\n  ['hasexpired_0',['HasExpired',['../interface_nakama_1_1_i_session.html#aea82fdba74d6b20eb203b4fc2ccd19e6',1,'Nakama.ISession.HasExpired()'],['../class_nakama_1_1_session.html#a32aa5055ec8b4629d48574c14ca52929',1,'Nakama.Session.HasExpired()'],['../interface_satori_1_1_i_session.html#aabe1a8aae689ca7d1eaca3537ffa55f5',1,'Satori.ISession.HasExpired()'],['../class_satori_1_1_session.html#ac0337cc38b9a04e5d812a8b87720e407',1,'Satori.Session.HasExpired()']]],\n  ['hasrefreshexpired_1',['HasRefreshExpired',['../interface_nakama_1_1_i_session.html#a8c7f2700402ab995544a4ff852ad5f35',1,'Nakama.ISession.HasRefreshExpired()'],['../class_nakama_1_1_session.html#a292f6d27e68f068d5b71a5e998f93adc',1,'Nakama.Session.HasRefreshExpired()'],['../interface_satori_1_1_i_session.html#aa690bf2fd9e3cebdc597a17ad95eb8ac',1,'Satori.ISession.HasRefreshExpired()'],['../class_satori_1_1_session.html#a4a4cc7d98de34718e385241eaa9984fe',1,'Satori.Session.HasRefreshExpired()']]],\n  ['httprequestadapter_2',['HttpRequestAdapter',['../class_nakama_1_1_http_request_adapter.html#abd7df73941b1255fe8ddd66e995e6a7a',1,'Nakama.HttpRequestAdapter.HttpRequestAdapter()'],['../class_satori_1_1_http_request_adapter.html#aa9a3b7b022a3e716af4ca62bb7e972ef',1,'Satori.HttpRequestAdapter.HttpRequestAdapter()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_8.js",
    "content": "var searchData=\n[\n  ['identifyasync_0',['IdentifyAsync',['../class_satori_1_1_client.html#a0a5e33ee32443091f0744d85115b885b',1,'Satori.Client.IdentifyAsync()'],['../interface_satori_1_1_i_client.html#a98c580078233eb04e7f2bb8d56337207',1,'Satori.IClient.IdentifyAsync()']]],\n  ['importfacebookfriendsasync_1',['ImportFacebookFriendsAsync',['../class_nakama_1_1_client.html#ae22e0fb5972e5a4d2b52aaa82045a271',1,'Nakama.Client.ImportFacebookFriendsAsync()'],['../interface_nakama_1_1_i_client.html#ad63c0cfb18480592c8eff4583cc16233',1,'Nakama.IClient.ImportFacebookFriendsAsync()']]],\n  ['importsteamfriendsasync_2',['ImportSteamFriendsAsync',['../class_nakama_1_1_client.html#aff3b742f37107b47f31d4a93020239d0',1,'Nakama.Client.ImportSteamFriendsAsync()'],['../interface_nakama_1_1_i_client.html#a8ff7dfd40f14d3161d7fc4426e078214',1,'Nakama.IClient.ImportSteamFriendsAsync()']]],\n  ['infoformat_3',['InfoFormat',['../interface_nakama_1_1_i_logger.html#a04590700134fcc96228f9595c09cc901',1,'Nakama.ILogger.InfoFormat()'],['../interface_satori_1_1_i_logger.html#a1d6e3a04dff701d98e397844555c35eb',1,'Satori.ILogger.InfoFormat()']]],\n  ['initializelifetimeservice_4',['InitializeLifetimeService',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ab3f81c5158946e3dc9d88de4157278fb',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['invalidhttpresponsecodeexception_5',['InvalidHttpResponseCodeException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a90c0aed4715df79e5899c8824f4ec714',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a10bbe729a7327fa25e72f2dd4395b39d',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#acbf09e3cbb7bbf3fc21353aa2c4fb2c3',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string responseCode, string responseDetails, string responseHeader)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a717a8d9bb8b67ef7642a9336baeabbbb',1,'Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException.InvalidHttpResponseCodeException(string message, Exception inner)']]],\n  ['istransientexception_6',['IsTransientException',['../class_nakama_1_1_http_request_adapter.html#a764f057e1eb1077be6fefb03f9ba8269',1,'Nakama.HttpRequestAdapter.IsTransientException()'],['../class_satori_1_1_http_request_adapter.html#a648ff0ef63ce62ba8621d3921f3edc4b',1,'Satori.HttpRequestAdapter.IsTransientException()']]],\n  ['iswebsocketupgraderequest_7',['IsWebSocketUpgradeRequest',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a7b6d73c58a1a86ab4aee854945708f0b',1,'Nakama::Ninja::WebSockets::HttpHelper']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_9.js",
    "content": "var searchData=\n[\n  ['jitter_0',['Jitter',['../namespace_nakama.html#a127d52a41cb18b64e939f4b06b316b59',1,'Nakama.Jitter()'],['../namespace_satori.html#a8dc55a408f51bea7a34417ba2e8656a7',1,'Satori.Jitter()']]],\n  ['joinchatasync_1',['JoinChatAsync',['../interface_nakama_1_1_i_socket.html#ae30f0d0d5f72817bc5a477c4c105b950',1,'Nakama.ISocket.JoinChatAsync()'],['../class_nakama_1_1_socket.html#ad20754e8420f8adbf838a2c57b4f6fd4',1,'Nakama.Socket.JoinChatAsync()']]],\n  ['joingroupasync_2',['JoinGroupAsync',['../class_nakama_1_1_client.html#a9e10ec43011fa4aaf3ad1d389da1ea2b',1,'Nakama.Client.JoinGroupAsync()'],['../interface_nakama_1_1_i_client.html#a6662dc402c9867c647ea300eae380bc0',1,'Nakama.IClient.JoinGroupAsync()']]],\n  ['joinmatchasync_3',['JoinMatchAsync',['../interface_nakama_1_1_i_socket.html#a459b0786a266bd8599b9435e5f45ea34',1,'Nakama.ISocket.JoinMatchAsync(IMatchmakerMatched matched)'],['../interface_nakama_1_1_i_socket.html#ac6fe282b44ef6bed9179fe5766de5b27',1,'Nakama.ISocket.JoinMatchAsync(string matchId, IDictionary&lt; string, string &gt; metadata=null)'],['../class_nakama_1_1_socket.html#a2fe4966a0ad40291bafe2d4b3fc69c80',1,'Nakama.Socket.JoinMatchAsync(IMatchmakerMatched matched)'],['../class_nakama_1_1_socket.html#a6d9068f06c70a089a1bd4c25b61802cb',1,'Nakama.Socket.JoinMatchAsync(string matchId, IDictionary&lt; string, string &gt; metadata=null)']]],\n  ['joinpartyasync_4',['JoinPartyAsync',['../interface_nakama_1_1_i_socket.html#a7004ef370a75ed96cee268191ef82670',1,'Nakama.ISocket.JoinPartyAsync()'],['../class_nakama_1_1_socket.html#a57b7ff03c3588dcd4ff1f255f013d519',1,'Nakama.Socket.JoinPartyAsync()']]],\n  ['jointournamentasync_5',['JoinTournamentAsync',['../class_nakama_1_1_client.html#a5cc312ccc276515a2643ef173e398641',1,'Nakama.Client.JoinTournamentAsync()'],['../interface_nakama_1_1_i_client.html#a8520e2e99a83f3cac309f2a0354c2e65',1,'Nakama.IClient.JoinTournamentAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_a.js",
    "content": "var searchData=\n[\n  ['kickgroupusersasync_0',['KickGroupUsersAsync',['../class_nakama_1_1_client.html#a8d40ee6b5c3a92ebcab8701ed7ff9505',1,'Nakama.Client.KickGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ae1643a627d5b2733349b2a3eb8811829',1,'Nakama.IClient.KickGroupUsersAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_b.js",
    "content": "var searchData=\n[\n  ['leavechatasync_0',['LeaveChatAsync',['../interface_nakama_1_1_i_socket.html#a647667ebb59e491e9462417bf96f6f41',1,'Nakama.ISocket.LeaveChatAsync(IChannel channel)'],['../interface_nakama_1_1_i_socket.html#a9ec279ff4873da0b9c9a90b9cfd0eada',1,'Nakama.ISocket.LeaveChatAsync(string channelId)'],['../class_nakama_1_1_socket.html#a2e174430fb895e329fab4c6bde3b93a7',1,'Nakama.Socket.LeaveChatAsync(IChannel channel)'],['../class_nakama_1_1_socket.html#a8350140a21c191ea84617135fef4082e',1,'Nakama.Socket.LeaveChatAsync(string channelId)']]],\n  ['leavegroupasync_1',['LeaveGroupAsync',['../class_nakama_1_1_client.html#aff050ee2645b7b3a239a40c6ce357c24',1,'Nakama.Client.LeaveGroupAsync()'],['../interface_nakama_1_1_i_client.html#abe13990afd23fbf8257ff448970e1bfa',1,'Nakama.IClient.LeaveGroupAsync()']]],\n  ['leavematchasync_2',['LeaveMatchAsync',['../interface_nakama_1_1_i_socket.html#a094fbace93957878a94815d38967aaf3',1,'Nakama.ISocket.LeaveMatchAsync(IMatch match)'],['../interface_nakama_1_1_i_socket.html#af7bc9c33420ac5c873f68d92058b1a2d',1,'Nakama.ISocket.LeaveMatchAsync(string matchId)'],['../class_nakama_1_1_socket.html#abcd300eb623ef096f446bfb11b6de0dd',1,'Nakama.Socket.LeaveMatchAsync(IMatch match)'],['../class_nakama_1_1_socket.html#acc15b0880cb30f2c5afc3318c76a4db6',1,'Nakama.Socket.LeaveMatchAsync(string matchId)']]],\n  ['leavepartyasync_3',['LeavePartyAsync',['../interface_nakama_1_1_i_socket.html#a9f157fc83e6dfeb5d32c82f0d71c603b',1,'Nakama.ISocket.LeavePartyAsync()'],['../class_nakama_1_1_socket.html#a261e11e3f7828ec4854957c766c036cb',1,'Nakama.Socket.LeavePartyAsync()']]],\n  ['linkappleasync_4',['LinkAppleAsync',['../class_nakama_1_1_client.html#a9979bf574bdb33a716ac56b51eca6758',1,'Nakama.Client.LinkAppleAsync()'],['../interface_nakama_1_1_i_client.html#aed84d3ba843ee53c3fc62bfac3d56aef',1,'Nakama.IClient.LinkAppleAsync()']]],\n  ['linkcustomasync_5',['LinkCustomAsync',['../class_nakama_1_1_client.html#ac4845e6a960a43d8ead44c2cb2d2fb00',1,'Nakama.Client.LinkCustomAsync()'],['../interface_nakama_1_1_i_client.html#ab18171e22bdc5d997ff5d87a206fbc18',1,'Nakama.IClient.LinkCustomAsync()']]],\n  ['linkdeviceasync_6',['LinkDeviceAsync',['../class_nakama_1_1_client.html#aad4baf992848d4029adcbb4ce964bb2e',1,'Nakama.Client.LinkDeviceAsync()'],['../interface_nakama_1_1_i_client.html#accadcf9970bbc108cae1eaa386b2ad0c',1,'Nakama.IClient.LinkDeviceAsync()']]],\n  ['linkemailasync_7',['LinkEmailAsync',['../class_nakama_1_1_client.html#aadee51567a81169984fd146111f237db',1,'Nakama.Client.LinkEmailAsync()'],['../interface_nakama_1_1_i_client.html#ae6bd9267c215b0df2246862d566c6d63',1,'Nakama.IClient.LinkEmailAsync()']]],\n  ['linkfacebookasync_8',['LinkFacebookAsync',['../class_nakama_1_1_client.html#ac81c5d3cf0fcf05f3c482ceec63c17e8',1,'Nakama.Client.LinkFacebookAsync()'],['../interface_nakama_1_1_i_client.html#a68926218392683fb7112bf26d7b1814c',1,'Nakama.IClient.LinkFacebookAsync()']]],\n  ['linkgamecenterasync_9',['LinkGameCenterAsync',['../class_nakama_1_1_client.html#a655ce991784045167e7b470b421788fa',1,'Nakama.Client.LinkGameCenterAsync()'],['../interface_nakama_1_1_i_client.html#a15277cc6c181d77784a87da9383df7e4',1,'Nakama.IClient.LinkGameCenterAsync()']]],\n  ['linkgoogleasync_10',['LinkGoogleAsync',['../class_nakama_1_1_client.html#a0f4fe2298df0fa8b4ac5a14dbbfce74b',1,'Nakama.Client.LinkGoogleAsync()'],['../interface_nakama_1_1_i_client.html#a3fa471a46116248041a080016ad181cf',1,'Nakama.IClient.LinkGoogleAsync()']]],\n  ['linksteamasync_11',['LinkSteamAsync',['../class_nakama_1_1_client.html#a53f8adbc758568e7b70653cbfc33eeec',1,'Nakama.Client.LinkSteamAsync()'],['../interface_nakama_1_1_i_client.html#aaa180e86df389caf7cc42d82760aabf0',1,'Nakama.IClient.LinkSteamAsync()']]],\n  ['listchannelmessagesasync_12',['ListChannelMessagesAsync',['../class_nakama_1_1_client.html#a5915e1dd4090b1f58f9295361b58016b',1,'Nakama.Client.ListChannelMessagesAsync(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#afda758a691879a09e10e7689a871a781',1,'Nakama.Client.ListChannelMessagesAsync(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#ac7cad85806c3824a967959455d828440',1,'Nakama.IClient.ListChannelMessagesAsync(ISession session, IChannel channel, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a0fd095e04016f75de9d589891a1518ac',1,'Nakama.IClient.ListChannelMessagesAsync(ISession session, string channelId, int limit=1, bool forward=true, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['listfriendsasync_13',['ListFriendsAsync',['../class_nakama_1_1_client.html#a1258302f25c2441cd419460a21aa3756',1,'Nakama.Client.ListFriendsAsync()'],['../interface_nakama_1_1_i_client.html#af4b8829ce42c75274ab62e4692b748a8',1,'Nakama.IClient.ListFriendsAsync()']]],\n  ['listgroupsasync_14',['ListGroupsAsync',['../class_nakama_1_1_client.html#a052addd5b095f2c4d2b2d38dfc8e993f',1,'Nakama.Client.ListGroupsAsync()'],['../interface_nakama_1_1_i_client.html#a93b462ed1236ba5839cdb811b19524bc',1,'Nakama.IClient.ListGroupsAsync()']]],\n  ['listgroupusersasync_15',['ListGroupUsersAsync',['../class_nakama_1_1_client.html#a80306a00533b136b52cd6aff74db3e90',1,'Nakama.Client.ListGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#ac77e1bbf873d728d622b627943e64351',1,'Nakama.IClient.ListGroupUsersAsync()']]],\n  ['listleaderboardrecordsaroundownerasync_16',['ListLeaderboardRecordsAroundOwnerAsync',['../class_nakama_1_1_client.html#aa04a0875a781b0edc1818e07239a078e',1,'Nakama.Client.ListLeaderboardRecordsAroundOwnerAsync()'],['../interface_nakama_1_1_i_client.html#a67141bad68b73fdee3e99d6b1564c7b8',1,'Nakama.IClient.ListLeaderboardRecordsAroundOwnerAsync()']]],\n  ['listleaderboardrecordsasync_17',['ListLeaderboardRecordsAsync',['../class_nakama_1_1_client.html#ab0157c7184c86a9e6cbaae2ae720adf1',1,'Nakama.Client.ListLeaderboardRecordsAsync()'],['../interface_nakama_1_1_i_client.html#a90b33da885f5fee1267420a0acbc1e87',1,'Nakama.IClient.ListLeaderboardRecordsAsync()']]],\n  ['listmatchesasync_18',['ListMatchesAsync',['../class_nakama_1_1_client.html#ad169be18d357b3b57067abf62e063310',1,'Nakama.Client.ListMatchesAsync()'],['../interface_nakama_1_1_i_client.html#af52b743a4d334b23a43fad156f0eb54c',1,'Nakama.IClient.ListMatchesAsync()']]],\n  ['listnotificationsasync_19',['ListNotificationsAsync',['../class_nakama_1_1_client.html#acde199dc46bdceabea904a44477cd284',1,'Nakama.Client.ListNotificationsAsync()'],['../interface_nakama_1_1_i_client.html#a9443bb244b7a51c6a493900822c654f1',1,'Nakama.IClient.ListNotificationsAsync()']]],\n  ['listpartiesasync_20',['ListPartiesAsync',['../class_nakama_1_1_client.html#af63f8ffa4aca4a2ee80d99cb36ffe2a6',1,'Nakama.Client.ListPartiesAsync()'],['../interface_nakama_1_1_i_client.html#a34a46495479d8a2c38ebcfe0dfe77f8b',1,'Nakama.IClient.ListPartiesAsync()']]],\n  ['listpartyjoinrequestsasync_21',['ListPartyJoinRequestsAsync',['../interface_nakama_1_1_i_socket.html#a3290abc231fbc13d10a279e9df4e3ef4',1,'Nakama.ISocket.ListPartyJoinRequestsAsync()'],['../class_nakama_1_1_socket.html#ab0ae67833a8133ef069312fcdaecbe48',1,'Nakama.Socket.ListPartyJoinRequestsAsync()']]],\n  ['listpropertiesasync_22',['ListPropertiesAsync',['../class_satori_1_1_client.html#a6cadb57f6fb58c64fd78b6a195c5e8e6',1,'Satori.Client.ListPropertiesAsync()'],['../interface_satori_1_1_i_client.html#ad4dfbf0106893c65c5e9afcfc5951da1',1,'Satori.IClient.ListPropertiesAsync()']]],\n  ['liststorageobjects_23',['ListStorageObjects',['../class_nakama_1_1_client.html#a90db3c9a4f3994fc1616bc702a2584e1',1,'Nakama.Client.ListStorageObjects()'],['../interface_nakama_1_1_i_client.html#a0dae35b8820b90e23303cdb58336dddc',1,'Nakama.IClient.ListStorageObjects()']]],\n  ['liststorageobjectsasync_24',['ListStorageObjectsAsync',['../class_nakama_1_1_client.html#a35c013a31537eea2ff7fe2239f5623e9',1,'Nakama.Client.ListStorageObjectsAsync(ISession session, string collection, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a1ef58ab10a34f892086c7905ecb90270',1,'Nakama.Client.ListStorageObjectsAsync(ISession session, string collection, string userId=&quot;&quot;, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#afeec7a75562cfc1c9f51d35095580046',1,'Nakama.IClient.ListStorageObjectsAsync()']]],\n  ['listsubscriptionsasync_25',['ListSubscriptionsAsync',['../class_nakama_1_1_client.html#a66425250e7fb827cc677da4732290329',1,'Nakama.Client.ListSubscriptionsAsync()'],['../interface_nakama_1_1_i_client.html#a3e2cf89415aebbfdecb0f7015b37ba37',1,'Nakama.IClient.ListSubscriptionsAsync()']]],\n  ['listtournamentrecordsaroundownerasync_26',['ListTournamentRecordsAroundOwnerAsync',['../class_nakama_1_1_client.html#ab69ecb2fb4ffa8dea78392719ae08e65',1,'Nakama.Client.ListTournamentRecordsAroundOwnerAsync()'],['../interface_nakama_1_1_i_client.html#a2b6310aeccea818af3fe8b3dcae95ec3',1,'Nakama.IClient.ListTournamentRecordsAroundOwnerAsync()']]],\n  ['listtournamentrecordsasync_27',['ListTournamentRecordsAsync',['../class_nakama_1_1_client.html#aa994ad73bfce3f829e041505fb54e119',1,'Nakama.Client.ListTournamentRecordsAsync()'],['../interface_nakama_1_1_i_client.html#ac4a420dab57716222bbb8151700b1cdc',1,'Nakama.IClient.ListTournamentRecordsAsync()']]],\n  ['listtournamentsasync_28',['ListTournamentsAsync',['../class_nakama_1_1_client.html#a4e64d250674e061e2304bdf2e4fe4342',1,'Nakama.Client.ListTournamentsAsync()'],['../interface_nakama_1_1_i_client.html#a43e7575784efc55785124576651ac617',1,'Nakama.IClient.ListTournamentsAsync()']]],\n  ['listusergroupsasync_29',['ListUserGroupsAsync',['../class_nakama_1_1_client.html#afb7774654804a171c8a602f3406466a1',1,'Nakama.Client.ListUserGroupsAsync(ISession session, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a6dbbdc5225f9e64e576ad171003bbda8',1,'Nakama.Client.ListUserGroupsAsync(ISession session, string userId, int? state, int limit, string cursor, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a20b9a6e164506988f758a00d0dd68efe',1,'Nakama.IClient.ListUserGroupsAsync(ISession session, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#aceddfd721720890ee6de3d4c67d699f6',1,'Nakama.IClient.ListUserGroupsAsync(ISession session, string userId, int? state=null, int limit=1, string cursor=null, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['listusersstorageobjectsasync_30',['ListUsersStorageObjectsAsync',['../class_nakama_1_1_client.html#a90c1f81c4e27cc664f16dcad793a6381',1,'Nakama.Client.ListUsersStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#aeb5b5a9f8920ee2e287fc15e6dbae5d9',1,'Nakama.IClient.ListUsersStorageObjectsAsync()']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_c.js",
    "content": "var searchData=\n[\n  ['onpong_0',['OnPong',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a6033a08ddfa5dc60e5c98bd1bc4abe29',1,'Nakama::Ninja::WebSockets::PingPongManager']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_d.js",
    "content": "var searchData=\n[\n  ['pingpongmanager_0',['PingPongManager',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#a28b64f995bd9dfc95b4b2981c24219df',1,'Nakama::Ninja::WebSockets::PingPongManager']]],\n  ['pongeventargs_1',['PongEventArgs',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a0eeaa849de1d4f2f1ece6d27170ffb1c',1,'Nakama::Ninja::WebSockets::PongEventArgs']]],\n  ['promotegroupusersasync_2',['PromoteGroupUsersAsync',['../class_nakama_1_1_client.html#a703f15655bec3592a25827f78715ecda',1,'Nakama.Client.PromoteGroupUsersAsync()'],['../interface_nakama_1_1_i_client.html#a6f9bf7b5dc74dfab741e7aadfba89e4b',1,'Nakama.IClient.PromoteGroupUsersAsync()']]],\n  ['promotepartymemberasync_3',['PromotePartyMemberAsync',['../interface_nakama_1_1_i_socket.html#a747dddd036256e29cdb5a0f9cbfffe1e',1,'Nakama.ISocket.PromotePartyMemberAsync()'],['../class_nakama_1_1_socket.html#add01eba7310dbba3a01ecbefb132ade0',1,'Nakama.Socket.PromotePartyMemberAsync()']]],\n  ['publicbuffermemorystream_4',['PublicBufferMemoryStream',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9e132ec51a7e7b44148bbc0174b087db',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_e.js",
    "content": "var searchData=\n[\n  ['read_0',['Read',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7daab5da199e393bc7abdc0436e170f3',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readasync_1',['ReadAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a955801633531e75dd0253f10549eeb20',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readbyte_2',['ReadByte',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a7c2849628d872035ec9cc20b5b5f70dc',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['readhttpheaderasync_3',['ReadHttpHeaderAsync',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#aa5ded6a39f622623cee6b9453cdbab1c',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['readhttpheaderfromstreamasync_4',['ReadHttpHeaderFromStreamAsync',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.html#a317ffba9297f7d6ed0dc899ad1143fc6',1,'Nakama.Ninja.WebSockets.IWebSocketServerFactory.ReadHttpHeaderFromStreamAsync()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.html#ade4d2f2f4962ed47fc4419dff1cc76c4',1,'Nakama.Ninja.WebSockets.WebSocketServerFactory.ReadHttpHeaderFromStreamAsync()']]],\n  ['readhttpresponsecode_5',['ReadHttpResponseCode',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.html#a68bef1cf1eda1608db5ce1750d040d14',1,'Nakama::Ninja::WebSockets::HttpHelper']]],\n  ['readstorageobjectsasync_6',['ReadStorageObjectsAsync',['../class_nakama_1_1_client.html#a2dd9eb134b2aabf3df838aa0c15cb715',1,'Nakama.Client.ReadStorageObjectsAsync()'],['../interface_nakama_1_1_i_client.html#a1b2f0ed3a7a73e8263d98036d53817fc',1,'Nakama.IClient.ReadStorageObjectsAsync()']]],\n  ['removechatmessageasync_7',['RemoveChatMessageAsync',['../interface_nakama_1_1_i_socket.html#a2e0d2258668b6a23ab8ef898a859b607',1,'Nakama.ISocket.RemoveChatMessageAsync(IChannel channel, string messageId)'],['../interface_nakama_1_1_i_socket.html#a72b9923abc413441524248fb3dbaa6d2',1,'Nakama.ISocket.RemoveChatMessageAsync(string channelId, string messageId)'],['../class_nakama_1_1_socket.html#aa167fc7e9cae1b65a7f0585431fc3daf',1,'Nakama.Socket.RemoveChatMessageAsync(IChannel channel, string messageId)'],['../class_nakama_1_1_socket.html#a34eef836c0c7f1707c5ffdd9a07f248e',1,'Nakama.Socket.RemoveChatMessageAsync(string channelId, string messageId)']]],\n  ['removematchmakerasync_8',['RemoveMatchmakerAsync',['../interface_nakama_1_1_i_socket.html#a1c4a81177c160384ef79eb0c4ae59b47',1,'Nakama.ISocket.RemoveMatchmakerAsync(IMatchmakerTicket ticket)'],['../interface_nakama_1_1_i_socket.html#acda6e90c3bf82f29c849404a53583bae',1,'Nakama.ISocket.RemoveMatchmakerAsync(string ticket)'],['../class_nakama_1_1_socket.html#aa49d9456a9a1ab735f7f5f1106f56827',1,'Nakama.Socket.RemoveMatchmakerAsync(IMatchmakerTicket ticket)'],['../class_nakama_1_1_socket.html#a8afad86c4eedab3e40b5f7069b170f72',1,'Nakama.Socket.RemoveMatchmakerAsync(string ticket)']]],\n  ['removematchmakerpartyasync_9',['RemoveMatchmakerPartyAsync',['../interface_nakama_1_1_i_socket.html#ac07a04f376786f2d74404b755b0d2d3c',1,'Nakama.ISocket.RemoveMatchmakerPartyAsync()'],['../class_nakama_1_1_socket.html#a7047d31f96d51a71879219df0d510dd3',1,'Nakama.Socket.RemoveMatchmakerPartyAsync()']]],\n  ['removepartymemberasync_10',['RemovePartyMemberAsync',['../interface_nakama_1_1_i_socket.html#aedd8b717ab06cb2e1a293cc65eaef503',1,'Nakama.ISocket.RemovePartyMemberAsync()'],['../class_nakama_1_1_socket.html#a35dcc5e4b9135bffd54793b42fb9b4e1',1,'Nakama.Socket.RemovePartyMemberAsync()']]],\n  ['restore_11',['Restore',['../class_nakama_1_1_session.html#ac3615441ca8d14d464fd610c22ce5582',1,'Nakama.Session.Restore()'],['../class_satori_1_1_session.html#a83ba1f658c8d31b3b0307e3807ef36ed',1,'Satori.Session.Restore()']]],\n  ['retryconfiguration_12',['RetryConfiguration',['../class_nakama_1_1_retry_configuration.html#adbf0f298d35e14e72ef1ba0937b7f272',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries)'],['../class_nakama_1_1_retry_configuration.html#a743f91374fba32298211ad64cfd7d57a',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener)'],['../class_nakama_1_1_retry_configuration.html#a4444b94d9d22c6ef75c03ac92d71264f',1,'Nakama.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)'],['../class_satori_1_1_retry_configuration.html#ad2372802b5f35ccc27fd8d8f07f3ca58',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries)'],['../class_satori_1_1_retry_configuration.html#a181f493e3d50a4babcf15b61ac5e2a6f',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener)'],['../class_satori_1_1_retry_configuration.html#a6dab6831bce21807fe5bbcac28afa190',1,'Satori.RetryConfiguration.RetryConfiguration(int baseDelayMs, int maxRetries, RetryListener listener, Jitter jitter)']]],\n  ['retrylistener_13',['RetryListener',['../namespace_nakama.html#a54689fcf19366a415851641cb61947d4',1,'Nakama.RetryListener()'],['../namespace_satori.html#afe3a987ac265a5690c1cdd971c6cb099',1,'Satori.RetryListener()']]],\n  ['returnbuffer_14',['ReturnBuffer',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.html#ae69844db9d6751407ef246703ec64574',1,'Nakama::Ninja::WebSockets::BufferPool']]],\n  ['rpcasync_15',['RpcAsync',['../class_nakama_1_1_client.html#a662403d6079acb66a0c8acb71e87b24d',1,'Nakama.Client.RpcAsync(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#ae7903e1c260db27a9325f542410dffb1',1,'Nakama.Client.RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#ac3e801102a384357b4f77c34aa518416',1,'Nakama.Client.RpcAsync(string httpkey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#accc4af743509eb1a72bf890e60b7b3de',1,'Nakama.Client.RpcAsync(string httpkey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a29b2534c256578fc1868d488e8f553f8',1,'Nakama.IClient.RpcAsync(ISession session, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a3b15daa0defb16913157e3fed94b1aab',1,'Nakama.IClient.RpcAsync(ISession session, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a9674590588d453c43bdd810afa430538',1,'Nakama.IClient.RpcAsync(string httpKey, string id, string payload, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a2678da1ed1dadda85f5d8e76ddbe2a0a',1,'Nakama.IClient.RpcAsync(string httpKey, string id, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_socket.html#a5d5e0936be90aac974a7beb908c086c6',1,'Nakama.ISocket.RpcAsync(string funcId, string payload=null)'],['../interface_nakama_1_1_i_socket.html#a862ba5aa777eebba3d86aa1c882e9c0a',1,'Nakama.ISocket.RpcAsync(string funcId, ArraySegment&lt; byte &gt; payload)'],['../class_nakama_1_1_socket.html#a01a6c34d95185413168cf645e7e8943f',1,'Nakama.Socket.RpcAsync(string funcId, string payload=null)'],['../class_nakama_1_1_socket.html#a30717efa7340511c87fc7e4babe99f80',1,'Nakama.Socket.RpcAsync(string funcId, ArraySegment&lt; byte &gt; payload)']]]\n];\n"
  },
  {
    "path": "docs/html/search/functions_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"functions_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/functions_f.js",
    "content": "var searchData=\n[\n  ['secwebsocketkeymissingexception_0',['SecWebSocketKeyMissingException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#ad9d2cb831443f13f73ded2e50e998101',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a46726192be18f23f164859c1adb61640',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.html#a2de4061f2db2f7e10faea85407b9ad3a',1,'Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException.SecWebSocketKeyMissingException(string message, Exception inner)']]],\n  ['seek_1',['Seek',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a8948a34a2cd6cc6e8a037fd5367ed1c2',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['sendasync_2',['SendAsync',['../class_nakama_1_1_http_request_adapter.html#a7562e1777699f16911ed2d5e245eb5b7',1,'Nakama.HttpRequestAdapter.SendAsync()'],['../interface_nakama_1_1_i_http_adapter.html#af4eea04aef9ed0ccf2ee990bcb294b53',1,'Nakama.IHttpAdapter.SendAsync()'],['../interface_nakama_1_1_i_socket_adapter.html#ab814436b863363b8f8991c01336d77e4',1,'Nakama.ISocketAdapter.SendAsync()'],['../class_nakama_1_1_web_socket_adapter.html#ad3a05cb8ff2ece38c4b40b36b96710e4',1,'Nakama.WebSocketAdapter.SendAsync()'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a3c809f05d8a713f2e04882e40306c64f',1,'Nakama.WebSocketStdlibAdapter.SendAsync()'],['../class_satori_1_1_http_request_adapter.html#a68c34ab8213a4658b431c1d28646dc9a',1,'Satori.HttpRequestAdapter.SendAsync()'],['../interface_satori_1_1_i_http_adapter.html#a5a8263afb745168a52c3e9a778b36344',1,'Satori.IHttpAdapter.SendAsync()']]],\n  ['sendmatchstateasync_3',['SendMatchStateAsync',['../interface_nakama_1_1_i_socket.html#aea679f2d9b9623d527cf6d5b58ecd5ef',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../interface_nakama_1_1_i_socket.html#a035e541530d517125c5770d68765cd83',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../interface_nakama_1_1_i_socket.html#ae594151407277c8c4689bfc4587cc7fb',1,'Nakama.ISocket.SendMatchStateAsync(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#a4b674ce28156f9bec04915fefca0286a',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, ArraySegment&lt; byte &gt; state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#a3e990dd6a05b4949d2800a6c8c91b935',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, string state, IEnumerable&lt; IUserPresence &gt; presences=null)'],['../class_nakama_1_1_socket.html#af98298e1a187ca977c9dcf63c738dc2c',1,'Nakama.Socket.SendMatchStateAsync(string matchId, long opCode, byte[] state, IEnumerable&lt; IUserPresence &gt; presences=null)']]],\n  ['sendpartydataasync_4',['SendPartyDataAsync',['../interface_nakama_1_1_i_socket.html#ae90675f58de4722900b1b1b139485120',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, ArraySegment&lt; byte &gt; data)'],['../interface_nakama_1_1_i_socket.html#a20ec2fbcae378c8d46c6309dc87c41a9',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, string data)'],['../interface_nakama_1_1_i_socket.html#af59ab771e89bb0dce237df3e316f1e63',1,'Nakama.ISocket.SendPartyDataAsync(string partyId, long opCode, byte[] data)'],['../class_nakama_1_1_socket.html#a8b3b14eceedee8d96186d5bf234d820c',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, ArraySegment&lt; byte &gt; data)'],['../class_nakama_1_1_socket.html#aaade8d235e868a54af041e54b216af9d',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, string data)'],['../class_nakama_1_1_socket.html#a2208d5d13196fbf4f40e3131eb224d47',1,'Nakama.Socket.SendPartyDataAsync(string partyId, long opCode, byte[] data)']]],\n  ['sendping_5',['SendPing',['../interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.html#a9e454afd70ec36b728aad46d32282941',1,'Nakama.Ninja.WebSockets.IPingPongManager.SendPing()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.html#ad8ad09c265a7ade2143b855911c1f1cf',1,'Nakama.Ninja.WebSockets.PingPongManager.SendPing()']]],\n  ['serverlistenersocketexception_6',['ServerListenerSocketException',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad1157f9923ff7137fd226d8d61c1cdc7',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException()'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#ad77e30ec3f871bf621276fa00ac2d8cf',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException(string message)'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.html#a03ed8282bad053839e32a709ea034b4e',1,'Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException.ServerListenerSocketException(string message, Exception inner)']]],\n  ['sessionlogoutasync_7',['SessionLogoutAsync',['../class_nakama_1_1_client.html#a3cf4591ab80d069ec55b8021bb51c730',1,'Nakama.Client.SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../class_nakama_1_1_client.html#a6e965270a90777b5aab3f3b4c7ba2374',1,'Nakama.Client.SessionLogoutAsync(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#ac0bf64fd0de7fe6a73a737b5ef514d93',1,'Nakama.IClient.SessionLogoutAsync(ISession session, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)'],['../interface_nakama_1_1_i_client.html#a6c53fa09b45cde7987ca6e3dc1f877bc',1,'Nakama.IClient.SessionLogoutAsync(string authToken, string refreshToken, RetryConfiguration retryConfiguration=null, CancellationToken canceller=default)']]],\n  ['sessionrefreshasync_8',['SessionRefreshAsync',['../class_nakama_1_1_client.html#a54ddec21945530369fca30e9306efe5d',1,'Nakama.Client.SessionRefreshAsync()'],['../interface_nakama_1_1_i_client.html#af75a6a3aceaddf452fb714e08b0d3b0b',1,'Nakama.IClient.SessionRefreshAsync()'],['../class_satori_1_1_client.html#a4b9afaf4d361d1991cf74a01f1163d64',1,'Satori.Client.SessionRefreshAsync()'],['../interface_satori_1_1_i_client.html#a98996c62285fd0e6c28146ebea67b7b5',1,'Satori.IClient.SessionRefreshAsync()']]],\n  ['setlength_9',['SetLength',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a00482a87fdede1c9c58bc5b5e5b270bb',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['socket_10',['Socket',['../class_nakama_1_1_socket.html#a957a7a72f3206eeb71b4f823b89481b2',1,'Nakama.Socket.Socket()'],['../class_nakama_1_1_socket.html#a5cd86e4fde0b78a4230ed024ef43dbe7',1,'Nakama.Socket.Socket(ISocketAdapter adapter)'],['../class_nakama_1_1_socket.html#a7a528ae9507ab34fb8a19fe5fd90fde1',1,'Nakama.Socket.Socket(string scheme, string host, int port, ISocketAdapter adapter, int sendTimeoutSec=DefaultSendTimeout)']]]\n];\n"
  },
  {
    "path": "docs/html/search/namespaces_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"namespaces_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/namespaces_0.js",
    "content": "var searchData=\n[\n  ['nakama_0',['Nakama',['../namespace_nakama.html',1,'']]],\n  ['nakama_3a_3aconsole_1',['Console',['../namespace_nakama_1_1_console.html',1,'Nakama']]],\n  ['nakama_3a_3aninja_2',['Ninja',['../namespace_nakama_1_1_ninja.html',1,'Nakama']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_3',['WebSockets',['../namespace_nakama_1_1_ninja_1_1_web_sockets.html',1,'Nakama::Ninja']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_3a_3aexceptions_4',['Exceptions',['../namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.html',1,'Nakama::Ninja::WebSockets']]],\n  ['nakama_3a_3aninja_3a_3awebsockets_3a_3ainternal_5',['Internal',['../namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.html',1,'Nakama::Ninja::WebSockets']]],\n  ['nakama_3a_3atinyjson_6',['TinyJson',['../namespace_nakama_1_1_tiny_json.html',1,'Nakama']]]\n];\n"
  },
  {
    "path": "docs/html/search/namespaces_1.js",
    "content": "var searchData=\n[\n  ['satori_0',['Satori',['../namespace_satori.html',1,'']]],\n  ['satori_3a_3atinyjson_1',['TinyJson',['../namespace_satori_1_1_tiny_json.html',1,'Satori']]]\n];\n"
  },
  {
    "path": "docs/html/search/nomatches.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/pages_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"pages_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/pages_0.js",
    "content": "var searchData=\n[\n  ['changelog_0',['Changelog',['../md__2_users_2novabyte_2_heroic-_labs_2_projects_2nakama-dotnet_2_c_h_a_n_g_e_l_o_g.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/pages_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"pages_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/pages_1.js",
    "content": "var searchData=\n[\n  ['nakama_20net_0',['Nakama .NET',['../index.html',1,'']]],\n  ['net_1',['Nakama .NET',['../index.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/pages_2.js",
    "content": "var searchData=\n[\n  ['release_20instructions_0',['Release Instructions',['../md__r_e_l_e_a_s_e_i_n_s_t.html',1,'']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_0.js",
    "content": "var searchData=\n[\n  ['account_0',['Account',['../interface_nakama_1_1_i_api_link_steam_request.html#ad508d87c1a7ff1e453c8c5f171adf258',1,'Nakama.IApiLinkSteamRequest.Account'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a4048b1250af7682f706940712d2f1c65',1,'Nakama.Console.IConsoleAccountExport.Account'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#a7f8b5cefecb55ea753a24e1cc2ffdd2d',1,'Nakama.Console.INakamaconsoleAccount.Account']]],\n  ['acks_1',['Acks',['../interface_nakama_1_1_i_api_storage_object_acks.html#a85b2fe1a3f5cffdec69a6ae036e3f456',1,'Nakama::IApiStorageObjectAcks']]],\n  ['active_2',['Active',['../interface_nakama_1_1_i_api_validated_subscription.html#ad295f4a89fa4d5b54a691e086cfdb013',1,'Nakama::IApiValidatedSubscription']]],\n  ['activeendtimesec_3',['ActiveEndTimeSec',['../interface_satori_1_1_i_api_live_event.html#a0f16280e4d7c437c0e62ebbfc4c69ae5',1,'Satori::IApiLiveEvent']]],\n  ['activestarttimesec_4',['ActiveStartTimeSec',['../interface_satori_1_1_i_api_live_event.html#acc71a5d9c876dac31a2c911b58cd1f50',1,'Satori::IApiLiveEvent']]],\n  ['additionalhttpheaders_5',['AdditionalHttpHeaders',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#acde18f33707e3a3589136457f0b17c04',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['apikey_6',['ApiKey',['../class_satori_1_1_client.html#a6a3b18b2c87e5235ecc6558bae414f35',1,'Satori.Client.ApiKey'],['../interface_satori_1_1_i_client.html#a925f1ed39c7e91ed7afa9b44b20cfdfd',1,'Satori.IClient.ApiKey']]],\n  ['appleid_7',['AppleId',['../interface_nakama_1_1_i_api_user.html#ab0198bc70ded313e6c9c6763eb8ceb2c',1,'Nakama::IApiUser']]],\n  ['authoritative_8',['Authoritative',['../interface_nakama_1_1_i_api_match.html#a102a2515c695ea594b7d20f78c7a7357',1,'Nakama.IApiMatch.Authoritative'],['../interface_nakama_1_1_i_api_tournament.html#a7c912a92804dffad2da1cc975f161665',1,'Nakama.IApiTournament.Authoritative'],['../interface_nakama_1_1_i_match.html#ae082ee8c9b89c975ba3a4ae8365c631b',1,'Nakama.IMatch.Authoritative']]],\n  ['authtoken_9',['AuthToken',['../interface_nakama_1_1_i_session.html#a49d091792a2145d7dbc72cbf36a60d91',1,'Nakama.ISession.AuthToken'],['../class_nakama_1_1_session.html#a6109a78f8514b76f1a0977937dcaaaaf',1,'Nakama.Session.AuthToken'],['../interface_satori_1_1_i_session.html#a3a090ee3fe0d7a6f01d45f185ec8f3ba',1,'Satori.ISession.AuthToken'],['../class_satori_1_1_session.html#afdc7cdcad28bc4c95c1b6244f9b208bf',1,'Satori.Session.AuthToken']]],\n  ['autorefreshsession_10',['AutoRefreshSession',['../class_nakama_1_1_client.html#a2abea8492c53d4579c14eb4ae5327610',1,'Nakama.Client.AutoRefreshSession'],['../interface_nakama_1_1_i_client.html#a65ce1849bf8c639c0d11853be12f22f8',1,'Nakama.IClient.AutoRefreshSession'],['../class_satori_1_1_client.html#a1fc4e5a73077533d8671e64686528d1a',1,'Satori.Client.AutoRefreshSession'],['../interface_satori_1_1_i_client.html#a92cededba8674818db5107bca319ed39',1,'Satori.IClient.AutoRefreshSession']]],\n  ['avatarurl_11',['AvatarUrl',['../interface_nakama_1_1_i_api_update_group_request.html#a144112a79ce69e6fe3ad8802b6ce82e7',1,'Nakama.IApiUpdateGroupRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_create_group_request.html#a8d5dad2c2fda2fcec06c5c5550d1cdbb',1,'Nakama.IApiCreateGroupRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_group.html#a82ce2b2b17083d5793a7b29d5ecc31c5',1,'Nakama.IApiGroup.AvatarUrl'],['../interface_nakama_1_1_i_api_update_account_request.html#a8d1f3bf3766cd7340ba66ca2a74e7a63',1,'Nakama.IApiUpdateAccountRequest.AvatarUrl'],['../interface_nakama_1_1_i_api_user.html#afb7372669926e49e84d65eda35d96e57',1,'Nakama.IApiUser.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a8b27cbc95648fcd0b276347ea091aea8',1,'Nakama.Console.IApiGroup.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a901553cfe0359184b304752b0c5ba78e',1,'Nakama.Console.IApiUser.AvatarUrl'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#adffafb64eb25eae91db9cc48b543e41e',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.AvatarUrl']]],\n  ['avginputkbs_12',['AvgInputKbs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ac58367d6f0155bdb5751120941fc00a2',1,'Nakama::Console::IStatusListStatus']]],\n  ['avglatencyms_13',['AvgLatencyMs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a56b2405d856da581a487bd73b8c07d11',1,'Nakama::Console::IStatusListStatus']]],\n  ['avgoutputkbs_14',['AvgOutputKbs',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a69f5f7c4dccd9b6a6f39097f6ccb8fcd',1,'Nakama::Console::IStatusListStatus']]],\n  ['avgratesec_15',['AvgRateSec',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a17724f6e13a79a8139d1523efd9c4add',1,'Nakama::Console::IStatusListStatus']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_1.js",
    "content": "var searchData=\n[\n  ['basedelayms_0',['BaseDelayMs',['../class_nakama_1_1_retry_configuration.html#abb2a37c54f24e2fcd6c4ef4e2b5b3f75',1,'Nakama.RetryConfiguration.BaseDelayMs'],['../class_satori_1_1_retry_configuration.html#a3fa2a5ab77e81b6b42732f8cdac7cd78',1,'Satori.RetryConfiguration.BaseDelayMs']]],\n  ['bundleid_1',['BundleId',['../interface_nakama_1_1_i_api_account_game_center.html#ac27ebc1ca627474a06564a8ce057105b',1,'Nakama::IApiAccountGameCenter']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_10.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_10.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_10.js",
    "content": "var searchData=\n[\n  ['rank_0',['Rank',['../interface_nakama_1_1_i_api_leaderboard_record.html#a3267afb94ba15649efb80fc0f86dc0f8',1,'Nakama.IApiLeaderboardRecord.Rank'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8b6fe15ce1ef65f85b99d8881a0ab07e',1,'Nakama.Console.IApiLeaderboardRecord.Rank']]],\n  ['rankcount_1',['RankCount',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a12b03e7d1f0135f7af8394dc5ef014b7',1,'Nakama.IApiLeaderboardRecordList.RankCount'],['../interface_nakama_1_1_i_api_tournament_record_list.html#aeabcdeb43c67e9ebf274ac3ded125a16',1,'Nakama.IApiTournamentRecordList.RankCount']]],\n  ['readtime_2',['ReadTime',['../interface_satori_1_1_i_api_update_message_request.html#adc79d260087b5b2f6c1ccc2e7887f970',1,'Satori.IApiUpdateMessageRequest.ReadTime'],['../interface_satori_1_1_i_api_message.html#a8fccac83e4a234289c0ef365d4e66770',1,'Satori.IApiMessage.ReadTime']]],\n  ['readtimeout_3',['ReadTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a0791ccdc5eff12b7627d094e745a98c5',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['receipt_4',['Receipt',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html#aa6721f9ea220bce44e5274fcf335a4b6',1,'Nakama.IApiValidatePurchaseAppleRequest.Receipt'],['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html#aea80877b3c4ab065ec156c2e5e97edc9',1,'Nakama.IApiValidateSubscriptionAppleRequest.Receipt'],['../interface_nakama_1_1_i_api_validate_subscription_google_request.html#a9b163d346293af62efe1bc1be55628dc',1,'Nakama.IApiValidateSubscriptionGoogleRequest.Receipt']]],\n  ['recompute_5',['Recompute',['../interface_satori_1_1_i_api_update_properties_request.html#a9180f764cd38a07c68f8b7f48c59a78d',1,'Satori::IApiUpdatePropertiesRequest']]],\n  ['records_6',['Records',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#afc22e53bcc626655097b8ddbe487f2b0',1,'Nakama.IApiLeaderboardRecordList.Records'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a1a1021817f86ef4232fa9f539bf9200d',1,'Nakama.IApiTournamentRecordList.Records']]],\n  ['referrer_7',['Referrer',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#a753becc7f509c104f04ad96c184b3cf3',1,'Nakama::IFriendsOfFriendsListFriendOfFriend']]],\n  ['refreshexpiretime_8',['RefreshExpireTime',['../interface_nakama_1_1_i_session.html#a8a56822b1939c90ba048c64a5522a83f',1,'Nakama.ISession.RefreshExpireTime'],['../class_nakama_1_1_session.html#aa220b017e0bb05a9e55f437268338002',1,'Nakama.Session.RefreshExpireTime'],['../interface_satori_1_1_i_session.html#a4303314d30ab93e5297842327ef97571',1,'Satori.ISession.RefreshExpireTime'],['../class_satori_1_1_session.html#aa3ff3bfb4404d71172a2fcb323632f9e',1,'Satori.Session.RefreshExpireTime']]],\n  ['refreshtoken_9',['RefreshToken',['../interface_nakama_1_1_i_api_session.html#a454c959e3d561be5a45da315d99446b3',1,'Nakama.IApiSession.RefreshToken'],['../interface_nakama_1_1_i_api_session_logout_request.html#a922b55c5d0d42e50c5ba0723c90007c2',1,'Nakama.IApiSessionLogoutRequest.RefreshToken'],['../interface_nakama_1_1_i_session.html#add730c3a5733264132cc63f39eb53b31',1,'Nakama.ISession.RefreshToken'],['../class_nakama_1_1_session.html#a3b756ff336a724af7cb65b2711ffd8d0',1,'Nakama.Session.RefreshToken'],['../interface_satori_1_1_i_api_authenticate_logout_request.html#aee4106debdd1d7d7f57a6987c5f4dd65',1,'Satori.IApiAuthenticateLogoutRequest.RefreshToken'],['../interface_satori_1_1_i_api_authenticate_refresh_request.html#a0b2eee0a2a242a6bec78540bf2e75ee1',1,'Satori.IApiAuthenticateRefreshRequest.RefreshToken'],['../interface_satori_1_1_i_api_session.html#acebbc9ff85f8ba05226c2154267abd91',1,'Satori.IApiSession.RefreshToken'],['../interface_satori_1_1_i_session.html#abfc2880c5080481f9ea718e18c2845cf',1,'Satori.ISession.RefreshToken'],['../class_satori_1_1_session.html#a6de405afc91032a2c328ae863decc122',1,'Satori.Session.RefreshToken']]],\n  ['refundtime_10',['RefundTime',['../interface_nakama_1_1_i_api_validated_purchase.html#a7eacca40ebdb0ce36135c6dbd90a7faf',1,'Nakama.IApiValidatedPurchase.RefundTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a73caac906cb652ba66eaf244f16aad29',1,'Nakama.IApiValidatedSubscription.RefundTime']]],\n  ['resetcron_11',['ResetCron',['../interface_satori_1_1_i_api_live_event.html#a583f53288ddd20a33b00902e8c490fbd',1,'Satori::IApiLiveEvent']]],\n  ['responsecode_12',['ResponseCode',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#af6bbf55134722b3156c223839b81daba',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['responsedetails_13',['ResponseDetails',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a113f65ed87eae571b93a306ddef68316',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['responseheader_14',['ResponseHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.html#a331bc21a5eee98f43d9992641a6196e7',1,'Nakama::Ninja::WebSockets::Exceptions::InvalidHttpResponseCodeException']]],\n  ['retrylistener_15',['RetryListener',['../class_nakama_1_1_retry_configuration.html#a45bbacb24a971f1092d15bc2dac0bafe',1,'Nakama.RetryConfiguration.RetryListener'],['../class_satori_1_1_retry_configuration.html#a6e9b52a25e468eac475af70a00352e5a',1,'Satori.RetryConfiguration.RetryListener']]],\n  ['roomname_16',['RoomName',['../interface_nakama_1_1_i_api_channel_message.html#ac2b13020832c4cb54dbf0cc582c76f06',1,'Nakama.IApiChannelMessage.RoomName'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4dfdc0ecc3181068cd4270cfe5e7bf83',1,'Nakama.Console.IApiChannelMessage.RoomName'],['../interface_nakama_1_1_i_channel.html#a0a47216873656bccbae97ada995780fc',1,'Nakama.IChannel.RoomName'],['../interface_nakama_1_1_i_channel_message_ack.html#a5227455826725648e96df53f9e6130aa',1,'Nakama.IChannelMessageAck.RoomName'],['../interface_nakama_1_1_i_channel_presence_event.html#ada1acc95b4a8614a040e08148ce20873',1,'Nakama.IChannelPresenceEvent.RoomName']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_11.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_11.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_11.js",
    "content": "var searchData=\n[\n  ['salt_0',['Salt',['../interface_nakama_1_1_i_api_account_game_center.html#aea2cbca29fcf6cc5970e39a550fb8222',1,'Nakama::IApiAccountGameCenter']]],\n  ['scheduleid_1',['ScheduleId',['../interface_satori_1_1_i_api_message.html#aa73ab7696f83117786f49a1b793b3927',1,'Satori::IApiMessage']]],\n  ['scheme_2',['Scheme',['../class_nakama_1_1_client.html#afaf274b5c7dc2b21931b7d6814f3d455',1,'Nakama.Client.Scheme'],['../interface_nakama_1_1_i_client.html#a5ce30e2720c3b831e249bf19452eb340',1,'Nakama.IClient.Scheme'],['../class_satori_1_1_client.html#a7a5062ffa65ca4882f75dc6da7bff858',1,'Satori.Client.Scheme'],['../interface_satori_1_1_i_client.html#afc553c7ef0a65e8b7fe10fa69fb73109',1,'Satori.IClient.Scheme']]],\n  ['score_3',['Score',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a6333b5c9d267c1275cc284bfcd07f3a0',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Score'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#ad3a1c0719749e609006577a7577729b1',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Score'],['../interface_nakama_1_1_i_api_leaderboard_record.html#a3a95692a81f3262b8ee1867d8e8344a7',1,'Nakama.IApiLeaderboardRecord.Score'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ad99e6355419cdf19385b3a7980b20807',1,'Nakama.Console.IApiLeaderboardRecord.Score']]],\n  ['secwebsocketextensions_4',['SecWebSocketExtensions',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a0f6ffb1c602783b96fa63822adf93162',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['secwebsocketprotocol_5',['SecWebSocketProtocol',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a7f6a8ce6c2e54c8fd2e8966fc148d669',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['seenbefore_6',['SeenBefore',['../interface_nakama_1_1_i_api_validated_purchase.html#ac09207aebbde21f6c3e0fdd90f88f5f4',1,'Nakama::IApiValidatedPurchase']]],\n  ['self_7',['Self',['../interface_nakama_1_1_i_channel.html#ad3b8547c0ca2c322236dc640e648410f',1,'Nakama.IChannel.Self'],['../interface_nakama_1_1_i_match.html#a007362b403742126106c65e023a9185f',1,'Nakama.IMatch.Self'],['../interface_nakama_1_1_i_matchmaker_matched.html#a5716c374d85fb7b2f2f7d41c0fefd848',1,'Nakama.IMatchmakerMatched.Self'],['../interface_nakama_1_1_i_party.html#a7be0281272b44f71b4306592ff2470e2',1,'Nakama.IParty.Self']]],\n  ['sender_8',['Sender',['../interface_nakama_1_1_i_stream_state.html#ac0bbd6199f882e10f65a40298931b4d6',1,'Nakama::IStreamState']]],\n  ['senderid_9',['SenderId',['../interface_nakama_1_1_i_api_channel_message.html#acc6f10451b49e3868082df10fed11414',1,'Nakama.IApiChannelMessage.SenderId'],['../interface_nakama_1_1_i_api_notification.html#a61fed141e1c0148f55eb1d8cf3a4a75a',1,'Nakama.IApiNotification.SenderId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3ae8c0a397dc2efe2160d7c5655b493a',1,'Nakama.Console.IApiChannelMessage.SenderId'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a9022630f97359e1438e8a795e5131492',1,'Nakama.Console.IApiNotification.SenderId']]],\n  ['sendtime_10',['SendTime',['../interface_satori_1_1_i_api_message.html#acf3f95fe2651cfa4a958f35009e573ee',1,'Satori::IApiMessage']]],\n  ['serverkey_11',['ServerKey',['../class_nakama_1_1_client.html#aa70b920781b70f74f0419d262043dbd1',1,'Nakama.Client.ServerKey'],['../interface_nakama_1_1_i_client.html#a6b13274c171e19e07f26ea5334f8ab23',1,'Nakama.IClient.ServerKey']]],\n  ['serverversion_12',['ServerVersion',['../interface_nakama_1_1_console_1_1_i_console_config.html#af8a88d86a7e574dd64cad759e06e1e35',1,'Nakama::Console::IConsoleConfig']]],\n  ['sessioncount_13',['SessionCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ac117df6b0cf3efbc304669bf19258eab',1,'Nakama::Console::IStatusListStatus']]],\n  ['sessionid_14',['SessionId',['../interface_nakama_1_1_i_user_presence.html#a2456c3637f0883d30490386ab59957af',1,'Nakama::IUserPresence']]],\n  ['signature_15',['Signature',['../interface_nakama_1_1_i_api_account_game_center.html#a4a707ce6bd71298851bf6007280eb2d6',1,'Nakama.IApiAccountGameCenter.Signature'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a7b98a33ae94db920a247eb5f1c618489',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Signature']]],\n  ['signedplayerinfo_16',['SignedPlayerInfo',['../interface_nakama_1_1_i_api_account_facebook_instant_game.html#a72b59c27bf3485eed5578482f270e610',1,'Nakama::IApiAccountFacebookInstantGame']]],\n  ['signedrequest_17',['SignedRequest',['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a6c1c5723de1efb7deb731d931e9a086e',1,'Nakama::IApiValidatePurchaseFacebookInstantRequest']]],\n  ['size_18',['Size',['../interface_nakama_1_1_i_api_match.html#a54eed534d6eb5fb1b60fbdd09f54e280',1,'Nakama.IApiMatch.Size'],['../interface_nakama_1_1_i_api_tournament.html#a2b6ac3469abfb67c9cbc6f8929f04bb7',1,'Nakama.IApiTournament.Size'],['../interface_nakama_1_1_i_match.html#aafdd659e29dd31f2360657d2703d63e5',1,'Nakama.IMatch.Size']]],\n  ['sortorder_19',['SortOrder',['../interface_nakama_1_1_i_api_tournament.html#acb01044753093c9ab2311f51f9c01cdf',1,'Nakama::IApiTournament']]],\n  ['startactive_20',['StartActive',['../interface_nakama_1_1_i_api_tournament.html#aceca06fc1dd464d9635399e4add87cbf',1,'Nakama::IApiTournament']]],\n  ['starttime_21',['StartTime',['../interface_nakama_1_1_i_api_tournament.html#a02aea8c93c075cbb364bf9215916dfda',1,'Nakama::IApiTournament']]],\n  ['starttimesec_22',['StartTimeSec',['../interface_satori_1_1_i_api_live_event.html#aa2a1ae98a4e228be62484e5ed59360ba',1,'Satori::IApiLiveEvent']]],\n  ['state_23',['State',['../interface_nakama_1_1_i_group_user_list_group_user.html#ab3c0a5153f49c9713449835993cf6bb9',1,'Nakama.IGroupUserListGroupUser.State'],['../interface_nakama_1_1_i_user_group_list_user_group.html#a15e89f8a93457a5d7d2c8ac93f97ed9f',1,'Nakama.IUserGroupListUserGroup.State'],['../interface_nakama_1_1_i_api_friend.html#a1f2e60028fece48989d4b7f075a2e06b',1,'Nakama.IApiFriend.State'],['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#a909a6a9e0446c46dc4b65e73777fc007',1,'Nakama.Console.IUserGroupListUserGroup.State'],['../interface_nakama_1_1_console_1_1_i_api_friend.html#a0da515066a7c41f9165f7f02389d45be',1,'Nakama.Console.IApiFriend.State'],['../interface_nakama_1_1_i_match_state.html#a381837d92c6e9af9f0d777f8afec5aae',1,'Nakama.IMatchState.State'],['../interface_nakama_1_1_i_stream_state.html#afc9a621f6766d2606cdefb6eae14c3f4',1,'Nakama.IStreamState.State']]],\n  ['status_24',['Status',['../interface_nakama_1_1_i_user_presence.html#af88838cb8175fab5d0ea73ff772a4954',1,'Nakama::IUserPresence']]],\n  ['statuscode_25',['StatusCode',['../class_nakama_1_1_api_response_exception.html#a340b4726dde4af94b5e2553ffcc1f3ee',1,'Nakama.ApiResponseException.StatusCode'],['../class_nakama_1_1_console_1_1_api_response_exception.html#a21148e047e087bcccedeecabd6155a75',1,'Nakama.Console.ApiResponseException.StatusCode'],['../class_satori_1_1_api_response_exception.html#af56ef69f0c3f973ef9a9c5695d3d911f',1,'Satori.ApiResponseException.StatusCode']]],\n  ['steamid_26',['SteamId',['../interface_nakama_1_1_i_api_user.html#a4d5ae38271c94c784a6109eb75b445c9',1,'Nakama.IApiUser.SteamId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#aaf7cc670cdc069ed911ccac9766dd65a',1,'Nakama.Console.IApiUser.SteamId']]],\n  ['store_27',['Store',['../interface_nakama_1_1_i_api_validated_purchase.html#a82b03837923ce9da25df12a6e72962e1',1,'Nakama.IApiValidatedPurchase.Store'],['../interface_nakama_1_1_i_api_validated_subscription.html#a0823f4340d5db22b3e765c624df8ad24',1,'Nakama.IApiValidatedSubscription.Store']]],\n  ['stream_28',['Stream',['../interface_nakama_1_1_i_stream_presence_event.html#abe21bc088dad6602243133ddedfd903c',1,'Nakama.IStreamPresenceEvent.Stream'],['../interface_nakama_1_1_i_stream_state.html#ad887e1bad3acb664c55caeb8bb182bda',1,'Nakama.IStreamState.Stream'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a6ec7ab7d4889b2687797bb0410df4ee8',1,'Nakama.Ninja.WebSockets.WebSocketHttpContext.Stream']]],\n  ['stringproperties_29',['StringProperties',['../interface_nakama_1_1_i_matchmaker_user.html#a89a88598a9affd0f7597b800816899fa',1,'Nakama::IMatchmakerUser']]],\n  ['subject_30',['Subject',['../interface_nakama_1_1_i_api_notification.html#a170e4f78c5754e9cac88b9791c8eedf7',1,'Nakama.IApiNotification.Subject'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a3cb86317ceb89d5b5093b64e7b11217b',1,'Nakama.Console.IApiNotification.Subject'],['../interface_nakama_1_1_i_stream.html#a914a568af0a74e4551835d923ae33989',1,'Nakama.IStream.Subject']]],\n  ['subprotocol_31',['SubProtocol',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#afa0e3b2185d29c0d5be60327e5ef2640',1,'Nakama::Ninja::WebSockets::WebSocketServerOptions']]],\n  ['subscore_32',['Subscore',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a9d2f49fe634454482c21767879427954',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Subscore'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a3c85729254f628d830601afe34c22b69',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Subscore'],['../interface_nakama_1_1_i_api_leaderboard_record.html#aacb0fe48d0a9f8c1b41031fa38660e0a',1,'Nakama.IApiLeaderboardRecord.Subscore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a8adc2b089935523b0c0ba298605a98e7',1,'Nakama.Console.IApiLeaderboardRecord.Subscore']]],\n  ['sync_33',['Sync',['../interface_nakama_1_1_i_api_link_steam_request.html#a72801c16022a5c1f9a950225b1af8bd8',1,'Nakama::IApiLinkSteamRequest']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_12.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_12.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_12.js",
    "content": "var searchData=\n[\n  ['text_0',['Text',['../interface_satori_1_1_i_api_message.html#ae0423fa0a20f23c352399163b158b9aa',1,'Satori::IApiMessage']]],\n  ['ticket_1',['Ticket',['../interface_nakama_1_1_i_matchmaker_matched.html#a4521a2a0e267c0a5947d70b3fd1f67c7',1,'Nakama.IMatchmakerMatched.Ticket'],['../interface_nakama_1_1_i_matchmaker_ticket.html#a8f9d6e24b7a71bb40e18d374203b9eef',1,'Nakama.IMatchmakerTicket.Ticket'],['../interface_nakama_1_1_i_party_matchmaker_ticket.html#a11b143c9e178fc5d9b1986071b9b95af',1,'Nakama.IPartyMatchmakerTicket.Ticket']]],\n  ['ticketcount_2',['TicketCount',['../interface_nakama_1_1_i_api_matchmaker_stats.html#ae77d82dfea20e696ee544963dbcd9bed',1,'Nakama::IApiMatchmakerStats']]],\n  ['tickrate_3',['TickRate',['../interface_nakama_1_1_i_api_match.html#abdd9d1b2e633e702f3e5ef02299e5529',1,'Nakama::IApiMatch']]],\n  ['timeout_4',['Timeout',['../class_nakama_1_1_client.html#afa11ac790793b5178c423364cc1a1cd2',1,'Nakama.Client.Timeout'],['../interface_nakama_1_1_i_client.html#aadcfb5308770d73098d9ba66534074af',1,'Nakama.IClient.Timeout'],['../class_satori_1_1_client.html#a92d087e7452bccafc3148dbab3dac12c',1,'Satori.Client.Timeout'],['../interface_satori_1_1_i_client.html#ad9dd8d69df8a409984565f7cc20a3580',1,'Satori.IClient.Timeout']]],\n  ['timestamp_5',['Timestamp',['../interface_nakama_1_1_i_api_event.html#a781fb5a536c2ffc3cbf7470774baeadf',1,'Nakama.IApiEvent.Timestamp'],['../interface_satori_1_1_i_api_event.html#a7527df758659398ccff9b5b31004508d',1,'Satori.IApiEvent.Timestamp'],['../class_satori_1_1_event.html#a73d5b866bb7792202a0559384af0da36',1,'Satori.Event.Timestamp']]],\n  ['timestampseconds_6',['TimestampSeconds',['../interface_nakama_1_1_i_api_account_game_center.html#abe561a33c4ca1eb201c6cb84b173194b',1,'Nakama::IApiAccountGameCenter']]],\n  ['timezone_7',['Timezone',['../interface_nakama_1_1_i_api_update_account_request.html#aa55b972d8c9443ae99e47020d3231665',1,'Nakama.IApiUpdateAccountRequest.Timezone'],['../interface_nakama_1_1_i_api_user.html#ae873fe0750aa08303676c1f21ef55dd5',1,'Nakama.IApiUser.Timezone'],['../interface_nakama_1_1_console_1_1_i_api_user.html#ab7bc58732b4f2fdcf86d3e59e54fccb5',1,'Nakama.Console.IApiUser.Timezone'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#afb6b5a14e3cfae2139dd7a69bb6510f0',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Timezone']]],\n  ['title_8',['Title',['../interface_nakama_1_1_i_api_tournament.html#a0d1cdd84f43595345239d58b5a56cd41',1,'Nakama.IApiTournament.Title'],['../interface_satori_1_1_i_api_message.html#aefb46ec80082f96658315b6e5081e277',1,'Satori.IApiMessage.Title']]],\n  ['token_9',['Token',['../interface_nakama_1_1_i_api_account_apple.html#a236aef936550ef693ae1ba4e752836c5',1,'Nakama.IApiAccountApple.Token'],['../interface_nakama_1_1_i_api_account_facebook.html#ac7964eef958b9601424636e740936283',1,'Nakama.IApiAccountFacebook.Token'],['../interface_nakama_1_1_i_api_account_google.html#a0d9d31fc404382118e7c9fa8671b1ab0',1,'Nakama.IApiAccountGoogle.Token'],['../interface_nakama_1_1_i_api_account_steam.html#a1624ba777a34d93a944e7939e41f8b8d',1,'Nakama.IApiAccountSteam.Token'],['../interface_nakama_1_1_i_api_session.html#ae7eaba760429059845023e94e931a511',1,'Nakama.IApiSession.Token'],['../interface_nakama_1_1_i_api_session_logout_request.html#a4d22d391c1f34a8003bde5344524af61',1,'Nakama.IApiSessionLogoutRequest.Token'],['../interface_nakama_1_1_i_api_session_refresh_request.html#ab38a7f131abc8e234ae3aec7956ae5d5',1,'Nakama.IApiSessionRefreshRequest.Token'],['../interface_nakama_1_1_console_1_1_i_console_console_session.html#a28549381b6f0e7b7cc92a9d9cf819ae2',1,'Nakama.Console.IConsoleConsoleSession.Token'],['../interface_nakama_1_1_i_matchmaker_matched.html#a39bbcf32c0c6aec47c7ea1b2d92f93f7',1,'Nakama.IMatchmakerMatched.Token'],['../interface_satori_1_1_i_api_authenticate_logout_request.html#ae2c9246a90730e17f92b059af8010972',1,'Satori.IApiAuthenticateLogoutRequest.Token'],['../interface_satori_1_1_i_api_session.html#aebf02f36da2a04667898b58af958bb97',1,'Satori.IApiSession.Token']]],\n  ['totalcount_10',['TotalCount',['../interface_nakama_1_1_console_1_1_i_console_storage_list.html#ae3edcfd19bcde4d6bb3162e9728a1454',1,'Nakama.Console.IConsoleStorageList.TotalCount'],['../interface_nakama_1_1_console_1_1_i_console_user_list.html#a60e8109cdbc7acab309fef2cf34ea1f0',1,'Nakama.Console.IConsoleUserList.TotalCount']]],\n  ['tournaments_11',['Tournaments',['../interface_nakama_1_1_i_api_tournament_list.html#ac0e197f155ef68dff3ab4835407651b3',1,'Nakama::IApiTournamentList']]],\n  ['transactionid_12',['TransactionId',['../interface_nakama_1_1_i_api_validated_purchase.html#a6b3f6c488bf5a83524e8b09e19dd1427',1,'Nakama::IApiValidatedPurchase']]],\n  ['transientexceptiondelegate_13',['TransientExceptionDelegate',['../class_nakama_1_1_http_request_adapter.html#ae3ce0f7e336c27b77b9040fe5d851bc5',1,'Nakama.HttpRequestAdapter.TransientExceptionDelegate'],['../interface_nakama_1_1_i_http_adapter.html#a276f20c0cdbc85177ace2cc336579cf8',1,'Nakama.IHttpAdapter.TransientExceptionDelegate'],['../class_satori_1_1_http_request_adapter.html#a546f98fc502df23332f3cfce7101d1e3',1,'Satori.HttpRequestAdapter.TransientExceptionDelegate'],['../interface_satori_1_1_i_http_adapter.html#a4a1fd5b9edeccda3485b62d94f22578f',1,'Satori.IHttpAdapter.TransientExceptionDelegate']]],\n  ['type_14',['Type',['../interface_satori_1_1_i_flag_value_change_reason.html#a45c8e3dea48266af7ac883bf68135b90',1,'Satori.IFlagValueChangeReason.Type'],['../interface_satori_1_1_i_api_flag_override_value.html#a11edd138b1cba646e20ee5428d90d289',1,'Satori.IApiFlagOverrideValue.Type']]],\n  ['type_15',['type',['../interface_nakama_1_1_i_protobuf_any.html#ae781aedea35e5e653ab922960e545423',1,'Nakama.IProtobufAny.type'],['../interface_satori_1_1_i_protobuf_any.html#a43acc74cdc796aeee56a0930fa2f3b5d',1,'Satori.IProtobufAny.type']]],\n  ['typeurl_16',['TypeUrl',['../interface_nakama_1_1_console_1_1_i_protobuf_any.html#a9729b3262d0481a8510ec54901fecb4a',1,'Nakama::Console::IProtobufAny']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_13.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_13.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_13.js",
    "content": "var searchData=\n[\n  ['updatetime_0',['UpdateTime',['../interface_nakama_1_1_i_api_channel_message.html#a8667392822e75cf8bc7f940653514e18',1,'Nakama.IApiChannelMessage.UpdateTime'],['../interface_nakama_1_1_i_api_friend.html#afdaaed338599be89e1f00fd4df57a909',1,'Nakama.IApiFriend.UpdateTime'],['../interface_nakama_1_1_i_api_group.html#ab745c75e67065996dbf1cb4359590bee',1,'Nakama.IApiGroup.UpdateTime'],['../interface_nakama_1_1_i_api_leaderboard_record.html#afff6cfb1102c2ac6d02cb930c94fc841',1,'Nakama.IApiLeaderboardRecord.UpdateTime'],['../interface_nakama_1_1_i_api_storage_object.html#a67b2c6f4b9dd3f933a885309e91addbc',1,'Nakama.IApiStorageObject.UpdateTime'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a05822b6b17154be938e0cb419f7e75ac',1,'Nakama.IApiStorageObjectAck.UpdateTime'],['../interface_nakama_1_1_i_api_user.html#a8aff59a5e341fe445578d2f108a80ddd',1,'Nakama.IApiUser.UpdateTime'],['../interface_nakama_1_1_i_api_validated_purchase.html#ae4607e3920b05740205f5149166ff23f',1,'Nakama.IApiValidatedPurchase.UpdateTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a491121c001aceae5d066dd6fa71a2695',1,'Nakama.IApiValidatedSubscription.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#af1eef5f9c860e13751f0e3383a56ed3c',1,'Nakama.Console.IApiChannelMessage.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_group.html#abbbd22fa5df2036ecad22197a40a44c8',1,'Nakama.Console.IApiGroup.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#ada7130274d01b270c3943314da01c2d4',1,'Nakama.Console.IApiLeaderboardRecord.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aedc1b5f56b33928bf34204f4e9817aa7',1,'Nakama.Console.IApiStorageObject.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_api_user.html#afa69bac4d2ac21fcb18b8df53b44646f',1,'Nakama.Console.IApiUser.UpdateTime'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a53478c6bcccbf4427826badc72288f02',1,'Nakama.Console.IConsoleWalletLedger.UpdateTime'],['../interface_nakama_1_1_i_channel_message_ack.html#a6fa47244793ad1dafc89693e5300e8b3',1,'Nakama.IChannelMessageAck.UpdateTime'],['../interface_satori_1_1_i_api_message.html#a55b743dd7262de47950cf8d60711d8f7',1,'Satori.IApiMessage.UpdateTime']]],\n  ['user_1',['User',['../interface_nakama_1_1_i_friends_of_friends_list_friend_of_friend.html#ae93e1bb6498b10c995d3d4b0adde8c10',1,'Nakama.IFriendsOfFriendsListFriendOfFriend.User'],['../interface_nakama_1_1_i_group_user_list_group_user.html#aef07d68b38175190826739a236457bb1',1,'Nakama.IGroupUserListGroupUser.User'],['../interface_nakama_1_1_i_api_account.html#a4fcda9baa0b711e8edb5523eb4ebaa7f',1,'Nakama.IApiAccount.User'],['../interface_nakama_1_1_i_api_friend.html#afbc1387cf2c3b1cc69fcbf7ce0098ce8',1,'Nakama.IApiFriend.User'],['../interface_nakama_1_1_console_1_1_i_api_friend.html#a8c290e4497a6c1ee1f46fdd6a4ff3694',1,'Nakama.Console.IApiFriend.User'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#adfbce9fd9851cfcc00cc71feb27a76c7',1,'Nakama.Console.INakamaapiAccount.User']]],\n  ['usergroups_2',['UserGroups',['../interface_nakama_1_1_i_api_user_group_list.html#a9fb7bd1ab9624d212aa94cc12023c201',1,'Nakama.IApiUserGroupList.UserGroups'],['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html#aeb7ac2189e53365fbdc7f0401b7fa66e',1,'Nakama.Console.IApiUserGroupList.UserGroups']]],\n  ['userid_3',['UserId',['../interface_nakama_1_1_i_api_read_storage_object_id.html#a3dc390e319f5ed88de8bd95179b23cc9',1,'Nakama.IApiReadStorageObjectId.UserId'],['../interface_nakama_1_1_i_api_storage_object.html#a4659527ac8d99a2f953d3a2a10647390',1,'Nakama.IApiStorageObject.UserId'],['../interface_nakama_1_1_i_api_storage_object_ack.html#aac969bd5c11233308fe280643109945d',1,'Nakama.IApiStorageObjectAck.UserId'],['../interface_nakama_1_1_i_api_validated_purchase.html#aab70c17c433976a74b19ae8fb4babdd5',1,'Nakama.IApiValidatedPurchase.UserId'],['../interface_nakama_1_1_i_api_validated_subscription.html#a4d24d3aa8f3d61b53778bed50830a249',1,'Nakama.IApiValidatedSubscription.UserId'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a4995265775d9f2d316a70950b0c45a92',1,'Nakama.Console.IApiStorageObject.UserId'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#acd898f2dbcf1799968dd68351aef60db',1,'Nakama.Console.IApiStorageObjectAck.UserId'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a55cfc46ba08490541d278f9d7b68817c',1,'Nakama.Console.IConsoleWalletLedger.UserId'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a449dde7ecb6e3e8250df05b83eb7037f',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.UserId'],['../interface_nakama_1_1_i_session.html#aa830ae1045ddd2590e36f8c4feef7c9d',1,'Nakama.ISession.UserId'],['../interface_nakama_1_1_i_user_presence.html#a5fb27d3f3743bb43d5aa514a8267672a',1,'Nakama.IUserPresence.UserId'],['../class_nakama_1_1_session.html#abb1e6deb54c15459678f13a8b0feaa1f',1,'Nakama.Session.UserId'],['../class_nakama_1_1_storage_object_id.html#a02e8a3b9a07d74c4230d7836304463e6',1,'Nakama.StorageObjectId.UserId']]],\n  ['useridone_4',['UserIdOne',['../interface_nakama_1_1_i_api_channel_message.html#a5d041bf33e573269cec36a7531fafe0a',1,'Nakama.IApiChannelMessage.UserIdOne'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa6549e653010913d8611c6ee98a7a580',1,'Nakama.Console.IApiChannelMessage.UserIdOne'],['../interface_nakama_1_1_i_channel.html#aaec45628d3ca0dbd873657fba3ce65f8',1,'Nakama.IChannel.UserIdOne'],['../interface_nakama_1_1_i_channel_message_ack.html#a38b5540111c8089d37403631f21e27b4',1,'Nakama.IChannelMessageAck.UserIdOne'],['../interface_nakama_1_1_i_channel_presence_event.html#a03e876ef3172ebb954ec55628dd4ddbd',1,'Nakama.IChannelPresenceEvent.UserIdOne']]],\n  ['useridtwo_5',['UserIdTwo',['../interface_nakama_1_1_i_api_channel_message.html#afcb15b942b92f9da8b6c66e6fb7397b9',1,'Nakama.IApiChannelMessage.UserIdTwo'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#abaab7698f30ead8c7bc6ffb0ba8169ee',1,'Nakama.Console.IApiChannelMessage.UserIdTwo'],['../interface_nakama_1_1_i_channel.html#a5ab925c1def55a23abf66fce013f0bf8',1,'Nakama.IChannel.UserIdTwo'],['../interface_nakama_1_1_i_channel_message_ack.html#a80b2ccd63418af2d2498d47e3bc815d1',1,'Nakama.IChannelMessageAck.UserIdTwo'],['../interface_nakama_1_1_i_channel_presence_event.html#ad0e554d3f8037a8e03f0572d0f21422e',1,'Nakama.IChannelPresenceEvent.UserIdTwo']]],\n  ['username_6',['Username',['../interface_nakama_1_1_i_api_channel_message.html#af7c5ac495951fc3b0ed606466af8033e',1,'Nakama.IApiChannelMessage.Username'],['../interface_nakama_1_1_i_api_leaderboard_record.html#ac384ae3388a5e1f9ea1abb5c11ce3966',1,'Nakama.IApiLeaderboardRecord.Username'],['../interface_nakama_1_1_i_api_update_account_request.html#a582846f7bdd9a35d8864fc2004b0e26d',1,'Nakama.IApiUpdateAccountRequest.Username'],['../interface_nakama_1_1_i_api_user.html#a0c91538eea10c6fa05fc5ea8271ef266',1,'Nakama.IApiUser.Username'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a0d14740909d4c062f1fc805b5226b6a7',1,'Nakama.Console.IApiChannelMessage.Username'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a9714cff05af36be455a99b2c46d34dbb',1,'Nakama.Console.IApiLeaderboardRecord.Username'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a9ad3492dc8be24a6cf9a1a9756bee5cf',1,'Nakama.Console.IApiUser.Username'],['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0787ad23510e67a73448da2d68470419',1,'Nakama.Console.IConsoleAuthenticateRequest.Username'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab68e3e84cae2c1a93ced9eefca3cbf6e',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Username'],['../interface_nakama_1_1_i_channel_message_ack.html#a56bc2256e0ca3ad47b75db8768a66517',1,'Nakama.IChannelMessageAck.Username'],['../interface_nakama_1_1_i_session.html#a29cddbd0cb5b8ec5cbffa1ec028e4ee5',1,'Nakama.ISession.Username'],['../interface_nakama_1_1_i_user_presence.html#a43bdab47959724045eaaec39a4a40e0f',1,'Nakama.IUserPresence.Username'],['../class_nakama_1_1_session.html#aaa6a5d93c2578c8c83aafdafc8ac724e',1,'Nakama.Session.Username']]],\n  ['userpresence_7',['UserPresence',['../interface_nakama_1_1_i_match_state.html#aea019216d3cf58b88b5511b0d6790bc3',1,'Nakama::IMatchState']]],\n  ['users_8',['Users',['../interface_nakama_1_1_i_api_users.html#ad55f30878df5930844ed1d7ece6cf30e',1,'Nakama.IApiUsers.Users'],['../interface_nakama_1_1_console_1_1_i_console_user_list.html#a917a612c0bab3fea020f38732c67d6c1',1,'Nakama.Console.IConsoleUserList.Users'],['../interface_nakama_1_1_i_matchmaker_matched.html#a117f1d2bb525478f0eed417453877e10',1,'Nakama.IMatchmakerMatched.Users']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_14.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_14.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_14.js",
    "content": "var searchData=\n[\n  ['validatedpurchases_0',['ValidatedPurchases',['../interface_nakama_1_1_i_api_validate_purchase_response.html#ac515e00701e7a9e955b59940109844c3',1,'Nakama::IApiValidatePurchaseResponse']]],\n  ['validatedsubscription_1',['ValidatedSubscription',['../interface_nakama_1_1_i_api_validate_subscription_response.html#a6580631e345803ccb37fc9835078bdb1',1,'Nakama::IApiValidateSubscriptionResponse']]],\n  ['validatedsubscriptions_2',['ValidatedSubscriptions',['../interface_nakama_1_1_i_api_subscription_list.html#ac8c1cbe824f3e128a0af4622d1a05906',1,'Nakama::IApiSubscriptionList']]],\n  ['value_3',['Value',['../interface_nakama_1_1_i_api_storage_object.html#ab0fd9c8504361c8184e254893210afa8',1,'Nakama.IApiStorageObject.Value'],['../interface_nakama_1_1_i_api_write_storage_object.html#aefddcaddc15b913e27fcebe9d655c5f5',1,'Nakama.IApiWriteStorageObject.Value'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#ab0c2db9caa28372e753e5f338ddce8ba',1,'Nakama.Console.IApiStorageObject.Value'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a1b184fc1454c3c0ac4d4844c9ef0668b',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Value'],['../interface_nakama_1_1_console_1_1_i_protobuf_any.html#a382dcf0d9d31a6e039d743ec74cabbcc',1,'Nakama.Console.IProtobufAny.Value'],['../class_nakama_1_1_write_storage_object.html#a8957c485fd56e513c1e17b47a22f9026',1,'Nakama.WriteStorageObject.Value'],['../interface_satori_1_1_i_api_event.html#af13d42f7e1c03c273dcc73a6fda9e0ac',1,'Satori.IApiEvent.Value'],['../interface_satori_1_1_i_api_experiment.html#a29ce15f706290de5a464a798d858bba9',1,'Satori.IApiExperiment.Value'],['../interface_satori_1_1_i_api_flag.html#ac894c7c9c57e10da5ef7126da06613c3',1,'Satori.IApiFlag.Value'],['../interface_satori_1_1_i_api_flag_override_value.html#a14fa8a404d2b9253499c12aa2255a323',1,'Satori.IApiFlagOverrideValue.Value'],['../interface_satori_1_1_i_api_live_event.html#a9fd40cb03ac4ddadffa08a3ef4a02883',1,'Satori.IApiLiveEvent.Value'],['../class_satori_1_1_event.html#ae67aa2eea397d195534f8c618d092ca6',1,'Satori.Event.Value']]],\n  ['variantname_4',['VariantName',['../interface_satori_1_1_i_flag_value_change_reason.html#ae5b9f29a2da089ea102feaea5e86cb68',1,'Satori.IFlagValueChangeReason.VariantName'],['../interface_satori_1_1_i_api_flag_override_value.html#a62987ba07f11314f73025b9c69271acd',1,'Satori.IApiFlagOverrideValue.VariantName']]],\n  ['vars_5',['Vars',['../interface_nakama_1_1_i_api_account_apple.html#a74975b2ced42410721d3862a12a842b6',1,'Nakama.IApiAccountApple.Vars'],['../interface_nakama_1_1_i_api_account_custom.html#a0f3301629398208a5b47bab3e6245a78',1,'Nakama.IApiAccountCustom.Vars'],['../interface_nakama_1_1_i_api_account_device.html#a6f5eb4d1e2f2930c3176199fa64e01ec',1,'Nakama.IApiAccountDevice.Vars'],['../interface_nakama_1_1_i_api_account_email.html#aff45051f1088d4f780179e03795d81f6',1,'Nakama.IApiAccountEmail.Vars'],['../interface_nakama_1_1_i_api_account_facebook.html#a3f020c0b47138aef81d2bc00d42e3436',1,'Nakama.IApiAccountFacebook.Vars'],['../interface_nakama_1_1_i_api_account_facebook_instant_game.html#a7fcfc5ce27bd97e4d2a8e8cebc6c1802',1,'Nakama.IApiAccountFacebookInstantGame.Vars'],['../interface_nakama_1_1_i_api_account_game_center.html#ad6ed660a63dc2052ea2f5fba70ca5b00',1,'Nakama.IApiAccountGameCenter.Vars'],['../interface_nakama_1_1_i_api_account_google.html#ad34ef90d1dd37f05d0ec036f9edf983d',1,'Nakama.IApiAccountGoogle.Vars'],['../interface_nakama_1_1_i_api_account_steam.html#a8b78f9247736b22818c4faf6e731300c',1,'Nakama.IApiAccountSteam.Vars'],['../interface_nakama_1_1_i_api_session_refresh_request.html#a38e9ac3a365044f485fc169e64528369',1,'Nakama.IApiSessionRefreshRequest.Vars'],['../interface_nakama_1_1_console_1_1_i_api_account_device.html#a84d8d865a0853bfb55a78e991a92aa90',1,'Nakama.Console.IApiAccountDevice.Vars'],['../interface_nakama_1_1_i_session.html#a35d8154eb7deff8e2bf953b23561bf19',1,'Nakama.ISession.Vars'],['../class_nakama_1_1_session.html#a3c15d4dd38f96f5920516e9b0bd599d7',1,'Nakama.Session.Vars']]],\n  ['verifytime_6',['VerifyTime',['../interface_nakama_1_1_i_api_account.html#a50d5c545cc0a4ace61c8dd6e5af23db0',1,'Nakama.IApiAccount.VerifyTime'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#ad330da1b5bb578459922e62aa06a6021',1,'Nakama.Console.INakamaapiAccount.VerifyTime']]],\n  ['version_7',['Version',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#af7570d690cf78118235584607bbb8ebd',1,'Nakama.IApiDeleteStorageObjectId.Version'],['../interface_nakama_1_1_i_api_storage_object.html#a350c971007a18d83bc35af8216643023',1,'Nakama.IApiStorageObject.Version'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a83d288d0b4a11a484e7fe6deee0cd03f',1,'Nakama.IApiStorageObjectAck.Version'],['../interface_nakama_1_1_i_api_write_storage_object.html#aa5c76e4c2e3d5a0b5e514553bed16068',1,'Nakama.IApiWriteStorageObject.Version'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#ad810db66ec385c48e274098ef8c3861a',1,'Nakama.Console.IApiStorageObject.Version'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#a71c8c791ec77c38ab93b9bee1082d28e',1,'Nakama.Console.IApiStorageObjectAck.Version'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ad9890896ef62f031a41353e5e75f81ad',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Version'],['../class_nakama_1_1_storage_object_id.html#a16f5f70d638e02ef1a003ed4ae0f0bd6',1,'Nakama.StorageObjectId.Version'],['../class_nakama_1_1_write_storage_object.html#a16000a938ed162fde6b9aa50675e61e2',1,'Nakama.WriteStorageObject.Version']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_15.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_15.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_15.js",
    "content": "var searchData=\n[\n  ['wallet_0',['Wallet',['../interface_nakama_1_1_i_api_account.html#a5a6e8ee791417656a0f0b8f5eff14355',1,'Nakama.IApiAccount.Wallet'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a465f0b3ff26ec121d61ecdcd3ab62603',1,'Nakama.Console.INakamaapiAccount.Wallet'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a3109c374d942fc84224609f3c63159e0',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Wallet']]],\n  ['walletledgers_1',['WalletLedgers',['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a8213347c0307a8ded82c9b4b0b6f9cd9',1,'Nakama::Console::IConsoleAccountExport']]],\n  ['warnings_2',['Warnings',['../interface_nakama_1_1_console_1_1_i_console_config.html#acd5f7853005eda28e5a83e3927231da8',1,'Nakama::Console::IConsoleConfig']]],\n  ['websocketrequestedprotocols_3',['WebSocketRequestedProtocols',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a7011896fdcffd2d44086d50d1f4345fa',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['writetimeout_4',['WriteTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a59b4d264b544d539ef53be7fcbfc2add',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_2.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_2.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_2.js",
    "content": "var searchData=\n[\n  ['cacheablecursor_0',['CacheableCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#afeb63d64fcc6f8499582db0d4eb189e3',1,'Nakama.IApiChannelMessageList.CacheableCursor'],['../interface_nakama_1_1_i_api_notification_list.html#ad1e1367526b3bb581874a72521c1e80d',1,'Nakama.IApiNotificationList.CacheableCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#a20664d4dc46058fad69142aee3de1e82',1,'Satori.IApiGetMessageListResponse.CacheableCursor']]],\n  ['canenter_1',['CanEnter',['../interface_nakama_1_1_i_api_tournament.html#abca204c196b0a90e4342e18f4c935630',1,'Nakama::IApiTournament']]],\n  ['canread_2',['CanRead',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#af24f9eaf71916c050aad99177b594538',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['canseek_3',['CanSeek',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#aa607a424a8839dcb11a385f6e0fc1c5c',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['cantimeout_4',['CanTimeout',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a9b8a44104d76c5333e4efa28a60723bf',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['canwrite_5',['CanWrite',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ad13235eb0b005d96a0cb80a8cc00a0fd',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['capacity_6',['Capacity',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#ac0de8f527f01c8f7a94abdaedffa350b',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['category_7',['Category',['../interface_nakama_1_1_i_api_tournament.html#ad4d095c5500d084ae1071979320f4803',1,'Nakama::IApiTournament']]],\n  ['changereason_8',['ChangeReason',['../interface_satori_1_1_i_api_flag.html#a71e908f9be384de9c6bf978b5e40a93c',1,'Satori::IApiFlag']]],\n  ['changeset_9',['Changeset',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a5bcd52bee2dcbe9fc00ec944b7ae2bb8',1,'Nakama::Console::IConsoleWalletLedger']]],\n  ['channelid_10',['ChannelId',['../interface_nakama_1_1_i_api_channel_message.html#a1259cb0c701a188655f3afaf10cc7a96',1,'Nakama.IApiChannelMessage.ChannelId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aefbb1055e9337a302a3177932c85c050',1,'Nakama.Console.IApiChannelMessage.ChannelId'],['../interface_nakama_1_1_i_channel_message_ack.html#ab36b2166bedb2f2351928c522625e98c',1,'Nakama.IChannelMessageAck.ChannelId'],['../interface_nakama_1_1_i_channel_presence_event.html#a996e95fc400397a4d2cbf1ee8da5dc29',1,'Nakama.IChannelPresenceEvent.ChannelId']]],\n  ['code_11',['Code',['../interface_nakama_1_1_i_api_channel_message.html#aa68dd9505b869e995f44f4f3c06a3051',1,'Nakama.IApiChannelMessage.Code'],['../interface_nakama_1_1_i_api_notification.html#a28725e838382d3d1626d460104d93f54',1,'Nakama.IApiNotification.Code'],['../interface_nakama_1_1_i_rpc_status.html#a04e9ad1b13fc6247f341b354ac13bf69',1,'Nakama.IRpcStatus.Code'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a192e09a3d4af18616bc0b65669e2b49b',1,'Nakama.Console.IApiChannelMessage.Code'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a312d42df4ef08dc9b62821167f534d8f',1,'Nakama.Console.IApiNotification.Code'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#ac0a9d42676b9d2d98cc7e23bde758941',1,'Nakama.Console.IRuntimeError.Code'],['../interface_nakama_1_1_i_channel_message_ack.html#a744bd46919f589756c68de87742d2d7f',1,'Nakama.IChannelMessageAck.Code'],['../interface_satori_1_1_i_rpc_status.html#a71366bd7cbdf47d676e2fd6fecf9daff',1,'Satori.IRpcStatus.Code']]],\n  ['collection_12',['Collection',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#a20637f8e0807a46dde97b56b6eff4024',1,'Nakama.IApiDeleteStorageObjectId.Collection'],['../interface_nakama_1_1_i_api_read_storage_object_id.html#a978da3d2f7475abb748e153b2e742362',1,'Nakama.IApiReadStorageObjectId.Collection'],['../interface_nakama_1_1_i_api_storage_object.html#ace56736c1d5ee02e6c227339cb19aebc',1,'Nakama.IApiStorageObject.Collection'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a5303268ed75343c6b41b4ee8bb95a826',1,'Nakama.IApiStorageObjectAck.Collection'],['../interface_nakama_1_1_i_api_write_storage_object.html#acb00e14d09ac57ee6244e42bb7e8a521',1,'Nakama.IApiWriteStorageObject.Collection'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a817cbd561f009c92fd7010985c533998',1,'Nakama.Console.IApiStorageObject.Collection'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#ae12dd7f9b4666b1ef0733a6ae5a44c7f',1,'Nakama.Console.IApiStorageObjectAck.Collection'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae7ba8fbbdc43e99233d2b76e8225f853',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Collection'],['../class_nakama_1_1_storage_object_id.html#a1beb57b56e9b6b1f078391803e95fa95',1,'Nakama.StorageObjectId.Collection'],['../class_nakama_1_1_write_storage_object.html#ac0d5b4bd2a8e8b6f6f35acb29fe799b3',1,'Nakama.WriteStorageObject.Collection']]],\n  ['completetime_13',['CompleteTime',['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a340777ab3b38b9643d847d04eb15db58',1,'Nakama::IApiMatchmakerCompletionStats']]],\n  ['completions_14',['Completions',['../interface_nakama_1_1_i_api_matchmaker_stats.html#aef2da234aa07ddec69bddef80a62baf5',1,'Nakama::IApiMatchmakerStats']]],\n  ['computed_15',['Computed',['../interface_satori_1_1_i_api_properties.html#a20ba9e0ce43f8b2d7470ee950447bbc4',1,'Satori::IApiProperties']]],\n  ['conditionchanged_16',['ConditionChanged',['../interface_satori_1_1_i_api_flag.html#adc9b5734b16018f4cb1b63e9a2417a52',1,'Satori::IApiFlag']]],\n  ['config_17',['Config',['../interface_nakama_1_1_console_1_1_i_console_config.html#afc2f390d0e4742b9320b35a74b383d79',1,'Nakama::Console::IConsoleConfig']]],\n  ['consumetime_18',['ConsumeTime',['../interface_satori_1_1_i_api_update_message_request.html#a3713f08d799a4e17bdd21a4bc814feb9',1,'Satori.IApiUpdateMessageRequest.ConsumeTime'],['../interface_satori_1_1_i_api_message.html#a933e57c6ffab85a20ef113833023fc81',1,'Satori.IApiMessage.ConsumeTime']]],\n  ['content_19',['Content',['../interface_nakama_1_1_i_api_channel_message.html#abd910f2d7721923835792460cad8996a',1,'Nakama.IApiChannelMessage.Content'],['../interface_nakama_1_1_i_api_notification.html#ab598caa08025f1ec0969bebd6f044b8d',1,'Nakama.IApiNotification.Content'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a45a5c2ddbd0eef159232202f2ebeda94',1,'Nakama.Console.IApiChannelMessage.Content'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a1ef19605de607fbdb6596e44fc9cdf53',1,'Nakama.Console.IApiNotification.Content']]],\n  ['created_20',['Created',['../interface_nakama_1_1_i_api_session.html#a8bd8f7b82041c368fc60e6dd9ce5f2ce',1,'Nakama.IApiSession.Created'],['../interface_nakama_1_1_i_session.html#a37d250a03d534d84538f4aa9473427bd',1,'Nakama.ISession.Created'],['../class_nakama_1_1_session.html#a07dd0bf598118762c5d4ac81f1f234fb',1,'Nakama.Session.Created']]],\n  ['createtime_21',['CreateTime',['../interface_nakama_1_1_i_api_channel_message.html#a3a3bf603099483eca0dbf727ca1817ec',1,'Nakama.IApiChannelMessage.CreateTime'],['../interface_nakama_1_1_i_api_group.html#a17dca9ec1efba71d1c4d7318779d8671',1,'Nakama.IApiGroup.CreateTime'],['../interface_nakama_1_1_i_api_leaderboard_record.html#aedd0603f88812231f2c6962691c6b972',1,'Nakama.IApiLeaderboardRecord.CreateTime'],['../interface_nakama_1_1_i_api_matchmaker_completion_stats.html#a18a42211dec5e03b80dd9b02812b2379',1,'Nakama.IApiMatchmakerCompletionStats.CreateTime'],['../interface_nakama_1_1_i_api_notification.html#aade869f44d0cfd07bd51ff88c4c12eab',1,'Nakama.IApiNotification.CreateTime'],['../interface_nakama_1_1_i_api_storage_object.html#aca1ee4d6d4b72763a50ce4ad49bae35d',1,'Nakama.IApiStorageObject.CreateTime'],['../interface_nakama_1_1_i_api_storage_object_ack.html#aaf055ebddc885bafad66089fa2613317',1,'Nakama.IApiStorageObjectAck.CreateTime'],['../interface_nakama_1_1_i_api_tournament.html#a327d36c0623cd95772505dbde9029671',1,'Nakama.IApiTournament.CreateTime'],['../interface_nakama_1_1_i_api_user.html#a6116a031588ee6664cdd6b65ca3e3a35',1,'Nakama.IApiUser.CreateTime'],['../interface_nakama_1_1_i_api_validated_purchase.html#ab522c40c8f1cffedcd9b3ad45c5f8fd5',1,'Nakama.IApiValidatedPurchase.CreateTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a2d25263a204ac800dfcab8a1f24bcfc6',1,'Nakama.IApiValidatedSubscription.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#aa7bb977779ca2100bad6ce4cd42dd4c6',1,'Nakama.Console.IApiChannelMessage.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_group.html#aea2ef7f74c874cae6cce76c7f2e03c67',1,'Nakama.Console.IApiGroup.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af4136c3f77e0c7dbc63c1c5ea78f0f04',1,'Nakama.Console.IApiLeaderboardRecord.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#ab1d5e01d9064e9e34963884f39d23dbf',1,'Nakama.Console.IApiNotification.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a7341668562d7762c715d49137af1badb',1,'Nakama.Console.IApiStorageObject.CreateTime'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a805f65da53508c7b89d6460267106442',1,'Nakama.Console.IApiUser.CreateTime'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#af3c347c882246b135afbb1a5a4cb304c',1,'Nakama.Console.IConsoleWalletLedger.CreateTime'],['../interface_nakama_1_1_i_channel_message_ack.html#a81d7672e04b8754dcf092e7da18a2029',1,'Nakama.IChannelMessageAck.CreateTime'],['../interface_nakama_1_1_i_session.html#a0b12e1f2b4c2095ec96bc3c63e4177d7',1,'Nakama.ISession.CreateTime'],['../class_nakama_1_1_session.html#ad29e88275b3bb763a8153944e0bb9912',1,'Nakama.Session.CreateTime'],['../interface_satori_1_1_i_api_message.html#ab2d0a464ecd3211f9d2946119ba7f6c6',1,'Satori.IApiMessage.CreateTime'],['../interface_satori_1_1_i_session.html#a8229314b63c48a1f7a6494390575099a',1,'Satori.ISession.CreateTime'],['../class_satori_1_1_session.html#a2a70cae3816609b06eaf29f728cce6c0',1,'Satori.Session.CreateTime']]],\n  ['createtimesec_22',['CreateTimeSec',['../interface_satori_1_1_i_api_flag_override_value.html#aa5dda16cc7baf46e1eebaba118b21712',1,'Satori::IApiFlagOverrideValue']]],\n  ['creatorid_23',['CreatorId',['../interface_nakama_1_1_i_api_group.html#acf879ad78e0728c9fef1a4cad469ca92',1,'Nakama.IApiGroup.CreatorId'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a585323f5cd38592a821f5d9580f34c39',1,'Nakama.Console.IApiGroup.CreatorId']]],\n  ['cursor_24',['Cursor',['../interface_nakama_1_1_i_api_friend_list.html#ac9e478ef8f255d2881f025d084b33c2f',1,'Nakama.IApiFriendList.Cursor'],['../interface_nakama_1_1_i_api_friends_of_friends_list.html#ae55a8cdabc16f3bb1e01596cb8934dcc',1,'Nakama.IApiFriendsOfFriendsList.Cursor'],['../interface_nakama_1_1_i_api_group_list.html#a082e53926ccb3bdeffbf41da3f92be1f',1,'Nakama.IApiGroupList.Cursor'],['../interface_nakama_1_1_i_api_group_user_list.html#a8ecc0f2760edbfe1e5d2012aac48612f',1,'Nakama.IApiGroupUserList.Cursor'],['../interface_nakama_1_1_i_api_list_subscriptions_request.html#a7fcfaaf2213c0a0c4b2117d3637006d4',1,'Nakama.IApiListSubscriptionsRequest.Cursor'],['../interface_nakama_1_1_i_api_party_list.html#a249f45dc505eef08d3cb6b92d846a001',1,'Nakama.IApiPartyList.Cursor'],['../interface_nakama_1_1_i_api_storage_object_list.html#a7741b9b18dead8cdc71eceb27940efca',1,'Nakama.IApiStorageObjectList.Cursor'],['../interface_nakama_1_1_i_api_subscription_list.html#a1fc507382f5582df7f7fe0bfaf608c41',1,'Nakama.IApiSubscriptionList.Cursor'],['../interface_nakama_1_1_i_api_tournament_list.html#a26a61ec1b98b82ef3f61c209228a5241',1,'Nakama.IApiTournamentList.Cursor'],['../interface_nakama_1_1_i_api_user_group_list.html#ab8631f083296460a22008ed1d4c5f3de',1,'Nakama.IApiUserGroupList.Cursor'],['../interface_nakama_1_1_console_1_1_i_api_friend_list.html#a9e8d3286c1e5e9d169820dcf6443dc5f',1,'Nakama.Console.IApiFriendList.Cursor'],['../interface_nakama_1_1_console_1_1_i_api_user_group_list.html#a9f9e577a0a6a8b937eb8fc1e0fefe933',1,'Nakama.Console.IApiUserGroupList.Cursor']]],\n  ['custom_25',['Custom',['../interface_satori_1_1_i_api_authenticate_request.html#a0cf19fe816f8c57d862d11cb71f82995',1,'Satori.IApiAuthenticateRequest.Custom'],['../interface_satori_1_1_i_api_identify_request.html#ab638ed30cc498f2f6f4b3d28c83f946f',1,'Satori.IApiIdentifyRequest.Custom'],['../interface_satori_1_1_i_api_properties.html#a60fb2a569fccc8417d5fba8e7d6422ff',1,'Satori.IApiProperties.Custom'],['../interface_satori_1_1_i_api_update_properties_request.html#a5399ceb028dcb356b5797484647e92fd',1,'Satori.IApiUpdatePropertiesRequest.Custom']]],\n  ['customid_26',['CustomId',['../interface_nakama_1_1_i_api_account.html#a4830e284d2f6becd55ba6f7c0be2db8e',1,'Nakama.IApiAccount.CustomId'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a2d01d75c529d43104107034b755baf88',1,'Nakama.Console.INakamaapiAccount.CustomId'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ab18189e6dbc035b470ba9f712b0bf1b2',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.CustomId']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_3.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_3.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_3.js",
    "content": "var searchData=\n[\n  ['data_0',['Data',['../interface_nakama_1_1_i_party_data.html#ae5fba3ce723e573b0e87a328718b186e',1,'Nakama::IPartyData']]],\n  ['default_1',['Default',['../interface_satori_1_1_i_api_authenticate_request.html#aee572f60e558a78bdecfcf7c8f90d23b',1,'Satori.IApiAuthenticateRequest.Default'],['../interface_satori_1_1_i_api_identify_request.html#aeb9b2478d0e634b95258e53a6d9d984d',1,'Satori.IApiIdentifyRequest.Default'],['../interface_satori_1_1_i_api_properties.html#afdbb89737406420da72cfb63abaef97b',1,'Satori.IApiProperties.Default'],['../interface_satori_1_1_i_api_update_properties_request.html#af6cc3da67dbe5ec4948d8a5511adb87e',1,'Satori.IApiUpdatePropertiesRequest.Default']]],\n  ['description_2',['Description',['../interface_nakama_1_1_i_api_update_group_request.html#affe1c70151669abaf57777cf84b4acab',1,'Nakama.IApiUpdateGroupRequest.Description'],['../interface_nakama_1_1_i_api_create_group_request.html#a881870903370376431cf2f7c31797ad2',1,'Nakama.IApiCreateGroupRequest.Description'],['../interface_nakama_1_1_i_api_group.html#aafe0f0a17e12f3f03dcebe888739fe62',1,'Nakama.IApiGroup.Description'],['../interface_nakama_1_1_i_api_tournament.html#aa7ee9f3fa78017bed567b84b7af1d356',1,'Nakama.IApiTournament.Description'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a071adf7945080a8026c7605704878df4',1,'Nakama.Console.IApiGroup.Description'],['../interface_satori_1_1_i_api_live_event.html#ab84d4936ea17baa4c9c29bbffcac62b8',1,'Satori.IApiLiveEvent.Description']]],\n  ['descriptor_3',['Descriptor',['../interface_nakama_1_1_i_stream.html#a29cd5eb4946ed2cfa9e97c0800d16777',1,'Nakama::IStream']]],\n  ['details_4',['Details',['../interface_nakama_1_1_i_rpc_status.html#a0d06a965ab9ee4dc04346be0bc331471',1,'Nakama.IRpcStatus.Details'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a22e13cad727b9167505d381db3b482af',1,'Nakama.Console.IRuntimeError.Details'],['../interface_satori_1_1_i_rpc_status.html#ab1f9e4bbdb97b5f4483a103b209eaee9',1,'Satori.IRpcStatus.Details']]],\n  ['deviceid_5',['DeviceId',['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#aa3003b4a1c87e8b1ec858b8dab4f96bd',1,'Nakama::Console::IConsoleUnlinkDeviceRequest']]],\n  ['deviceids_6',['DeviceIds',['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a46f9a945d47ef169e18a0d1282cf7c52',1,'Nakama::Console::INakamaconsoleUpdateAccountRequest']]],\n  ['devices_7',['Devices',['../interface_nakama_1_1_i_api_account.html#a79ecb479d141136401f012c63d83511a',1,'Nakama.IApiAccount.Devices'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a25d6d1f668a38e769551d7928f8abaad',1,'Nakama.Console.INakamaapiAccount.Devices']]],\n  ['disabletime_8',['DisableTime',['../interface_nakama_1_1_i_api_account.html#acbbe09894d6fcf3669e9fc370a3d9bbc',1,'Nakama.IApiAccount.DisableTime'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_account.html#ab94979eb4d8824d1e8545e7095b32b49',1,'Nakama.Console.INakamaconsoleAccount.DisableTime']]],\n  ['displayname_9',['DisplayName',['../interface_nakama_1_1_i_api_update_account_request.html#a993356bac470c2c097e3737c592df904',1,'Nakama.IApiUpdateAccountRequest.DisplayName'],['../interface_nakama_1_1_i_api_user.html#ac93d01ededb4f9a2105ab9f828288554',1,'Nakama.IApiUser.DisplayName'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a891e29fedcefbde0f865785a55632298',1,'Nakama.Console.IApiUser.DisplayName'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a647c7e505cff59fdb95027c5e7f63632',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.DisplayName']]],\n  ['duration_10',['Duration',['../interface_nakama_1_1_i_api_tournament.html#a8229e8ffce987b19036dd1af156f4748',1,'Nakama::IApiTournament']]],\n  ['durationsec_11',['DurationSec',['../interface_satori_1_1_i_api_live_event.html#a88bf1769158e2f699696c8147c9ae2dc',1,'Satori::IApiLiveEvent']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_4.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_4.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_4.js",
    "content": "var searchData=\n[\n  ['edgecount_0',['EdgeCount',['../interface_nakama_1_1_i_api_group.html#af01f3528bcd125916aadfa5195e366c6',1,'Nakama.IApiGroup.EdgeCount'],['../interface_nakama_1_1_i_api_user.html#a7f2b29d0beac44418db1fe0a91d28f4a',1,'Nakama.IApiUser.EdgeCount'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a70989afa906fa241926ae4d8ae21f5be',1,'Nakama.Console.IApiGroup.EdgeCount'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a7aaf807ddb8550042a550d8ec6ea94ba',1,'Nakama.Console.IApiUser.EdgeCount']]],\n  ['email_1',['Email',['../interface_nakama_1_1_i_api_account.html#a640472f2fc5084d98cc8b7bbe0ca32bb',1,'Nakama.IApiAccount.Email'],['../interface_nakama_1_1_i_api_account_email.html#ad55b447ecddd9bd3afc8242b8ee26d09',1,'Nakama.IApiAccountEmail.Email'],['../interface_nakama_1_1_console_1_1_i_nakamaapi_account.html#a8f2f9149ea64beaa48a835ac06c5f593',1,'Nakama.Console.INakamaapiAccount.Email'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa22d406abe1fba22e778a07ff6dc9a27',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Email']]],\n  ['endactive_2',['EndActive',['../interface_nakama_1_1_i_api_tournament.html#a28f939c5594b45c2a8f517b5646f0f06',1,'Nakama::IApiTournament']]],\n  ['endtime_3',['EndTime',['../interface_nakama_1_1_i_api_tournament.html#a2fe168cd7f9b5adf8aca1074d14f6bee',1,'Nakama::IApiTournament']]],\n  ['endtimesec_4',['EndTimeSec',['../interface_satori_1_1_i_api_live_event.html#a28d08aecf37f5ba2d2707325eb96037c',1,'Satori::IApiLiveEvent']]],\n  ['environment_5',['Environment',['../interface_nakama_1_1_i_api_validated_purchase.html#a5171b7d837aa864e97317c7f13919b33',1,'Nakama.IApiValidatedPurchase.Environment'],['../interface_nakama_1_1_i_api_validated_subscription.html#a85d85cc53beb77e429f8f5416f7e2ee3',1,'Nakama.IApiValidatedSubscription.Environment']]],\n  ['error_6',['Error',['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a9f5226041b29e4390df9a5e81e589a08',1,'Nakama::Console::IRuntimeError']]],\n  ['events_7',['Events',['../interface_satori_1_1_i_api_event_request.html#af1c18be64659dfbfffca8330790eb2b2',1,'Satori::IApiEventRequest']]],\n  ['experiments_8',['Experiments',['../interface_satori_1_1_i_api_experiment_list.html#a74b50ffe8aa6d967ebe4a64013fcccb2',1,'Satori::IApiExperimentList']]],\n  ['expiretime_9',['ExpireTime',['../interface_nakama_1_1_i_session.html#ae66907a1582b6c57eb96358cc27c93fc',1,'Nakama.ISession.ExpireTime'],['../class_nakama_1_1_session.html#acb53fd22e6b8a815c5cddb2686b2df91',1,'Nakama.Session.ExpireTime'],['../interface_satori_1_1_i_session.html#a2ac53e0aab134b3df05bd46f29d5e34f',1,'Satori.ISession.ExpireTime'],['../class_satori_1_1_session.html#afe0f9228873dbd047a024b16e45d368e',1,'Satori.Session.ExpireTime']]],\n  ['expirytime_10',['ExpiryTime',['../interface_nakama_1_1_i_api_leaderboard_record.html#a16026f3b43bb76b8f9b7f5b64febecc1',1,'Nakama.IApiLeaderboardRecord.ExpiryTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a0d0a1443f00326171a35e53cd9294b73',1,'Nakama.IApiValidatedSubscription.ExpiryTime'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aa5fa79acece56b4c28e2e596db5d8af3',1,'Nakama.Console.IApiLeaderboardRecord.ExpiryTime']]],\n  ['exponentialbackoff_11',['ExponentialBackoff',['../class_nakama_1_1_retry.html#a9d83426b9d7eda194e490a5b7be1f5c8',1,'Nakama.Retry.ExponentialBackoff'],['../class_satori_1_1_retry.html#ad4d3be08eaffeb4b597310f273d14a27',1,'Satori.Retry.ExponentialBackoff']]],\n  ['external_12',['External',['../interface_nakama_1_1_i_api_event.html#aa6dab036da2e4cbd3ca41ff10fa0d610',1,'Nakama::IApiEvent']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_5.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_5.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_5.js",
    "content": "var searchData=\n[\n  ['facebookid_0',['FacebookId',['../interface_nakama_1_1_i_api_user.html#afd987c60472977cc3bd5f8b0da50f194',1,'Nakama.IApiUser.FacebookId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a62e1431224e82c440c891aa6d821acde',1,'Nakama.Console.IApiUser.FacebookId']]],\n  ['facebookinstantgameid_1',['FacebookInstantGameId',['../interface_nakama_1_1_i_api_user.html#a798294cd46d9dd22fd9eee3596f8454f',1,'Nakama.IApiUser.FacebookInstantGameId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a9cc93e7076c5524be06ac8cc8b57c97d',1,'Nakama.Console.IApiUser.FacebookInstantGameId']]],\n  ['field_2',['Field',['../interface_nakama_1_1_console_1_1_i_config_warning.html#aeb4704db3565ef185d5806dc55b43406',1,'Nakama::Console::IConfigWarning']]],\n  ['flagname_3',['FlagName',['../interface_satori_1_1_i_api_flag_override.html#af73f16dcdb30e177c2c527f2edb8a278',1,'Satori::IApiFlagOverride']]],\n  ['flags_4',['Flags',['../interface_satori_1_1_i_api_flag_list.html#ac39dd9af26b64687d5b343a35cf78774',1,'Satori.IApiFlagList.Flags'],['../interface_satori_1_1_i_api_flag_override_list.html#a516394e4bec15bc1a1e60095bc308d03',1,'Satori.IApiFlagOverrideList.Flags']]],\n  ['friends_5',['Friends',['../interface_nakama_1_1_i_api_friend_list.html#acb35c683f6d487f60a0f10d823f15469',1,'Nakama.IApiFriendList.Friends'],['../interface_nakama_1_1_console_1_1_i_api_friend_list.html#afe569f7085539b22d1a405d610084cf5',1,'Nakama.Console.IApiFriendList.Friends'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a2e90ee045efaa10f7f6354a8cafbc088',1,'Nakama.Console.IConsoleAccountExport.Friends']]],\n  ['friendsoffriends_6',['FriendsOfFriends',['../interface_nakama_1_1_i_api_friends_of_friends_list.html#a9e9d4af3dc9675df9ce4ef3ea2096d39',1,'Nakama::IApiFriendsOfFriendsList']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_6.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_6.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_6.js",
    "content": "var searchData=\n[\n  ['gamecenterid_0',['GamecenterId',['../interface_nakama_1_1_i_api_user.html#a0071dbc7def5d61dc862bf299cd539fd',1,'Nakama.IApiUser.GamecenterId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a0f18a35aaf831fa9843332beda01a995',1,'Nakama.Console.IApiUser.GamecenterId']]],\n  ['globalretryconfiguration_1',['GlobalRetryConfiguration',['../class_nakama_1_1_client.html#a4e84dc06e439ead1dcdc918350b93ed8',1,'Nakama.Client.GlobalRetryConfiguration'],['../interface_nakama_1_1_i_client.html#ad86bc2c00a137d35243e977086a00ffa',1,'Nakama.IClient.GlobalRetryConfiguration'],['../class_satori_1_1_client.html#a5e8abc7f99f37fd106c2dcb4af99abac',1,'Satori.Client.GlobalRetryConfiguration'],['../interface_satori_1_1_i_client.html#a42f103710720fda458702c3d1b2419e9',1,'Satori.IClient.GlobalRetryConfiguration']]],\n  ['googleid_2',['GoogleId',['../interface_nakama_1_1_i_api_user.html#a9d9808e7de09665a27a3c80c5b0528c6',1,'Nakama.IApiUser.GoogleId'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a21b77e07dde3fa0a46ec3d6ecf766185',1,'Nakama.Console.IApiUser.GoogleId']]],\n  ['goroutinecount_3',['GoroutineCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ab419b611b74c5dca67086a46533851e9',1,'Nakama::Console::IStatusListStatus']]],\n  ['group_4',['Group',['../interface_nakama_1_1_i_user_group_list_user_group.html#ac6160edc6cb94e7c14c4014a032ba647',1,'Nakama.IUserGroupListUserGroup.Group'],['../interface_nakama_1_1_console_1_1_i_user_group_list_user_group.html#aca0c07b5c1d82954fdfd7b36721c5827',1,'Nakama.Console.IUserGroupListUserGroup.Group']]],\n  ['groupid_5',['GroupId',['../interface_nakama_1_1_i_api_channel_message.html#ab3c2b53aca6445ef0686fa63aba534b5',1,'Nakama.IApiChannelMessage.GroupId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a7f964b4eb85c2b4cb9789268d22e4e74',1,'Nakama.Console.IApiChannelMessage.GroupId'],['../interface_nakama_1_1_i_channel.html#a7a285328ca09f9521f495bfebc6e1312',1,'Nakama.IChannel.GroupId'],['../interface_nakama_1_1_i_channel_message_ack.html#a5db4380a1a4c44165c8bcc8e32eebcbf',1,'Nakama.IChannelMessageAck.GroupId'],['../interface_nakama_1_1_i_channel_presence_event.html#ac2c7e729b0c9f75fc633eed8b9cfe000',1,'Nakama.IChannelPresenceEvent.GroupId']]],\n  ['groups_6',['Groups',['../interface_nakama_1_1_i_api_group_list.html#a57e8d2b7d2e89233ee1a0dc1aed3a82b',1,'Nakama.IApiGroupList.Groups'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a24dfc914775897b3430825c9b09ca021',1,'Nakama.Console.IConsoleAccountExport.Groups']]],\n  ['groupusers_7',['GroupUsers',['../interface_nakama_1_1_i_api_group_user_list.html#a6a9a0a0279661f2a655977c9bf74e1e3',1,'Nakama::IApiGroupUserList']]],\n  ['grpcstatuscode_8',['GrpcStatusCode',['../class_nakama_1_1_api_response_exception.html#ab5e8be519a60a0799ed0fed798e3ef14',1,'Nakama.ApiResponseException.GrpcStatusCode'],['../class_nakama_1_1_console_1_1_api_response_exception.html#ac3d8426c1cdd77745c764b0e6552050c',1,'Nakama.Console.ApiResponseException.GrpcStatusCode'],['../class_satori_1_1_api_response_exception.html#a009bc0a50d29f68dd7bc839e7c667042',1,'Satori.ApiResponseException.GrpcStatusCode']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_7.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_7.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_7.js",
    "content": "var searchData=\n[\n  ['handlername_0',['HandlerName',['../interface_nakama_1_1_i_api_match.html#afc84c3927f6f889313ec34153c744753',1,'Nakama::IApiMatch']]],\n  ['health_1',['Health',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#ad81610c87e84a4dbd91549f4e1a1af37',1,'Nakama::Console::IStatusListStatus']]],\n  ['hidden_2',['Hidden',['../interface_nakama_1_1_i_party.html#a6fdb92d4edf0942dfd1db557182bc66e',1,'Nakama.IParty.Hidden'],['../interface_nakama_1_1_i_party_update.html#a29708582bcec9fd3dd11314910eeac9d',1,'Nakama.IPartyUpdate.Hidden']]],\n  ['host_3',['Host',['../class_nakama_1_1_client.html#aacad034c2d21b970537423de0ba27e4f',1,'Nakama.Client.Host'],['../interface_nakama_1_1_i_client.html#a93e9759631f1a3106dc4ec47477f3eb8',1,'Nakama.IClient.Host'],['../class_satori_1_1_client.html#a7e2d5442493469d57009038a05752561',1,'Satori.Client.Host'],['../interface_satori_1_1_i_client.html#abb321c6eab2ee7813caeaa5fdcf6c7ab',1,'Satori.IClient.Host']]],\n  ['httpheader_4',['HttpHeader',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a32f6e5fb1559a4194aca29eabc565b23',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['httpkey_5',['HttpKey',['../interface_nakama_1_1_i_api_rpc.html#a3a27a1ee6c59781f9e7dfdc101976129',1,'Nakama::IApiRpc']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_8.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_8.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_8.js",
    "content": "var searchData=\n[\n  ['id_0',['Id',['../interface_nakama_1_1_i_api_account_custom.html#a1509569fa6580beb01a86148343b9262',1,'Nakama.IApiAccountCustom.Id'],['../interface_nakama_1_1_i_api_account_device.html#ab7a96ef6d15d563501fd387b76f98b74',1,'Nakama.IApiAccountDevice.Id'],['../interface_nakama_1_1_i_api_group.html#ad1f31e094e9972d02d92ffcc78fdfa5d',1,'Nakama.IApiGroup.Id'],['../interface_nakama_1_1_i_api_notification.html#a10cfb8ec425330ae47354b33285fb0ab',1,'Nakama.IApiNotification.Id'],['../interface_nakama_1_1_i_api_rpc.html#acf92ca725c8b7b3e4c1bfc4e1dbdc274',1,'Nakama.IApiRpc.Id'],['../interface_nakama_1_1_i_api_tournament.html#a451f344a2984712b711f89e49198fa57',1,'Nakama.IApiTournament.Id'],['../interface_nakama_1_1_i_api_user.html#a27ba5e2dff5807febaf5efae3d5e1a05',1,'Nakama.IApiUser.Id'],['../interface_nakama_1_1_console_1_1_i_api_account_device.html#a332d88e255f8ec01249173be1cf0e133',1,'Nakama.Console.IApiAccountDevice.Id'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a7c8266ce04201582c292c47b3ca934ce',1,'Nakama.Console.IApiGroup.Id'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#ad05b14a384173eaf88e87733f277b0a0',1,'Nakama.Console.IApiNotification.Id'],['../interface_nakama_1_1_console_1_1_i_api_user.html#acc3d21e1c88992c40ecacb9c037b4555',1,'Nakama.Console.IApiUser.Id'],['../interface_nakama_1_1_console_1_1_i_console_unlink_device_request.html#a3e50cf276c3ca4d9324466192029e0b7',1,'Nakama.Console.IConsoleUnlinkDeviceRequest.Id'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a8d4a4453e879e561f9e933452d1ff174',1,'Nakama.Console.IConsoleWalletLedger.Id'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a297aa9ffe9921c15a9b705d8fca01536',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Id'],['../interface_nakama_1_1_i_channel.html#a39fb9c483de665ac5ccd75617952dea5',1,'Nakama.IChannel.Id'],['../interface_nakama_1_1_i_match.html#a70ec08c29ae2f928e191fc13c5694ccb',1,'Nakama.IMatch.Id'],['../interface_nakama_1_1_i_party.html#a3d156d302a3f421438e0dc35425c97bf',1,'Nakama.IParty.Id'],['../interface_satori_1_1_i_api_authenticate_request.html#a621355fbfbcdf7b7d152523556dfb37c',1,'Satori.IApiAuthenticateRequest.Id'],['../interface_satori_1_1_i_api_event.html#a537b01b519f36d486b4655ff42fa6629',1,'Satori.IApiEvent.Id'],['../interface_satori_1_1_i_api_identify_request.html#aa7bde5d54dc7491e84eac7ab1b6d8603',1,'Satori.IApiIdentifyRequest.Id'],['../interface_satori_1_1_i_api_live_event.html#aba362daf130263342e93bd58fa822ea7',1,'Satori.IApiLiveEvent.Id'],['../interface_satori_1_1_i_api_message.html#a2de131131032ae52037b7339189e4aae',1,'Satori.IApiMessage.Id'],['../class_satori_1_1_event.html#a6c15ddba3ae789be6f20bd33ba6c276d',1,'Satori.Event.Id']]],\n  ['identityid_1',['IdentityId',['../interface_satori_1_1_i_session.html#ad2cf0bf88e2f23a3f3fdff64502a799e',1,'Satori.ISession.IdentityId'],['../class_satori_1_1_session.html#a17977d09db716a100515246046689acb',1,'Satori.Session.IdentityId']]],\n  ['imageurl_2',['ImageUrl',['../interface_satori_1_1_i_api_message.html#ae323cb5beaa51c7fe63f0e08da3bd3ee',1,'Satori::IApiMessage']]],\n  ['includeexceptionincloseresponse_3',['IncludeExceptionInCloseResponse',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a32c1934b7aa3d481854c7caf6509df3b',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions.IncludeExceptionInCloseResponse'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a27fc45e264a324caeb170709872fe12d',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions.IncludeExceptionInCloseResponse']]],\n  ['isconnected_4',['IsConnected',['../interface_nakama_1_1_i_socket.html#ad2e3682e09ff2df296a9e26367fa9943',1,'Nakama.ISocket.IsConnected'],['../interface_nakama_1_1_i_socket_adapter.html#ae42c16c31ecc0e7db8ad53b427cc7fb2',1,'Nakama.ISocketAdapter.IsConnected'],['../class_nakama_1_1_socket.html#a3487edbd9dd5dfa7f5a47c485c506639',1,'Nakama.Socket.IsConnected'],['../class_nakama_1_1_web_socket_adapter.html#af4d122fde2ef8ca67f3a05533f2b23d3',1,'Nakama.WebSocketAdapter.IsConnected'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#a7ab428776e53ddbac27832f238ab1ced',1,'Nakama.WebSocketStdlibAdapter.IsConnected']]],\n  ['isconnecting_5',['IsConnecting',['../interface_nakama_1_1_i_socket.html#adbde619842d6576575adaa0ee0947140',1,'Nakama.ISocket.IsConnecting'],['../interface_nakama_1_1_i_socket_adapter.html#a9ef33b94d5bc9e6a343f21b1b01229a2',1,'Nakama.ISocketAdapter.IsConnecting'],['../class_nakama_1_1_socket.html#a1319b640499d302aa32dc6d4b6373195',1,'Nakama.Socket.IsConnecting'],['../class_nakama_1_1_web_socket_adapter.html#a57bbc818963586e72fc39f7dbbe28ad8',1,'Nakama.WebSocketAdapter.IsConnecting'],['../class_nakama_1_1_web_socket_stdlib_adapter.html#ac7cf95d952a33d4ab00c5ef610a8de74',1,'Nakama.WebSocketStdlibAdapter.IsConnecting']]],\n  ['isexpired_6',['IsExpired',['../interface_nakama_1_1_i_session.html#abe374a4f8e250ffb5207740ee935e791',1,'Nakama.ISession.IsExpired'],['../class_nakama_1_1_session.html#a2fc70f9f9afb4440faa5936c0f4f1129',1,'Nakama.Session.IsExpired'],['../interface_satori_1_1_i_session.html#a8fe379446411cfdff5e11cabc83eed9d',1,'Satori.ISession.IsExpired'],['../class_satori_1_1_session.html#aa933c455425edfd02a68c52e2ea52135',1,'Satori.Session.IsExpired']]],\n  ['isrefreshexpired_7',['IsRefreshExpired',['../interface_nakama_1_1_i_session.html#a34a46ea21fd6d69cab5130eda5dee813',1,'Nakama.ISession.IsRefreshExpired'],['../class_nakama_1_1_session.html#a8b0cbb6a8f2c7f8a6bb41a77a05739ac',1,'Nakama.Session.IsRefreshExpired'],['../interface_satori_1_1_i_session.html#a35ce1adb322ea67137bce06d711c9779',1,'Satori.ISession.IsRefreshExpired'],['../class_satori_1_1_session.html#a6467393cfe6d024d0a3526f0ee29eec9',1,'Satori.Session.IsRefreshExpired']]],\n  ['iswebsocketrequest_8',['IsWebSocketRequest',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a8b859fa2d5d24faf05a01ccbe8fb065c',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['items_9',['Items',['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.html#a8d757a185f6a2ff3caba034ee88a037b',1,'Nakama::Console::IConsoleWalletLedgerList']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_9.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_9.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_9.js",
    "content": "var searchData=\n[\n  ['jitter_0',['Jitter',['../class_nakama_1_1_retry_configuration.html#a06fc034fcd8b2fe5eed976079264c0cd',1,'Nakama.RetryConfiguration.Jitter'],['../class_satori_1_1_retry_configuration.html#ad0bf8ad4a4048c8cf71290b887833f0a',1,'Satori.RetryConfiguration.Jitter']]],\n  ['jitterbackoff_1',['JitterBackoff',['../class_nakama_1_1_retry.html#a72695f7bd13ec6d4e22ad021a26f0a08',1,'Nakama.Retry.JitterBackoff'],['../class_satori_1_1_retry.html#a1e6c5e26d211897ada389e3763d1f974',1,'Satori.Retry.JitterBackoff']]],\n  ['joins_2',['Joins',['../interface_nakama_1_1_i_channel_presence_event.html#a4c6bf34c8e899b37feea0a6ed5affb29',1,'Nakama.IChannelPresenceEvent.Joins'],['../interface_nakama_1_1_i_match_presence_event.html#a7105d09667d2a472acc060dc23b7be1d',1,'Nakama.IMatchPresenceEvent.Joins'],['../interface_nakama_1_1_i_party_presence_event.html#a7b50a413e790ec2d0a71614a2f4f15ce',1,'Nakama.IPartyPresenceEvent.Joins'],['../interface_nakama_1_1_i_status_presence_event.html#af42429c8328a1f1c00bad3442a8067bb',1,'Nakama.IStatusPresenceEvent.Joins'],['../interface_nakama_1_1_i_stream_presence_event.html#a348ece2fffc76212d47fd885fb80c7cb',1,'Nakama.IStreamPresenceEvent.Joins']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_a.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_a.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_a.js",
    "content": "var searchData=\n[\n  ['keepaliveinterval_0',['KeepAliveInterval',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a63b39ac48f2759d98574e53599e7c337',1,'Nakama.Ninja.WebSockets.WebSocketClientOptions.KeepAliveInterval'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.html#a6cb09bf00c31ac1c361a95a8daec0ddd',1,'Nakama.Ninja.WebSockets.WebSocketServerOptions.KeepAliveInterval']]],\n  ['key_1',['Key',['../interface_nakama_1_1_i_api_delete_storage_object_id.html#af63c5066a0c0172de35e43ba42b3316a',1,'Nakama.IApiDeleteStorageObjectId.Key'],['../interface_nakama_1_1_i_api_read_storage_object_id.html#af6e84434171da0547ff9d04875c9df1c',1,'Nakama.IApiReadStorageObjectId.Key'],['../interface_nakama_1_1_i_api_storage_object.html#ae5d7d75e7c6d17a28948a523be66718d',1,'Nakama.IApiStorageObject.Key'],['../interface_nakama_1_1_i_api_storage_object_ack.html#a67093404b849db0edcaacaf5f5fbd26f',1,'Nakama.IApiStorageObjectAck.Key'],['../interface_nakama_1_1_i_api_write_storage_object.html#a3126c1e5831a1984900be2ad8b51f757',1,'Nakama.IApiWriteStorageObject.Key'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aea52a7568376c289350b1de1e2c08995',1,'Nakama.Console.IApiStorageObject.Key'],['../interface_nakama_1_1_console_1_1_i_api_storage_object_ack.html#aa1e7059dd9e441ba5aa0c1757b29b7dc',1,'Nakama.Console.IApiStorageObjectAck.Key'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a865ce3ebefbf5a554e2b6aa6a5f3bdf2',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.Key'],['../class_nakama_1_1_storage_object_id.html#a4243d96cb3a1cf50a4f5a3cf790d7a1b',1,'Nakama.StorageObjectId.Key'],['../class_nakama_1_1_write_storage_object.html#a3cad528f534a95f3bfae4c4db48cb7a1',1,'Nakama.WriteStorageObject.Key']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_b.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_b.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_b.js",
    "content": "var searchData=\n[\n  ['label_0',['Label',['../interface_nakama_1_1_i_api_match.html#aa5c09c4a5b4e19d8acb2aa3bc1f555c1',1,'Nakama.IApiMatch.Label'],['../interface_nakama_1_1_i_api_party.html#a5828d543377df3c0a5a9d5eb65c10b94',1,'Nakama.IApiParty.Label'],['../interface_nakama_1_1_i_match.html#ae26c0fcd9c1f2f8473125a5a64da5a91',1,'Nakama.IMatch.Label'],['../interface_nakama_1_1_i_party.html#a77d573882e8cc40b0475b6b3967bb2cb',1,'Nakama.IParty.Label'],['../interface_nakama_1_1_i_party_update.html#ab57ed6105d885891a22275f3a07104d7',1,'Nakama.IPartyUpdate.Label'],['../interface_nakama_1_1_i_stream.html#a567053cfb9743496a86b53fb80a742ad',1,'Nakama.IStream.Label']]],\n  ['langtag_1',['LangTag',['../interface_nakama_1_1_i_api_update_group_request.html#ace7628056b6e1eab29b3ff8ff2a8ca4d',1,'Nakama.IApiUpdateGroupRequest.LangTag'],['../interface_nakama_1_1_i_api_create_group_request.html#a92e928ad3562a22470a46aadcc4ebee9',1,'Nakama.IApiCreateGroupRequest.LangTag'],['../interface_nakama_1_1_i_api_group.html#a644091bd3ed932fd51ddaeba7df07959',1,'Nakama.IApiGroup.LangTag'],['../interface_nakama_1_1_i_api_update_account_request.html#a7899f3c0f57fd33631e5e255f5b76445',1,'Nakama.IApiUpdateAccountRequest.LangTag'],['../interface_nakama_1_1_i_api_user.html#a122a8e64057ff866cf1f70d56250bbc3',1,'Nakama.IApiUser.LangTag'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a3391b2788b8e00e72c5eaa26fcae37a6',1,'Nakama.Console.IApiGroup.LangTag'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a02f2d7c581f1e5f0ab14b7ba25564595',1,'Nakama.Console.IApiUser.LangTag'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#aa49047119e5b00623f8f89e9c1f0208d',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.LangTag']]],\n  ['leader_2',['Leader',['../interface_nakama_1_1_i_party.html#a393481bb0a4026dc26adf8522e339991',1,'Nakama::IParty']]],\n  ['leaderboardid_3',['LeaderboardId',['../interface_nakama_1_1_i_api_leaderboard_record.html#a069024f0680417b6d59ad6023f5c39ac',1,'Nakama.IApiLeaderboardRecord.LeaderboardId'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a46ee642ea9931908910e06f2b85783d1',1,'Nakama.Console.IApiLeaderboardRecord.LeaderboardId']]],\n  ['leaderboardrecords_4',['LeaderboardRecords',['../interface_nakama_1_1_console_1_1_i_console_account_export.html#ad1521901874cd1d3b0c25cb52d3c9856',1,'Nakama::Console::IConsoleAccountExport']]],\n  ['leaves_5',['Leaves',['../interface_nakama_1_1_i_channel_presence_event.html#a25f9a3fb8301ae6085da103bfad01fc4',1,'Nakama.IChannelPresenceEvent.Leaves'],['../interface_nakama_1_1_i_match_presence_event.html#a5f98c541a38afdadd16143ef5c4e6e81',1,'Nakama.IMatchPresenceEvent.Leaves'],['../interface_nakama_1_1_i_party_presence_event.html#a4ff05fb37ee002a68b07aa558f960447',1,'Nakama.IPartyPresenceEvent.Leaves'],['../interface_nakama_1_1_i_status_presence_event.html#ab55b13ffb490c5f503df00289ec79f95',1,'Nakama.IStatusPresenceEvent.Leaves'],['../interface_nakama_1_1_i_stream_presence_event.html#ae4ac7fee586952580142c0ed6a1c3bff',1,'Nakama.IStreamPresenceEvent.Leaves']]],\n  ['length_6',['Length',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a61cb4f87023656278059afed1a06ba4d',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['limit_7',['Limit',['../interface_nakama_1_1_i_api_list_subscriptions_request.html#a7c750f07a5761a59d1719c6b3db73ac1',1,'Nakama::IApiListSubscriptionsRequest']]],\n  ['liveevents_8',['LiveEvents',['../interface_satori_1_1_i_api_live_event_list.html#adb3c714a86f30d8109d893cc5f7d30d5',1,'Satori::IApiLiveEventList']]],\n  ['location_9',['Location',['../interface_nakama_1_1_i_api_update_account_request.html#a6a2ab4f61a274f4a618ad7362ebb7708',1,'Nakama.IApiUpdateAccountRequest.Location'],['../interface_nakama_1_1_i_api_user.html#ae1da0ac24e130205f709f5866c9eab40',1,'Nakama.IApiUser.Location'],['../interface_nakama_1_1_console_1_1_i_api_user.html#ac6e175fd7eb29c7ddb4161e1440091bd',1,'Nakama.Console.IApiUser.Location'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#ae6aca8cf5fb6b116c73fae61a1d35058',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Location']]],\n  ['logger_10',['Logger',['../class_nakama_1_1_client.html#ac88ab4b97d244c62ffc0e2710f69a651',1,'Nakama.Client.Logger'],['../class_nakama_1_1_http_request_adapter.html#a7365d2d5c82d5d0d6b8ac64941a8e533',1,'Nakama.HttpRequestAdapter.Logger'],['../interface_nakama_1_1_i_client.html#a3a4173ec3a9af39e3de97d66027ff74d',1,'Nakama.IClient.Logger'],['../interface_nakama_1_1_i_http_adapter.html#ad0514214ba7fce3b8c0697d70874ff1e',1,'Nakama.IHttpAdapter.Logger'],['../class_nakama_1_1_socket.html#a49b31620c26b5c3bcb73395c6e43e7e7',1,'Nakama.Socket.Logger'],['../class_satori_1_1_http_request_adapter.html#a6736d4ab9046b2b991c1a0e7260f8def',1,'Satori.HttpRequestAdapter.Logger'],['../interface_satori_1_1_i_http_adapter.html#a60f7f315f6269aa15eea61fa0155dc0b',1,'Satori.IHttpAdapter.Logger']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_c.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_c.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_c.js",
    "content": "var searchData=\n[\n  ['matchcount_0',['MatchCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a5c9d6f670b3b47e9ea7a20a8fcc6406b',1,'Nakama::Console::IStatusListStatus']]],\n  ['matches_1',['Matches',['../interface_nakama_1_1_i_api_match_list.html#a31db7ac1b4df0a496bcf73e17ecd4589',1,'Nakama::IApiMatchList']]],\n  ['matchid_2',['MatchId',['../interface_nakama_1_1_i_api_match.html#adeb7ec5cc19e0d6f8e517eeadc044a0d',1,'Nakama.IApiMatch.MatchId'],['../interface_nakama_1_1_i_matchmaker_matched.html#a020c0a5d0df34669a87d2d133456b15e',1,'Nakama.IMatchmakerMatched.MatchId'],['../interface_nakama_1_1_i_match_presence_event.html#a2d6558e1628576b6de1a8a596090104f',1,'Nakama.IMatchPresenceEvent.MatchId'],['../interface_nakama_1_1_i_match_state.html#a2050d924ff200392b7a20e9d92ed8d73',1,'Nakama.IMatchState.MatchId']]],\n  ['maxattempts_3',['MaxAttempts',['../class_nakama_1_1_retry_configuration.html#a3be7ea95f69217237c03c9bf50fd466e',1,'Nakama.RetryConfiguration.MaxAttempts'],['../class_satori_1_1_retry_configuration.html#a01011c48d058287c35d0a5cbe8252599',1,'Satori.RetryConfiguration.MaxAttempts']]],\n  ['maxcount_4',['MaxCount',['../interface_nakama_1_1_i_api_create_group_request.html#abcc5c8511add4336b86eb68cbe43c7de',1,'Nakama.IApiCreateGroupRequest.MaxCount'],['../interface_nakama_1_1_i_api_group.html#a81d90a158836868cf20735e9e0d8ea27',1,'Nakama.IApiGroup.MaxCount'],['../interface_nakama_1_1_console_1_1_i_api_group.html#a30506924b9edec0d4fd08b3e602bc4f5',1,'Nakama.Console.IApiGroup.MaxCount']]],\n  ['maxnumscore_5',['MaxNumScore',['../interface_nakama_1_1_i_api_leaderboard_record.html#ac7ae9d4daa203421fa4ff6f87e3806a3',1,'Nakama.IApiLeaderboardRecord.MaxNumScore'],['../interface_nakama_1_1_i_api_tournament.html#a437455a81843911cf56fcb6d2a8a80a7',1,'Nakama.IApiTournament.MaxNumScore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#aca0a7ff0d76f0bc5af0030e81e13c4b1',1,'Nakama.Console.IApiLeaderboardRecord.MaxNumScore']]],\n  ['maxsize_6',['MaxSize',['../interface_nakama_1_1_i_api_party.html#aefe8bc926472b015b25f30410def1fcc',1,'Nakama.IApiParty.MaxSize'],['../interface_nakama_1_1_i_api_tournament.html#a42f5ceae3569e5d4081a501f08e0b7b9',1,'Nakama.IApiTournament.MaxSize'],['../interface_nakama_1_1_i_party.html#a0d31a7df38955d4114f7eec2e0223869',1,'Nakama.IParty.MaxSize']]],\n  ['message_7',['Message',['../interface_nakama_1_1_i_rpc_status.html#accfc753caa1c6c051acfe8d6cd028487',1,'Nakama.IRpcStatus.Message'],['../interface_nakama_1_1_console_1_1_i_config_warning.html#ac36d557d92a6e1e9022f246b50e4a61b',1,'Nakama.Console.IConfigWarning.Message'],['../interface_nakama_1_1_console_1_1_i_runtime_error.html#a12c16673169678cbb109952673dc8a60',1,'Nakama.Console.IRuntimeError.Message'],['../interface_satori_1_1_i_rpc_status.html#abfc3946bb2273c5e2e44f123ac308a96',1,'Satori.IRpcStatus.Message']]],\n  ['messageid_8',['MessageId',['../interface_nakama_1_1_i_api_channel_message.html#a6b83ec9fec3fe2f236d0983a8d6143a6',1,'Nakama.IApiChannelMessage.MessageId'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a3b31094377741c16f421caa584904bb3',1,'Nakama.Console.IApiChannelMessage.MessageId'],['../interface_nakama_1_1_i_channel_message_ack.html#a60f3a5535d86d01fc98faa1855416671',1,'Nakama.IChannelMessageAck.MessageId']]],\n  ['messages_9',['Messages',['../interface_nakama_1_1_i_api_channel_message_list.html#a312918337005e53c34bd42330d55030e',1,'Nakama.IApiChannelMessageList.Messages'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a0cdacfc37d84217e3bf612b0d40d9920',1,'Nakama.Console.IConsoleAccountExport.Messages'],['../interface_satori_1_1_i_api_get_message_list_response.html#a62a6a42387d178f866acd732ff3e0e26',1,'Satori.IApiGetMessageListResponse.Messages']]],\n  ['metadata_10',['Metadata',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#ab275bbe8a45da634d8842df6011e7edc',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Metadata'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#a7d6164dae5175699d8a2ee35e644e54c',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Metadata'],['../interface_nakama_1_1_i_api_friend.html#a2864263153bbf2905c595fa443068692',1,'Nakama.IApiFriend.Metadata'],['../interface_nakama_1_1_i_api_group.html#a0810484f48d791d355f93c03fb41d292',1,'Nakama.IApiGroup.Metadata'],['../interface_nakama_1_1_i_api_leaderboard_record.html#a35dfcebb353a26543dd7247f654b0c0c',1,'Nakama.IApiLeaderboardRecord.Metadata'],['../interface_nakama_1_1_i_api_tournament.html#a47768bcf7dd97abea99e001f7c9695f7',1,'Nakama.IApiTournament.Metadata'],['../interface_nakama_1_1_i_api_user.html#a4b152a1c6dedc1d5153073752d745ee4',1,'Nakama.IApiUser.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_group.html#af73b1e2498e614cd2d2ab0fc1554cad8',1,'Nakama.Console.IApiGroup.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3894b31e8b47c3f5b145ddce285f946e',1,'Nakama.Console.IApiLeaderboardRecord.Metadata'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a824ef8f0a6b71a797993bb7d312853a7',1,'Nakama.Console.IApiUser.Metadata'],['../interface_nakama_1_1_console_1_1_i_console_wallet_ledger.html#a9d7ee382141ef1020bc0d6f0e463f124',1,'Nakama.Console.IConsoleWalletLedger.Metadata'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a9deeb2b42d6b2d24ebac4b5ce438390d',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Metadata'],['../interface_satori_1_1_i_api_event.html#a1b47db5d48ed22f63f2ff6ab350fd0e3',1,'Satori.IApiEvent.Metadata'],['../interface_satori_1_1_i_api_message.html#acdc3faa79f13b594990023287339c198',1,'Satori.IApiMessage.Metadata'],['../class_satori_1_1_event.html#af36bf65cd20cb4f02b11b27bcc63d873',1,'Satori.Event.Metadata']]],\n  ['mode_11',['Mode',['../interface_nakama_1_1_i_stream.html#a2910dac84da42be3dee534ca49546b3d',1,'Nakama::IStream']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_d.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_d.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_d.js",
    "content": "var searchData=\n[\n  ['name_0',['Name',['../interface_nakama_1_1_i_api_update_group_request.html#a1415bb059f6c75ea9e22f87de398c660',1,'Nakama.IApiUpdateGroupRequest.Name'],['../interface_nakama_1_1_i_api_create_group_request.html#a72e42bbdb158c39fbd755f7972a161d2',1,'Nakama.IApiCreateGroupRequest.Name'],['../interface_nakama_1_1_i_api_event.html#aba6a44997576666fab8b98ab0ed59923',1,'Nakama.IApiEvent.Name'],['../interface_nakama_1_1_i_api_group.html#a18dad063aa4a43fb3b25eee848cae3be',1,'Nakama.IApiGroup.Name'],['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a6ac7c70a733c82c5cd232ee16e0e4f2d',1,'Nakama.Console.IStatusListStatus.Name'],['../interface_nakama_1_1_console_1_1_i_api_group.html#ad06404133c69d5bb8447fc6d741d1303',1,'Nakama.Console.IApiGroup.Name'],['../interface_satori_1_1_i_flag_value_change_reason.html#a96fae117168835adbf19ba9fa32d7121',1,'Satori.IFlagValueChangeReason.Name'],['../interface_satori_1_1_i_api_event.html#a4b2fa7f9c7c340f105a81ba0a03aa470',1,'Satori.IApiEvent.Name'],['../interface_satori_1_1_i_api_experiment.html#aee15cc75bedee0f402e89df385f6220b',1,'Satori.IApiExperiment.Name'],['../interface_satori_1_1_i_api_flag.html#a720b008e956c83da6476e42352d1ff04',1,'Satori.IApiFlag.Name'],['../interface_satori_1_1_i_api_flag_override_value.html#a491984ad699cf51affab4313ddec48db',1,'Satori.IApiFlagOverrideValue.Name'],['../interface_satori_1_1_i_api_live_event.html#aeb624601388adea811e1d031f5480b32',1,'Satori.IApiLiveEvent.Name'],['../class_satori_1_1_event.html#aa85c546929734196994af9feb4e5836f',1,'Satori.Event.Name']]],\n  ['nextcursor_1',['NextCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#a63851eef1851e892d2e6d89f2d6f22d4',1,'Nakama.IApiChannelMessageList.NextCursor'],['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a8141377d0ed766e306e767eb670b1d0c',1,'Nakama.IApiLeaderboardRecordList.NextCursor'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a16b8f33e3684635d89904c4faadf64a0',1,'Nakama.IApiTournamentRecordList.NextCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#af16c4da59996a3e7ac11332d3c32ec8e',1,'Satori.IApiGetMessageListResponse.NextCursor']]],\n  ['nextreset_2',['NextReset',['../interface_nakama_1_1_i_api_tournament.html#a95b05c4d22f3e44c458e082b28696ca1',1,'Nakama::IApiTournament']]],\n  ['nodelay_3',['NoDelay',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.html#a4eecc580079d1338e13b8368f686177f',1,'Nakama::Ninja::WebSockets::WebSocketClientOptions']]],\n  ['nodes_4',['Nodes',['../interface_nakama_1_1_console_1_1_i_console_status_list.html#a0323e23a836cceafff5e4f279802889d',1,'Nakama::Console::IConsoleStatusList']]],\n  ['nosession_5',['NoSession',['../interface_satori_1_1_i_api_authenticate_request.html#a1946a39f10a2cdc4f2b3717ef5700639',1,'Satori::IApiAuthenticateRequest']]],\n  ['notifications_6',['Notifications',['../interface_nakama_1_1_i_api_notification_list.html#ae9af8a0fbf2f772de85683e8dc6c6f72',1,'Nakama.IApiNotificationList.Notifications'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#a02eaeb434c9cf9599934493b44c89108',1,'Nakama.Console.IConsoleAccountExport.Notifications']]],\n  ['numericproperties_7',['NumericProperties',['../interface_nakama_1_1_i_matchmaker_user.html#a4466b6db559bdc6432d15df937c39a96',1,'Nakama::IMatchmakerUser']]],\n  ['numscore_8',['NumScore',['../interface_nakama_1_1_i_api_leaderboard_record.html#ae57e14a0741fb2e0627ddc0dd1cbb6c3',1,'Nakama.IApiLeaderboardRecord.NumScore'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#af6f57c01af5acb5c311940e6ac3852e3',1,'Nakama.Console.IApiLeaderboardRecord.NumScore']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_e.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_e.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_e.js",
    "content": "var searchData=\n[\n  ['objectids_0',['ObjectIds',['../interface_nakama_1_1_i_api_delete_storage_objects_request.html#a256506b8b1c243bcbf22e9a341e9a725',1,'Nakama.IApiDeleteStorageObjectsRequest.ObjectIds'],['../interface_nakama_1_1_i_api_read_storage_objects_request.html#a045bd0e606650f42b5069a02801cc849',1,'Nakama.IApiReadStorageObjectsRequest.ObjectIds']]],\n  ['objects_1',['Objects',['../interface_nakama_1_1_i_api_storage_object_list.html#a5cf3f05e26bf01887edc99b2f59d54e4',1,'Nakama.IApiStorageObjectList.Objects'],['../interface_nakama_1_1_i_api_storage_objects.html#a2435b98e1fa0994979d58af1fba71a06',1,'Nakama.IApiStorageObjects.Objects'],['../interface_nakama_1_1_i_api_write_storage_objects_request.html#a5ee63d82d0bd76b8159983642c7142e2',1,'Nakama.IApiWriteStorageObjectsRequest.Objects'],['../interface_nakama_1_1_console_1_1_i_console_account_export.html#ab0f2aa7828a1dd4314dda8ee10081efc',1,'Nakama.Console.IConsoleAccountExport.Objects'],['../interface_nakama_1_1_console_1_1_i_console_storage_list.html#af93125ef6c4dbd1dd8027e5d10a30238',1,'Nakama.Console.IConsoleStorageList.Objects']]],\n  ['oldestticketcreatetime_2',['OldestTicketCreateTime',['../interface_nakama_1_1_i_api_matchmaker_stats.html#a8a705ebfeec2d53a021543e84883dce6',1,'Nakama::IApiMatchmakerStats']]],\n  ['online_3',['Online',['../interface_nakama_1_1_i_api_user.html#ad0cde265702684b22c011e5ad50bc623',1,'Nakama.IApiUser.Online'],['../interface_nakama_1_1_console_1_1_i_api_user.html#a8e3d99268d2c5833e12141576283305d',1,'Nakama.Console.IApiUser.Online']]],\n  ['opcode_4',['OpCode',['../interface_nakama_1_1_i_match_state.html#adc672df3ed004ec960eb94389d850cca',1,'Nakama.IMatchState.OpCode'],['../interface_nakama_1_1_i_party_data.html#a85bc60d970922aea6a58c3662b6142e1',1,'Nakama.IPartyData.OpCode']]],\n  ['open_5',['Open',['../interface_nakama_1_1_i_api_update_group_request.html#a7bf227165843823761670f54a4e4f262',1,'Nakama.IApiUpdateGroupRequest.Open'],['../interface_nakama_1_1_i_api_create_group_request.html#a6ade798c7a71adc1662dcc2fb8a79d36',1,'Nakama.IApiCreateGroupRequest.Open'],['../interface_nakama_1_1_i_api_group.html#a7750eaee67311bfb73bfed5c2dfa73f2',1,'Nakama.IApiGroup.Open'],['../interface_nakama_1_1_i_api_party.html#a01c5cfad3d9f14375b6dab2a164f3f95',1,'Nakama.IApiParty.Open'],['../interface_nakama_1_1_console_1_1_i_api_group.html#ab02fb2c7614911231cf9779a5d15c529',1,'Nakama.Console.IApiGroup.Open'],['../interface_nakama_1_1_i_party.html#a9e8a6732f73a4d6b73a082cc08d7202e',1,'Nakama.IParty.Open'],['../interface_nakama_1_1_i_party_update.html#aa9febdb20f83da88868d91d0f960c4e6',1,'Nakama.IPartyUpdate.Open']]],\n  ['operator_6',['Operator',['../interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.html#a91a753c536f1611d04ab3e8b9c9b88ac',1,'Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite.Operator'],['../interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.html#adac6bd7cb6c2cb8487fb33dafb68cac8',1,'Nakama.IWriteTournamentRecordRequestTournamentRecordWrite.Operator'],['../interface_nakama_1_1_i_api_tournament.html#ac176de4d1c0e1442861bf0de5d64edef',1,'Nakama.IApiTournament.Operator']]],\n  ['originaltransactionid_7',['OriginalTransactionId',['../interface_nakama_1_1_i_api_validated_subscription.html#afae954930e5534383653571ba5261a8a',1,'Nakama::IApiValidatedSubscription']]],\n  ['overrides_8',['Overrides',['../interface_satori_1_1_i_api_flag_override.html#a14e2afc4caedd0f1db5ace9a15d12a91',1,'Satori::IApiFlagOverride']]],\n  ['ownerid_9',['OwnerId',['../interface_nakama_1_1_i_api_leaderboard_record.html#a7da72a3ec5146681730022c74c9be999',1,'Nakama.IApiLeaderboardRecord.OwnerId'],['../interface_nakama_1_1_console_1_1_i_api_leaderboard_record.html#a3688e871dc2c924d90abd682e49c888d',1,'Nakama.Console.IApiLeaderboardRecord.OwnerId']]],\n  ['ownerrecords_10',['OwnerRecords',['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a0467e17292ce1118bfcb922cb7a3c4aa',1,'Nakama.IApiLeaderboardRecordList.OwnerRecords'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a25bb923777ed497e6e951d5e3ddb54fe',1,'Nakama.IApiTournamentRecordList.OwnerRecords']]]\n];\n"
  },
  {
    "path": "docs/html/search/properties_f.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"properties_f.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/properties_f.js",
    "content": "var searchData=\n[\n  ['parties_0',['Parties',['../interface_nakama_1_1_i_api_party_list.html#aafc0afe39f43d6ed4a023a4e7906c46a',1,'Nakama::IApiPartyList']]],\n  ['partyid_1',['PartyId',['../interface_nakama_1_1_i_api_party.html#a24ba54356b60b26f14084eb8bd099eb5',1,'Nakama.IApiParty.PartyId'],['../interface_nakama_1_1_i_party_close.html#a437b58653186c594f8e676967eace80b',1,'Nakama.IPartyClose.PartyId'],['../interface_nakama_1_1_i_party_data.html#af879054b576df0b0756c151726214314',1,'Nakama.IPartyData.PartyId'],['../interface_nakama_1_1_i_party_join_request.html#a6be31d8ce7c551aabced57f808c4483d',1,'Nakama.IPartyJoinRequest.PartyId'],['../interface_nakama_1_1_i_party_leader.html#a944e79a62b9e234a8d3207bca6be04a8',1,'Nakama.IPartyLeader.PartyId'],['../interface_nakama_1_1_i_party_matchmaker_ticket.html#a1ef8dc7b33d43eff238c54f5f25fb12c',1,'Nakama.IPartyMatchmakerTicket.PartyId'],['../interface_nakama_1_1_i_party_presence_event.html#a2935ce617eca766d6bed0592cd15da83',1,'Nakama.IPartyPresenceEvent.PartyId'],['../interface_nakama_1_1_i_party_update.html#a0a68d089856f1a8b2d3027b2032bc547',1,'Nakama.IPartyUpdate.PartyId']]],\n  ['password_2',['Password',['../interface_nakama_1_1_i_api_account_email.html#ad177139e341a3787f3cf09e0271066c2',1,'Nakama.IApiAccountEmail.Password'],['../interface_nakama_1_1_console_1_1_i_console_authenticate_request.html#a0051d14e775850b549a4ac9d3c038966',1,'Nakama.Console.IConsoleAuthenticateRequest.Password'],['../interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.html#a99467a2409d25b238071ebec97a55e29',1,'Nakama.Console.INakamaconsoleUpdateAccountRequest.Password']]],\n  ['path_3',['Path',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.html#a317b0b47e66328f10d359db023cbad7c',1,'Nakama::Ninja::WebSockets::WebSocketHttpContext']]],\n  ['payload_4',['Payload',['../interface_nakama_1_1_i_api_rpc.html#a04baf54b17a8939f330b9549f9297246',1,'Nakama.IApiRpc.Payload'],['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.html#a732cfef369ecc2c8eae01d4aba6ccd38',1,'Nakama.Ninja.WebSockets.PongEventArgs.Payload']]],\n  ['permissionread_5',['PermissionRead',['../interface_nakama_1_1_i_api_storage_object.html#afe764d8ab0ac13cfe2a55d165ee5611d',1,'Nakama.IApiStorageObject.PermissionRead'],['../interface_nakama_1_1_i_api_write_storage_object.html#a89e035c6b6f1fff5e890c1124039cc14',1,'Nakama.IApiWriteStorageObject.PermissionRead'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#aecdd20d5a5fb89f87e76372687b7bf4d',1,'Nakama.Console.IApiStorageObject.PermissionRead'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#ae2986d810a1c7794be14c2c9a42275ee',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionRead'],['../class_nakama_1_1_write_storage_object.html#a8da5054f8a07031a14ed7c9b20e1b0ed',1,'Nakama.WriteStorageObject.PermissionRead']]],\n  ['permissionwrite_6',['PermissionWrite',['../interface_nakama_1_1_i_api_storage_object.html#a2822259e1786821bf38f1ad6172516ef',1,'Nakama.IApiStorageObject.PermissionWrite'],['../interface_nakama_1_1_i_api_write_storage_object.html#a818dfc3d3c371095958a182635bd9fad',1,'Nakama.IApiWriteStorageObject.PermissionWrite'],['../interface_nakama_1_1_console_1_1_i_api_storage_object.html#a977890a58ece6639393815334c7bc2af',1,'Nakama.Console.IApiStorageObject.PermissionWrite'],['../interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.html#a51d3b829a2cb8738df418da3f1455cf0',1,'Nakama.Console.IConsoleWriteStorageObjectRequest.PermissionWrite'],['../class_nakama_1_1_write_storage_object.html#ac3a29f29170b78edd7e45b7c539fe811',1,'Nakama.WriteStorageObject.PermissionWrite']]],\n  ['persist_7',['Persist',['../interface_nakama_1_1_i_api_validate_purchase_apple_request.html#a29eafeeb27bbd3712cae61a661446274',1,'Nakama.IApiValidatePurchaseAppleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_facebook_instant_request.html#a658bf336bac89d6cc80fb30ca707c766',1,'Nakama.IApiValidatePurchaseFacebookInstantRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_google_request.html#ad24968b3a0dc1595776465da70f0ee97',1,'Nakama.IApiValidatePurchaseGoogleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#a65bb03ffbc75254960de1019c98fdf7a',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Persist'],['../interface_nakama_1_1_i_api_validate_subscription_apple_request.html#ac3678f34874a815bfbe6d81b8fe25779',1,'Nakama.IApiValidateSubscriptionAppleRequest.Persist'],['../interface_nakama_1_1_i_api_validate_subscription_google_request.html#a1b0a2361edbd84507267d9cacf2a2602',1,'Nakama.IApiValidateSubscriptionGoogleRequest.Persist']]],\n  ['persistence_8',['Persistence',['../interface_nakama_1_1_i_user_presence.html#a1c44578acc447b46fe8baf2341a80830',1,'Nakama::IUserPresence']]],\n  ['persistent_9',['Persistent',['../interface_nakama_1_1_i_api_channel_message.html#aaf9dc2c4247b2d1589dd17f3c0735800',1,'Nakama.IApiChannelMessage.Persistent'],['../interface_nakama_1_1_i_api_notification.html#af4fd12051eb295ce84a65d871a7b8c2a',1,'Nakama.IApiNotification.Persistent'],['../interface_nakama_1_1_console_1_1_i_api_channel_message.html#a4fbb0e6d9e6de4f17f347c8e34ebe366',1,'Nakama.Console.IApiChannelMessage.Persistent'],['../interface_nakama_1_1_console_1_1_i_api_notification.html#a486a79e0dc9fe285041284ace0c2e491',1,'Nakama.Console.IApiNotification.Persistent'],['../interface_nakama_1_1_i_channel_message_ack.html#a5f9c378b048f1385c56ac13c5ba0a2bd',1,'Nakama.IChannelMessageAck.Persistent']]],\n  ['playerid_10',['PlayerId',['../interface_nakama_1_1_i_api_account_game_center.html#a4ee74b10ff5c36b165201772d4ad50d9',1,'Nakama::IApiAccountGameCenter']]],\n  ['port_11',['Port',['../class_nakama_1_1_client.html#aa59309ff4ed7172795782cd69cb295d8',1,'Nakama.Client.Port'],['../interface_nakama_1_1_i_client.html#ad5d7b98d99d381d0340e7d8e90a54d26',1,'Nakama.IClient.Port'],['../class_satori_1_1_client.html#a76decfd57c04250e3ac3d98cf0106d8b',1,'Satori.Client.Port'],['../interface_satori_1_1_i_client.html#ab6cc862b3c6aeda2b4f4e071f026257d',1,'Satori.IClient.Port']]],\n  ['position_12',['Position',['../class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.html#a75bd09da03497aa32ad309d4b47f9ad5',1,'Nakama::Ninja::WebSockets::BufferPool::PublicBufferMemoryStream']]],\n  ['presence_13',['Presence',['../interface_nakama_1_1_i_matchmaker_user.html#a733ad4dc6253d6b01a3e3893b3b55d62',1,'Nakama.IMatchmakerUser.Presence'],['../interface_nakama_1_1_i_party_data.html#a0f856779340e95f45c63bc5a6e9bc6f5',1,'Nakama.IPartyData.Presence'],['../interface_nakama_1_1_i_party_leader.html#ac2a714b4b180259071077b8e500307b7',1,'Nakama.IPartyLeader.Presence']]],\n  ['presencecount_14',['PresenceCount',['../interface_nakama_1_1_console_1_1_i_status_list_status.html#a8728a67da038b9ad65c14a343ba9ca9c',1,'Nakama::Console::IStatusListStatus']]],\n  ['presences_15',['Presences',['../interface_nakama_1_1_i_channel.html#a24d5000cdeddf45977f9a9c4e2c186db',1,'Nakama.IChannel.Presences'],['../interface_nakama_1_1_i_match.html#a507c528b18eb5cb4c8efb6b86361961e',1,'Nakama.IMatch.Presences'],['../interface_nakama_1_1_i_party.html#a9e44c485a4773c8b44056ec160ad1e7e',1,'Nakama.IParty.Presences'],['../interface_nakama_1_1_i_party_join_request.html#aca309629a8fec83d7895d4f66565ae29',1,'Nakama.IPartyJoinRequest.Presences'],['../interface_nakama_1_1_i_status.html#a3257d37a09f2d48bfdce7d40234369ae',1,'Nakama.IStatus.Presences']]],\n  ['prevcursor_16',['PrevCursor',['../interface_nakama_1_1_i_api_channel_message_list.html#a63800c8730fedca78043e2856b6efbff',1,'Nakama.IApiChannelMessageList.PrevCursor'],['../interface_nakama_1_1_i_api_leaderboard_record_list.html#a3a593d9750f2dc2ea4c2ba3b6c879880',1,'Nakama.IApiLeaderboardRecordList.PrevCursor'],['../interface_nakama_1_1_i_api_subscription_list.html#a27a234d8246232f5e1f80746e495c276',1,'Nakama.IApiSubscriptionList.PrevCursor'],['../interface_nakama_1_1_i_api_tournament_record_list.html#a56fa396d34225f5b646941f06cc7add8',1,'Nakama.IApiTournamentRecordList.PrevCursor'],['../interface_satori_1_1_i_api_get_message_list_response.html#a761ef8abe7e9f51037ccfa7e7cd263c5',1,'Satori.IApiGetMessageListResponse.PrevCursor']]],\n  ['prevreset_17',['PrevReset',['../interface_nakama_1_1_i_api_tournament.html#aa9795e55a84d977b4858193f667015fb',1,'Nakama::IApiTournament']]],\n  ['productid_18',['ProductId',['../interface_nakama_1_1_i_api_validated_purchase.html#a9e77eff1ebd7d0c2c55d8df258365810',1,'Nakama.IApiValidatedPurchase.ProductId'],['../interface_nakama_1_1_i_api_validated_subscription.html#a27b8546445c82ef0ec29e2e19e7012bb',1,'Nakama.IApiValidatedSubscription.ProductId']]],\n  ['properties_19',['Properties',['../interface_nakama_1_1_i_api_event.html#abba047f10041db3729e3c5e9b0d7ace4',1,'Nakama.IApiEvent.Properties'],['../interface_satori_1_1_i_api_session.html#ae67e8ae316be2d695873dfd0effdb4aa',1,'Satori.IApiSession.Properties']]],\n  ['providernotification_20',['ProviderNotification',['../interface_nakama_1_1_i_api_validated_subscription.html#a22188aad0160083f087900f9d554d87e',1,'Nakama::IApiValidatedSubscription']]],\n  ['providerresponse_21',['ProviderResponse',['../interface_nakama_1_1_i_api_validated_purchase.html#a4b6f8451926587ea57801a8461e3199d',1,'Nakama.IApiValidatedPurchase.ProviderResponse'],['../interface_nakama_1_1_i_api_validated_subscription.html#a7b55020a1c03c9d86938b681091fb72c',1,'Nakama.IApiValidatedSubscription.ProviderResponse']]],\n  ['publickeyurl_22',['PublicKeyUrl',['../interface_nakama_1_1_i_api_account_game_center.html#adf878e6254f2b59a87e3f338698b16f7',1,'Nakama::IApiAccountGameCenter']]],\n  ['purchase_23',['Purchase',['../interface_nakama_1_1_i_api_validate_purchase_google_request.html#adbb2be238e1fda23e46502e541909437',1,'Nakama.IApiValidatePurchaseGoogleRequest.Purchase'],['../interface_nakama_1_1_i_api_validate_purchase_huawei_request.html#ac3306d845f2efbb81bcedf36605d9670',1,'Nakama.IApiValidatePurchaseHuaweiRequest.Purchase']]],\n  ['purchasetime_24',['PurchaseTime',['../interface_nakama_1_1_i_api_validated_purchase.html#abcd7b40de1b2e332e03cb32fb3c42395',1,'Nakama.IApiValidatedPurchase.PurchaseTime'],['../interface_nakama_1_1_i_api_validated_subscription.html#a1f5e26f1891e4ec02d7f977e924a5e3f',1,'Nakama.IApiValidatedSubscription.PurchaseTime']]]\n];\n"
  },
  {
    "path": "docs/html/search/search.css",
    "content": "/*---------------- Search Box positioning */\n\n#main-menu > li:last-child {\n    /* This <li> object is the parent of the search bar */\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    height: 43px;\n    margin-right: 0;\n}\n\n/*---------------- Search box styling */\n\n.SRPage * {\n    font-weight: normal;\n    line-height: normal;\n}\n\ndark-mode-toggle {\n    margin-left: 5px;\n    display: flex;\n    float: right;\n}\n\n#MSearchBox {\n    display: inline-block;\n    white-space : nowrap;\n    background: var(--search-background-color);\n    border-radius: 0.65em;\n    border: 1px solid var(--search-box-border-color);\n    z-index: 102;\n    margin-right: 4px;\n}\n\n#MSearchBox .left {\n    display: inline-block;\n    vertical-align: middle;\n    height: 1.6em;\n}\n\n#MSearchField {\n    display: inline-block;\n    vertical-align: top;\n    width: 7.5em;\n    height: 22px;\n    margin: 0 0 0 0.15em;\n    padding: 0;\n    line-height: 1em;\n    border:none;\n    color: var(--search-foreground-color);\n    outline: none;\n    font-family: var(--font-family-search);\n    -webkit-border-radius: 0px;\n    border-radius: 0px;\n    background: none;\n}\n\n@media(hover: none) {\n    /* to avoid zooming on iOS */\n    #MSearchField {\n        font-size: 16px;\n    }\n}\n\n#MSearchBox .right {\n    display: inline-block;\n    vertical-align: middle;\n    width: 1.4em;\n    height: 1.6em;\n}\n\n#MSearchClose {\n    display: none;\n    font-size: inherit;\n    background : none;\n    border: none;\n    margin: 0;\n    padding: 0;\n    outline: none;\n\n}\n\n#MSearchCloseImg {\n    margin: 6px 0 0 4px;\n}\n\n.close-icon {\n  width: 11px;\n  height: 11px;\n  background-color: var(--search-close-icon-bg-color);\n  border-radius: 50%;\n  position: relative;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  box-sizing: content-box;\n}\n\n.close-icon:before,\n.close-icon:after {\n  content: '';\n  position: absolute;\n  width: 7px;\n  height: 1px;\n  background-color: var(--search-close-icon-fg-color);\n}\n\n.close-icon:before {\n  transform: rotate(45deg);\n}\n\n.close-icon:after {\n  transform: rotate(-45deg);\n}\n\n\n.MSearchBoxActive #MSearchField {\n    color: var(--search-active-color);\n}\n\n.search-icon {\n    width: 20px;\n    height: 20px;\n    display: inline-block;\n    position: relative;\n    margin-left: 3px;\n}\n\n#MSearchSelectExt.search-icon {\n    width: 10px;\n}\n\n#MSearchSelectExt + input {\n   margin-left: 5px;\n}\n\n.search-icon::before, .search-icon::after {\n    content: '';\n    position: absolute;\n    border: 1.5px solid var(--search-foreground-color);\n    box-sizing: content-box;\n}\n\n.search-icon::before {\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    top: 7px;\n    left: 2px;\n    background: var(--search-background-color);\n}\n\n.search-icon::after {\n    border: 1px solid var(--search-foreground-color);\n    width: 0px;\n    height: 3px;\n    border-radius: 2px;\n    top: 15px;\n    left: 8px;\n    transform: rotate(-45deg);\n    transform-origin: top left;\n}\n\n.search-icon-dropdown {\n    content: '';\n    width: 0;\n    height: 0;\n    border-left: 3px solid transparent;\n    border-right: 3px solid transparent;\n    border-top: 3px solid var(--search-foreground-color);\n    top: 8px;\n    left: 15px;\n    transform: translateX(-50%);\n    position: absolute;\n}\n\n\n\n\n/*---------------- Search filter selection */\n\n#MSearchSelectWindow {\n    display: none;\n    position: absolute;\n    left: 0; top: 0;\n    border: 1px solid var(--search-filter-border-color);\n    background-color: var(--search-filter-background-color);\n    backdrop-filter: var(--search-filter-backdrop-filter);\n    -webkit-backdrop-filter: var(--search-filter-backdrop-filter);\n    z-index: 10001;\n    padding-top: 4px;\n    padding-bottom: 4px;\n    border-radius: 4px;\n}\n\n.SelectItem {\n    font: 8pt var(--font-family-search);\n    padding-left:  2px;\n    padding-right: 12px;\n    border: 0px;\n}\n\nspan.SelectionMark {\n    margin-right: 4px;\n    font-family: var(--font-family-monospace);\n    outline-style: none;\n    text-decoration: none;\n}\n\na.SelectItem {\n    display: block;\n    outline-style: none;\n    color: var(--search-filter-foreground-color);\n    text-decoration: none;\n    padding-left:   6px;\n    padding-right: 12px;\n}\n\na.SelectItem:focus,\na.SelectItem:active {\n    color: var(--search-filter-foreground-color);\n    outline-style: none;\n    text-decoration: none;\n}\n\na.SelectItem:hover {\n    color: var(--search-filter-highlight-text-color);\n    background-color: var(--search-filter-highlight-bg-color);\n    outline-style: none;\n    text-decoration: none;\n    cursor: pointer;\n    display: block;\n}\n\n/*---------------- Search results window */\n\niframe#MSearchResults {\n    /*width: 60ex;*/\n    height: 15em;\n}\n\n@keyframes slideInSearchResults {\n    from {\n        opacity: 0;\n        transform: translate(0, 15px);\n    }\n\n    to {\n        opacity: 1;\n        transform: translate(0, 20px);\n    }\n}\n\n#MSearchResultsWindow {\n    display: none;\n    position: absolute;\n    left: auto;\n    right: 4px;\n    top: 0;\n    border: 1px solid var(--search-results-border-color);\n    background-color: var(--search-results-background-color);\n    backdrop-filter: var(--search-results-backdrop-filter);\n    -webkit-backdrop-filter: var(--search-results-backdrop-filter);\n    z-index:10000;\n    width: 300px;\n    height: 400px;\n    overflow: auto;\n    border-radius: 8px;\n    transform: translate(0, 20px);\n    animation: ease-out 280ms slideInSearchResults;\n    box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);\n}\n\n\n/* ----------------------------------- */\n\n\n#SRIndex {\n    clear:both; \n}\n\n.SREntry {\n    font-size: 10pt;\n    padding-left: 1ex;\n}\n\n.SRPage .SREntry {\n    font-size: 10pt;\n    padding: 2px 5px;\n}\n\ndiv.SRPage {\n    margin: 5px 2px;\n    /*background-color: var(--search-results-background-color);*/\n}\n\n.SRChildren {\n    padding-left: 3ex; padding-bottom: .5em \n}\n\n.SRPage .SRChildren {\n    display: none;\n}\n\n.SRSymbol {\n    font-weight: bold;\n    color: var(--search-results-foreground-color);\n    font-family: var(--font-family-search);\n    text-decoration: none;\n    outline: none;\n}\n\na.SRScope {\n    display: block;\n    color: var(--search-results-foreground-color);\n    font-family: var(--font-family-search);\n    font-size: 8pt;\n    text-decoration: none;\n    outline: none;\n}\n\na.SRSymbol:focus, a.SRSymbol:active,\na.SRScope:focus, a.SRScope:active {\n    text-decoration: underline;\n}\n\nspan.SRScope {\n    padding-left: 4px;\n    font-family: var(--font-family-search);\n}\n\n.SRPage .SRStatus {\n    padding: 2px 5px;\n    font-size: 8pt;\n    font-style: italic;\n    font-family: var(--font-family-search);\n}\n\n.SRResult {\n    display: none;\n}\n\ndiv.searchresults {\n    margin-left: 10px;\n    margin-right: 10px;\n}\n\n#searchBoxPos1 dark-mode-toggle {\n    margin-top: 4px;\n}\n\n/*---------------- External search page results */\n\n.pages b {\n   color: var(--nav-foreground-color);\n   padding: 5px 5px 3px 5px;\n   background-color: var(--nav-menu-active-bg);\n   border-radius: 4px;\n}\n\n.pages {\n    line-height: 17px;\n    margin-left: 4px;\n    text-decoration: none;\n}\n\n.hl {\n    font-weight: bold;\n}\n\n#searchresults {\n    margin-bottom: 20px;\n}\n\n.searchpages {\n    margin-top: 10px;\n}\n\n"
  },
  {
    "path": "docs/html/search/search.js",
    "content": "/*\n @licstart  The following is the entire license notice for the JavaScript code in this file.\n\n The MIT License (MIT)\n\n Copyright (C) 1997-2020 by Dimitri van Heesch\n\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n and associated documentation files (the \"Software\"), to deal in the Software without restriction,\n including without limitation the rights to use, copy, modify, merge, publish, distribute,\n sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all copies or\n substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n @licend  The above is the entire license notice for the JavaScript code in this file\n */\nconst SEARCH_COOKIE_NAME = ''+'search_grp';\n\nconst searchResults = new SearchResults();\n\n/* A class handling everything associated with the search panel.\n\n   Parameters:\n   name - The name of the global variable that will be\n          storing this instance.  Is needed to be able to set timeouts.\n   resultPath - path to use for external files\n*/\nfunction SearchBox(name, resultsPath, extension) {\n  if (!name || !resultsPath) {  alert(\"Missing parameters to SearchBox.\"); }\n  if (!extension || extension == \"\") { extension = \".html\"; }\n\n  function getXPos(item) {\n    let x = 0;\n    if (item.offsetWidth) {\n      while (item && item!=document.body) {\n        x   += item.offsetLeft;\n        item = item.offsetParent;\n      }\n    }\n    return x;\n  }\n\n  function getYPos(item) {\n    let y = 0;\n    if (item.offsetWidth) {\n      while (item && item!=document.body) {\n        y   += item.offsetTop;\n        item = item.offsetParent;\n      }\n    }\n    return y;\n  }\n\n  // ---------- Instance variables\n  this.name                  = name;\n  this.resultsPath           = resultsPath;\n  this.keyTimeout            = 0;\n  this.keyTimeoutLength      = 500;\n  this.closeSelectionTimeout = 300;\n  this.lastSearchValue       = \"\";\n  this.lastResultsPage       = \"\";\n  this.hideTimeout           = 0;\n  this.searchIndex           = 0;\n  this.searchActive          = false;\n  this.extension             = extension;\n\n  // ----------- DOM Elements\n\n  this.DOMSearchField              = () => document.getElementById(\"MSearchField\");\n  this.DOMSearchSelect             = () => document.getElementById(\"MSearchSelect\");\n  this.DOMSearchSelectWindow       = () => document.getElementById(\"MSearchSelectWindow\");\n  this.DOMPopupSearchResults       = () => document.getElementById(\"MSearchResults\");\n  this.DOMPopupSearchResultsWindow = () => document.getElementById(\"MSearchResultsWindow\");\n  this.DOMSearchClose              = () => document.getElementById(\"MSearchClose\");\n  this.DOMSearchBox                = () => document.getElementById(\"MSearchBox\");\n\n  // ------------ Event Handlers\n\n  // Called when focus is added or removed from the search field.\n  this.OnSearchFieldFocus = function(isActive) {\n    this.Activate(isActive);\n  }\n\n  this.OnSearchSelectShow = function() {\n    const searchSelectWindow = this.DOMSearchSelectWindow();\n    const searchField        = this.DOMSearchSelect();\n\n    const left = getXPos(searchField);\n    const top  = getYPos(searchField) + searchField.offsetHeight;\n\n    // show search selection popup\n    searchSelectWindow.style.display='block';\n    searchSelectWindow.style.left =  left + 'px';\n    searchSelectWindow.style.top  =  top  + 'px';\n\n    // stop selection hide timer\n    if (this.hideTimeout) {\n      clearTimeout(this.hideTimeout);\n      this.hideTimeout=0;\n    }\n    return false; // to avoid \"image drag\" default event\n  }\n\n  this.OnSearchSelectHide = function() {\n    this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this),\n                                  this.closeSelectionTimeout);\n  }\n\n  // Called when the content of the search field is changed.\n  this.OnSearchFieldChange = function(evt) {\n    if (this.keyTimeout) { // kill running timer\n      clearTimeout(this.keyTimeout);\n      this.keyTimeout = 0;\n    }\n\n    const e = evt ? evt : window.event; // for IE\n    if (e.keyCode==40 || e.keyCode==13) {\n      if (e.shiftKey==1) {\n        this.OnSearchSelectShow();\n        const win=this.DOMSearchSelectWindow();\n        for (let i=0;i<win.childNodes.length;i++) {\n          const child = win.childNodes[i]; // get span within a\n          if (child.className=='SelectItem') {\n            child.focus();\n            return;\n          }\n        }\n        return;\n      } else {\n        const elem = searchResults.NavNext(0);\n        if (elem) elem.focus();\n      }\n    } else if (e.keyCode==27) { // Escape out of the search field\n      e.stopPropagation();\n      this.DOMSearchField().blur();\n      this.DOMPopupSearchResultsWindow().style.display = 'none';\n      this.DOMSearchClose().style.display = 'none';\n      this.lastSearchValue = '';\n      this.Activate(false);\n      return;\n    }\n\n    // strip whitespaces\n    const searchValue = this.DOMSearchField().value.replace(/ +/g, \"\");\n\n    if (searchValue != this.lastSearchValue) { // search value has changed\n      if (searchValue != \"\") { // non-empty search\n        // set timer for search update\n        this.keyTimeout = setTimeout(this.Search.bind(this), this.keyTimeoutLength);\n      } else { // empty search field\n        this.DOMPopupSearchResultsWindow().style.display = 'none';\n        this.DOMSearchClose().style.display = 'none';\n        this.lastSearchValue = '';\n      }\n    }\n  }\n\n  this.SelectItemCount = function() {\n    let count=0;\n    const win=this.DOMSearchSelectWindow();\n    for (let i=0;i<win.childNodes.length;i++) {\n      const child = win.childNodes[i]; // get span within a\n      if (child.className=='SelectItem') {\n        count++;\n      }\n    }\n    return count;\n  }\n\n  this.GetSelectionIdByName = function(name) {\n    let j=0;\n    const win=this.DOMSearchSelectWindow();\n    for (let i=0;i<win.childNodes.length;i++) {\n      const child = win.childNodes[i];\n      if (child.className=='SelectItem') {\n        if (child.childNodes[1].nodeValue==name) {\n          return j;\n        }\n        j++;\n      }\n    }\n    return 0;\n  }\n\n  this.SelectItemSet = function(id) {\n    let j=0;\n    const win=this.DOMSearchSelectWindow();\n    for (let i=0;i<win.childNodes.length;i++) {\n      const child = win.childNodes[i]; // get span within a\n      if (child.className=='SelectItem') {\n        const node = child.firstChild;\n        if (j==id) {\n          node.innerHTML='&#8226;';\n          Cookie.writeSetting(SEARCH_COOKIE_NAME, child.childNodes[1].nodeValue, 0)\n        } else {\n          node.innerHTML='&#160;';\n        }\n        j++;\n      }\n    }\n  }\n\n  // Called when an search filter selection is made.\n  // set item with index id as the active item\n  this.OnSelectItem = function(id) {\n    this.searchIndex = id;\n    this.SelectItemSet(id);\n    const searchValue = this.DOMSearchField().value.replace(/ +/g, \"\");\n    if (searchValue!=\"\" && this.searchActive) { // something was found -> do a search\n      this.Search();\n    }\n  }\n\n  this.OnSearchSelectKey = function(evt) {\n    const e = (evt) ? evt : window.event; // for IE\n    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) { // Down\n      this.searchIndex++;\n      this.OnSelectItem(this.searchIndex);\n    } else if (e.keyCode==38 && this.searchIndex>0) { // Up\n      this.searchIndex--;\n      this.OnSelectItem(this.searchIndex);\n    } else if (e.keyCode==13 || e.keyCode==27) {\n      e.stopPropagation();\n      this.OnSelectItem(this.searchIndex);\n      this.CloseSelectionWindow();\n      this.DOMSearchField().focus();\n    }\n    return false;\n  }\n\n  // --------- Actions\n\n  // Closes the results window.\n  this.CloseResultsWindow = function() {\n    this.DOMPopupSearchResultsWindow().style.display = 'none';\n    this.DOMSearchClose().style.display = 'none';\n    this.Activate(false);\n  }\n\n  this.CloseSelectionWindow = function() {\n    this.DOMSearchSelectWindow().style.display = 'none';\n  }\n\n  // Performs a search.\n  this.Search = function() {\n    this.keyTimeout = 0;\n\n    // strip leading whitespace\n    const searchValue = this.DOMSearchField().value.replace(/^ +/, \"\");\n\n    const code = searchValue.toLowerCase().charCodeAt(0);\n    let idxChar = searchValue.substr(0, 1).toLowerCase();\n    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair\n      idxChar = searchValue.substr(0, 2);\n    }\n\n    let jsFile;\n    let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);\n    if (idx!=-1) {\n      const hexCode=idx.toString(16);\n      jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js';\n    }\n\n    const loadJS = function(url, impl, loc) {\n      const scriptTag = document.createElement('script');\n      scriptTag.src = url;\n      scriptTag.onload = impl;\n      scriptTag.onreadystatechange = impl;\n      loc.appendChild(scriptTag);\n    }\n\n    const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();\n    const domSearchBox = this.DOMSearchBox();\n    const domPopupSearchResults = this.DOMPopupSearchResults();\n    const domSearchClose = this.DOMSearchClose();\n    const resultsPath = this.resultsPath;\n\n    const handleResults = function() {\n      document.getElementById(\"Loading\").style.display=\"none\";\n      if (typeof searchData !== 'undefined') {\n        createResults(resultsPath);\n        document.getElementById(\"NoMatches\").style.display=\"none\";\n      }\n\n      if (idx!=-1) {\n        searchResults.Search(searchValue);\n      } else { // no file with search results => force empty search results\n        searchResults.Search('====');\n      }\n\n      if (domPopupSearchResultsWindow.style.display!='block') {\n        domSearchClose.style.display = 'inline-block';\n        let left = getXPos(domSearchBox) + 150;\n        let top  = getYPos(domSearchBox) + 20;\n        domPopupSearchResultsWindow.style.display = 'block';\n        left -= domPopupSearchResults.offsetWidth;\n        const maxWidth  = document.body.clientWidth;\n        const maxHeight = document.body.clientHeight;\n        let width = 300;\n        if (left<10) left=10;\n        if (width+left+8>maxWidth) width=maxWidth-left-8;\n        let height = 400;\n        if (height+top+8>maxHeight) height=maxHeight-top-8;\n        domPopupSearchResultsWindow.style.top     = top  + 'px';\n        domPopupSearchResultsWindow.style.left    = left + 'px';\n        domPopupSearchResultsWindow.style.width   = width + 'px';\n        domPopupSearchResultsWindow.style.height  = height + 'px';\n      }\n    }\n\n    if (jsFile) {\n      loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow());\n    } else {\n      handleResults();\n    }\n\n    this.lastSearchValue = searchValue;\n  }\n\n  // -------- Activation Functions\n\n  // Activates or deactivates the search panel, resetting things to\n  // their default values if necessary.\n  this.Activate = function(isActive) {\n    if (isActive || // open it\n      this.DOMPopupSearchResultsWindow().style.display == 'block'\n    ) {\n      this.DOMSearchBox().className = 'MSearchBoxActive';\n      this.searchActive = true;\n    } else if (!isActive) { // directly remove the panel\n      this.DOMSearchBox().className = 'MSearchBoxInactive';\n      this.searchActive             = false;\n      this.lastSearchValue          = ''\n      this.lastResultsPage          = '';\n      this.DOMSearchField().value   = '';\n    }\n  }\n}\n\n// -----------------------------------------------------------------------\n\n// The class that handles everything on the search results page.\nfunction SearchResults() {\n\n  function convertToId(search) {\n    let result = '';\n    for (let i=0;i<search.length;i++) {\n      const c = search.charAt(i);\n      const cn = c.charCodeAt(0);\n      if (c.match(/[a-z0-9\\u0080-\\uFFFF]/)) {\n        result+=c;\n      } else if (cn<16) {\n        result+=\"_0\"+cn.toString(16);\n      } else {\n        result+=\"_\"+cn.toString(16);\n      }\n    }\n    return result;\n  }\n\n  // The number of matches from the last run of <Search()>.\n  this.lastMatchCount = 0;\n  this.lastKey = 0;\n  this.repeatOn = false;\n\n  // Toggles the visibility of the passed element ID.\n  this.FindChildElement = function(id) {\n    const parentElement = document.getElementById(id);\n    let element = parentElement.firstChild;\n\n    while (element && element!=parentElement) {\n      if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') {\n        return element;\n      }\n\n      if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) {\n        element = element.firstChild;\n      } else if (element.nextSibling) {\n        element = element.nextSibling;\n      } else {\n        do {\n          element = element.parentNode;\n        }\n        while (element && element!=parentElement && !element.nextSibling);\n\n        if (element && element!=parentElement) {\n          element = element.nextSibling;\n        }\n      }\n    }\n  }\n\n  this.Toggle = function(id) {\n    const element = this.FindChildElement(id);\n    if (element) {\n      if (element.style.display == 'block') {\n        element.style.display = 'none';\n      } else {\n        element.style.display = 'block';\n      }\n    }\n  }\n\n  // Searches for the passed string.  If there is no parameter,\n  // it takes it from the URL query.\n  //\n  // Always returns true, since other documents may try to call it\n  // and that may or may not be possible.\n  this.Search = function(search) {\n    if (!search) { // get search word from URL\n      search = window.location.search;\n      search = search.substring(1);  // Remove the leading '?'\n      search = unescape(search);\n    }\n\n    search = search.replace(/^ +/, \"\"); // strip leading spaces\n    search = search.replace(/ +$/, \"\"); // strip trailing spaces\n    search = search.toLowerCase();\n    search = convertToId(search);\n\n    const resultRows = document.getElementsByTagName(\"div\");\n    let matches = 0;\n\n    let i = 0;\n    while (i < resultRows.length) {\n      const row = resultRows.item(i);\n      if (row.className == \"SRResult\") {\n        let rowMatchName = row.id.toLowerCase();\n        rowMatchName = rowMatchName.replace(/^sr\\d*_/, ''); // strip 'sr123_'\n\n        if (search.length<=rowMatchName.length &&\n          rowMatchName.substr(0, search.length)==search) {\n          row.style.display = 'block';\n          matches++;\n        } else {\n          row.style.display = 'none';\n        }\n      }\n      i++;\n    }\n    document.getElementById(\"Searching\").style.display='none';\n    if (matches == 0) { // no results\n      document.getElementById(\"NoMatches\").style.display='block';\n    } else { // at least one result\n      document.getElementById(\"NoMatches\").style.display='none';\n    }\n    this.lastMatchCount = matches;\n    return true;\n  }\n\n  // return the first item with index index or higher that is visible\n  this.NavNext = function(index) {\n    let focusItem;\n    for (;;) {\n      const focusName = 'Item'+index;\n      focusItem = document.getElementById(focusName);\n      if (focusItem && focusItem.parentNode.parentNode.style.display=='block') {\n        break;\n      } else if (!focusItem) { // last element\n        break;\n      }\n      focusItem=null;\n      index++;\n    }\n    return focusItem;\n  }\n\n  this.NavPrev = function(index) {\n    let focusItem;\n    for (;;) {\n      const focusName = 'Item'+index;\n      focusItem = document.getElementById(focusName);\n      if (focusItem && focusItem.parentNode.parentNode.style.display=='block') {\n        break;\n      } else if (!focusItem) { // last element\n        break;\n      }\n      focusItem=null;\n      index--;\n    }\n    return focusItem;\n  }\n\n  this.ProcessKeys = function(e) {\n    if (e.type == \"keydown\") {\n      this.repeatOn = false;\n      this.lastKey = e.keyCode;\n    } else if (e.type == \"keypress\") {\n      if (!this.repeatOn) {\n        if (this.lastKey) this.repeatOn = true;\n        return false; // ignore first keypress after keydown\n      }\n    } else if (e.type == \"keyup\") {\n      this.lastKey = 0;\n      this.repeatOn = false;\n    }\n    return this.lastKey!=0;\n  }\n\n  this.Nav = function(evt,itemIndex) {\n    const e  = (evt) ? evt : window.event; // for IE\n    if (e.keyCode==13) return true;\n    if (!this.ProcessKeys(e)) return false;\n\n    if (this.lastKey==38) { // Up\n      const newIndex = itemIndex-1;\n      let focusItem = this.NavPrev(newIndex);\n      if (focusItem) {\n        let child = this.FindChildElement(focusItem.parentNode.parentNode.id);\n        if (child && child.style.display == 'block') { // children visible\n          let n=0;\n          let tmpElem;\n          for (;;) { // search for last child\n            tmpElem = document.getElementById('Item'+newIndex+'_c'+n);\n            if (tmpElem) {\n              focusItem = tmpElem;\n            } else { // found it!\n              break;\n            }\n            n++;\n          }\n        }\n      }\n      if (focusItem) {\n        focusItem.focus();\n      } else { // return focus to search field\n        document.getElementById(\"MSearchField\").focus();\n      }\n    } else if (this.lastKey==40) { // Down\n      const newIndex = itemIndex+1;\n      let focusItem;\n      const item = document.getElementById('Item'+itemIndex);\n      const elem = this.FindChildElement(item.parentNode.parentNode.id);\n      if (elem && elem.style.display == 'block') { // children visible\n        focusItem = document.getElementById('Item'+itemIndex+'_c0');\n      }\n      if (!focusItem) focusItem = this.NavNext(newIndex);\n      if (focusItem)  focusItem.focus();\n    } else if (this.lastKey==39) { // Right\n      const item = document.getElementById('Item'+itemIndex);\n      const elem = this.FindChildElement(item.parentNode.parentNode.id);\n      if (elem) elem.style.display = 'block';\n    } else if (this.lastKey==37) { // Left\n      const item = document.getElementById('Item'+itemIndex);\n      const elem = this.FindChildElement(item.parentNode.parentNode.id);\n      if (elem) elem.style.display = 'none';\n    } else if (this.lastKey==27) { // Escape\n      e.stopPropagation();\n      searchBox.CloseResultsWindow();\n      document.getElementById(\"MSearchField\").focus();\n    } else if (this.lastKey==13) { // Enter\n      return true;\n    }\n    return false;\n  }\n\n  this.NavChild = function(evt,itemIndex,childIndex) {\n    const e  = (evt) ? evt : window.event; // for IE\n    if (e.keyCode==13) return true;\n    if (!this.ProcessKeys(e)) return false;\n\n    if (this.lastKey==38) { // Up\n      if (childIndex>0) {\n        const newIndex = childIndex-1;\n        document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();\n      } else { // already at first child, jump to parent\n        document.getElementById('Item'+itemIndex).focus();\n      }\n    } else if (this.lastKey==40) { // Down\n      const newIndex = childIndex+1;\n      let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);\n      if (!elem) { // last child, jump to parent next parent\n        elem = this.NavNext(itemIndex+1);\n      }\n      if (elem) {\n        elem.focus();\n      }\n    } else if (this.lastKey==27) { // Escape\n      e.stopPropagation();\n      searchBox.CloseResultsWindow();\n      document.getElementById(\"MSearchField\").focus();\n    } else if (this.lastKey==13) { // Enter\n      return true;\n    }\n    return false;\n  }\n}\n\nfunction createResults(resultsPath) {\n\n  function setKeyActions(elem,action) {\n    elem.setAttribute('onkeydown',action);\n    elem.setAttribute('onkeypress',action);\n    elem.setAttribute('onkeyup',action);\n  }\n\n  function setClassAttr(elem,attr) {\n    elem.setAttribute('class',attr);\n    elem.setAttribute('className',attr);\n  }\n\n  const decodeHtml = (html) => {\n    const txt = document.createElement(\"textarea\");\n    txt.innerHTML = html;\n    return txt.value;\n  };\n\n  const results = document.getElementById(\"SRResults\");\n  results.innerHTML = '';\n  searchData.forEach((elem,index) => {\n    const id = elem[0];\n    const srResult = document.createElement('div');\n    srResult.setAttribute('id','SR_'+id);\n    setClassAttr(srResult,'SRResult');\n    const srEntry = document.createElement('div');\n    setClassAttr(srEntry,'SREntry');\n    const srLink = document.createElement('a');\n    srLink.setAttribute('id','Item'+index);\n    setKeyActions(srLink,'return searchResults.Nav(event,'+index+')');\n    setClassAttr(srLink,'SRSymbol');\n    srLink.innerHTML = decodeHtml(elem[1][0]);\n    srEntry.appendChild(srLink);\n    if (elem[1].length==2) { // single result\n      if (elem[1][1][0].startsWith('http://') || elem[1][1][0].startsWith('https://')) { // absolute path\n        srLink.setAttribute('href',elem[1][1][0]);\n      } else { // relative path\n        srLink.setAttribute('href',resultsPath+elem[1][1][0]);\n      }\n      srLink.setAttribute('onclick','searchBox.CloseResultsWindow()');\n      if (elem[1][1][1]) {\n       srLink.setAttribute('target','_parent');\n      } else {\n       srLink.setAttribute('target','_blank');\n      }\n      const srScope = document.createElement('span');\n      setClassAttr(srScope,'SRScope');\n      srScope.innerHTML = decodeHtml(elem[1][1][2]);\n      srEntry.appendChild(srScope);\n    } else { // multiple results\n      srLink.setAttribute('href','javascript:searchResults.Toggle(\"SR_'+id+'\")');\n      const srChildren = document.createElement('div');\n      setClassAttr(srChildren,'SRChildren');\n      for (let c=0; c<elem[1].length-1; c++) {\n        const srChild = document.createElement('a');\n        srChild.setAttribute('id','Item'+index+'_c'+c);\n        setKeyActions(srChild,'return searchResults.NavChild(event,'+index+','+c+')');\n        setClassAttr(srChild,'SRScope');\n        if (elem[1][c+1][0].startsWith('http://') || elem[1][c+1][0].startsWith('https://')) { // absolute path\n          srChild.setAttribute('href',elem[1][c+1][0]);\n        } else { // relative path\n          srChild.setAttribute('href',resultsPath+elem[1][c+1][0]);\n        }\n        srChild.setAttribute('onclick','searchBox.CloseResultsWindow()');\n        if (elem[1][c+1][1]) {\n         srChild.setAttribute('target','_parent');\n        } else {\n         srChild.setAttribute('target','_blank');\n        }\n        srChild.innerHTML = decodeHtml(elem[1][c+1][2]);\n        srChildren.appendChild(srChild);\n      }\n      srEntry.appendChild(srChildren);\n    }\n    srResult.appendChild(srEntry);\n    results.appendChild(srResult);\n  });\n}\n\nfunction init_search() {\n  const results = document.getElementById(\"MSearchSelectWindow\");\n\n  results.tabIndex=0;\n  for (let key in indexSectionLabels) {\n    const link = document.createElement('a');\n    link.setAttribute('class','SelectItem');\n    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');\n    link.href='javascript:void(0)';\n    link.innerHTML='<span class=\"SelectionMark\">&#160;</span>'+indexSectionLabels[key];\n    results.appendChild(link);\n  }\n\n  const input = document.getElementById(\"MSearchSelect\");\n  const searchSelectWindow = document.getElementById(\"MSearchSelectWindow\");\n  input.tabIndex=0;\n  input.addEventListener(\"keydown\", function(event) {\n    if (event.keyCode==13 || event.keyCode==40) {\n      event.preventDefault();\n      if (searchSelectWindow.style.display == 'block') {\n        searchBox.CloseSelectionWindow();\n      } else {\n        searchBox.OnSearchSelectShow();\n        searchBox.DOMSearchSelectWindow().focus();\n      }\n    }\n  });\n  const name = Cookie.readSetting(SEARCH_COOKIE_NAME,0);\n  const id = searchBox.GetSelectionIdByName(name);\n  searchBox.OnSelectItem(id);\n}\n/* @license-end */\n"
  },
  {
    "path": "docs/html/search/searchdata.js",
    "content": "var indexSectionsWithContent =\n{\n  0: \"abcdefghijklmnoprstuvw\",\n  1: \"abcehiprsw\",\n  2: \"ns\",\n  3: \"bcdehimnprsw\",\n  4: \"abcdefghijkloprstuvw\",\n  5: \"de\",\n  6: \"acf\",\n  7: \"abdefghilnprsu\",\n  8: \"abcdefghijklmnoprstuvw\",\n  9: \"cpr\",\n  10: \"c\"\n};\n\nvar indexSectionNames =\n{\n  0: \"all\",\n  1: \"classes\",\n  2: \"namespaces\",\n  3: \"files\",\n  4: \"functions\",\n  5: \"variables\",\n  6: \"enums\",\n  7: \"enumvalues\",\n  8: \"properties\",\n  9: \"events\",\n  10: \"pages\"\n};\n\nvar indexSectionLabels =\n{\n  0: \"All\",\n  1: \"Classes\",\n  2: \"Namespaces\",\n  3: \"Files\",\n  4: \"Functions\",\n  5: \"Variables\",\n  6: \"Enumerations\",\n  7: \"Enumerator\",\n  8: \"Properties\",\n  9: \"Events\",\n  10: \"Pages\"\n};\n\n"
  },
  {
    "path": "docs/html/search/variables_0.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_0.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/variables_0.js",
    "content": "var searchData=\n[\n  ['defaultconnecttimeout_0',['DefaultConnectTimeout',['../class_nakama_1_1_socket.html#ae902438fa7e36bfa60a9c7c062218216',1,'Nakama::Socket']]],\n  ['defaultexpiredtimespan_1',['DefaultExpiredTimeSpan',['../class_nakama_1_1_client.html#a3e646cbc75def08c741b231588f2a621',1,'Nakama.Client.DefaultExpiredTimeSpan'],['../class_satori_1_1_client.html#a836edc3382ac9e74a5d460d74d1e38a0',1,'Satori.Client.DefaultExpiredTimeSpan']]],\n  ['defaulthost_2',['DefaultHost',['../class_nakama_1_1_client.html#adfd3245cf5d85e2f66518dbcbcc88d35',1,'Nakama::Client']]],\n  ['defaultport_3',['DefaultPort',['../class_nakama_1_1_client.html#ae484d126d47ce2306242951d21e35756',1,'Nakama::Client']]],\n  ['defaultscheme_4',['DefaultScheme',['../class_nakama_1_1_client.html#a339d6ad5a6a8571aa36bc3fac5bde493',1,'Nakama::Client']]],\n  ['defaultsendtimeout_5',['DefaultSendTimeout',['../class_nakama_1_1_socket.html#a533161073904d1f02ea89edef79cfee7',1,'Nakama::Socket']]],\n  ['defaulttimeout_6',['DefaultTimeout',['../class_satori_1_1_client.html#a1b8575bc43602e11fa892861735014de',1,'Satori::Client']]]\n];\n"
  },
  {
    "path": "docs/html/search/variables_1.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head><title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n<meta name=\"generator\" content=\"Doxygen 1.9.2\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"search.css\"/>\n<script type=\"text/javascript\" src=\"variables_1.js\"></script>\n<script type=\"text/javascript\" src=\"search.js\"></script>\n</head>\n<body class=\"SRPage\">\n<div id=\"SRIndex\">\n<div class=\"SRStatus\" id=\"Loading\">Loading...</div>\n<div id=\"SRResults\"></div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ncreateResults();\n/* @license-end */\n</script>\n<div class=\"SRStatus\" id=\"Searching\">Searching...</div>\n<div class=\"SRStatus\" id=\"NoMatches\">No Matches</div>\n<script type=\"text/javascript\">\n/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */\ndocument.getElementById(\"Loading\").style.display=\"none\";\ndocument.getElementById(\"NoMatches\").style.display=\"none\";\nvar searchResults = new SearchResults(\"searchResults\");\nsearchResults.Search();\nwindow.addEventListener(\"message\", function(event) {\n  if (event.data == \"take_focus\") {\n    var elem = searchResults.NavNext(0);\n    if (elem) elem.focus();\n  }\n});\n/* @license-end */\n</script>\n</div>\n</body>\n</html>\n"
  },
  {
    "path": "docs/html/search/variables_1.js",
    "content": "var searchData=\n[\n  ['epoch_0',['Epoch',['../class_nakama_1_1_session.html#ae2346092b17fd6cecea2e5371f748b4f',1,'Nakama.Session.Epoch'],['../class_satori_1_1_session.html#afe8a0d13004ba3878b400d2d4eaf90c4',1,'Satori.Session.Epoch']]]\n];\n"
  },
  {
    "path": "docs/html/tabs.css",
    "content": ".sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:\"\\00a0\";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-color:var(--nav-menu-background-color)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;line-height:36px;text-decoration:none;color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-color:var(--nav-menu-background-color);line-height:36px}.sm-dox a span.sub-arrow{top:15px;right:10px;box-sizing:content-box;padding:0;margin:0;display:inline-block;width:5px;height:5px;background-color:var(--nav-menu-background-color);border-right:2px solid var(--nav-arrow-color);border-bottom:2px solid var(--nav-arrow-color);transform:rotate(45deg);-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 6px}.sm-dox a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px !important}.sm-dox a:hover span.sub-arrow{background-color:var(--nav-menu-active-bg);border-right:2px solid var(--nav-arrow-selected-color);border-bottom:2px solid var(--nav-arrow-selected-color)}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0;padding:3px}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{transform:rotate(-45deg)}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-color:var(--nav-menu-active-bg);border-radius:5px}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:6px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:6px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}}\n"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html><head><meta http-equiv=Refresh content=\"0;url=html/index.html\"></head></html>\n"
  },
  {
    "path": "docs/latex/Makefile",
    "content": "LATEX_CMD?=pdflatex\nMKIDX_CMD?=makeindex\nBIBTEX_CMD?=bibtex\nLATEX_COUNT?=8\nMANUAL_FILE?=refman\n\nall: $(MANUAL_FILE).pdf\n\npdf: $(MANUAL_FILE).pdf\n\n$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex\n\t$(LATEX_CMD) $(MANUAL_FILE)\n\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n\t$(LATEX_CMD) $(MANUAL_FILE)\n\tlatex_count=$(LATEX_COUNT) ; \\\n\twhile egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n\t    do \\\n\t      echo \"Rerunning latex....\" ;\\\n\t      $(LATEX_CMD) $(MANUAL_FILE) ;\\\n\t      latex_count=`expr $$latex_count - 1` ;\\\n\t    done\n\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n\t$(LATEX_CMD) $(MANUAL_FILE)\n\n\nclean:\n\trm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf\n"
  },
  {
    "path": "docs/latex/annotated.tex",
    "content": "\\doxysection{Class List}\nHere are the classes, structs, unions and interfaces with brief descriptions\\+:\\begin{DoxyCompactList}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_api_response_exception}{Nakama.\\+Api\\+Response\\+Exception}} \\\\*An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  }{\\pageref{class_nakama_1_1_api_response_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_console_1_1_api_response_exception}{Nakama.\\+Console.\\+Api\\+Response\\+Exception}} \\\\*An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  }{\\pageref{class_nakama_1_1_console_1_1_api_response_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_api_response_exception}{Satori.\\+Api\\+Response\\+Exception}} \\\\*An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  }{\\pageref{class_satori_1_1_api_response_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}{Nakama.\\+Tests.\\+Api.\\+Authenticate\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_awaited_socket_task_test}{Nakama.\\+Tests.\\+Awaited\\+Socket\\+Task\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_awaited_socket_task_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool}} \\\\*This buffer pool is instance thread safe Use Get\\+Buffer to get a Memory\\+Stream (with a publically accessible buffer) Calling Close on this Memory\\+Stream will clear its internal buffer and return the buffer to the pool for reuse Memory\\+Streams can grow larger than the DEFAULT\\+\\_\\+\\+BUFFER\\+\\_\\+\\+SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_cancel_test}{Nakama.\\+Tests.\\+Cancel\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_cancel_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_client}{Nakama.\\+Client}} \\\\*}{\\pageref{class_nakama_1_1_client}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_client}{Satori.\\+Client}} \\\\*}{\\pageref{class_satori_1_1_client}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_tests_1_1_client_test}{Satori.\\+Tests.\\+Client\\+Test}} }{\\pageref{class_satori_1_1_tests_1_1_client_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Entity\\+Too\\+Large\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_event}{Satori.\\+Event}} \\\\*An event to be published to the server.  }{\\pageref{class_satori_1_1_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_group_test}{Nakama.\\+Tests.\\+Api.\\+Group\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_group_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}{Nakama.\\+Tests.\\+Api.\\+Http\\+Error\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter}{Nakama.\\+Http\\+Request\\+Adapter}} \\\\*HTTP Request adapter which uses the .NET Http\\+Client to send requests.  }{\\pageref{class_nakama_1_1_http_request_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_http_request_adapter}{Satori.\\+Http\\+Request\\+Adapter}} \\\\*HTTP Request adapter which uses the .NET Http\\+Client to send requests.  }{\\pageref{class_satori_1_1_http_request_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{Nakama.\\+IApi\\+Account}} \\\\*A user with additional account details. Always the current user.  }{\\pageref{interface_nakama_1_1_i_api_account}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_apple}{Nakama.\\+IApi\\+Account\\+Apple}} \\\\*Send a Apple Sign In token to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_apple}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_custom}{Nakama.\\+IApi\\+Account\\+Custom}} \\\\*Send a custom ID to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_custom}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_account_device}{Nakama.\\+Console.\\+IApi\\+Account\\+Device}} \\\\*Send a device to the server. Used with authenticate/link/unlink and user.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_account_device}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_device}{Nakama.\\+IApi\\+Account\\+Device}} \\\\*Send a device to the server. Used with authenticate/link/unlink and user.  }{\\pageref{interface_nakama_1_1_i_api_account_device}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_email}{Nakama.\\+IApi\\+Account\\+Email}} \\\\*Send an email with password to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_email}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_facebook}{Nakama.\\+IApi\\+Account\\+Facebook}} \\\\*Send a Facebook token to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_facebook}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_facebook_instant_game}{Nakama.\\+IApi\\+Account\\+Facebook\\+Instant\\+Game}} \\\\*Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_facebook_instant_game}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_game_center}{Nakama.\\+IApi\\+Account\\+Game\\+Center}} \\\\*Send Apple\\textquotesingle{}s Game Center account credentials to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_game_center}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_google}{Nakama.\\+IApi\\+Account\\+Google}} \\\\*Send a Google token to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_google}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_steam}{Nakama.\\+IApi\\+Account\\+Steam}} \\\\*Send a Steam token to the server. Used with authenticate/link/unlink.  }{\\pageref{interface_nakama_1_1_i_api_account_steam}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_logout_request}{Satori.\\+IApi\\+Authenticate\\+Logout\\+Request}} \\\\*Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  }{\\pageref{interface_satori_1_1_i_api_authenticate_logout_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_refresh_request}{Satori.\\+IApi\\+Authenticate\\+Refresh\\+Request}} \\\\*Authenticate against the server with a refresh token.  }{\\pageref{interface_satori_1_1_i_api_authenticate_refresh_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_request}{Satori.\\+IApi\\+Authenticate\\+Request}} \\\\*Authentication request  }{\\pageref{interface_satori_1_1_i_api_authenticate_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_channel_message}{Nakama.\\+Console.\\+IApi\\+Channel\\+Message}} \\\\*A message sent on a channel.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_channel_message}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message}{Nakama.\\+IApi\\+Channel\\+Message}} \\\\*A message sent on a channel.  }{\\pageref{interface_nakama_1_1_i_api_channel_message}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{Nakama.\\+IApi\\+Channel\\+Message\\+List}} \\\\*A list of channel messages, usually a result of a list operation.  }{\\pageref{interface_nakama_1_1_i_api_channel_message_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_create_group_request}{Nakama.\\+IApi\\+Create\\+Group\\+Request}} \\\\*Create a group with the current user as owner.  }{\\pageref{interface_nakama_1_1_i_api_create_group_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id}{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id}} \\\\*Storage objects to delete.  }{\\pageref{interface_nakama_1_1_i_api_delete_storage_object_id}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_objects_request}{Nakama.\\+IApi\\+Delete\\+Storage\\+Objects\\+Request}} \\\\*Batch delete storage objects.  }{\\pageref{interface_nakama_1_1_i_api_delete_storage_objects_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_event}{Nakama.\\+IApi\\+Event}} \\\\*Represents an event to be passed through the server to registered event handlers.  }{\\pageref{interface_nakama_1_1_i_api_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_event}{Satori.\\+IApi\\+Event}} \\\\*A single event. Usually, but not necessarily, part of a batch.  }{\\pageref{interface_satori_1_1_i_api_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_event_request}{Satori.\\+IApi\\+Event\\+Request}} \\\\*Publish an event to the server  }{\\pageref{interface_satori_1_1_i_api_event_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment}{Satori.\\+IApi\\+Experiment}} \\\\*An experiment that this user is partaking.  }{\\pageref{interface_satori_1_1_i_api_experiment}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{Satori.\\+IApi\\+Experiment\\+List}} \\\\*All experiments that this identity is involved with.  }{\\pageref{interface_satori_1_1_i_api_experiment_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{Satori.\\+IApi\\+Flag}} \\\\*Feature flag available to the identity.  }{\\pageref{interface_satori_1_1_i_api_flag}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{Satori.\\+IApi\\+Flag\\+List}} \\\\*All flags available to the identity  }{\\pageref{interface_satori_1_1_i_api_flag_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend}{Nakama.\\+Console.\\+IApi\\+Friend}} \\\\*A friend of a user.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_friend}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend}{Nakama.\\+IApi\\+Friend}} \\\\*A friend of a user.  }{\\pageref{interface_nakama_1_1_i_api_friend}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend_list}{Nakama.\\+Console.\\+IApi\\+Friend\\+List}} \\\\*A collection of zero or more friends of the user.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_friend_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{Nakama.\\+IApi\\+Friend\\+List}} \\\\*A collection of zero or more friends of the user.  }{\\pageref{interface_nakama_1_1_i_api_friend_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_group}{Nakama.\\+Console.\\+IApi\\+Group}} \\\\*A group in the server.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_group}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{Nakama.\\+IApi\\+Group}} \\\\*A group in the server.  }{\\pageref{interface_nakama_1_1_i_api_group}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{Nakama.\\+IApi\\+Group\\+List}} \\\\*One or more groups returned from a listing operation.  }{\\pageref{interface_nakama_1_1_i_api_group_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{Nakama.\\+IApi\\+Group\\+User\\+List}} \\\\*A list of users belonging to a group, along with their role.  }{\\pageref{interface_nakama_1_1_i_api_group_user_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_identify_request}{Satori.\\+IApi\\+Identify\\+Request}} \\\\*Enrich/replace the current session with a new ID.  }{\\pageref{interface_satori_1_1_i_api_identify_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}{Nakama.\\+Console.\\+IApi\\+Leaderboard\\+Record}} \\\\*Represents a complete leaderboard record with all scores and associated metadata.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{Nakama.\\+IApi\\+Leaderboard\\+Record}} \\\\*Represents a complete leaderboard record with all scores and associated metadata.  }{\\pageref{interface_nakama_1_1_i_api_leaderboard_record}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{Nakama.\\+IApi\\+Leaderboard\\+Record\\+List}} \\\\*A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  }{\\pageref{interface_nakama_1_1_i_api_leaderboard_record_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_link_steam_request}{Nakama.\\+IApi\\+Link\\+Steam\\+Request}} \\\\*Link Steam to the current user\\textquotesingle{}s account.  }{\\pageref{interface_nakama_1_1_i_api_link_steam_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_list_subscriptions_request}{Nakama.\\+IApi\\+List\\+Subscriptions\\+Request}} \\\\*List user subscriptions.  }{\\pageref{interface_nakama_1_1_i_api_list_subscriptions_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event}{Satori.\\+IApi\\+Live\\+Event}} \\\\*A single live event.  }{\\pageref{interface_satori_1_1_i_api_live_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{Satori.\\+IApi\\+Live\\+Event\\+List}} \\\\*List of Live events.  }{\\pageref{interface_satori_1_1_i_api_live_event_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_match}{Nakama.\\+IApi\\+Match}} \\\\*Represents a realtime match.  }{\\pageref{interface_nakama_1_1_i_api_match}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{Nakama.\\+IApi\\+Match\\+List}} \\\\*A list of realtime matches.  }{\\pageref{interface_nakama_1_1_i_api_match_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_notification}{Nakama.\\+Console.\\+IApi\\+Notification}} \\\\*A notification in the server.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_notification}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification}{Nakama.\\+IApi\\+Notification}} \\\\*A notification in the server.  }{\\pageref{interface_nakama_1_1_i_api_notification}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{Nakama.\\+IApi\\+Notification\\+List}} \\\\*A collection of zero or more notifications.  }{\\pageref{interface_nakama_1_1_i_api_notification_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{Satori.\\+IApi\\+Properties}} \\\\*Properties associated with an identity.  }{\\pageref{interface_satori_1_1_i_api_properties}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id}} \\\\*Storage objects to get.  }{\\pageref{interface_nakama_1_1_i_api_read_storage_object_id}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_objects_request}{Nakama.\\+IApi\\+Read\\+Storage\\+Objects\\+Request}} \\\\*Batch get storage objects.  }{\\pageref{interface_nakama_1_1_i_api_read_storage_objects_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{Nakama.\\+IApi\\+Rpc}} \\\\*Execute an Lua function on the server.  }{\\pageref{interface_nakama_1_1_i_api_rpc}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_session}{Nakama.\\+IApi\\+Session}} \\\\*A user\\textquotesingle{}s session used to authenticate messages.  }{\\pageref{interface_nakama_1_1_i_api_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_session}{Satori.\\+IApi\\+Session}} \\\\*A session.  }{\\pageref{interface_satori_1_1_i_api_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_session_logout_request}{Nakama.\\+IApi\\+Session\\+Logout\\+Request}} \\\\*Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  }{\\pageref{interface_nakama_1_1_i_api_session_logout_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_session_refresh_request}{Nakama.\\+IApi\\+Session\\+Refresh\\+Request}} \\\\*Authenticate against the server with a refresh token.  }{\\pageref{interface_nakama_1_1_i_api_session_refresh_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object}{Nakama.\\+Console.\\+IApi\\+Storage\\+Object}} \\\\*An object within the storage engine.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_storage_object}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object}{Nakama.\\+IApi\\+Storage\\+Object}} \\\\*An object within the storage engine.  }{\\pageref{interface_nakama_1_1_i_api_storage_object}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}{Nakama.\\+Console.\\+IApi\\+Storage\\+Object\\+Ack}} \\\\*A storage acknowledgement.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_ack}{Nakama.\\+IApi\\+Storage\\+Object\\+Ack}} \\\\*A storage acknowledgement.  }{\\pageref{interface_nakama_1_1_i_api_storage_object_ack}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{Nakama.\\+IApi\\+Storage\\+Object\\+Acks}} \\\\*Batch of acknowledgements for the storage object write.  }{\\pageref{interface_nakama_1_1_i_api_storage_object_acks}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{Nakama.\\+IApi\\+Storage\\+Object\\+List}} \\\\*List of storage objects.  }{\\pageref{interface_nakama_1_1_i_api_storage_object_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{Nakama.\\+IApi\\+Storage\\+Objects}} \\\\*Batch of storage objects.  }{\\pageref{interface_nakama_1_1_i_api_storage_objects}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{Nakama.\\+IApi\\+Subscription\\+List}} \\\\*A list of validated subscriptions stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  }{\\pageref{interface_nakama_1_1_i_api_subscription_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament}{Nakama.\\+IApi\\+Tournament}} \\\\*A tournament on the server.  }{\\pageref{interface_nakama_1_1_i_api_tournament}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{Nakama.\\+IApi\\+Tournament\\+List}} \\\\*A list of tournaments.  }{\\pageref{interface_nakama_1_1_i_api_tournament_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{Nakama.\\+IApi\\+Tournament\\+Record\\+List}} \\\\*A set of tournament records which may be part of a tournament records page or a batch of individual records.  }{\\pageref{interface_nakama_1_1_i_api_tournament_record_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_update_account_request}{Nakama.\\+IApi\\+Update\\+Account\\+Request}} \\\\*Update a user\\textquotesingle{}s account details.  }{\\pageref{interface_nakama_1_1_i_api_update_account_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_update_group_request}{Nakama.\\+IApi\\+Update\\+Group\\+Request}} \\\\*Update fields in a given group.  }{\\pageref{interface_nakama_1_1_i_api_update_group_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_api_update_properties_request}{Satori.\\+IApi\\+Update\\+Properties\\+Request}} \\\\*Update Properties associated with this identity.  }{\\pageref{interface_satori_1_1_i_api_update_properties_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user}{Nakama.\\+Console.\\+IApi\\+User}} \\\\*A user in the server.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_user}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{Nakama.\\+IApi\\+User}} \\\\*A user in the server.  }{\\pageref{interface_nakama_1_1_i_api_user}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user_group_list}{Nakama.\\+Console.\\+IApi\\+User\\+Group\\+List}} \\\\*A list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  }{\\pageref{interface_nakama_1_1_console_1_1_i_api_user_group_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{Nakama.\\+IApi\\+User\\+Group\\+List}} \\\\*A list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  }{\\pageref{interface_nakama_1_1_i_api_user_group_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{Nakama.\\+IApi\\+Users}} \\\\*A collection of zero or more users.  }{\\pageref{interface_nakama_1_1_i_api_users}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_purchase}{Nakama.\\+IApi\\+Validated\\+Purchase}} \\\\*Validated Purchase stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  }{\\pageref{interface_nakama_1_1_i_api_validated_purchase}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{Nakama.\\+IApi\\+Validated\\+Subscription}} \\\\*}{\\pageref{interface_nakama_1_1_i_api_validated_subscription}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_apple_request}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Apple\\+Request}} \\\\*Apple IAP Purchases validation request  }{\\pageref{interface_nakama_1_1_i_api_validate_purchase_apple_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_google_request}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Google\\+Request}} \\\\*Google IAP Purchase validation request  }{\\pageref{interface_nakama_1_1_i_api_validate_purchase_google_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_huawei_request}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Huawei\\+Request}} \\\\*Huawei IAP Purchase validation request  }{\\pageref{interface_nakama_1_1_i_api_validate_purchase_huawei_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Response}} \\\\*Validate IAP response.  }{\\pageref{interface_nakama_1_1_i_api_validate_purchase_response}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_apple_request}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Apple\\+Request}} \\\\*Apple Subscription validation request  }{\\pageref{interface_nakama_1_1_i_api_validate_subscription_apple_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_google_request}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Google\\+Request}} \\\\*Google Subscription validation request  }{\\pageref{interface_nakama_1_1_i_api_validate_subscription_google_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Response}} \\\\*Validate Subscription response.  }{\\pageref{interface_nakama_1_1_i_api_validate_subscription_response}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}} \\\\*The object to store.  }{\\pageref{interface_nakama_1_1_i_api_write_storage_object}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_objects_request}{Nakama.\\+IApi\\+Write\\+Storage\\+Objects\\+Request}} \\\\*Write objects to the storage engine.  }{\\pageref{interface_nakama_1_1_i_api_write_storage_objects_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool}} }{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{Nakama.\\+IChannel}} \\\\*A chat channel on the server.  }{\\pageref{interface_nakama_1_1_i_channel}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{Nakama.\\+IChannel\\+Message\\+Ack}} \\\\*An acknowledgement from the server when a chat message is delivered to a channel.  }{\\pageref{interface_nakama_1_1_i_channel_message_ack}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel_presence_event}{Nakama.\\+IChannel\\+Presence\\+Event}} \\\\*A batch of join and leave presences on a chat channel.  }{\\pageref{interface_nakama_1_1_i_channel_presence_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{Nakama.\\+IClient}} \\\\*A client for the API in \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  }{\\pageref{interface_nakama_1_1_i_client}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_client}{Satori.\\+IClient}} \\\\*A client for the API in \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  }{\\pageref{interface_satori_1_1_i_client}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_config_warning}{Nakama.\\+Console.\\+IConfig\\+Warning}} \\\\*A warning for a configuration field.  }{\\pageref{interface_nakama_1_1_console_1_1_i_config_warning}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_account_export}{Nakama.\\+Console.\\+IConsole\\+Account\\+Export}} \\\\*An export of all information stored for a user account.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_account_export}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_authenticate_request}{Nakama.\\+Console.\\+IConsole\\+Authenticate\\+Request}} \\\\*Authenticate a console user with username and password.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_authenticate_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_config}{Nakama.\\+Console.\\+IConsole\\+Config}} \\\\*The current server configuration and any associated warnings.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_config}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_console_session}{Nakama.\\+Console.\\+IConsole\\+Console\\+Session}} \\\\*A console user session.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_console_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_status_list}{Nakama.\\+Console.\\+IConsole\\+Status\\+List}} \\\\*List of nodes and their stats.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_status_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_storage_list}{Nakama.\\+Console.\\+IConsole\\+Storage\\+List}} \\\\*List of storage objects.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_storage_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}{Nakama.\\+Console.\\+IConsole\\+Unlink\\+Device\\+Request}} \\\\*Unlink a particular device ID from a user\\textquotesingle{}s account.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_user_list}{Nakama.\\+Console.\\+IConsole\\+User\\+List}} \\\\*A list of users.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_user_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger}} \\\\*An individual update to a user\\textquotesingle{}s wallet.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger\\+List}} \\\\*List of wallet ledger items for a particular user.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}{Nakama.\\+Console.\\+IConsole\\+Write\\+Storage\\+Object\\+Request}} \\\\*Write a new storage object or update an existing one.  }{\\pageref{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_group_user_list_group_user}{Nakama.\\+IGroup\\+User\\+List\\+Group\\+User}} \\\\*A single user-\\/role pair.  }{\\pageref{interface_nakama_1_1_i_group_user_list_group_user}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{Nakama.\\+IHttp\\+Adapter}} \\\\*An adapter which implements the HTTP protocol.  }{\\pageref{interface_nakama_1_1_i_http_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{Satori.\\+IHttp\\+Adapter}} \\\\*An adapter which implements the HTTP protocol.  }{\\pageref{interface_satori_1_1_i_http_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{Nakama.\\+ILogger}} \\\\*A simple logger to write log messages to an output sink.  }{\\pageref{interface_nakama_1_1_i_logger}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_logger}{Satori.\\+ILogger}} \\\\*A simple logger to write log messages to an output sink.  }{\\pageref{interface_satori_1_1_i_logger}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_match}{Nakama.\\+IMatch}} \\\\*A multiplayer match.  }{\\pageref{interface_nakama_1_1_i_match}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{Nakama.\\+IMatchmaker\\+Matched}} \\\\*The result of a successful matchmaker operation sent to the server.  }{\\pageref{interface_nakama_1_1_i_matchmaker_matched}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{Nakama.\\+IMatchmaker\\+Ticket}} \\\\*The matchmaker ticket received from the server.  }{\\pageref{interface_nakama_1_1_i_matchmaker_ticket}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_user}{Nakama.\\+IMatchmaker\\+User}} \\\\*The user with the parameters they sent to the server when asking for opponents.  }{\\pageref{interface_nakama_1_1_i_matchmaker_user}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_match_presence_event}{Nakama.\\+IMatch\\+Presence\\+Event}} \\\\*A batch of join and leave presences for a match.  }{\\pageref{interface_nakama_1_1_i_match_presence_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_match_state}{Nakama.\\+IMatch\\+State}} \\\\*Some game state update in a match.  }{\\pageref{interface_nakama_1_1_i_match_state}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaapi_account}{Nakama.\\+Console.\\+INakamaapi\\+Account}} \\\\*A user with additional account details. Always the current user.  }{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaapi_account}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}{Nakama.\\+Console.\\+INakamaconsole\\+Account}} \\\\*Account information.  }{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}{Nakama.\\+Console.\\+INakamaconsole\\+Update\\+Account\\+Request}} \\\\*Update user account information.  }{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_tests_1_1_i_nested_test_object}{Nakama.\\+Tests.\\+INested\\+Test\\+Object}} }{\\pageref{interface_nakama_1_1_tests_1_1_i_nested_test_object}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Invalid\\+Http\\+Response\\+Code\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party}{Nakama.\\+IParty}} \\\\*Incoming information about a party.  }{\\pageref{interface_nakama_1_1_i_party}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_close}{Nakama.\\+IParty\\+Close}} \\\\*End a party, kicking all party members and closing it.  }{\\pageref{interface_nakama_1_1_i_party_close}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_data}{Nakama.\\+IParty\\+Data}} \\\\*Incoming party data delivered from the server.  }{\\pageref{interface_nakama_1_1_i_party_data}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{Nakama.\\+IParty\\+Join\\+Request}} \\\\*Incoming notification for one or more new presences attempting to join the party.  }{\\pageref{interface_nakama_1_1_i_party_join_request}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_leader}{Nakama.\\+IParty\\+Leader}} \\\\*Announcement of a new party leader.  }{\\pageref{interface_nakama_1_1_i_party_leader}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{Nakama.\\+IParty\\+Matchmaker\\+Ticket}} \\\\*A response from starting a new party matchmaking process.  }{\\pageref{interface_nakama_1_1_i_party_matchmaker_ticket}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_party_presence_event}{Nakama.\\+IParty\\+Presence\\+Event}} \\\\*Presence update for a particular party.  }{\\pageref{interface_nakama_1_1_i_party_presence_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager}} \\\\*Ping Pong Manager used to facilitate ping pong Web\\+Socket messages  }{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_protobuf_any}{Nakama.\\+Console.\\+IProtobuf\\+Any}} \\\\*{\\ttfamily Any} contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1\\+: Pack and unpack a message in C++. Foo foo = ...; Any any; any.\\+Pack\\+From(foo); ... if (any.\\+Unpack\\+To(\\&foo)) \\{ ... \\} Example 2\\+: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.\\+pack(foo); ... if (any.\\+is(Foo.\\+class)) \\{ foo = any.\\+unpack(Foo.\\+class); \\} Example 3\\+: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.\\+Pack(foo) ... if any.\\+Is(Foo.\\+DESCRIPTOR)\\+: any.\\+Unpack(foo) ... Example 4\\+: Pack and unpack a message in Go foo \\+:= \\&pb.\\+Foo\\{...\\} any, err \\+:= ptypes.\\+Marshal\\+Any(foo) ... foo \\+:= \\&pb.\\+Foo\\{\\} if err \\+:= ptypes.\\+Unmarshal\\+Any(any, foo); err != nil \\{ ... \\} The pack methods provided by protobuf library will by default use \\textquotesingle{}type.\\+googleapis.\\+com/full.type.\\+name\\textquotesingle{} as the type URL and the unpack methods only use the fully qualified type name after the last \\textquotesingle{}/\\textquotesingle{} in the type URL, for example \\char`\\\"{}foo.\\+bar.\\+com/x/y.\\+z\\char`\\\"{} will yield type name \\char`\\\"{}y.\\+z\\char`\\\"{}. JSON ==== The JSON representation of an {\\ttfamily Any} value uses the regular representation of the deserialized, embedded message, with an additional field {\\ttfamily @type} which contains the type URL. Example\\+: package google.\\+profile; message Person \\{ string first\\+\\_\\+name = 1; string last\\+\\_\\+name = 2; \\} \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+profile.\\+Person\\char`\\\"{}, \\char`\\\"{}first\\+Name\\char`\\\"{}\\+: $<$string$>$, \\char`\\\"{}last\\+Name\\char`\\\"{}\\+: $<$string$>$ \\} If the embedded message type is well-\\/known and has a custom JSON representation, that representation will be embedded adding a field {\\ttfamily value} which holds the custom JSON in addition to the {\\ttfamily @type} field. Example (for message \\mbox{[}google.\\+protobuf.\\+Duration\\mbox{]}\\mbox{[}\\mbox{]})\\+: \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+protobuf.\\+Duration\\char`\\\"{}, \\char`\\\"{}value\\char`\\\"{}\\+: \\char`\\\"{}1.\\+212s\\char`\\\"{} \\}  }{\\pageref{interface_nakama_1_1_console_1_1_i_protobuf_any}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any}{Nakama.\\+IProtobuf\\+Any}} \\\\*}{\\pageref{interface_nakama_1_1_i_protobuf_any}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_protobuf_any}{Satori.\\+IProtobuf\\+Any}} \\\\*}{\\pageref{interface_satori_1_1_i_protobuf_any}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_rpc_status}{Nakama.\\+IRpc\\+Status}} \\\\*}{\\pageref{interface_nakama_1_1_i_rpc_status}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_rpc_status}{Satori.\\+IRpc\\+Status}} \\\\*}{\\pageref{interface_satori_1_1_i_rpc_status}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error}{Nakama.\\+Console.\\+IRuntime\\+Error}} \\\\*}{\\pageref{interface_nakama_1_1_console_1_1_i_runtime_error}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{Nakama.\\+ISession}} \\\\*A session authenticated for a user with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  }{\\pageref{interface_nakama_1_1_i_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{Satori.\\+ISession}} \\\\*A session authenticated for a user with \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  }{\\pageref{interface_satori_1_1_i_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{Nakama.\\+ISocket}} \\\\*A socket to interact with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  }{\\pageref{interface_nakama_1_1_i_socket}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{Nakama.\\+ISocket\\+Adapter}} \\\\*An adapter which implements a socket with a protocol supported by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  }{\\pageref{interface_nakama_1_1_i_socket_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_status}{Nakama.\\+IStatus}} \\\\*Receive status updates for users.  }{\\pageref{interface_nakama_1_1_i_status}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_status_list_status}{Nakama.\\+Console.\\+IStatus\\+List\\+Status}} \\\\*The status of a \\mbox{\\hyperlink{namespace_nakama}{Nakama}} node.  }{\\pageref{interface_nakama_1_1_console_1_1_i_status_list_status}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event}{Nakama.\\+IStatus\\+Presence\\+Event}} \\\\*A status update event about other users who\\textquotesingle{}ve come online or gone offline.  }{\\pageref{interface_nakama_1_1_i_status_presence_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_stream}{Nakama.\\+IStream}} \\\\*A realtime socket stream on the server.  }{\\pageref{interface_nakama_1_1_i_stream}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_stream_presence_event}{Nakama.\\+IStream\\+Presence\\+Event}} \\\\*A batch of joins and leaves on the low level stream.  }{\\pageref{interface_nakama_1_1_i_stream_presence_event}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_stream_state}{Nakama.\\+IStream\\+State}} \\\\*A state change received from a stream.  }{\\pageref{interface_nakama_1_1_i_stream_state}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_tests_1_1_i_test_object}{Nakama.\\+Tests.\\+ITest\\+Object}} }{\\pageref{interface_nakama_1_1_tests_1_1_i_test_object}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}{Nakama.\\+Console.\\+IUser\\+Group\\+List\\+User\\+Group}} \\\\*A single group-\\/role pair.  }{\\pageref{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_group_list_user_group}{Nakama.\\+IUser\\+Group\\+List\\+User\\+Group}} \\\\*A single group-\\/role pair.  }{\\pageref{interface_nakama_1_1_i_user_group_list_user_group}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{Nakama.\\+IUser\\+Presence}} \\\\*An object which represents a connected user in the server.  }{\\pageref{interface_nakama_1_1_i_user_presence}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory}} \\\\*Web socket client factory used to open web socket client connections  }{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory}} \\\\*Web socket server factory used to open web socket server connections  }{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}{Nakama.\\+IWrite\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write}} \\\\*Record values to write.  }{\\pageref{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}{Nakama.\\+IWrite\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write}} \\\\*Record values to write.  }{\\pageref{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Around\\+Owner\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}{Nakama.\\+Tests.\\+Api.\\+Link\\+Unlink\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager}} \\\\*Ping Pong Manager used to facilitate ping pong Web\\+Socket messages  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Pong\\+Event\\+Args}} \\\\*Pong Event\\+Args  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool.\\+Public\\+Buffer\\+Memory\\+Stream}} \\\\*This memory stream is not instance thread safe (not to be confused with the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}} which is instance thread safe)  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_retry}{Nakama.\\+Retry}} \\\\*Represents a single retry attempt.  }{\\pageref{class_nakama_1_1_retry}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Nakama.\\+Retry\\+Configuration}} \\\\*A configuration for controlling retriable requests.  }{\\pageref{class_nakama_1_1_retry_configuration}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_retry_test}{Nakama.\\+Tests.\\+Retry\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_retry_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}{Nakama.\\+Tests.\\+Api.\\+Rpc\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Server\\+Listener\\+Socket\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_session}{Nakama.\\+Session}} \\\\*}{\\pageref{class_nakama_1_1_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_satori_1_1_session}{Satori.\\+Session}} \\\\*}{\\pageref{class_satori_1_1_session}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_session_test}{Nakama.\\+Tests.\\+Session\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_session_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_socket}{Nakama.\\+Socket}} \\\\*A socket which implements the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} realtime API.  }{\\pageref{class_nakama_1_1_socket}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger}{Nakama.\\+Tests.\\+Stdout\\+Logger}} }{\\pageref{class_nakama_1_1_tests_1_1_stdout_logger}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Nakama.\\+Storage\\+Object\\+Id}} \\\\*An identifier for a storage object.  }{\\pageref{class_nakama_1_1_storage_object_id}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_tiny_json_parser_test}{Nakama.\\+Tests.\\+Tiny\\+Json\\+Parser\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_tiny_json_parser_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}{Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter}} \\\\*An adapter which throws transient/retryable exceptions whenever a request is made.  }{\\pageref{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter}{Nakama.\\+Web\\+Socket\\+Adapter}} \\\\*An adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  }{\\pageref{class_nakama_1_1_web_socket_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Buffer\\+Overflow\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Channel\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory}} \\\\*Web socket client factory used to open web socket client connections  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Options}} \\\\*\\mbox{\\hyperlink{class_nakama_1_1_client}{Client}} Web\\+Socket init options  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Handshake\\+Failed\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Http\\+Context}} \\\\*The Web\\+Socket HTTP Context used to initiate a Web\\+Socket handshake  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Matchmaker\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Match\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Notification\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Party\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Rpc\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory}} \\\\*Web socket server factory used to open web socket server connections  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Options}} \\\\*Server Web\\+Socket init options  }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}} \\\\*An adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  }{\\pageref{class_nakama_1_1_web_socket_stdlib_adapter}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+User\\+Status\\+Test}} }{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception}} }{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{class_nakama_1_1_write_storage_object}{Nakama.\\+Write\\+Storage\\+Object}} \\\\*}{\\pageref{class_nakama_1_1_write_storage_object}}{}\n\\end{DoxyCompactList}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_api_response_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 202.020203\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.475000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.ApiResponseException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.ApiResponseException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_api_response_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_api_response_exception}{}\\doxysection{Nakama.\\+Api\\+Response\\+Exception Class Reference}\n\\label{class_nakama_1_1_api_response_exception}\\index{Nakama.ApiResponseException@{Nakama.ApiResponseException}}\n\n\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.   \n\n\nInheritance diagram for Nakama.\\+Api\\+Response\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_api_response_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_a77dfa1e69b45294a8be2755b0a95d928}\\label{class_nakama_1_1_api_response_exception_a77dfa1e69b45294a8be2755b0a95d928}} \n{\\bfseries Api\\+Response\\+Exception} (long status\\+Code, string content, int grpc\\+Code)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_a0d264746286648211638110f05e80ac8}\\label{class_nakama_1_1_api_response_exception_a0d264746286648211638110f05e80ac8}} \n{\\bfseries Api\\+Response\\+Exception} (string message, Exception e)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_a261e959445b965fea35318918d6bc1f1}\\label{class_nakama_1_1_api_response_exception_a261e959445b965fea35318918d6bc1f1}} \n{\\bfseries Api\\+Response\\+Exception} (string content)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_a8bdf4cef42dbc531d7a96b655713918f}\\label{class_nakama_1_1_api_response_exception_a8bdf4cef42dbc531d7a96b655713918f}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_a340b4726dde4af94b5e2553ffcc1f3ee}\\label{class_nakama_1_1_api_response_exception_a340b4726dde4af94b5e2553ffcc1f3ee}} \nlong {\\bfseries Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_api_response_exception_ab5e8be519a60a0799ed0fed798e3ef14}\\label{class_nakama_1_1_api_response_exception_ab5e8be519a60a0799ed0fed798e3ef14}} \nint {\\bfseries Grpc\\+Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_client.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 384.615387\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.300000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Client) cw\n(Nakama.IClient) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Client) 0.000000 0.000000 box\n (Nakama.IClient) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_client.tex",
    "content": "\\hypertarget{class_nakama_1_1_client}{}\\doxysection{Nakama.\\+Client Class Reference}\n\\label{class_nakama_1_1_client}\\index{Nakama.Client@{Nakama.Client}}\n\n\n \n\n\nInheritance diagram for Nakama.\\+Client\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_client}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_nakama_1_1_client_a5158082c303c41499cd7e31e4834cb59}{Client}} (string server\\+Key)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a86b0693fa59c2083725ed015b4bcc460}\\label{class_nakama_1_1_client_a86b0693fa59c2083725ed015b4bcc460}} \n{\\bfseries Client} (string server\\+Key, \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}} adapter)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a053ab2c59dedc46d1fb3f34f7b10e9d6}\\label{class_nakama_1_1_client_a053ab2c59dedc46d1fb3f34f7b10e9d6}} \n{\\bfseries Client} (string scheme, string host, int port, string server\\+Key)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a547987248989d14b05cc7760034fc711}\\label{class_nakama_1_1_client_a547987248989d14b05cc7760034fc711}} \n{\\bfseries Client} (string scheme, string host, int port, string server\\+Key, \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}} adapter, bool auto\\+Refresh\\+Session=true)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_ab36fa5c0c9ea2a99f8afa1d8b6d26b04}\\label{class_nakama_1_1_client_ab36fa5c0c9ea2a99f8afa1d8b6d26b04}} \n{\\bfseries Client} (Uri uri, string server\\+Key)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a869bb89ffb168e3e4134a8d7955e4830}\\label{class_nakama_1_1_client_a869bb89ffb168e3e4134a8d7955e4830}} \n{\\bfseries Client} (Uri uri, string server\\+Key, \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}} adapter, bool auto\\+Refresh\\+Session=true)\n\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a0348314e04b0b80057e8383cdd5c8d50}{Add\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Add one or more friends by id or username. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite as friends.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to add as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a769d19ca9593f14fc8a3f91d1950f155}{Add\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Add one or more users to the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The id of the group to add users into.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite to the group.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ae30e21d72b2f12cdb23d03994e6dfd35}{Authenticate\\+Apple\\+Async}} (string token, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with an Apple ID against the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em username} & A username used to create the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_aecf7fd6a4745f23d3e411b3911ef7b8d}{Authenticate\\+Custom\\+Async}} (string id, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a custom id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_afe268da1eb4063933420c27ac8ce6bfe}{Authenticate\\+Device\\+Async}} (string id, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a device id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a40bb677a0c6360f6402850720de573a6}{Authenticate\\+Email\\+Async}} (string email, string password, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with an email and password. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a8965dfabd8ea716c3b119fb57b93d499}{Authenticate\\+Facebook\\+Async}} (string token, string username=null, bool create=true, bool import=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Facebook auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a275feb7d3de0a6b85741f463645fad3f}{Authenticate\\+Game\\+Center\\+Async}} (string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with Apple Game Center. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em bundle\\+Id} & The bundle id of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player id of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a09315e1b205b1b94074f4137e6be9f00}{Authenticate\\+Google\\+Async}} (string token, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Google auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a2e075e4cf4c522e3de378a855dc34899}{Authenticate\\+Steam\\+Async}} (string token, string username=null, bool create=true, bool import=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Steam auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_af3738338a0465f5bb312b8c8ea9a5cf1}{Ban\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Ban a set of users from a group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group to ban the users from.\\\\\n\\hline\n{\\em ids} & The ids of the users to ban.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ac0dc24ed36ac130f370fe7e9d47a109a}{Block\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Block one or more friends by id or username. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to block.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to block.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ad74fadcf61eebd9cb089641775671798}{Create\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name, string description=\\char`\\\"{}\\char`\\\"{}, string avatar\\+Url=null, string lang\\+Tag=null, bool open=true, int max\\+Count=100, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Create a group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name for the group.\\\\\n\\hline\n{\\em description} & A description for the group.\\\\\n\\hline\n{\\em avatar\\+Url} & An avatar url for the group.\\\\\n\\hline\n{\\em lang\\+Tag} & A language tag in BCP-\\/47 format for the group.\\\\\n\\hline\n{\\em open} & If the group should have open membership.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of members allowed.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new group object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a638d387931e416f96e3355dbcc9dd95d}{Delete\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one more or users by id or username from friends. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The user ids to remove as friends.\\\\\n\\hline\n{\\em usernames} & The usernames to remove as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ab2c13e106e4abaad160c025fd4b171f5}{Delete\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete a group by id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group id to to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a4c3aa998092d7fd8d4a5e57eac1adc7a}{Delete\\+Leaderboard\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete a leaderboard record. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The id of the leaderboard with the record to be deleted.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aaca81a7fc8183e44c7f6e10071d9a456}{Delete\\+Notifications\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one or more notifications by id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The notification ids to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a745a2c98d488d19c2abad03aa914f97b}{Delete\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]} ids=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one or more storage objects. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the objects to delete.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_acc21379975775bac5077abf0ef956fab}{Demote\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ usernames, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Demote a set of users in a group to the next role down. \n\\begin{DoxyParams}{Parameters}\n{\\em group\\+Id} & The group to demote users in.\\\\\n\\hline\n{\\em user\\+Ids} & The users to demote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nMembers who are already at the lowest rank will be skipped. \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a50215658d4619df72a664d635a0aefe6}{Event\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name, Dictionary$<$ string, string $>$ properties, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Submit an event for processing in the server\\textquotesingle{}s registered runtime custom events handler. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the event.\\\\\n\\hline\n{\\em properties} & The properties of the event.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{IApi\\+Account}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a8333b61102e6af80cdaa17b8c79d9825}{Get\\+Account\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the account object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a6632bd7f63f6c739cc587bb6a5d88f31}{Get\\+Subscription\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string product\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get the subscription represented by the provided product id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em product\\+Id} & The product id.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{IApi\\+Users}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ae8a6ed442cf4d4fe757b8af4ccf0f697}{Get\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, IEnumerable$<$ string $>$ facebook\\+Ids=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch one or more users by id, usernames, and Facebook ids. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The IDs of the users to retrieve.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to retrieve.\\\\\n\\hline\n{\\em facebook\\+Ids} & The facebook IDs of the users to retrieve.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a collection of user objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ae22e0fb5972e5a4d2b52aaa82045a271}{Import\\+Facebook\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? reset=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Import Facebook friends and add them to the user\\textquotesingle{}s account. \n\nThe server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation.  \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aff3b742f37107b47f31d4a93020239d0}{Import\\+Steam\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? reset=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Import Steam friends and add them to the user\\textquotesingle{}s account. \n\nThe server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation.  \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a9e10ec43011fa4aaf3ad1d389da1ea2b}{Join\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Join a group if it has open membership or request to join it. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a5cc312ccc276515a2643ef173e398641}{Join\\+Tournament\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Join a tournament by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a8d40ee6b5c3a92ebcab8701ed7ff9505}{Kick\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Kick one or more users from the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em ids} & The IDs of the users to kick.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aff050ee2645b7b3a239a40c6ce357c24}{Leave\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a group by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to leave.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a9979bf574bdb33a716ac56b51eca6758}{Link\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link an Apple ID to the social profiles on the current user\\textquotesingle{}s account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ac4845e6a960a43d8ead44c2cb2d2fb00}{Link\\+Custom\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a custom ID to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aad4baf992848d4029adcbb4ce964bb2e}{Link\\+Device\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a device ID to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aadee51567a81169984fd146111f237db}{Link\\+Email\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string email, string password, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link an email with password to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ac81c5d3cf0fcf05f3c482ceec63c17e8}{Link\\+Facebook\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? import=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Facebook profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a655ce991784045167e7b470b421788fa}{Link\\+Game\\+Center\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Game Center profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a0f4fe2298df0fa8b4ac5a14dbbfce74b}{Link\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Google profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a53f8adbc758568e7b70653cbfc33eeec}{Link\\+Steam\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool sync, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Steam profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a5915e1dd4090b1f58f9295361b58016b}{List\\+Channel\\+Messages\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, int limit=1, bool forward=true, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List messages from a chat channel. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel} & The chat channel object.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_afda758a691879a09e10e7689a871a781}{List\\+Channel\\+Messages\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string channel\\+Id, int limit=1, bool forward=true, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List messages from a chat channel. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel\\+Id} & A channel identifier.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{IApi\\+Friend\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a1258302f25c2441cd419460a21aa3756}{List\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int? state, int limit, string cursor, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List of friends of the current user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by friendship state.\\\\\n\\hline\n{\\em limit} & The number of friends to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the friends list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the friend objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{IApi\\+Group\\+User\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a80306a00533b136b52cd6aff74db3e90}{List\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, int? state, int limit, string cursor, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all users part of the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the group listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group user objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{IApi\\+Group\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a052addd5b095f2c4d2b2d38dfc8e993f}{List\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name=null, int limit=1, string cursor=null, string lang\\+Tag=null, int? members=null, bool? open=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List groups on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name filter to apply to the group list.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the groups to list.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag filter to apply to the group list.\\\\\n\\hline\n{\\em members} & The number of group members filter to apply to the group list.\\\\\n\\hline\n{\\em open} & The open/closed filter to apply to the group list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve group objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ab0157c7184c86a9e6cbaae2ae720adf1}{List\\+Leaderboard\\+Records\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, IEnumerable$<$ string $>$ owner\\+Ids=null, long? expiry=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List records from a leaderboard. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Ids} & Record owners to fetch with the list of records.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the leaderboard records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_aa00e1eb5a776bb9a554507eba56c8272}{List\\+Leaderboard\\+Records\\+Around\\+Owner\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, string owner\\+Id, long? expiry=null, int limit=1, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List leaderboard records that belong to a user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the user to list around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The limit of the listings.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{IApi\\+Match\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ad169be18d357b3b57067abf62e063310}{List\\+Matches\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int min, int max, int limit, bool authoritative, string label, string query, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch a list of matches active on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em min} & The minimum number of match participants.\\\\\n\\hline\n{\\em max} & The maximum number of match participants.\\\\\n\\hline\n{\\em limit} & The number of matches to list.\\\\\n\\hline\n{\\em authoritative} & If authoritative matches should be included.\\\\\n\\hline\n{\\em label} & The label to filter the match list on.\\\\\n\\hline\n{\\em query} & A query for the matches to filter.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the match list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{IApi\\+Notification\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_acde199dc46bdceabea904a44477cd284}{List\\+Notifications\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int limit=1, string cacheable\\+Cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List notifications for the user with an optional cursor. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of notifications to list.\\\\\n\\hline\n{\\em cacheable\\+Cursor} & A cursor for the current position in notifications to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve notifications objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a90db3c9a4f3994fc1616bc702a2584e1}{List\\+Storage\\+Objects}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a35c013a31537eea2ff7fe2239f5623e9}{List\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List storage objects in a collection which have public read access. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em limit} & The number of objects to list. Maximum 100.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection. May be null.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{IApi\\+Subscription\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a66425250e7fb827cc677da4732290329}{List\\+Subscriptions\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int limit, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List the user\\textquotesingle{}s subscriptions. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of subscriptions to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of subscriptions.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription list.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ae141eceb632e705999c2d8d0243ab99d}{List\\+Tournament\\+Records\\+Around\\+Owner\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, string owner\\+Id, long? expiry=null, int limit=1, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List tournament records around the owner. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the owner to pivot around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_aa994ad73bfce3f829e041505fb54e119}{List\\+Tournament\\+Records\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, IEnumerable$<$ string $>$ owner\\+Ids=null, long? expiry=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List records from a tournament. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Ids} & The IDs of the record owners to return in the result.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournament records.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament records.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{IApi\\+Tournament\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a4e64d250674e061e2304bdf2e4fe4342}{List\\+Tournaments\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int category\\+Start, int category\\+End, int? start\\+Time=null, int? end\\+Time=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List current or upcoming tournaments. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em category\\+Start} & The start of the category of tournaments to include.\\\\\n\\hline\n{\\em category\\+End} & The end of the category of tournaments to include.\\\\\n\\hline\n{\\em start\\+Time} & The start time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by start time.\\\\\n\\hline\n{\\em end\\+Time} & The end time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by end time.\\\\\n\\hline\n{\\em limit} & The number of tournaments to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournaments.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament objects.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_afb7774654804a171c8a602f3406466a1}{List\\+User\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int? state, int limit, string cursor, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List of groups the current user is a member of. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a6dbbdc5225f9e64e576ad171003bbda8}{List\\+User\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string user\\+Id, int? state, int limit, string cursor, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List groups a user is a member of. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em user\\+Id} & The ID of the user whose groups to list.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a90c1f81c4e27cc664f16dcad793a6381}{List\\+Users\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, string user\\+Id, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List storage objects in a collection which belong to a specific user and have public read access. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em user\\+Id} & The user ID of the user to list objects for.\\\\\n\\hline\n{\\em limit} & The number of objects to list.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a703f15655bec3592a25827f78715ecda}{Promote\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Promote one or more users in the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to promote users into.\\\\\n\\hline\n{\\em ids} & The IDs of the users to promote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{IApi\\+Storage\\+Objects}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a2dd9eb134b2aabf3df838aa0c15cb715}{Read\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]} ids=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Read one or more objects from the storage engine. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The objects to read.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage batch object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a662403d6079acb66a0c8acb71e87b24d}{Rpc\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, string payload, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function with an input payload on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em payload} & The payload to send with the function call.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ae7903e1c260db27a9325f542410dffb1}{Rpc\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ab40414406802388e487e366aa9c109a6}{Rpc\\+Async}} (string httpkey, string id, string payload=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function on the server without a session. \n\nThis function is usually used with server side code. DO NOT USE client side.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_client_a3cf4591ab80d069ec55b8021bb51c730}{Session\\+Logout\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session which invalidates the authorization and refresh token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session to logout.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_client_a6e965270a90777b5aab3f3b4c7ba2374}{Session\\+Logout\\+Async}} (string auth\\+Token, string refresh\\+Token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session which optionally invalidates the authorization and/or refresh tokens. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em auth\\+Token} & The authorization token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em refresh\\+Token} & The refresh token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a54ddec21945530369fca30e9306efe5d}{Session\\+Refresh\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em vars} & Extra information which should be bundled inside the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae1aeb5b30fed94af008058803b5bd352}\\label{class_nakama_1_1_client_ae1aeb5b30fed94af008058803b5bd352}} \noverride string {\\bfseries To\\+String} ()\n\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_adf62218ff4074ee7847260fb69f7a40e}{Unlink\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Remove the Apple ID from the social profiles on the current user\\textquotesingle{}s account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_adb85bd4e511e508ef6858b103aa31523}{Unlink\\+Custom\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a custom ID from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a04f2596af7c5ffde9353981faed6443d}{Unlink\\+Device\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a device ID from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a93428352ac3edb3e35d00afe0e108f5d}{Unlink\\+Email\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string email, string password, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink an email with password from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a116b79c31bc4bf94f0b037e6ecb33fc1}{Unlink\\+Facebook\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Facebook profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_adb1615cbce3978b43928c6dc1641fcd9}{Unlink\\+Game\\+Center\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Game Center profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ad30a4f27ec44259a72fb7ecd55b855cc}{Unlink\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Google profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_aa7cf34d32c3bd2dd89224491dd03627a}{Unlink\\+Steam\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Steam profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_a493aaa96074ed53faae99041c1ff71e7}{Update\\+Account\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string username, string display\\+Name=null, string avatar\\+Url=null, string lang\\+Tag=null, string location=null, string timezone=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update the current user\\textquotesingle{}s account on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em username} & The new username for the user.\\\\\n\\hline\n{\\em display\\+Name} & A new display name for the user.\\\\\n\\hline\n{\\em avatar\\+Url} & A new avatar url for the user.\\\\\n\\hline\n{\\em lang\\+Tag} & A new language tag in BCP-\\/47 format for the user.\\\\\n\\hline\n{\\em location} & A new location for the user.\\\\\n\\hline\n{\\em timezone} & New timezone information for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_client_ae4721e57aa314b32152069e2644eb02b}{Update\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, string name, bool open, string description=null, string avatar\\+Url=null, string lang\\+Tag=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update a group. \n\nThe user must have the correct access permissions for the group.  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a03a03e289c71ee9a21c6dc03241bd846}{Validate\\+Purchase\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Apple App Store. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a08e6406e21fd5fc52ee905b586210276}{Validate\\+Purchase\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Google Play Store. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a7d49b887e6d302f68917162a0567ad66}{Validate\\+Purchase\\+Huawei\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, string signature, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Huawei App\\+Gallery. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em signature} & The signature of the purchase receipt.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a63b6bc07335627f58236ba0c9997336f}{Validate\\+Subscription\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate an Apple subscription receipt.  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a30b942db8e51709901e60c6a5d26c5bb}{Validate\\+Subscription\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a Google subscription receipt.  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_a6b44990352ecbf4c847b29ac715014fb}{Write\\+Leaderboard\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, long score, long sub\\+Score=0, string metadata=null, \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} api\\+Operator=Api\\+Operator.\\+NO\\+\\_\\+\\+OVERRIDE, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write a record to a leaderboard. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to write.\\\\\n\\hline\n{\\em score} & The score for the leaderboard record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the leaderboard record.\\\\\n\\hline\n{\\em metadata} & The metadata for the leaderboard record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the leaderboard. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{IApi\\+Storage\\+Object\\+Acks}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_ad2d4bb27d5340afb6be824a2bc2e7815}{Write\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}}\\mbox{[}$\\,$\\mbox{]} objects=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write objects to the storage engine. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em objects} & The objects to write.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage write acknowledgements.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_client_af0b988b7a04b78b7aac805dc502ff52d}{Write\\+Tournament\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, long score, long sub\\+Score=0, string metadata=null, \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} api\\+Operator=Api\\+Operator.\\+NO\\+\\_\\+\\+OVERRIDE, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write a record to a tournament. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to write.\\\\\n\\hline\n{\\em score} & The score of the tournament record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the tournament record.\\\\\n\\hline\n{\\em metadata} & The metadata for the tournament record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the tournament. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_adfd3245cf5d85e2f66518dbcbcc88d35}\\label{class_nakama_1_1_client_adfd3245cf5d85e2f66518dbcbcc88d35}} \nconst string {\\bfseries Default\\+Host} = \\char`\\\"{}127.\\+0.\\+0.\\+1\\char`\\\"{}\n\\begin{DoxyCompactList}\\small\\item\\em The default host address of the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a339d6ad5a6a8571aa36bc3fac5bde493}\\label{class_nakama_1_1_client_a339d6ad5a6a8571aa36bc3fac5bde493}} \nconst string {\\bfseries Default\\+Scheme} = \\char`\\\"{}http\\char`\\\"{}\n\\begin{DoxyCompactList}\\small\\item\\em The default protocol scheme for the socket connection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae484d126d47ce2306242951d21e35756}\\label{class_nakama_1_1_client_ae484d126d47ce2306242951d21e35756}} \nconst int {\\bfseries Default\\+Port} = 7350\n\\begin{DoxyCompactList}\\small\\item\\em The default port number of the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_a3e646cbc75def08c741b231588f2a621}\\label{class_nakama_1_1_client_a3e646cbc75def08c741b231588f2a621}} \nstatic Time\\+Span {\\bfseries Default\\+Expired\\+Time\\+Span} = Time\\+Span.\\+From\\+Minutes(5)\n\\begin{DoxyCompactList}\\small\\item\\em The default expired timespan used to check session lifetime.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_client_a2abea8492c53d4579c14eb4ae5327610}{Auto\\+Refresh\\+Session}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the session should be refreshed with an active refresh token.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} \\mbox{\\hyperlink{class_nakama_1_1_client_a4e84dc06e439ead1dcdc918350b93ed8}{Global\\+Retry\\+Configuration}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The global retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_client_aacad034c2d21b970537423de0ba27e4f}{Host}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The host address of the server. Defaults to \\char`\\\"{}127.\\+0.\\+0.\\+1\\char`\\\"{}.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_client_ac88ab4b97d244c62ffc0e2710f69a651}\\label{class_nakama_1_1_client_ac88ab4b97d244c62ffc0e2710f69a651}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} {\\bfseries Logger}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the client.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{class_nakama_1_1_client_aa59309ff4ed7172795782cd69cb295d8}{Port}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The port number of the server. Defaults to 7350.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_client_afaf274b5c7dc2b21931b7d6814f3d455}{Scheme}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The protocol scheme used to connect with the server. Must be either \\char`\\\"{}http\\char`\\\"{} or \\char`\\\"{}https\\char`\\\"{}.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_client_aa70b920781b70f74f0419d262043dbd1}{Server\\+Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key used to authenticate with the server without a session. Defaults to \\char`\\\"{}defaultkey\\char`\\\"{}.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{class_nakama_1_1_client_afa11ac790793b5178c423364cc1a1cd2}{Timeout}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Set the timeout in seconds on requests sent to the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a5158082c303c41499cd7e31e4834cb59}\\label{class_nakama_1_1_client_a5158082c303c41499cd7e31e4834cb59}} \n\\index{Nakama.Client@{Nakama.Client}!Client@{Client}}\n\\index{Client@{Client}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{Client()}{Client()}}\n{\\footnotesize\\ttfamily Nakama.\\+Client.\\+Client (\\begin{DoxyParamCaption}\\item[{string}]{server\\+Key }\\end{DoxyParamCaption})}\n\nThere is a bug in Unity\\textquotesingle{}s Web\\+GL implementation that prevents the proper invocation of constructors with more than four parameters. For this reason, avoid defining constructors that do this. \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a0348314e04b0b80057e8383cdd5c8d50}\\label{class_nakama_1_1_client_a0348314e04b0b80057e8383cdd5c8d50}} \n\\index{Nakama.Client@{Nakama.Client}!AddFriendsAsync@{AddFriendsAsync}}\n\\index{AddFriendsAsync@{AddFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AddFriendsAsync()}{AddFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Add\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAdd one or more friends by id or username. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite as friends.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to add as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac21ff4d771b8ce9c77ee2755cea4ca07}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a769d19ca9593f14fc8a3f91d1950f155}\\label{class_nakama_1_1_client_a769d19ca9593f14fc8a3f91d1950f155}} \n\\index{Nakama.Client@{Nakama.Client}!AddGroupUsersAsync@{AddGroupUsersAsync}}\n\\index{AddGroupUsersAsync@{AddGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AddGroupUsersAsync()}{AddGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Add\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAdd one or more users to the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The id of the group to add users into.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite to the group.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abec54a30d216a009e04cb7df410e15f3}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae30e21d72b2f12cdb23d03994e6dfd35}\\label{class_nakama_1_1_client_ae30e21d72b2f12cdb23d03994e6dfd35}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateAppleAsync@{AuthenticateAppleAsync}}\n\\index{AuthenticateAppleAsync@{AuthenticateAppleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateAppleAsync()}{AuthenticateAppleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with an Apple ID against the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em username} & A username used to create the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af56a59b69e6416645041852198bbc220}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aecf7fd6a4745f23d3e411b3911ef7b8d}\\label{class_nakama_1_1_client_aecf7fd6a4745f23d3e411b3911ef7b8d}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateCustomAsync@{AuthenticateCustomAsync}}\n\\index{AuthenticateCustomAsync@{AuthenticateCustomAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateCustomAsync()}{AuthenticateCustomAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a custom id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1081470b3d1dc65a43e57e158118dde0}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_afe268da1eb4063933420c27ac8ce6bfe}\\label{class_nakama_1_1_client_afe268da1eb4063933420c27ac8ce6bfe}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateDeviceAsync@{AuthenticateDeviceAsync}}\n\\index{AuthenticateDeviceAsync@{AuthenticateDeviceAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateDeviceAsync()}{AuthenticateDeviceAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a device id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad9a6d4b73bc4ac965a7d913fcc7d5ee3}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a40bb677a0c6360f6402850720de573a6}\\label{class_nakama_1_1_client_a40bb677a0c6360f6402850720de573a6}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateEmailAsync@{AuthenticateEmailAsync}}\n\\index{AuthenticateEmailAsync@{AuthenticateEmailAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateEmailAsync()}{AuthenticateEmailAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with an email and password. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1b77958ff52a879a27a5bfd0b97dfa6b}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a8965dfabd8ea716c3b119fb57b93d499}\\label{class_nakama_1_1_client_a8965dfabd8ea716c3b119fb57b93d499}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateFacebookAsync@{AuthenticateFacebookAsync}}\n\\index{AuthenticateFacebookAsync@{AuthenticateFacebookAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateFacebookAsync()}{AuthenticateFacebookAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{bool}]{import = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Facebook auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a94137b0b4dd44bae5fcf4d112d4cab4d}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a275feb7d3de0a6b85741f463645fad3f}\\label{class_nakama_1_1_client_a275feb7d3de0a6b85741f463645fad3f}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateGameCenterAsync@{AuthenticateGameCenterAsync}}\n\\index{AuthenticateGameCenterAsync@{AuthenticateGameCenterAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateGameCenterAsync()}{AuthenticateGameCenterAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with Apple Game Center. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em bundle\\+Id} & The bundle id of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player id of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab1b035116f1e0a1cf22d2f5fd8ed9233}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a09315e1b205b1b94074f4137e6be9f00}\\label{class_nakama_1_1_client_a09315e1b205b1b94074f4137e6be9f00}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateGoogleAsync@{AuthenticateGoogleAsync}}\n\\index{AuthenticateGoogleAsync@{AuthenticateGoogleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateGoogleAsync()}{AuthenticateGoogleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Google auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aa7d5ea6ff35652864256236b6a298e16}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a2e075e4cf4c522e3de378a855dc34899}\\label{class_nakama_1_1_client_a2e075e4cf4c522e3de378a855dc34899}} \n\\index{Nakama.Client@{Nakama.Client}!AuthenticateSteamAsync@{AuthenticateSteamAsync}}\n\\index{AuthenticateSteamAsync@{AuthenticateSteamAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateSteamAsync()}{AuthenticateSteamAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Authenticate\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{bool}]{import = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Steam auth token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a2f1dee9bd5c5761d55e5ab5a4d12690c}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_af3738338a0465f5bb312b8c8ea9a5cf1}\\label{class_nakama_1_1_client_af3738338a0465f5bb312b8c8ea9a5cf1}} \n\\index{Nakama.Client@{Nakama.Client}!BanGroupUsersAsync@{BanGroupUsersAsync}}\n\\index{BanGroupUsersAsync@{BanGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{BanGroupUsersAsync()}{BanGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Ban\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nBan a set of users from a group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group to ban the users from.\\\\\n\\hline\n{\\em ids} & The ids of the users to ban.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab22184136c797808a2aebe53100804e2}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ac0dc24ed36ac130f370fe7e9d47a109a}\\label{class_nakama_1_1_client_ac0dc24ed36ac130f370fe7e9d47a109a}} \n\\index{Nakama.Client@{Nakama.Client}!BlockFriendsAsync@{BlockFriendsAsync}}\n\\index{BlockFriendsAsync@{BlockFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{BlockFriendsAsync()}{BlockFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Block\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nBlock one or more friends by id or username. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to block.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to block.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a625ec426d7062f4c118f3f014dd6e378}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ad74fadcf61eebd9cb089641775671798}\\label{class_nakama_1_1_client_ad74fadcf61eebd9cb089641775671798}} \n\\index{Nakama.Client@{Nakama.Client}!CreateGroupAsync@{CreateGroupAsync}}\n\\index{CreateGroupAsync@{CreateGroupAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{CreateGroupAsync()}{CreateGroupAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} $>$ Nakama.\\+Client.\\+Create\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{string}]{description = {\\ttfamily \\char`\\\"{}\\char`\\\"{}},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{bool}]{open = {\\ttfamily true},  }\\item[{int}]{max\\+Count = {\\ttfamily 100},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nCreate a group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name for the group.\\\\\n\\hline\n{\\em description} & A description for the group.\\\\\n\\hline\n{\\em avatar\\+Url} & An avatar url for the group.\\\\\n\\hline\n{\\em lang\\+Tag} & A language tag in BCP-\\/47 format for the group.\\\\\n\\hline\n{\\em open} & If the group should have open membership.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of members allowed.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new group object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aae0252ef30e7b6f9a1e2dc518f7478ee}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a638d387931e416f96e3355dbcc9dd95d}\\label{class_nakama_1_1_client_a638d387931e416f96e3355dbcc9dd95d}} \n\\index{Nakama.Client@{Nakama.Client}!DeleteFriendsAsync@{DeleteFriendsAsync}}\n\\index{DeleteFriendsAsync@{DeleteFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DeleteFriendsAsync()}{DeleteFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Delete\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one more or users by id or username from friends. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The user ids to remove as friends.\\\\\n\\hline\n{\\em usernames} & The usernames to remove as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6c9418726e8c74b0cefff24bccf335e1}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ab2c13e106e4abaad160c025fd4b171f5}\\label{class_nakama_1_1_client_ab2c13e106e4abaad160c025fd4b171f5}} \n\\index{Nakama.Client@{Nakama.Client}!DeleteGroupAsync@{DeleteGroupAsync}}\n\\index{DeleteGroupAsync@{DeleteGroupAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DeleteGroupAsync()}{DeleteGroupAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Delete\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete a group by id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group id to to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a90a221604c5aee514bae83bfce921005}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a4c3aa998092d7fd8d4a5e57eac1adc7a}\\label{class_nakama_1_1_client_a4c3aa998092d7fd8d4a5e57eac1adc7a}} \n\\index{Nakama.Client@{Nakama.Client}!DeleteLeaderboardRecordAsync@{DeleteLeaderboardRecordAsync}}\n\\index{DeleteLeaderboardRecordAsync@{DeleteLeaderboardRecordAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DeleteLeaderboardRecordAsync()}{DeleteLeaderboardRecordAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Delete\\+Leaderboard\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete a leaderboard record. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The id of the leaderboard with the record to be deleted.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae50039a13b1b5d75613030d130f9d5e3}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aaca81a7fc8183e44c7f6e10071d9a456}\\label{class_nakama_1_1_client_aaca81a7fc8183e44c7f6e10071d9a456}} \n\\index{Nakama.Client@{Nakama.Client}!DeleteNotificationsAsync@{DeleteNotificationsAsync}}\n\\index{DeleteNotificationsAsync@{DeleteNotificationsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DeleteNotificationsAsync()}{DeleteNotificationsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Delete\\+Notifications\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one or more notifications by id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The notification ids to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_adab62219d9b6f091995738a8746b8bcb}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a745a2c98d488d19c2abad03aa914f97b}\\label{class_nakama_1_1_client_a745a2c98d488d19c2abad03aa914f97b}} \n\\index{Nakama.Client@{Nakama.Client}!DeleteStorageObjectsAsync@{DeleteStorageObjectsAsync}}\n\\index{DeleteStorageObjectsAsync@{DeleteStorageObjectsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DeleteStorageObjectsAsync()}{DeleteStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Delete\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]}}]{ids = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one or more storage objects. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the objects to delete.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a359f19ae1aad413e47565b355380b63a}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_acc21379975775bac5077abf0ef956fab}\\label{class_nakama_1_1_client_acc21379975775bac5077abf0ef956fab}} \n\\index{Nakama.Client@{Nakama.Client}!DemoteGroupUsersAsync@{DemoteGroupUsersAsync}}\n\\index{DemoteGroupUsersAsync@{DemoteGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{DemoteGroupUsersAsync()}{DemoteGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Demote\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{usernames,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDemote a set of users in a group to the next role down. \n\\begin{DoxyParams}{Parameters}\n{\\em group\\+Id} & The group to demote users in.\\\\\n\\hline\n{\\em user\\+Ids} & The users to demote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nMembers who are already at the lowest rank will be skipped. \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a134eedfe28270dc3086b490fd16c5efb}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a50215658d4619df72a664d635a0aefe6}\\label{class_nakama_1_1_client_a50215658d4619df72a664d635a0aefe6}} \n\\index{Nakama.Client@{Nakama.Client}!EventAsync@{EventAsync}}\n\\index{EventAsync@{EventAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{EventAsync()}{EventAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Event\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{Dictionary$<$ string, string $>$}]{properties,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nSubmit an event for processing in the server\\textquotesingle{}s registered runtime custom events handler. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the event.\\\\\n\\hline\n{\\em properties} & The properties of the event.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5a255470f06a9004673ba8fc6f8af682}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a8333b61102e6af80cdaa17b8c79d9825}\\label{class_nakama_1_1_client_a8333b61102e6af80cdaa17b8c79d9825}} \n\\index{Nakama.Client@{Nakama.Client}!GetAccountAsync@{GetAccountAsync}}\n\\index{GetAccountAsync@{GetAccountAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetAccountAsync()}{GetAccountAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{IApi\\+Account}} $>$ Nakama.\\+Client.\\+Get\\+Account\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the account object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a291886d28a053ef9db0d231b1f74140e}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a6632bd7f63f6c739cc587bb6a5d88f31}\\label{class_nakama_1_1_client_a6632bd7f63f6c739cc587bb6a5d88f31}} \n\\index{Nakama.Client@{Nakama.Client}!GetSubscriptionAsync@{GetSubscriptionAsync}}\n\\index{GetSubscriptionAsync@{GetSubscriptionAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetSubscriptionAsync()}{GetSubscriptionAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} $>$ Nakama.\\+Client.\\+Get\\+Subscription\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{product\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet the subscription represented by the provided product id. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em product\\+Id} & The product id.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8ad3b6d4f866d3b4d8cd54cbeaf5a01e}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae8a6ed442cf4d4fe757b8af4ccf0f697}\\label{class_nakama_1_1_client_ae8a6ed442cf4d4fe757b8af4ccf0f697}} \n\\index{Nakama.Client@{Nakama.Client}!GetUsersAsync@{GetUsersAsync}}\n\\index{GetUsersAsync@{GetUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetUsersAsync()}{GetUsersAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{IApi\\+Users}} $>$ Nakama.\\+Client.\\+Get\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{IEnumerable$<$ string $>$}]{facebook\\+Ids = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch one or more users by id, usernames, and Facebook ids. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The IDs of the users to retrieve.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to retrieve.\\\\\n\\hline\n{\\em facebook\\+Ids} & The facebook IDs of the users to retrieve.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a collection of user objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8b4075bc49ee57670e94a56557be05d2}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae22e0fb5972e5a4d2b52aaa82045a271}\\label{class_nakama_1_1_client_ae22e0fb5972e5a4d2b52aaa82045a271}} \n\\index{Nakama.Client@{Nakama.Client}!ImportFacebookFriendsAsync@{ImportFacebookFriendsAsync}}\n\\index{ImportFacebookFriendsAsync@{ImportFacebookFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ImportFacebookFriendsAsync()}{ImportFacebookFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Import\\+Facebook\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{reset = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nImport Facebook friends and add them to the user\\textquotesingle{}s account. \n\nThe server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad63c0cfb18480592c8eff4583cc16233}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aff3b742f37107b47f31d4a93020239d0}\\label{class_nakama_1_1_client_aff3b742f37107b47f31d4a93020239d0}} \n\\index{Nakama.Client@{Nakama.Client}!ImportSteamFriendsAsync@{ImportSteamFriendsAsync}}\n\\index{ImportSteamFriendsAsync@{ImportSteamFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ImportSteamFriendsAsync()}{ImportSteamFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Import\\+Steam\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{reset = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nImport Steam friends and add them to the user\\textquotesingle{}s account. \n\nThe server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8ff7dfd40f14d3161d7fc4426e078214}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a9e10ec43011fa4aaf3ad1d389da1ea2b}\\label{class_nakama_1_1_client_a9e10ec43011fa4aaf3ad1d389da1ea2b}} \n\\index{Nakama.Client@{Nakama.Client}!JoinGroupAsync@{JoinGroupAsync}}\n\\index{JoinGroupAsync@{JoinGroupAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{JoinGroupAsync()}{JoinGroupAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Join\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nJoin a group if it has open membership or request to join it. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6662dc402c9867c647ea300eae380bc0}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a5cc312ccc276515a2643ef173e398641}\\label{class_nakama_1_1_client_a5cc312ccc276515a2643ef173e398641}} \n\\index{Nakama.Client@{Nakama.Client}!JoinTournamentAsync@{JoinTournamentAsync}}\n\\index{JoinTournamentAsync@{JoinTournamentAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{JoinTournamentAsync()}{JoinTournamentAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Join\\+Tournament\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nJoin a tournament by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8520e2e99a83f3cac309f2a0354c2e65}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a8d40ee6b5c3a92ebcab8701ed7ff9505}\\label{class_nakama_1_1_client_a8d40ee6b5c3a92ebcab8701ed7ff9505}} \n\\index{Nakama.Client@{Nakama.Client}!KickGroupUsersAsync@{KickGroupUsersAsync}}\n\\index{KickGroupUsersAsync@{KickGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{KickGroupUsersAsync()}{KickGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Kick\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nKick one or more users from the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em ids} & The IDs of the users to kick.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae1643a627d5b2733349b2a3eb8811829}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aff050ee2645b7b3a239a40c6ce357c24}\\label{class_nakama_1_1_client_aff050ee2645b7b3a239a40c6ce357c24}} \n\\index{Nakama.Client@{Nakama.Client}!LeaveGroupAsync@{LeaveGroupAsync}}\n\\index{LeaveGroupAsync@{LeaveGroupAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LeaveGroupAsync()}{LeaveGroupAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Leave\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLeave a group by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to leave.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abe13990afd23fbf8257ff448970e1bfa}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a9979bf574bdb33a716ac56b51eca6758}\\label{class_nakama_1_1_client_a9979bf574bdb33a716ac56b51eca6758}} \n\\index{Nakama.Client@{Nakama.Client}!LinkAppleAsync@{LinkAppleAsync}}\n\\index{LinkAppleAsync@{LinkAppleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkAppleAsync()}{LinkAppleAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink an Apple ID to the social profiles on the current user\\textquotesingle{}s account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aed84d3ba843ee53c3fc62bfac3d56aef}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ac4845e6a960a43d8ead44c2cb2d2fb00}\\label{class_nakama_1_1_client_ac4845e6a960a43d8ead44c2cb2d2fb00}} \n\\index{Nakama.Client@{Nakama.Client}!LinkCustomAsync@{LinkCustomAsync}}\n\\index{LinkCustomAsync@{LinkCustomAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkCustomAsync()}{LinkCustomAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a custom ID to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab18171e22bdc5d997ff5d87a206fbc18}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aad4baf992848d4029adcbb4ce964bb2e}\\label{class_nakama_1_1_client_aad4baf992848d4029adcbb4ce964bb2e}} \n\\index{Nakama.Client@{Nakama.Client}!LinkDeviceAsync@{LinkDeviceAsync}}\n\\index{LinkDeviceAsync@{LinkDeviceAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkDeviceAsync()}{LinkDeviceAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a device ID to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_accadcf9970bbc108cae1eaa386b2ad0c}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aadee51567a81169984fd146111f237db}\\label{class_nakama_1_1_client_aadee51567a81169984fd146111f237db}} \n\\index{Nakama.Client@{Nakama.Client}!LinkEmailAsync@{LinkEmailAsync}}\n\\index{LinkEmailAsync@{LinkEmailAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkEmailAsync()}{LinkEmailAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink an email with password to the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae6bd9267c215b0df2246862d566c6d63}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ac81c5d3cf0fcf05f3c482ceec63c17e8}\\label{class_nakama_1_1_client_ac81c5d3cf0fcf05f3c482ceec63c17e8}} \n\\index{Nakama.Client@{Nakama.Client}!LinkFacebookAsync@{LinkFacebookAsync}}\n\\index{LinkFacebookAsync@{LinkFacebookAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkFacebookAsync()}{LinkFacebookAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{import = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Facebook profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a68926218392683fb7112bf26d7b1814c}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a655ce991784045167e7b470b421788fa}\\label{class_nakama_1_1_client_a655ce991784045167e7b470b421788fa}} \n\\index{Nakama.Client@{Nakama.Client}!LinkGameCenterAsync@{LinkGameCenterAsync}}\n\\index{LinkGameCenterAsync@{LinkGameCenterAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkGameCenterAsync()}{LinkGameCenterAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Game Center profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a15277cc6c181d77784a87da9383df7e4}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a0f4fe2298df0fa8b4ac5a14dbbfce74b}\\label{class_nakama_1_1_client_a0f4fe2298df0fa8b4ac5a14dbbfce74b}} \n\\index{Nakama.Client@{Nakama.Client}!LinkGoogleAsync@{LinkGoogleAsync}}\n\\index{LinkGoogleAsync@{LinkGoogleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkGoogleAsync()}{LinkGoogleAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Google profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3fa471a46116248041a080016ad181cf}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a53f8adbc758568e7b70653cbfc33eeec}\\label{class_nakama_1_1_client_a53f8adbc758568e7b70653cbfc33eeec}} \n\\index{Nakama.Client@{Nakama.Client}!LinkSteamAsync@{LinkSteamAsync}}\n\\index{LinkSteamAsync@{LinkSteamAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{LinkSteamAsync()}{LinkSteamAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Link\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool}]{sync,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Steam profile to a user account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aaa180e86df389caf7cc42d82760aabf0}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a5915e1dd4090b1f58f9295361b58016b}\\label{class_nakama_1_1_client_a5915e1dd4090b1f58f9295361b58016b}} \n\\index{Nakama.Client@{Nakama.Client}!ListChannelMessagesAsync@{ListChannelMessagesAsync}}\n\\index{ListChannelMessagesAsync@{ListChannelMessagesAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListChannelMessagesAsync()}{ListChannelMessagesAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ Nakama.\\+Client.\\+List\\+Channel\\+Messages\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{bool}]{forward = {\\ttfamily true},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList messages from a chat channel. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel} & The chat channel object.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac7cad85806c3824a967959455d828440}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_afda758a691879a09e10e7689a871a781}\\label{class_nakama_1_1_client_afda758a691879a09e10e7689a871a781}} \n\\index{Nakama.Client@{Nakama.Client}!ListChannelMessagesAsync@{ListChannelMessagesAsync}}\n\\index{ListChannelMessagesAsync@{ListChannelMessagesAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListChannelMessagesAsync()}{ListChannelMessagesAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ Nakama.\\+Client.\\+List\\+Channel\\+Messages\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{channel\\+Id,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{bool}]{forward = {\\ttfamily true},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList messages from a chat channel. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel\\+Id} & A channel identifier.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0fd095e04016f75de9d589891a1518ac}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a1258302f25c2441cd419460a21aa3756}\\label{class_nakama_1_1_client_a1258302f25c2441cd419460a21aa3756}} \n\\index{Nakama.Client@{Nakama.Client}!ListFriendsAsync@{ListFriendsAsync}}\n\\index{ListFriendsAsync@{ListFriendsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListFriendsAsync()}{ListFriendsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{IApi\\+Friend\\+List}} $>$ Nakama.\\+Client.\\+List\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int?}]{state,  }\\item[{int}]{limit,  }\\item[{string}]{cursor,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList of friends of the current user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by friendship state.\\\\\n\\hline\n{\\em limit} & The number of friends to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the friends list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the friend objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af4b8829ce42c75274ab62e4692b748a8}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a052addd5b095f2c4d2b2d38dfc8e993f}\\label{class_nakama_1_1_client_a052addd5b095f2c4d2b2d38dfc8e993f}} \n\\index{Nakama.Client@{Nakama.Client}!ListGroupsAsync@{ListGroupsAsync}}\n\\index{ListGroupsAsync@{ListGroupsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListGroupsAsync()}{ListGroupsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{IApi\\+Group\\+List}} $>$ Nakama.\\+Client.\\+List\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{int?}]{members = {\\ttfamily null},  }\\item[{bool?}]{open = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList groups on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name filter to apply to the group list.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the groups to list.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag filter to apply to the group list.\\\\\n\\hline\n{\\em members} & The number of group members filter to apply to the group list.\\\\\n\\hline\n{\\em open} & The open/closed filter to apply to the group list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve group objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a93b462ed1236ba5839cdb811b19524bc}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a80306a00533b136b52cd6aff74db3e90}\\label{class_nakama_1_1_client_a80306a00533b136b52cd6aff74db3e90}} \n\\index{Nakama.Client@{Nakama.Client}!ListGroupUsersAsync@{ListGroupUsersAsync}}\n\\index{ListGroupUsersAsync@{ListGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListGroupUsersAsync()}{ListGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{IApi\\+Group\\+User\\+List}} $>$ Nakama.\\+Client.\\+List\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{int?}]{state,  }\\item[{int}]{limit,  }\\item[{string}]{cursor,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all users part of the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the group listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group user objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac77e1bbf873d728d622b627943e64351}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aa00e1eb5a776bb9a554507eba56c8272}\\label{class_nakama_1_1_client_aa00e1eb5a776bb9a554507eba56c8272}} \n\\index{Nakama.Client@{Nakama.Client}!ListLeaderboardRecordsAroundOwnerAsync@{ListLeaderboardRecordsAroundOwnerAsync}}\n\\index{ListLeaderboardRecordsAroundOwnerAsync@{ListLeaderboardRecordsAroundOwnerAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListLeaderboardRecordsAroundOwnerAsync()}{ListLeaderboardRecordsAroundOwnerAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ Nakama.\\+Client.\\+List\\+Leaderboard\\+Records\\+Around\\+Owner\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{string}]{owner\\+Id,  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList leaderboard records that belong to a user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the user to list around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The limit of the listings.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5fac82246b40a4df8311f51b3d565dae}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ab0157c7184c86a9e6cbaae2ae720adf1}\\label{class_nakama_1_1_client_ab0157c7184c86a9e6cbaae2ae720adf1}} \n\\index{Nakama.Client@{Nakama.Client}!ListLeaderboardRecordsAsync@{ListLeaderboardRecordsAsync}}\n\\index{ListLeaderboardRecordsAsync@{ListLeaderboardRecordsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListLeaderboardRecordsAsync()}{ListLeaderboardRecordsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ Nakama.\\+Client.\\+List\\+Leaderboard\\+Records\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{owner\\+Ids = {\\ttfamily null},  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList records from a leaderboard. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Ids} & Record owners to fetch with the list of records.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the leaderboard records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a90b33da885f5fee1267420a0acbc1e87}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ad169be18d357b3b57067abf62e063310}\\label{class_nakama_1_1_client_ad169be18d357b3b57067abf62e063310}} \n\\index{Nakama.Client@{Nakama.Client}!ListMatchesAsync@{ListMatchesAsync}}\n\\index{ListMatchesAsync@{ListMatchesAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListMatchesAsync()}{ListMatchesAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{IApi\\+Match\\+List}} $>$ Nakama.\\+Client.\\+List\\+Matches\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{min,  }\\item[{int}]{max,  }\\item[{int}]{limit,  }\\item[{bool}]{authoritative,  }\\item[{string}]{label,  }\\item[{string}]{query,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch a list of matches active on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em min} & The minimum number of match participants.\\\\\n\\hline\n{\\em max} & The maximum number of match participants.\\\\\n\\hline\n{\\em limit} & The number of matches to list.\\\\\n\\hline\n{\\em authoritative} & If authoritative matches should be included.\\\\\n\\hline\n{\\em label} & The label to filter the match list on.\\\\\n\\hline\n{\\em query} & A query for the matches to filter.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the match list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af52b743a4d334b23a43fad156f0eb54c}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_acde199dc46bdceabea904a44477cd284}\\label{class_nakama_1_1_client_acde199dc46bdceabea904a44477cd284}} \n\\index{Nakama.Client@{Nakama.Client}!ListNotificationsAsync@{ListNotificationsAsync}}\n\\index{ListNotificationsAsync@{ListNotificationsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListNotificationsAsync()}{ListNotificationsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{IApi\\+Notification\\+List}} $>$ Nakama.\\+Client.\\+List\\+Notifications\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cacheable\\+Cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList notifications for the user with an optional cursor. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of notifications to list.\\\\\n\\hline\n{\\em cacheable\\+Cursor} & A cursor for the current position in notifications to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve notifications objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a9443bb244b7a51c6a493900822c654f1}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a90db3c9a4f3994fc1616bc702a2584e1}\\label{class_nakama_1_1_client_a90db3c9a4f3994fc1616bc702a2584e1}} \n\\index{Nakama.Client@{Nakama.Client}!ListStorageObjects@{ListStorageObjects}}\n\\index{ListStorageObjects@{ListStorageObjects}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListStorageObjects()}{ListStorageObjects()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ Nakama.\\+Client.\\+List\\+Storage\\+Objects (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{collection,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a35c013a31537eea2ff7fe2239f5623e9}\\label{class_nakama_1_1_client_a35c013a31537eea2ff7fe2239f5623e9}} \n\\index{Nakama.Client@{Nakama.Client}!ListStorageObjectsAsync@{ListStorageObjectsAsync}}\n\\index{ListStorageObjectsAsync@{ListStorageObjectsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListStorageObjectsAsync()}{ListStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ Nakama.\\+Client.\\+List\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{collection,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList storage objects in a collection which have public read access. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em limit} & The number of objects to list. Maximum 100.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection. May be null.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_afeec7a75562cfc1c9f51d35095580046}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a66425250e7fb827cc677da4732290329}\\label{class_nakama_1_1_client_a66425250e7fb827cc677da4732290329}} \n\\index{Nakama.Client@{Nakama.Client}!ListSubscriptionsAsync@{ListSubscriptionsAsync}}\n\\index{ListSubscriptionsAsync@{ListSubscriptionsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListSubscriptionsAsync()}{ListSubscriptionsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{IApi\\+Subscription\\+List}} $>$ Nakama.\\+Client.\\+List\\+Subscriptions\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{limit,  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList the user\\textquotesingle{}s subscriptions. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of subscriptions to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of subscriptions.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription list.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3e2cf89415aebbfdecb0f7015b37ba37}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae141eceb632e705999c2d8d0243ab99d}\\label{class_nakama_1_1_client_ae141eceb632e705999c2d8d0243ab99d}} \n\\index{Nakama.Client@{Nakama.Client}!ListTournamentRecordsAroundOwnerAsync@{ListTournamentRecordsAroundOwnerAsync}}\n\\index{ListTournamentRecordsAroundOwnerAsync@{ListTournamentRecordsAroundOwnerAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentRecordsAroundOwnerAsync()}{ListTournamentRecordsAroundOwnerAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ Nakama.\\+Client.\\+List\\+Tournament\\+Records\\+Around\\+Owner\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{string}]{owner\\+Id,  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList tournament records around the owner. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the owner to pivot around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0165ccd67746f2775a70387b9f5f7cfb}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aa994ad73bfce3f829e041505fb54e119}\\label{class_nakama_1_1_client_aa994ad73bfce3f829e041505fb54e119}} \n\\index{Nakama.Client@{Nakama.Client}!ListTournamentRecordsAsync@{ListTournamentRecordsAsync}}\n\\index{ListTournamentRecordsAsync@{ListTournamentRecordsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentRecordsAsync()}{ListTournamentRecordsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ Nakama.\\+Client.\\+List\\+Tournament\\+Records\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{owner\\+Ids = {\\ttfamily null},  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList records from a tournament. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Ids} & The IDs of the record owners to return in the result.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournament records.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament records.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac4a420dab57716222bbb8151700b1cdc}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a4e64d250674e061e2304bdf2e4fe4342}\\label{class_nakama_1_1_client_a4e64d250674e061e2304bdf2e4fe4342}} \n\\index{Nakama.Client@{Nakama.Client}!ListTournamentsAsync@{ListTournamentsAsync}}\n\\index{ListTournamentsAsync@{ListTournamentsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentsAsync()}{ListTournamentsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{IApi\\+Tournament\\+List}} $>$ Nakama.\\+Client.\\+List\\+Tournaments\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{category\\+Start,  }\\item[{int}]{category\\+End,  }\\item[{int?}]{start\\+Time = {\\ttfamily null},  }\\item[{int?}]{end\\+Time = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList current or upcoming tournaments. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em category\\+Start} & The start of the category of tournaments to include.\\\\\n\\hline\n{\\em category\\+End} & The end of the category of tournaments to include.\\\\\n\\hline\n{\\em start\\+Time} & The start time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by start time.\\\\\n\\hline\n{\\em end\\+Time} & The end time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by end time.\\\\\n\\hline\n{\\em limit} & The number of tournaments to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournaments.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament objects.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a43e7575784efc55785124576651ac617}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_afb7774654804a171c8a602f3406466a1}\\label{class_nakama_1_1_client_afb7774654804a171c8a602f3406466a1}} \n\\index{Nakama.Client@{Nakama.Client}!ListUserGroupsAsync@{ListUserGroupsAsync}}\n\\index{ListUserGroupsAsync@{ListUserGroupsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListUserGroupsAsync()}{ListUserGroupsAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ Nakama.\\+Client.\\+List\\+User\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int?}]{state,  }\\item[{int}]{limit,  }\\item[{string}]{cursor,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList of groups the current user is a member of. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a20b9a6e164506988f758a00d0dd68efe}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a6dbbdc5225f9e64e576ad171003bbda8}\\label{class_nakama_1_1_client_a6dbbdc5225f9e64e576ad171003bbda8}} \n\\index{Nakama.Client@{Nakama.Client}!ListUserGroupsAsync@{ListUserGroupsAsync}}\n\\index{ListUserGroupsAsync@{ListUserGroupsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListUserGroupsAsync()}{ListUserGroupsAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ Nakama.\\+Client.\\+List\\+User\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{user\\+Id,  }\\item[{int?}]{state,  }\\item[{int}]{limit,  }\\item[{string}]{cursor,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList groups a user is a member of. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em user\\+Id} & The ID of the user whose groups to list.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aceddfd721720890ee6de3d4c67d699f6}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a90c1f81c4e27cc664f16dcad793a6381}\\label{class_nakama_1_1_client_a90c1f81c4e27cc664f16dcad793a6381}} \n\\index{Nakama.Client@{Nakama.Client}!ListUsersStorageObjectsAsync@{ListUsersStorageObjectsAsync}}\n\\index{ListUsersStorageObjectsAsync@{ListUsersStorageObjectsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListUsersStorageObjectsAsync()}{ListUsersStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ Nakama.\\+Client.\\+List\\+Users\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{collection,  }\\item[{string}]{user\\+Id,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList storage objects in a collection which belong to a specific user and have public read access. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em user\\+Id} & The user ID of the user to list objects for.\\\\\n\\hline\n{\\em limit} & The number of objects to list.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aeb5b5a9f8920ee2e287fc15e6dbae5d9}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a703f15655bec3592a25827f78715ecda}\\label{class_nakama_1_1_client_a703f15655bec3592a25827f78715ecda}} \n\\index{Nakama.Client@{Nakama.Client}!PromoteGroupUsersAsync@{PromoteGroupUsersAsync}}\n\\index{PromoteGroupUsersAsync@{PromoteGroupUsersAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{PromoteGroupUsersAsync()}{PromoteGroupUsersAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Promote\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nPromote one or more users in the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to promote users into.\\\\\n\\hline\n{\\em ids} & The IDs of the users to promote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6f9bf7b5dc74dfab741e7aadfba89e4b}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a2dd9eb134b2aabf3df838aa0c15cb715}\\label{class_nakama_1_1_client_a2dd9eb134b2aabf3df838aa0c15cb715}} \n\\index{Nakama.Client@{Nakama.Client}!ReadStorageObjectsAsync@{ReadStorageObjectsAsync}}\n\\index{ReadStorageObjectsAsync@{ReadStorageObjectsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ReadStorageObjectsAsync()}{ReadStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{IApi\\+Storage\\+Objects}} $>$ Nakama.\\+Client.\\+Read\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]}}]{ids = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRead one or more objects from the storage engine. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The objects to read.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage batch object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1b2f0ed3a7a73e8263d98036d53817fc}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae7903e1c260db27a9325f542410dffb1}\\label{class_nakama_1_1_client_ae7903e1c260db27a9325f542410dffb1}} \n\\index{Nakama.Client@{Nakama.Client}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+Client.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3b15daa0defb16913157e3fed94b1aab}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a662403d6079acb66a0c8acb71e87b24d}\\label{class_nakama_1_1_client_a662403d6079acb66a0c8acb71e87b24d}} \n\\index{Nakama.Client@{Nakama.Client}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+Client.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{string}]{payload,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function with an input payload on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em payload} & The payload to send with the function call.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a29b2534c256578fc1868d488e8f553f8}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ab40414406802388e487e366aa9c109a6}\\label{class_nakama_1_1_client_ab40414406802388e487e366aa9c109a6}} \n\\index{Nakama.Client@{Nakama.Client}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+Client.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{httpkey,  }\\item[{string}]{id,  }\\item[{string}]{payload = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function on the server without a session. \n\nThis function is usually used with server side code. DO NOT USE client side.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a929523abb193fede9a6db74056d57ac4}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a3cf4591ab80d069ec55b8021bb51c730}\\label{class_nakama_1_1_client_a3cf4591ab80d069ec55b8021bb51c730}} \n\\index{Nakama.Client@{Nakama.Client}!SessionLogoutAsync@{SessionLogoutAsync}}\n\\index{SessionLogoutAsync@{SessionLogoutAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{SessionLogoutAsync()}{SessionLogoutAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Client.\\+Session\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session which invalidates the authorization and refresh token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session to logout.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac0bf64fd0de7fe6a73a737b5ef514d93}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a6e965270a90777b5aab3f3b4c7ba2374}\\label{class_nakama_1_1_client_a6e965270a90777b5aab3f3b4c7ba2374}} \n\\index{Nakama.Client@{Nakama.Client}!SessionLogoutAsync@{SessionLogoutAsync}}\n\\index{SessionLogoutAsync@{SessionLogoutAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{SessionLogoutAsync()}{SessionLogoutAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Client.\\+Session\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{auth\\+Token,  }\\item[{string}]{refresh\\+Token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session which optionally invalidates the authorization and/or refresh tokens. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em auth\\+Token} & The authorization token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em refresh\\+Token} & The refresh token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6c53fa09b45cde7987ca6e3dc1f877bc}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a54ddec21945530369fca30e9306efe5d}\\label{class_nakama_1_1_client_a54ddec21945530369fca30e9306efe5d}} \n\\index{Nakama.Client@{Nakama.Client}!SessionRefreshAsync@{SessionRefreshAsync}}\n\\index{SessionRefreshAsync@{SessionRefreshAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{SessionRefreshAsync()}{SessionRefreshAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+Client.\\+Session\\+Refresh\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRefresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em vars} & Extra information which should be bundled inside the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af75a6a3aceaddf452fb714e08b0d3b0b}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_adf62218ff4074ee7847260fb69f7a40e}\\label{class_nakama_1_1_client_adf62218ff4074ee7847260fb69f7a40e}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkAppleAsync@{UnlinkAppleAsync}}\n\\index{UnlinkAppleAsync@{UnlinkAppleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkAppleAsync()}{UnlinkAppleAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRemove the Apple ID from the social profiles on the current user\\textquotesingle{}s account. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a4ba0c6637b9685eb0474352de1797a2e}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_adb85bd4e511e508ef6858b103aa31523}\\label{class_nakama_1_1_client_adb85bd4e511e508ef6858b103aa31523}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkCustomAsync@{UnlinkCustomAsync}}\n\\index{UnlinkCustomAsync@{UnlinkCustomAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkCustomAsync()}{UnlinkCustomAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a custom ID from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a2c4af0c1a411fff04f6f68427d9c82ae}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a04f2596af7c5ffde9353981faed6443d}\\label{class_nakama_1_1_client_a04f2596af7c5ffde9353981faed6443d}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkDeviceAsync@{UnlinkDeviceAsync}}\n\\index{UnlinkDeviceAsync@{UnlinkDeviceAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkDeviceAsync()}{UnlinkDeviceAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a device ID from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a4be577065a26f40b5c8fcf501b83c7fc}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a93428352ac3edb3e35d00afe0e108f5d}\\label{class_nakama_1_1_client_a93428352ac3edb3e35d00afe0e108f5d}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkEmailAsync@{UnlinkEmailAsync}}\n\\index{UnlinkEmailAsync@{UnlinkEmailAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkEmailAsync()}{UnlinkEmailAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink an email with password from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a94c94fa13db5528abe5fc6a13cb469f1}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a116b79c31bc4bf94f0b037e6ecb33fc1}\\label{class_nakama_1_1_client_a116b79c31bc4bf94f0b037e6ecb33fc1}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkFacebookAsync@{UnlinkFacebookAsync}}\n\\index{UnlinkFacebookAsync@{UnlinkFacebookAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkFacebookAsync()}{UnlinkFacebookAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Facebook profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a9209cbf097fc5d612df113dc1f7a380e}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_adb1615cbce3978b43928c6dc1641fcd9}\\label{class_nakama_1_1_client_adb1615cbce3978b43928c6dc1641fcd9}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkGameCenterAsync@{UnlinkGameCenterAsync}}\n\\index{UnlinkGameCenterAsync@{UnlinkGameCenterAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkGameCenterAsync()}{UnlinkGameCenterAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Game Center profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8db620f585a3b1c6b33c83ffa959759c}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ad30a4f27ec44259a72fb7ecd55b855cc}\\label{class_nakama_1_1_client_ad30a4f27ec44259a72fb7ecd55b855cc}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkGoogleAsync@{UnlinkGoogleAsync}}\n\\index{UnlinkGoogleAsync@{UnlinkGoogleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkGoogleAsync()}{UnlinkGoogleAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Google profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aec2588fcb68ad3807af840f6886f79e7}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aa7cf34d32c3bd2dd89224491dd03627a}\\label{class_nakama_1_1_client_aa7cf34d32c3bd2dd89224491dd03627a}} \n\\index{Nakama.Client@{Nakama.Client}!UnlinkSteamAsync@{UnlinkSteamAsync}}\n\\index{UnlinkSteamAsync@{UnlinkSteamAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkSteamAsync()}{UnlinkSteamAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Unlink\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Steam profile from the user account owned by the session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0b5ce7e1a9d3707e2a098ea531a26b5d}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a493aaa96074ed53faae99041c1ff71e7}\\label{class_nakama_1_1_client_a493aaa96074ed53faae99041c1ff71e7}} \n\\index{Nakama.Client@{Nakama.Client}!UpdateAccountAsync@{UpdateAccountAsync}}\n\\index{UpdateAccountAsync@{UpdateAccountAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UpdateAccountAsync()}{UpdateAccountAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Update\\+Account\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{username,  }\\item[{string}]{display\\+Name = {\\ttfamily null},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{string}]{location = {\\ttfamily null},  }\\item[{string}]{timezone = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate the current user\\textquotesingle{}s account on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em username} & The new username for the user.\\\\\n\\hline\n{\\em display\\+Name} & A new display name for the user.\\\\\n\\hline\n{\\em avatar\\+Url} & A new avatar url for the user.\\\\\n\\hline\n{\\em lang\\+Tag} & A new language tag in BCP-\\/47 format for the user.\\\\\n\\hline\n{\\em location} & A new location for the user.\\\\\n\\hline\n{\\em timezone} & New timezone information for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a981b2780f9f9bf2b8e2b4f423680013f}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ae4721e57aa314b32152069e2644eb02b}\\label{class_nakama_1_1_client_ae4721e57aa314b32152069e2644eb02b}} \n\\index{Nakama.Client@{Nakama.Client}!UpdateGroupAsync@{UpdateGroupAsync}}\n\\index{UpdateGroupAsync@{UpdateGroupAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{UpdateGroupAsync()}{UpdateGroupAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Client.\\+Update\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{string}]{name,  }\\item[{bool}]{open,  }\\item[{string}]{description = {\\ttfamily null},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate a group. \n\nThe user must have the correct access permissions for the group.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1ab56488f06c34d4c8e7a184ef923176}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a03a03e289c71ee9a21c6dc03241bd846}\\label{class_nakama_1_1_client_a03a03e289c71ee9a21c6dc03241bd846}} \n\\index{Nakama.Client@{Nakama.Client}!ValidatePurchaseAppleAsync@{ValidatePurchaseAppleAsync}}\n\\index{ValidatePurchaseAppleAsync@{ValidatePurchaseAppleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseAppleAsync()}{ValidatePurchaseAppleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+Client.\\+Validate\\+Purchase\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Apple App Store. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3b4319cfed8f66406e01105fcbd46286}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a08e6406e21fd5fc52ee905b586210276}\\label{class_nakama_1_1_client_a08e6406e21fd5fc52ee905b586210276}} \n\\index{Nakama.Client@{Nakama.Client}!ValidatePurchaseGoogleAsync@{ValidatePurchaseGoogleAsync}}\n\\index{ValidatePurchaseGoogleAsync@{ValidatePurchaseGoogleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseGoogleAsync()}{ValidatePurchaseGoogleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+Client.\\+Validate\\+Purchase\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Google Play Store. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a58ec876cf25e2c0a096fa02dac977985}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a7d49b887e6d302f68917162a0567ad66}\\label{class_nakama_1_1_client_a7d49b887e6d302f68917162a0567ad66}} \n\\index{Nakama.Client@{Nakama.Client}!ValidatePurchaseHuaweiAsync@{ValidatePurchaseHuaweiAsync}}\n\\index{ValidatePurchaseHuaweiAsync@{ValidatePurchaseHuaweiAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseHuaweiAsync()}{ValidatePurchaseHuaweiAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+Client.\\+Validate\\+Purchase\\+Huawei\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{string}]{signature,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Huawei App\\+Gallery. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em signature} & The signature of the purchase receipt.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a04cd45c9b6e5cc2333f7299a55a182a3}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a63b6bc07335627f58236ba0c9997336f}\\label{class_nakama_1_1_client_a63b6bc07335627f58236ba0c9997336f}} \n\\index{Nakama.Client@{Nakama.Client}!ValidateSubscriptionAppleAsync@{ValidateSubscriptionAppleAsync}}\n\\index{ValidateSubscriptionAppleAsync@{ValidateSubscriptionAppleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ValidateSubscriptionAppleAsync()}{ValidateSubscriptionAppleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ Nakama.\\+Client.\\+Validate\\+Subscription\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate an Apple subscription receipt.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The receipt to validate.\\\\\n\\hline\n{\\em persist} & Whether or not to persist the receipt to \\mbox{\\hyperlink{namespace_nakama}{Nakama}}\\textquotesingle{}s database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription validation response. \n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abc626bfa5a312f23033b1dcce16abe90}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a30b942db8e51709901e60c6a5d26c5bb}\\label{class_nakama_1_1_client_a30b942db8e51709901e60c6a5d26c5bb}} \n\\index{Nakama.Client@{Nakama.Client}!ValidateSubscriptionGoogleAsync@{ValidateSubscriptionGoogleAsync}}\n\\index{ValidateSubscriptionGoogleAsync@{ValidateSubscriptionGoogleAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ValidateSubscriptionGoogleAsync()}{ValidateSubscriptionGoogleAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ Nakama.\\+Client.\\+Validate\\+Subscription\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a Google subscription receipt.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The receipt to validate.\\\\\n\\hline\n{\\em persist} & Whether or not to persist the receipt to \\mbox{\\hyperlink{namespace_nakama}{Nakama}}\\textquotesingle{}s database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription validation response. \n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abdceffcc291e56bf4de8683fb6386fe9}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a6b44990352ecbf4c847b29ac715014fb}\\label{class_nakama_1_1_client_a6b44990352ecbf4c847b29ac715014fb}} \n\\index{Nakama.Client@{Nakama.Client}!WriteLeaderboardRecordAsync@{WriteLeaderboardRecordAsync}}\n\\index{WriteLeaderboardRecordAsync@{WriteLeaderboardRecordAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{WriteLeaderboardRecordAsync()}{WriteLeaderboardRecordAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ Nakama.\\+Client.\\+Write\\+Leaderboard\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{long}]{score,  }\\item[{long}]{sub\\+Score = {\\ttfamily 0},  }\\item[{string}]{metadata = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}}}]{api\\+Operator = {\\ttfamily ApiOperator.NO\\+\\_\\+OVERRIDE},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite a record to a leaderboard. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to write.\\\\\n\\hline\n{\\em score} & The score for the leaderboard record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the leaderboard record.\\\\\n\\hline\n{\\em metadata} & The metadata for the leaderboard record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the leaderboard. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a75172b3237e2c1a0dd2df2d1e0a19ec1}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_ad2d4bb27d5340afb6be824a2bc2e7815}\\label{class_nakama_1_1_client_ad2d4bb27d5340afb6be824a2bc2e7815}} \n\\index{Nakama.Client@{Nakama.Client}!WriteStorageObjectsAsync@{WriteStorageObjectsAsync}}\n\\index{WriteStorageObjectsAsync@{WriteStorageObjectsAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{WriteStorageObjectsAsync()}{WriteStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{IApi\\+Storage\\+Object\\+Acks}} $>$ Nakama.\\+Client.\\+Write\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}}\\mbox{[}$\\,$\\mbox{]}}]{objects = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite objects to the storage engine. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em objects} & The objects to write.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage write acknowledgements.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_adc8f34b5cacc6e61d0240d53c1383935}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_af0b988b7a04b78b7aac805dc502ff52d}\\label{class_nakama_1_1_client_af0b988b7a04b78b7aac805dc502ff52d}} \n\\index{Nakama.Client@{Nakama.Client}!WriteTournamentRecordAsync@{WriteTournamentRecordAsync}}\n\\index{WriteTournamentRecordAsync@{WriteTournamentRecordAsync}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{WriteTournamentRecordAsync()}{WriteTournamentRecordAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ Nakama.\\+Client.\\+Write\\+Tournament\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{long}]{score,  }\\item[{long}]{sub\\+Score = {\\ttfamily 0},  }\\item[{string}]{metadata = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}}}]{api\\+Operator = {\\ttfamily ApiOperator.NO\\+\\_\\+OVERRIDE},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite a record to a tournament. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to write.\\\\\n\\hline\n{\\em score} & The score of the tournament record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the tournament record.\\\\\n\\hline\n{\\em metadata} & The metadata for the tournament record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the tournament. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0e18257ebdd85c9a0d56c501e221e90a}{Nakama.\\+IClient}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a2abea8492c53d4579c14eb4ae5327610}\\label{class_nakama_1_1_client_a2abea8492c53d4579c14eb4ae5327610}} \n\\index{Nakama.Client@{Nakama.Client}!AutoRefreshSession@{AutoRefreshSession}}\n\\index{AutoRefreshSession@{AutoRefreshSession}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{AutoRefreshSession}{AutoRefreshSession}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Client.\\+Auto\\+Refresh\\+Session\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nTrue if the session should be refreshed with an active refresh token.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a65ce1849bf8c639c0d11853be12f22f8}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_a4e84dc06e439ead1dcdc918350b93ed8}\\label{class_nakama_1_1_client_a4e84dc06e439ead1dcdc918350b93ed8}} \n\\index{Nakama.Client@{Nakama.Client}!GlobalRetryConfiguration@{GlobalRetryConfiguration}}\n\\index{GlobalRetryConfiguration@{GlobalRetryConfiguration}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{GlobalRetryConfiguration}{GlobalRetryConfiguration}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} Nakama.\\+Client.\\+Global\\+Retry\\+Configuration\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n{\\bfseries Initial value\\+:}\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{= \\textcolor{keyword}{new} RetryConfiguration(}\n\\DoxyCodeLine{            baseDelayMs: 500,}\n\\DoxyCodeLine{            jitter: RetryJitter.FullJitter,}\n\\DoxyCodeLine{            listener: \\textcolor{keyword}{null},}\n\\DoxyCodeLine{            maxRetries: 4)}\n\n\\end{DoxyCode}\n\n\nThe global retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad86bc2c00a137d35243e977086a00ffa}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aacad034c2d21b970537423de0ba27e4f}\\label{class_nakama_1_1_client_aacad034c2d21b970537423de0ba27e4f}} \n\\index{Nakama.Client@{Nakama.Client}!Host@{Host}}\n\\index{Host@{Host}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{Host}{Host}}\n{\\footnotesize\\ttfamily string Nakama.\\+Client.\\+Host\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe host address of the server. Defaults to \\char`\\\"{}127.\\+0.\\+0.\\+1\\char`\\\"{}.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a93e9759631f1a3106dc4ec47477f3eb8}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aa59309ff4ed7172795782cd69cb295d8}\\label{class_nakama_1_1_client_aa59309ff4ed7172795782cd69cb295d8}} \n\\index{Nakama.Client@{Nakama.Client}!Port@{Port}}\n\\index{Port@{Port}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{Port}{Port}}\n{\\footnotesize\\ttfamily int Nakama.\\+Client.\\+Port\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe port number of the server. Defaults to 7350.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad5d7b98d99d381d0340e7d8e90a54d26}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_afaf274b5c7dc2b21931b7d6814f3d455}\\label{class_nakama_1_1_client_afaf274b5c7dc2b21931b7d6814f3d455}} \n\\index{Nakama.Client@{Nakama.Client}!Scheme@{Scheme}}\n\\index{Scheme@{Scheme}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{Scheme}{Scheme}}\n{\\footnotesize\\ttfamily string Nakama.\\+Client.\\+Scheme\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe protocol scheme used to connect with the server. Must be either \\char`\\\"{}http\\char`\\\"{} or \\char`\\\"{}https\\char`\\\"{}.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5ce30e2720c3b831e249bf19452eb340}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_aa70b920781b70f74f0419d262043dbd1}\\label{class_nakama_1_1_client_aa70b920781b70f74f0419d262043dbd1}} \n\\index{Nakama.Client@{Nakama.Client}!ServerKey@{ServerKey}}\n\\index{ServerKey@{ServerKey}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{ServerKey}{ServerKey}}\n{\\footnotesize\\ttfamily string Nakama.\\+Client.\\+Server\\+Key\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe key used to authenticate with the server without a session. Defaults to \\char`\\\"{}defaultkey\\char`\\\"{}.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6b13274c171e19e07f26ea5334f8ab23}{Nakama.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_client_afa11ac790793b5178c423364cc1a1cd2}\\label{class_nakama_1_1_client_afa11ac790793b5178c423364cc1a1cd2}} \n\\index{Nakama.Client@{Nakama.Client}!Timeout@{Timeout}}\n\\index{Timeout@{Timeout}!Nakama.Client@{Nakama.Client}}\n\\doxysubsubsection{\\texorpdfstring{Timeout}{Timeout}}\n{\\footnotesize\\ttfamily int Nakama.\\+Client.\\+Timeout\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nSet the timeout in seconds on requests sent to the server.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aadcfb5308770d73098d9ba66534074af}{Nakama.\\+IClient}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Client.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_console_1_1_api_response_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 161.290329\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.100000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Console.ApiResponseException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Console.ApiResponseException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_console_1_1_api_response_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_console_1_1_api_response_exception}{}\\doxysection{Nakama.\\+Console.\\+Api\\+Response\\+Exception Class Reference}\n\\label{class_nakama_1_1_console_1_1_api_response_exception}\\index{Nakama.Console.ApiResponseException@{Nakama.Console.ApiResponseException}}\n\n\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.   \n\n\nInheritance diagram for Nakama.\\+Console.\\+Api\\+Response\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_console_1_1_api_response_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_a933cc0e479dba1f3cd313f4b1c20d767}\\label{class_nakama_1_1_console_1_1_api_response_exception_a933cc0e479dba1f3cd313f4b1c20d767}} \n{\\bfseries Api\\+Response\\+Exception} (long status\\+Code, string content, int grpc\\+Code)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_a86369acf7418c84ce4a240da5265426a}\\label{class_nakama_1_1_console_1_1_api_response_exception_a86369acf7418c84ce4a240da5265426a}} \n{\\bfseries Api\\+Response\\+Exception} (string message, Exception e)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_a01bba3c61b60831e541fa66042a02b19}\\label{class_nakama_1_1_console_1_1_api_response_exception_a01bba3c61b60831e541fa66042a02b19}} \n{\\bfseries Api\\+Response\\+Exception} (string content)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_a2f8ee604a09e87845c62e456c971b80b}\\label{class_nakama_1_1_console_1_1_api_response_exception_a2f8ee604a09e87845c62e456c971b80b}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_a21148e047e087bcccedeecabd6155a75}\\label{class_nakama_1_1_console_1_1_api_response_exception_a21148e047e087bcccedeecabd6155a75}} \nlong {\\bfseries Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_console_1_1_api_response_exception_ac3d8426c1cdd77745c764b0e6552050c}\\label{class_nakama_1_1_console_1_1_api_response_exception_ac3d8426c1cdd77745c764b0e6552050c}} \nint {\\bfseries Grpc\\+Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_http_request_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 222.222229\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.250000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.HttpRequestAdapter) cw\n(Nakama.IHttpAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.HttpRequestAdapter) 0.000000 0.000000 box\n (Nakama.IHttpAdapter) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_http_request_adapter.tex",
    "content": "\\hypertarget{class_nakama_1_1_http_request_adapter}{}\\doxysection{Nakama.\\+Http\\+Request\\+Adapter Class Reference}\n\\label{class_nakama_1_1_http_request_adapter}\\index{Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}}\n\n\nHTTP Request adapter which uses the .NET Http\\+Client to send requests.   \n\n\nInheritance diagram for Nakama.\\+Http\\+Request\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_http_request_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_http_request_adapter_abd7df73941b1255fe8ddd66e995e6a7a}\\label{class_nakama_1_1_http_request_adapter_abd7df73941b1255fe8ddd66e995e6a7a}} \n{\\bfseries Http\\+Request\\+Adapter} (Http\\+Client http\\+Client)\n\\item \nasync Task$<$ string $>$ \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_a7562e1777699f16911ed2d5e245eb5b7}{Send\\+Async}} (string method, Uri uri, IDictionary$<$ string, string $>$ headers, byte\\mbox{[}$\\,$\\mbox{]} body, int timeout, Cancellation\\+Token? user\\+Cancel\\+Token)\n\\begin{DoxyCompactList}\\small\\item\\em Send a HTTP request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}} \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_ac251341e77f88116e774bddd549c330e}{With\\+Gzip}} (bool decompression=false, bool compression=false)\n\\begin{DoxyCompactList}\\small\\item\\em A new HTTP adapter with configuration for gzip support in the underlying HTTP client.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_a7365d2d5c82d5d0d6b8ac64941a8e533}{Logger}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the adapter.  \\end{DoxyCompactList}\\item \nTransient\\+Exception\\+Delegate \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_ae3ce0f7e336c27b77b9040fe5d851bc5}{Transient\\+Exception\\+Delegate}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nHTTP Request adapter which uses the .NET Http\\+Client to send requests.  \n\nAccept header is always set as \\textquotesingle{}application/json\\textquotesingle{}. \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_http_request_adapter_a7562e1777699f16911ed2d5e245eb5b7}\\label{class_nakama_1_1_http_request_adapter_a7562e1777699f16911ed2d5e245eb5b7}} \n\\index{Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ string $>$ Nakama.\\+Http\\+Request\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{method,  }\\item[{Uri}]{uri,  }\\item[{IDictionary$<$ string, string $>$}]{headers,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{body,  }\\item[{int}]{timeout,  }\\item[{Cancellation\\+Token?}]{user\\+Cancel\\+Token }\\end{DoxyParamCaption})}\n\n\n\nSend a HTTP request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter_af4eea04aef9ed0ccf2ee990bcb294b53}{Nakama.\\+IHttp\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_http_request_adapter_ac251341e77f88116e774bddd549c330e}\\label{class_nakama_1_1_http_request_adapter_ac251341e77f88116e774bddd549c330e}} \n\\index{Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}!WithGzip@{WithGzip}}\n\\index{WithGzip@{WithGzip}!Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{WithGzip()}{WithGzip()}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}} Nakama.\\+Http\\+Request\\+Adapter.\\+With\\+Gzip (\\begin{DoxyParamCaption}\\item[{bool}]{decompression = {\\ttfamily false},  }\\item[{bool}]{compression = {\\ttfamily false} }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nA new HTTP adapter with configuration for gzip support in the underlying HTTP client.  \n\nNOTE Decompression does not work with Mono AOT on Android. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em decompression} & If automatic decompression should be enabled with the HTTP adapter.\\\\\n\\hline\n{\\em compression} & If automatic compression should be enabled with the HTTP adapter.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA new HTTP adapter.\n\\end{DoxyReturn}\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_http_request_adapter_a7365d2d5c82d5d0d6b8ac64941a8e533}\\label{class_nakama_1_1_http_request_adapter_a7365d2d5c82d5d0d6b8ac64941a8e533}} \n\\index{Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}!Logger@{Logger}}\n\\index{Logger@{Logger}!Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{Logger}{Logger}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} Nakama.\\+Http\\+Request\\+Adapter.\\+Logger\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe logger to use with the adapter.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter_ad0514214ba7fce3b8c0697d70874ff1e}{Nakama.\\+IHttp\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_http_request_adapter_ae3ce0f7e336c27b77b9040fe5d851bc5}\\label{class_nakama_1_1_http_request_adapter_ae3ce0f7e336c27b77b9040fe5d851bc5}} \n\\index{Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}!TransientExceptionDelegate@{TransientExceptionDelegate}}\n\\index{TransientExceptionDelegate@{TransientExceptionDelegate}!Nakama.HttpRequestAdapter@{Nakama.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{TransientExceptionDelegate}{TransientExceptionDelegate}}\n{\\footnotesize\\ttfamily Transient\\+Exception\\+Delegate Nakama.\\+Http\\+Request\\+Adapter.\\+Transient\\+Exception\\+Delegate\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{Nakama.\\+IHttp\\+Adapter}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Http\\+Request\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 168.067230\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.975000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.BufferPool) cw\n(Nakama.Ninja.WebSockets.IBufferPool) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.BufferPool) 0.000000 0.000000 box\n (Nakama.Ninja.WebSockets.IBufferPool) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}\\index{Nakama.Ninja.WebSockets.BufferPool@{Nakama.Ninja.WebSockets.BufferPool}}\n\n\nThis buffer pool is instance thread safe Use Get\\+Buffer to get a Memory\\+Stream (with a publically accessible buffer) Calling Close on this Memory\\+Stream will clear its internal buffer and return the buffer to the pool for reuse Memory\\+Streams can grow larger than the DEFAULT\\+\\_\\+\\+BUFFER\\+\\_\\+\\+SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}{Public\\+Buffer\\+Memory\\+Stream}}\n\\begin{DoxyCompactList}\\small\\item\\em This memory stream is not instance thread safe (not to be confused with the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}} which is instance thread safe)  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_abb99536c0129f9ccbba8ad57e772d5fc}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_abb99536c0129f9ccbba8ad57e772d5fc}} \n{\\bfseries Buffer\\+Pool} (int buffer\\+Size)\n\\item \nMemory\\+Stream \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_a3eacbad8a136b33a3c2e859c0cf6fe67}{Get\\+Buffer}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Gets a Memory\\+Stream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Protected Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_ae69844db9d6751407ef246703ec64574}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_ae69844db9d6751407ef246703ec64574}} \nvoid {\\bfseries Return\\+Buffer} (byte\\mbox{[}$\\,$\\mbox{]} buffer)\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThis buffer pool is instance thread safe Use Get\\+Buffer to get a Memory\\+Stream (with a publically accessible buffer) Calling Close on this Memory\\+Stream will clear its internal buffer and return the buffer to the pool for reuse Memory\\+Streams can grow larger than the DEFAULT\\+\\_\\+\\+BUFFER\\+\\_\\+\\+SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_a3eacbad8a136b33a3c2e859c0cf6fe67}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_a3eacbad8a136b33a3c2e859c0cf6fe67}} \n\\index{Nakama.Ninja.WebSockets.BufferPool@{Nakama.Ninja.WebSockets.BufferPool}!GetBuffer@{GetBuffer}}\n\\index{GetBuffer@{GetBuffer}!Nakama.Ninja.WebSockets.BufferPool@{Nakama.Ninja.WebSockets.BufferPool}}\n\\doxysubsubsection{\\texorpdfstring{GetBuffer()}{GetBuffer()}}\n{\\footnotesize\\ttfamily Memory\\+Stream Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool.\\+Get\\+Buffer (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nGets a Memory\\+Stream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool_aba30a1520b1f1733d019704827fbcef2}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Buffer\\+Pool.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 101.522842\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 4.925000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream) cw\n(MemoryStream) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream) 0.000000 0.000000 box\n (MemoryStream) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool.\\+Public\\+Buffer\\+Memory\\+Stream Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}\\index{Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream@{Nakama.Ninja.WebSockets.BufferPool.PublicBufferMemoryStream}}\n\n\nThis memory stream is not instance thread safe (not to be confused with the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}} which is instance thread safe)   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool.\\+Public\\+Buffer\\+Memory\\+Stream\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a9e132ec51a7e7b44148bbc0174b087db}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a9e132ec51a7e7b44148bbc0174b087db}} \n{\\bfseries Public\\+Buffer\\+Memory\\+Stream} (byte\\mbox{[}$\\,$\\mbox{]} buffer, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}} buffer\\+Pool)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a282c64e19a381ae3112c1c6dcc9edbc1}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a282c64e19a381ae3112c1c6dcc9edbc1}} \noverride IAsync\\+Result {\\bfseries Begin\\+Read} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count, Async\\+Callback callback, object state)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a0817a70e52ee58f07dc7b2439ff4e118}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a0817a70e52ee58f07dc7b2439ff4e118}} \noverride IAsync\\+Result {\\bfseries Begin\\+Write} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count, Async\\+Callback callback, object state)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a3f1bc42f24e76c1e6bdd1aa40cdd1a01}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a3f1bc42f24e76c1e6bdd1aa40cdd1a01}} \noverride void {\\bfseries Close} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ad9c1a68bbd0be9674b1836a387e1fb99}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ad9c1a68bbd0be9674b1836a387e1fb99}} \noverride Task {\\bfseries Copy\\+To\\+Async} (System.\\+IO.\\+Stream destination, int buffer\\+Size, Cancellation\\+Token cancellation\\+Token)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a59594ae24d7d39ef08e9b73292324ee7}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a59594ae24d7d39ef08e9b73292324ee7}} \noverride int {\\bfseries End\\+Read} (IAsync\\+Result async\\+Result)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a71d425d0d6626926a04dc11d01886a8c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a71d425d0d6626926a04dc11d01886a8c}} \noverride void {\\bfseries End\\+Write} (IAsync\\+Result async\\+Result)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a1b7518b4364bf38343f92a307d2c6b43}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a1b7518b4364bf38343f92a307d2c6b43}} \noverride void {\\bfseries Flush} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a5372442ce53b399347db05b9e733945c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a5372442ce53b399347db05b9e733945c}} \noverride Task {\\bfseries Flush\\+Async} (Cancellation\\+Token cancellation\\+Token)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a1122a5146dc370748b8581da8c0ab41d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a1122a5146dc370748b8581da8c0ab41d}} \noverride byte\\mbox{[}$\\,$\\mbox{]} {\\bfseries Get\\+Buffer} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a7daab5da199e393bc7abdc0436e170f3}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a7daab5da199e393bc7abdc0436e170f3}} \noverride int {\\bfseries Read} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ac1c46516d90ca145d1bd7094ac258ebd}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ac1c46516d90ca145d1bd7094ac258ebd}} \noverride void {\\bfseries Write\\+Byte} (byte value)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ab3c4ef8d23b7a74be94cc3e92346a38f}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ab3c4ef8d23b7a74be94cc3e92346a38f}} \noverride void {\\bfseries Write} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ae5791506aa3049962dba047ebacffa6c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ae5791506aa3049962dba047ebacffa6c}} \noverride Task {\\bfseries Write\\+Async} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count, Cancellation\\+Token cancellation\\+Token)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ab3f81c5158946e3dc9d88de4157278fb}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ab3f81c5158946e3dc9d88de4157278fb}} \noverride object {\\bfseries Initialize\\+Lifetime\\+Service} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a955801633531e75dd0253f10549eeb20}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a955801633531e75dd0253f10549eeb20}} \noverride Task$<$ int $>$ {\\bfseries Read\\+Async} (byte\\mbox{[}$\\,$\\mbox{]} buffer, int offset, int count, Cancellation\\+Token cancellation\\+Token)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a7c2849628d872035ec9cc20b5b5f70dc}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a7c2849628d872035ec9cc20b5b5f70dc}} \noverride int {\\bfseries Read\\+Byte} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a8948a34a2cd6cc6e8a037fd5367ed1c2}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a8948a34a2cd6cc6e8a037fd5367ed1c2}} \noverride long {\\bfseries Seek} (long offset, Seek\\+Origin loc)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a00482a87fdede1c9c58bc5b5e5b270bb}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a00482a87fdede1c9c58bc5b5e5b270bb}} \noverride void {\\bfseries Set\\+Length} (long value)\n\\begin{DoxyCompactList}\\small\\item\\em Note\\+: This will not make the Memory\\+Stream any smaller, only larger  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aedb7be72f275938ff045731903d69c0b}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aedb7be72f275938ff045731903d69c0b}} \noverride byte\\mbox{[}$\\,$\\mbox{]} {\\bfseries To\\+Array} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aa52f535e992c3dd6b6c20ad130e66cf1}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aa52f535e992c3dd6b6c20ad130e66cf1}} \noverride bool {\\bfseries Try\\+Get\\+Buffer} (out Array\\+Segment$<$ byte $>$ buffer)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a013c3a3c4ea163fb9c77c73af20ff246}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a013c3a3c4ea163fb9c77c73af20ff246}} \noverride void {\\bfseries Write\\+To} (System.\\+IO.\\+Stream stream)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a61cb4f87023656278059afed1a06ba4d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a61cb4f87023656278059afed1a06ba4d}} \noverride long {\\bfseries Length}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_af24f9eaf71916c050aad99177b594538}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_af24f9eaf71916c050aad99177b594538}} \noverride bool {\\bfseries Can\\+Read}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aa607a424a8839dcb11a385f6e0fc1c5c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_aa607a424a8839dcb11a385f6e0fc1c5c}} \noverride bool {\\bfseries Can\\+Seek}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a9b8a44104d76c5333e4efa28a60723bf}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a9b8a44104d76c5333e4efa28a60723bf}} \noverride bool {\\bfseries Can\\+Timeout}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ad13235eb0b005d96a0cb80a8cc00a0fd}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ad13235eb0b005d96a0cb80a8cc00a0fd}} \noverride bool {\\bfseries Can\\+Write}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ac0de8f527f01c8f7a94abdaedffa350b}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_ac0de8f527f01c8f7a94abdaedffa350b}} \noverride int {\\bfseries Capacity}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a75bd09da03497aa32ad309d4b47f9ad5}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a75bd09da03497aa32ad309d4b47f9ad5}} \noverride long {\\bfseries Position}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a0791ccdc5eff12b7627d094e745a98c5}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a0791ccdc5eff12b7627d094e745a98c5}} \noverride int {\\bfseries Read\\+Timeout}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a59b4d264b544d539ef53be7fcbfc2add}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream_a59b4d264b544d539ef53be7fcbfc2add}} \noverride int {\\bfseries Write\\+Timeout}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThis memory stream is not instance thread safe (not to be confused with the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}} which is instance thread safe)  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Buffer\\+Pool.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 105.263161\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 4.750000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Entity\\+Too\\+Large\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException@{Nakama.Ninja.WebSockets.Exceptions.EntityTooLargeException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Entity\\+Too\\+Large\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception_a628ff4e3f729f87e5b894ef03764c0e1}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception_a628ff4e3f729f87e5b894ef03764c0e1}} \n{\\bfseries Entity\\+Too\\+Large\\+Exception} (string message)\n\\begin{DoxyCompactList}\\small\\item\\em Http header too large to fit in buffer  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception_afad15e3f4c217372acdc26ba564694da}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception_afad15e3f4c217372acdc26ba564694da}} \n{\\bfseries Entity\\+Too\\+Large\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Entity\\+Too\\+Large\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 91.116173\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.487500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Invalid\\+Http\\+Response\\+Code\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException@{Nakama.Ninja.WebSockets.Exceptions.InvalidHttpResponseCodeException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Invalid\\+Http\\+Response\\+Code\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a10bbe729a7327fa25e72f2dd4395b39d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a10bbe729a7327fa25e72f2dd4395b39d}} \n{\\bfseries Invalid\\+Http\\+Response\\+Code\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_acbf09e3cbb7bbf3fc21353aa2c4fb2c3}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_acbf09e3cbb7bbf3fc21353aa2c4fb2c3}} \n{\\bfseries Invalid\\+Http\\+Response\\+Code\\+Exception} (string response\\+Code, string response\\+Details, string response\\+Header)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a717a8d9bb8b67ef7642a9336baeabbbb}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a717a8d9bb8b67ef7642a9336baeabbbb}} \n{\\bfseries Invalid\\+Http\\+Response\\+Code\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_af6bbf55134722b3156c223839b81daba}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_af6bbf55134722b3156c223839b81daba}} \nstring {\\bfseries Response\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a331bc21a5eee98f43d9992641a6196e7}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a331bc21a5eee98f43d9992641a6196e7}} \nstring {\\bfseries Response\\+Header}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a113f65ed87eae571b93a306ddef68316}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception_a113f65ed87eae571b93a306ddef68316}} \nstring {\\bfseries Response\\+Details}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Invalid\\+Http\\+Response\\+Code\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 89.887642\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.562500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException@{Nakama.Ninja.WebSockets.Exceptions.SecWebSocketKeyMissingException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception_a46726192be18f23f164859c1adb61640}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception_a46726192be18f23f164859c1adb61640}} \n{\\bfseries Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception_a2de4061f2db2f7e10faea85407b9ad3a}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception_a2de4061f2db2f7e10faea85407b9ad3a}} \n{\\bfseries Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 95.923264\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.212500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Server\\+Listener\\+Socket\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException@{Nakama.Ninja.WebSockets.Exceptions.ServerListenerSocketException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Server\\+Listener\\+Socket\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception_ad77e30ec3f871bf621276fa00ac2d8cf}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception_ad77e30ec3f871bf621276fa00ac2d8cf}} \n{\\bfseries Server\\+Listener\\+Socket\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception_a03ed8282bad053839e32a709ea034b4e}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception_a03ed8282bad053839e32a709ea034b4e}} \n{\\bfseries Server\\+Listener\\+Socket\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Server\\+Listener\\+Socket\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 89.887642\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.562500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Buffer\\+Overflow\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException@{Nakama.Ninja.WebSockets.Exceptions.WebSocketBufferOverflowException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Buffer\\+Overflow\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception_a06646121cfc19cefa45dfe3c237744f1}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception_a06646121cfc19cefa45dfe3c237744f1}} \n{\\bfseries Web\\+Socket\\+Buffer\\+Overflow\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception_a02de4e50e60e158d84e0d4fa8417e04d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception_a02de4e50e60e158d84e0d4fa8417e04d}} \n{\\bfseries Web\\+Socket\\+Buffer\\+Overflow\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Web\\+Socket\\+Buffer\\+Overflow\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 87.719299\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.700000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Handshake\\+Failed\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException@{Nakama.Ninja.WebSockets.Exceptions.WebSocketHandshakeFailedException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Handshake\\+Failed\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception_aaa3d64dd95ff3b88121c7d5136f086b9}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception_aaa3d64dd95ff3b88121c7d5136f086b9}} \n{\\bfseries Web\\+Socket\\+Handshake\\+Failed\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception_af4212c589c1575d390845be9e6b0e27c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception_af4212c589c1575d390845be9e6b0e27c}} \n{\\bfseries Web\\+Socket\\+Handshake\\+Failed\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Web\\+Socket\\+Handshake\\+Failed\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 83.507309\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.987500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}\\index{Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException@{Nakama.Ninja.WebSockets.Exceptions.WebSocketVersionNotSupportedException}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception_a46f2737701bdc2e3933a4f2450307607}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception_a46f2737701bdc2e3933a4f2450307607}} \n{\\bfseries Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception} (string message)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception_a890f584a8f8b7235778088dfec119b7d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception_a890f584a8f8b7235778088dfec119b7d}} \n{\\bfseries Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception} (string message, Exception inner)\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/\\+Exceptions/Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic string \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a9b5b222971fabf47b7dcf9124e4cd6e5}{Calculate\\+Web\\+Socket\\+Key}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Calculates a random Web\\+Socket key that can be used to initiate a Web\\+Socket handshake  \\end{DoxyCompactList}\\item \nstatic string \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_ac7996ac7be1b518142877ae09e7a8337}{Compute\\+Socket\\+Accept\\+String}} (string sec\\+Web\\+Socket\\+Key)\n\\begin{DoxyCompactList}\\small\\item\\em Computes a Web\\+Socket accept string from a given key  \\end{DoxyCompactList}\\item \nstatic async Task$<$ string $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_aa5ded6a39f622623cee6b9453cdbab1c}{Read\\+Http\\+Header\\+Async}} (System.\\+IO.\\+Stream stream, Cancellation\\+Token token)\n\\begin{DoxyCompactList}\\small\\item\\em Reads an http header as per the HTTP spec  \\end{DoxyCompactList}\\item \nstatic bool \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a7b6d73c58a1a86ab4aee854945708f0b}{Is\\+Web\\+Socket\\+Upgrade\\+Request}} (String header)\n\\begin{DoxyCompactList}\\small\\item\\em Decodes the header to detect is this is a web socket upgrade response  \\end{DoxyCompactList}\\item \nstatic string \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a5d4a53f6713ee2dd4447b333389c26ab}{Get\\+Path\\+From\\+Header}} (string http\\+Header)\n\\begin{DoxyCompactList}\\small\\item\\em Gets the path from the HTTP header  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a5b5e11646f512d03ba8c2c9b61fa2d7f}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a5b5e11646f512d03ba8c2c9b61fa2d7f}} \nstatic IList$<$ string $>$ {\\bfseries Get\\+Sub\\+Protocols} (string http\\+Header)\n\\item \nstatic string \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a68bef1cf1eda1608db5ce1750d040d14}{Read\\+Http\\+Response\\+Code}} (string response)\n\\begin{DoxyCompactList}\\small\\item\\em Reads the HTTP response code from the http response string  \\end{DoxyCompactList}\\item \nstatic async Task \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a6e758500694c66088449bc7ff86c6634}{Write\\+Http\\+Header\\+Async}} (string response, System.\\+IO.\\+Stream stream, Cancellation\\+Token token)\n\\begin{DoxyCompactList}\\small\\item\\em Writes an HTTP response string to the stream  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a9b5b222971fabf47b7dcf9124e4cd6e5}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a9b5b222971fabf47b7dcf9124e4cd6e5}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!CalculateWebSocketKey@{CalculateWebSocketKey}}\n\\index{CalculateWebSocketKey@{CalculateWebSocketKey}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{CalculateWebSocketKey()}{CalculateWebSocketKey()}}\n{\\footnotesize\\ttfamily static string Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Calculate\\+Web\\+Socket\\+Key (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nCalculates a random Web\\+Socket key that can be used to initiate a Web\\+Socket handshake  \n\n\\begin{DoxyReturn}{Returns}\nA random websocket key\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_ac7996ac7be1b518142877ae09e7a8337}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_ac7996ac7be1b518142877ae09e7a8337}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!ComputeSocketAcceptString@{ComputeSocketAcceptString}}\n\\index{ComputeSocketAcceptString@{ComputeSocketAcceptString}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{ComputeSocketAcceptString()}{ComputeSocketAcceptString()}}\n{\\footnotesize\\ttfamily static string Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Compute\\+Socket\\+Accept\\+String (\\begin{DoxyParamCaption}\\item[{string}]{sec\\+Web\\+Socket\\+Key }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nComputes a Web\\+Socket accept string from a given key  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em sec\\+Web\\+Socket\\+Key} & The web socket key to base the accept string on\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA web socket accept string\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a5d4a53f6713ee2dd4447b333389c26ab}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a5d4a53f6713ee2dd4447b333389c26ab}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!GetPathFromHeader@{GetPathFromHeader}}\n\\index{GetPathFromHeader@{GetPathFromHeader}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{GetPathFromHeader()}{GetPathFromHeader()}}\n{\\footnotesize\\ttfamily static string Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Get\\+Path\\+From\\+Header (\\begin{DoxyParamCaption}\\item[{string}]{http\\+Header }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nGets the path from the HTTP header  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em http\\+Header} & The HTTP header to read\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nThe path\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a7b6d73c58a1a86ab4aee854945708f0b}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a7b6d73c58a1a86ab4aee854945708f0b}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!IsWebSocketUpgradeRequest@{IsWebSocketUpgradeRequest}}\n\\index{IsWebSocketUpgradeRequest@{IsWebSocketUpgradeRequest}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{IsWebSocketUpgradeRequest()}{IsWebSocketUpgradeRequest()}}\n{\\footnotesize\\ttfamily static bool Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Is\\+Web\\+Socket\\+Upgrade\\+Request (\\begin{DoxyParamCaption}\\item[{String}]{header }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nDecodes the header to detect is this is a web socket upgrade response  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em header} & The HTTP header\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nTrue if this is an http Web\\+Socket upgrade response\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_aa5ded6a39f622623cee6b9453cdbab1c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_aa5ded6a39f622623cee6b9453cdbab1c}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!ReadHttpHeaderAsync@{ReadHttpHeaderAsync}}\n\\index{ReadHttpHeaderAsync@{ReadHttpHeaderAsync}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{ReadHttpHeaderAsync()}{ReadHttpHeaderAsync()}}\n{\\footnotesize\\ttfamily static async Task$<$ string $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Read\\+Http\\+Header\\+Async (\\begin{DoxyParamCaption}\\item[{System.\\+IO.\\+Stream}]{stream,  }\\item[{Cancellation\\+Token}]{token }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nReads an http header as per the HTTP spec  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em stream} & The stream to read UTF8 text from\\\\\n\\hline\n{\\em token} & The cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nThe HTTP header\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a68bef1cf1eda1608db5ce1750d040d14}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a68bef1cf1eda1608db5ce1750d040d14}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!ReadHttpResponseCode@{ReadHttpResponseCode}}\n\\index{ReadHttpResponseCode@{ReadHttpResponseCode}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{ReadHttpResponseCode()}{ReadHttpResponseCode()}}\n{\\footnotesize\\ttfamily static string Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Read\\+Http\\+Response\\+Code (\\begin{DoxyParamCaption}\\item[{string}]{response }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nReads the HTTP response code from the http response string  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em response} & The response string\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nthe response code\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a6e758500694c66088449bc7ff86c6634}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper_a6e758500694c66088449bc7ff86c6634}} \n\\index{Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}!WriteHttpHeaderAsync@{WriteHttpHeaderAsync}}\n\\index{WriteHttpHeaderAsync@{WriteHttpHeaderAsync}!Nakama.Ninja.WebSockets.HttpHelper@{Nakama.Ninja.WebSockets.HttpHelper}}\n\\doxysubsubsection{\\texorpdfstring{WriteHttpHeaderAsync()}{WriteHttpHeaderAsync()}}\n{\\footnotesize\\ttfamily static async Task Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper.\\+Write\\+Http\\+Header\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{response,  }\\item[{System.\\+IO.\\+Stream}]{stream,  }\\item[{Cancellation\\+Token}]{token }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nWrites an HTTP response string to the stream  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em response} & The response (without the new line characters)\\\\\n\\hline\n{\\em stream} & The stream to write to\\\\\n\\hline\n{\\em token} & The cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Http\\+Helper.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 141.342758\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.537500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.PingPongManager) cw\n(Nakama.Ninja.WebSockets.IPingPongManager) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.PingPongManager) 0.000000 0.000000 box\n (Nakama.Ninja.WebSockets.IPingPongManager) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}\\index{Nakama.Ninja.WebSockets.PingPongManager@{Nakama.Ninja.WebSockets.PingPongManager}}\n\n\nPing Pong Manager used to facilitate ping pong Web\\+Socket messages   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a28b64f995bd9dfc95b4b2981c24219df}{Ping\\+Pong\\+Manager}} (Guid guid, Web\\+Socket web\\+Socket, Time\\+Span keep\\+Alive\\+Interval, Cancellation\\+Token cancellation\\+Token)\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Ping\\+Pong\\+Manager}} to facilitate ping pong Web\\+Socket messages. If you are manually creating an instance of this class then it is advisable to set keep\\+Alive\\+Interval to Time\\+Span.\\+Zero when you create the Web\\+Socket instance (using a factory) otherwise you may be automatically be sending duplicate Ping messages (see keep\\+Alive\\+Interval below)  \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_ad8ad09c265a7ade2143b855911c1f1cf}{Send\\+Ping}} (Array\\+Segment$<$ byte $>$ payload, Cancellation\\+Token cancellation)\n\\begin{DoxyCompactList}\\small\\item\\em Sends a ping frame  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Protected Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a6033a08ddfa5dc60e5c98bd1bc4abe29}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a6033a08ddfa5dc60e5c98bd1bc4abe29}} \nvirtual void {\\bfseries On\\+Pong} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}} e)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a2f1ae430d5ee59981e308167590b941c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a2f1ae430d5ee59981e308167590b941c}} \nEvent\\+Handler$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}} $>$ {\\bfseries Pong}\n\\begin{DoxyCompactList}\\small\\item\\em Raised when a Pong frame is received  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nPing Pong Manager used to facilitate ping pong Web\\+Socket messages  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a28b64f995bd9dfc95b4b2981c24219df}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_a28b64f995bd9dfc95b4b2981c24219df}} \n\\index{Nakama.Ninja.WebSockets.PingPongManager@{Nakama.Ninja.WebSockets.PingPongManager}!PingPongManager@{PingPongManager}}\n\\index{PingPongManager@{PingPongManager}!Nakama.Ninja.WebSockets.PingPongManager@{Nakama.Ninja.WebSockets.PingPongManager}}\n\\doxysubsubsection{\\texorpdfstring{PingPongManager()}{PingPongManager()}}\n{\\footnotesize\\ttfamily Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager.\\+Ping\\+Pong\\+Manager (\\begin{DoxyParamCaption}\\item[{Guid}]{guid,  }\\item[{Web\\+Socket}]{web\\+Socket,  }\\item[{Time\\+Span}]{keep\\+Alive\\+Interval,  }\\item[{Cancellation\\+Token}]{cancellation\\+Token }\\end{DoxyParamCaption})}\n\n\n\nInitialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Ping\\+Pong\\+Manager}} to facilitate ping pong Web\\+Socket messages. If you are manually creating an instance of this class then it is advisable to set keep\\+Alive\\+Interval to Time\\+Span.\\+Zero when you create the Web\\+Socket instance (using a factory) otherwise you may be automatically be sending duplicate Ping messages (see keep\\+Alive\\+Interval below)  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em web\\+Socket} & The web socket used to listen to ping messages and send pong messages\\\\\n\\hline\n{\\em keep\\+Alive\\+Interval} & The time between automatically sending ping messages. Set this to Time\\+Span.\\+Zero if you with to manually control sending ping messages. \\\\\n\\hline\n{\\em cancellation\\+Token} & The token used to cancel a pending ping send AND the automatic sending of ping messages if keep\\+Alive\\+Interval is positive\\\\\n\\hline\n\\end{DoxyParams}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_ad8ad09c265a7ade2143b855911c1f1cf}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_ad8ad09c265a7ade2143b855911c1f1cf}} \n\\index{Nakama.Ninja.WebSockets.PingPongManager@{Nakama.Ninja.WebSockets.PingPongManager}!SendPing@{SendPing}}\n\\index{SendPing@{SendPing}!Nakama.Ninja.WebSockets.PingPongManager@{Nakama.Ninja.WebSockets.PingPongManager}}\n\\doxysubsubsection{\\texorpdfstring{SendPing()}{SendPing()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager.\\+Send\\+Ping (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{payload,  }\\item[{Cancellation\\+Token}]{cancellation }\\end{DoxyParamCaption})}\n\n\n\nSends a ping frame  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em payload} & The payload (must be 125 bytes of less)\\\\\n\\hline\n{\\em cancellation} & The cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a9e454afd70ec36b728aad46d32282941}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Ping\\+Pong\\+Manager.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 152.091248\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.287500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.PongEventArgs) cw\n(EventArgs) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.PongEventArgs) 0.000000 0.000000 box\n (EventArgs) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Pong\\+Event\\+Args Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}\\index{Nakama.Ninja.WebSockets.PongEventArgs@{Nakama.Ninja.WebSockets.PongEventArgs}}\n\n\nPong Event\\+Args   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Pong\\+Event\\+Args\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args_a0eeaa849de1d4f2f1ece6d27170ffb1c}{Pong\\+Event\\+Args}} (Array\\+Segment$<$ byte $>$ payload)\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}} class  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args_a732cfef369ecc2c8eae01d4aba6ccd38}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args_a732cfef369ecc2c8eae01d4aba6ccd38}} \nArray\\+Segment$<$ byte $>$ {\\bfseries Payload}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The data extracted from a Pong Web\\+Socket frame  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nPong Event\\+Args  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args_a0eeaa849de1d4f2f1ece6d27170ffb1c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args_a0eeaa849de1d4f2f1ece6d27170ffb1c}} \n\\index{Nakama.Ninja.WebSockets.PongEventArgs@{Nakama.Ninja.WebSockets.PongEventArgs}!PongEventArgs@{PongEventArgs}}\n\\index{PongEventArgs@{PongEventArgs}!Nakama.Ninja.WebSockets.PongEventArgs@{Nakama.Ninja.WebSockets.PongEventArgs}}\n\\doxysubsubsection{\\texorpdfstring{PongEventArgs()}{PongEventArgs()}}\n{\\footnotesize\\ttfamily Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Pong\\+Event\\+Args.\\+Pong\\+Event\\+Args (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{payload }\\end{DoxyParamCaption})}\n\n\n\nInitialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}} class  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em payload} & The pong payload must be 125 bytes or less (can be zero bytes)\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Pong\\+Event\\+Args.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 126.182968\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.962500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.WebSocketClientFactory) cw\n(Nakama.Ninja.WebSockets.IWebSocketClientFactory) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.WebSocketClientFactory) 0.000000 0.000000 box\n (Nakama.Ninja.WebSockets.IWebSocketClientFactory) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\n\nWeb socket client factory used to open web socket client connections   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a2a013885f5f062a116c300d3bb5bb192}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a2a013885f5f062a116c300d3bb5bb192}} \n{\\bfseries Web\\+Socket\\+Client\\+Factory} ()\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}} class without caring about internal buffers  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a8cabd737201862075fe8587573f96731}{Web\\+Socket\\+Client\\+Factory}} (Func$<$ Memory\\+Stream $>$ buffer\\+Factory)\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}} class with control over internal buffer creation  \\end{DoxyCompactList}\\item \nasync Task$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ac2b906812572c082e8d283ea7edca1d1}{Connect\\+Async}} (Uri uri, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with default options  \\end{DoxyCompactList}\\item \nasync Task$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a08071ad49b700843123a9eee3593338a}{Connect\\+Async}} (Uri uri, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with options specified  \\end{DoxyCompactList}\\item \nasync Task$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ada652ae0129477188e577b13ee36bd04}{Connect\\+Async}} (System.\\+IO.\\+Stream response\\+Stream, string sec\\+Web\\+Socket\\+Key, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/\\+IP and this function will allow you to do that  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Protected Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ae82bdab87a83f521602e1a3608ea7bb9}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ae82bdab87a83f521602e1a3608ea7bb9}} \nvirtual void {\\bfseries Tls\\+Authenticate\\+As\\+Client} (Ssl\\+Stream ssl\\+Stream, string host)\n\\begin{DoxyCompactList}\\small\\item\\em Override this if you need more fine grained control over the TLS handshake like setting the Ssl\\+Protocol or adding a client certificate  \\end{DoxyCompactList}\\item \nvirtual async Task$<$ System.\\+IO.\\+Stream $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ae3747882e5308def7db0b4a387fdb466}{Get\\+Stream}} (Guid logging\\+Guid, bool is\\+Secure, bool no\\+Delay, string host, int port, Cancellation\\+Token cancellation\\+Token)\n\\begin{DoxyCompactList}\\small\\item\\em Override this if you need more control over how the stream used for the websocket is created. It does not event need to be a TCP stream  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWeb socket client factory used to open web socket client connections  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a8cabd737201862075fe8587573f96731}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a8cabd737201862075fe8587573f96731}} \n\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}!WebSocketClientFactory@{WebSocketClientFactory}}\n\\index{WebSocketClientFactory@{WebSocketClientFactory}!Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{WebSocketClientFactory()}{WebSocketClientFactory()}}\n{\\footnotesize\\ttfamily Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory.\\+Web\\+Socket\\+Client\\+Factory (\\begin{DoxyParamCaption}\\item[{Func$<$ Memory\\+Stream $>$}]{buffer\\+Factory }\\end{DoxyParamCaption})}\n\n\n\nInitialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}} class with control over internal buffer creation  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer\\+Factory} & Used to get a memory stream. Feel free to implement your own buffer pool. Memory\\+Streams will be disposed when no longer needed and can be returned to the pool.\\\\\n\\hline\n\\end{DoxyParams}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ada652ae0129477188e577b13ee36bd04}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ada652ae0129477188e577b13ee36bd04}} \n\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily async Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{System.\\+IO.\\+Stream}]{response\\+Stream,  }\\item[{string}]{sec\\+Web\\+Socket\\+Key,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/\\+IP and this function will allow you to do that  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em response\\+Stream} & The full duplex response stream from the server\\\\\n\\hline\n{\\em sec\\+Web\\+Socket\\+Key} & The sec\\+Web\\+Socket\\+Key you used in the handshake request\\\\\n\\hline\n{\\em options} & The Web\\+Socket client options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\n\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_af8ed478fd433a7261c2ed1010e19592d}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ac2b906812572c082e8d283ea7edca1d1}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ac2b906812572c082e8d283ea7edca1d1}} \n\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily async Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with default options  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The Web\\+Socket uri to connect to (e.\\+g. ws\\+://example.com or wss\\+://example.com for SSL)\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket instance\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_a09487c4902848a49ab288c6349135075}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a08071ad49b700843123a9eee3593338a}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a08071ad49b700843123a9eee3593338a}} \n\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily async Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with options specified  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The Web\\+Socket uri to connect to (e.\\+g. ws\\+://example.com or wss\\+://example.com for SSL)\\\\\n\\hline\n{\\em options} & The Web\\+Socket client options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket instance\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_aa6292760fcc97b83660588a66d427f68}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ae3747882e5308def7db0b4a387fdb466}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ae3747882e5308def7db0b4a387fdb466}} \n\\index{Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}!GetStream@{GetStream}}\n\\index{GetStream@{GetStream}!Nakama.Ninja.WebSockets.WebSocketClientFactory@{Nakama.Ninja.WebSockets.WebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{GetStream()}{GetStream()}}\n{\\footnotesize\\ttfamily virtual async Task$<$ System.\\+IO.\\+Stream $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory.\\+Get\\+Stream (\\begin{DoxyParamCaption}\\item[{Guid}]{logging\\+Guid,  }\\item[{bool}]{is\\+Secure,  }\\item[{bool}]{no\\+Delay,  }\\item[{string}]{host,  }\\item[{int}]{port,  }\\item[{Cancellation\\+Token}]{cancellation\\+Token }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [protected]}, {\\ttfamily [virtual]}}\n\n\n\nOverride this if you need more control over how the stream used for the websocket is created. It does not event need to be a TCP stream  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em logging\\+Guid} & For logging purposes only\\\\\n\\hline\n{\\em is\\+Secure} & Make a secure connection\\\\\n\\hline\n{\\em no\\+Delay} & Set to true to send a message immediately with the least amount of latency (typical usage for chat)\\\\\n\\hline\n{\\em host} & The destination host (can be an IP address)\\\\\n\\hline\n{\\em port} & The destination port\\\\\n\\hline\n{\\em cancellation\\+Token} & Used to cancel the request\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected and open stream\n\\end{DoxyReturn}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Web\\+Socket\\+Client\\+Factory.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Options Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}\\index{Nakama.Ninja.WebSockets.WebSocketClientOptions@{Nakama.Ninja.WebSockets.WebSocketClientOptions}}\n\n\n\\mbox{\\hyperlink{class_nakama_1_1_client}{Client}} Web\\+Socket init options   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a60d072f7c1b6cdf03216249e257efe6f}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a60d072f7c1b6cdf03216249e257efe6f}} \n{\\bfseries Web\\+Socket\\+Client\\+Options} ()\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} class  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a63b39ac48f2759d98574e53599e7c337}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a63b39ac48f2759d98574e53599e7c337}} \nTime\\+Span {\\bfseries Keep\\+Alive\\+Interval}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em How often to send ping requests to the Server This is done to prevent proxy servers from closing your connection The default is Time\\+Span.\\+Zero meaning that it is disabled. Web\\+Socket servers usually send ping messages so it is not normally necessary for the client to send them (hence the Time\\+Span.\\+Zero default) You can manually control ping pong messages using the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Ping\\+Pong\\+Manager}} class. If you do that it is advisible to set this Keep\\+Alive\\+Interval to zero for the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}}  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a4eecc580079d1338e13b8368f686177f}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a4eecc580079d1338e13b8368f686177f}} \nbool {\\bfseries No\\+Delay}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Set to true to send a message immediately with the least amount of latency (typical usage for chat) This will disable Nagle\\textquotesingle{}s algorithm which can cause high tcp latency for small packets sent infrequently However, if you are streaming large packets or sending large numbers of small packets frequently it is advisable to set No\\+Delay to false This way data will be bundled into larger packets for better throughput  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_acde18f33707e3a3589136457f0b17c04}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_acde18f33707e3a3589136457f0b17c04}} \nDictionary$<$ string, string $>$ {\\bfseries Additional\\+Http\\+Headers}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Add any additional http headers to this dictionary  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a32c1934b7aa3d481854c7caf6509df3b}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a32c1934b7aa3d481854c7caf6509df3b}} \nbool {\\bfseries Include\\+Exception\\+In\\+Close\\+Response}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Include the full exception (with stack trace) in the close response when an exception is encountered and the Web\\+Socket connection is closed The default is false  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a0f6ffb1c602783b96fa63822adf93162}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a0f6ffb1c602783b96fa63822adf93162}} \nstring {\\bfseries Sec\\+Web\\+Socket\\+Extensions}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Web\\+Socket Extensions as an HTTP header value  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a7f6a8ce6c2e54c8fd2e8966fc148d669}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options_a7f6a8ce6c2e54c8fd2e8966fc148d669}} \nstring {\\bfseries Sec\\+Web\\+Socket\\+Protocol}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A comma separated list of sub protocols in preference order (first one being the most preferred) The server will return the first supported sub protocol (or none if none are supported) Can be null  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\\mbox{\\hyperlink{class_nakama_1_1_client}{Client}} Web\\+Socket init options  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Web\\+Socket\\+Client\\+Options.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Http\\+Context Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}\\index{Nakama.Ninja.WebSockets.WebSocketHttpContext@{Nakama.Ninja.WebSockets.WebSocketHttpContext}}\n\n\nThe Web\\+Socket HTTP Context used to initiate a Web\\+Socket handshake   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_aa24f04051ef73f6a5d98fc6633f6df07}{Web\\+Socket\\+Http\\+Context}} (bool is\\+Web\\+Socket\\+Request, IList$<$ string $>$ web\\+Socket\\+Requested\\+Protocols, string http\\+Header, string path, System.\\+IO.\\+Stream stream)\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} class  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a8b859fa2d5d24faf05a01ccbe8fb065c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a8b859fa2d5d24faf05a01ccbe8fb065c}} \nbool {\\bfseries Is\\+Web\\+Socket\\+Request}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if this is a valid Web\\+Socket request  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a7011896fdcffd2d44086d50d1f4345fa}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a7011896fdcffd2d44086d50d1f4345fa}} \nIList$<$ string $>$ {\\bfseries Web\\+Socket\\+Requested\\+Protocols}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a32f6e5fb1559a4194aca29eabc565b23}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a32f6e5fb1559a4194aca29eabc565b23}} \nstring {\\bfseries Http\\+Header}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The raw http header extracted from the stream  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a317b0b47e66328f10d359db023cbad7c}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a317b0b47e66328f10d359db023cbad7c}} \nstring {\\bfseries Path}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Path extracted from the http header  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a6ec7ab7d4889b2687797bb0410df4ee8}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_a6ec7ab7d4889b2687797bb0410df4ee8}} \nSystem.\\+IO.\\+Stream {\\bfseries Stream}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The stream AFTER the header has already been read  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe Web\\+Socket HTTP Context used to initiate a Web\\+Socket handshake  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_aa24f04051ef73f6a5d98fc6633f6df07}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context_aa24f04051ef73f6a5d98fc6633f6df07}} \n\\index{Nakama.Ninja.WebSockets.WebSocketHttpContext@{Nakama.Ninja.WebSockets.WebSocketHttpContext}!WebSocketHttpContext@{WebSocketHttpContext}}\n\\index{WebSocketHttpContext@{WebSocketHttpContext}!Nakama.Ninja.WebSockets.WebSocketHttpContext@{Nakama.Ninja.WebSockets.WebSocketHttpContext}}\n\\doxysubsubsection{\\texorpdfstring{WebSocketHttpContext()}{WebSocketHttpContext()}}\n{\\footnotesize\\ttfamily Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Http\\+Context.\\+Web\\+Socket\\+Http\\+Context (\\begin{DoxyParamCaption}\\item[{bool}]{is\\+Web\\+Socket\\+Request,  }\\item[{IList$<$ string $>$}]{web\\+Socket\\+Requested\\+Protocols,  }\\item[{string}]{http\\+Header,  }\\item[{string}]{path,  }\\item[{System.\\+IO.\\+Stream}]{stream }\\end{DoxyParamCaption})}\n\n\n\nInitialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} class  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em is\\+Web\\+Socket\\+Request} & True if this is a valid Web\\+Socket request\\\\\n\\hline\n{\\em http\\+Header} & The raw http header extracted from the stream\\\\\n\\hline\n{\\em path} & The Path extracted from the http header\\\\\n\\hline\n{\\em stream} & The stream AFTER the header has already been read\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Web\\+Socket\\+Http\\+Context.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 123.456787\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 4.050000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.WebSocketServerFactory) cw\n(Nakama.Ninja.WebSockets.IWebSocketServerFactory) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.WebSocketServerFactory) 0.000000 0.000000 box\n (Nakama.Ninja.WebSockets.IWebSocketServerFactory) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}\\index{Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}}\n\n\nWeb socket server factory used to open web socket server connections   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_af85018d663e9cc04e4d9e8cd2886fcbe}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_af85018d663e9cc04e4d9e8cd2886fcbe}} \n{\\bfseries Web\\+Socket\\+Server\\+Factory} ()\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}{Web\\+Socket\\+Server\\+Factory}} class without caring about internal buffers  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a955e882752665598157e9a5d02deca23}{Web\\+Socket\\+Server\\+Factory}} (Func$<$ Memory\\+Stream $>$ buffer\\+Factory)\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}} class with control over internal buffer creation  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_ade4d2f2f4962ed47fc4419dff1cc76c4}{Read\\+Http\\+Header\\+From\\+Stream\\+Async}} (System.\\+IO.\\+Stream stream, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Reads a http header information from a stream and decodes the parts relating to the Web\\+Socket protocot upgrade  \\end{DoxyCompactList}\\item \nasync Task$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a047b8446ad6f83559eed6d9203efaf4d}{Accept\\+Web\\+Socket\\+Async}} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} context, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Accept web socket with default options Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \\end{DoxyCompactList}\\item \nasync Task$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a6f531a90110af6ae8015aebf690cf27f}{Accept\\+Web\\+Socket\\+Async}} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} context, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Accept web socket with options specified Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWeb socket server factory used to open web socket server connections  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a955e882752665598157e9a5d02deca23}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a955e882752665598157e9a5d02deca23}} \n\\index{Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}!WebSocketServerFactory@{WebSocketServerFactory}}\n\\index{WebSocketServerFactory@{WebSocketServerFactory}!Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{WebSocketServerFactory()}{WebSocketServerFactory()}}\n{\\footnotesize\\ttfamily Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory.\\+Web\\+Socket\\+Server\\+Factory (\\begin{DoxyParamCaption}\\item[{Func$<$ Memory\\+Stream $>$}]{buffer\\+Factory }\\end{DoxyParamCaption})}\n\n\n\nInitialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}} class with control over internal buffer creation  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer\\+Pool} & Used to get a memory stream. Feel free to implement your own buffer pool. Memory\\+Streams will be disposed when no longer needed and can be returned to the pool.\\\\\n\\hline\n\\end{DoxyParams}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a047b8446ad6f83559eed6d9203efaf4d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a047b8446ad6f83559eed6d9203efaf4d}} \n\\index{Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}!AcceptWebSocketAsync@{AcceptWebSocketAsync}}\n\\index{AcceptWebSocketAsync@{AcceptWebSocketAsync}!Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{AcceptWebSocketAsync()}{AcceptWebSocketAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily async Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory.\\+Accept\\+Web\\+Socket\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}}]{context,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nAccept web socket with default options Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em context} & The http context used to initiate this web socket request\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a324539f6e78653fdc0dc5808a32382f9}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a6f531a90110af6ae8015aebf690cf27f}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a6f531a90110af6ae8015aebf690cf27f}} \n\\index{Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}!AcceptWebSocketAsync@{AcceptWebSocketAsync}}\n\\index{AcceptWebSocketAsync@{AcceptWebSocketAsync}!Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{AcceptWebSocketAsync()}{AcceptWebSocketAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory.\\+Accept\\+Web\\+Socket\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}}]{context,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nAccept web socket with options specified Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em context} & The http context used to initiate this web socket request\\\\\n\\hline\n{\\em options} & The web socket options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a8606821c9e7ab2e7e314406740c93669}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_ade4d2f2f4962ed47fc4419dff1cc76c4}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_ade4d2f2f4962ed47fc4419dff1cc76c4}} \n\\index{Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}!ReadHttpHeaderFromStreamAsync@{ReadHttpHeaderFromStreamAsync}}\n\\index{ReadHttpHeaderFromStreamAsync@{ReadHttpHeaderFromStreamAsync}!Nakama.Ninja.WebSockets.WebSocketServerFactory@{Nakama.Ninja.WebSockets.WebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{ReadHttpHeaderFromStreamAsync()}{ReadHttpHeaderFromStreamAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory.\\+Read\\+Http\\+Header\\+From\\+Stream\\+Async (\\begin{DoxyParamCaption}\\item[{System.\\+IO.\\+Stream}]{stream,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nReads a http header information from a stream and decodes the parts relating to the Web\\+Socket protocot upgrade  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em stream} & The network stream\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nHttp data read from the stream\n\\end{DoxyReturn}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a317ffba9297f7d6ed0dc899ad1143fc6}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Web\\+Socket\\+Server\\+Factory.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options.tex",
    "content": "\\hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Options Class Reference}\n\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}\\index{Nakama.Ninja.WebSockets.WebSocketServerOptions@{Nakama.Ninja.WebSockets.WebSocketServerOptions}}\n\n\nServer Web\\+Socket init options   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a6426bfca9608a20915f11ef0955d1984}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a6426bfca9608a20915f11ef0955d1984}} \n{\\bfseries Web\\+Socket\\+Server\\+Options} ()\n\\begin{DoxyCompactList}\\small\\item\\em Initialises a new instance of the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}} class  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a6cb09bf00c31ac1c361a95a8daec0ddd}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a6cb09bf00c31ac1c361a95a8daec0ddd}} \nTime\\+Span {\\bfseries Keep\\+Alive\\+Interval}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em How often to send ping requests to the \\mbox{\\hyperlink{class_nakama_1_1_client}{Client}} The default is 60 seconds This is done to prevent proxy servers from closing your connection A timespan of zero will disable the automatic ping pong mechanism You can manually control ping pong messages using the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Ping\\+Pong\\+Manager}} class. If you do that it is advisible to set this Keep\\+Alive\\+Interval to zero in the \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}{Web\\+Socket\\+Server\\+Factory}}  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a27fc45e264a324caeb170709872fe12d}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_a27fc45e264a324caeb170709872fe12d}} \nbool {\\bfseries Include\\+Exception\\+In\\+Close\\+Response}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Include the full exception (with stack trace) in the close response when an exception is encountered and the Web\\+Socket connection is closed The default is false  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_afa0e3b2185d29c0d5be60327e5ef2640}\\label{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options_afa0e3b2185d29c0d5be60327e5ef2640}} \nstring {\\bfseries Sub\\+Protocol}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Specifies the sub protocol to send back to the client in the opening handshake Can be null (the most common use case) The client can specify multiple preferred protocols in the opening handshake header The server should use the first supported one or set this to null if none of the requested sub protocols are supported  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nServer Web\\+Socket init options  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/Web\\+Socket\\+Server\\+Options.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_retry.tex",
    "content": "\\hypertarget{class_nakama_1_1_retry}{}\\doxysection{Nakama.\\+Retry Class Reference}\n\\label{class_nakama_1_1_retry}\\index{Nakama.Retry@{Nakama.Retry}}\n\n\nRepresents a single retry attempt.   \n\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_a9d83426b9d7eda194e490a5b7be1f5c8}\\label{class_nakama_1_1_retry_a9d83426b9d7eda194e490a5b7be1f5c8}} \nint {\\bfseries Exponential\\+Backoff}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The delay (milliseconds) in the request retry attributable to the exponential backoff algorithm.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_a72695f7bd13ec6d4e22ad021a26f0a08}\\label{class_nakama_1_1_retry_a72695f7bd13ec6d4e22ad021a26f0a08}} \nint {\\bfseries Jitter\\+Backoff}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The delay (milliseconds) in the request retry attributable to the jitter algorithm.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRepresents a single retry attempt.  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Retry.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_retry_configuration.tex",
    "content": "\\hypertarget{class_nakama_1_1_retry_configuration}{}\\doxysection{Nakama.\\+Retry\\+Configuration Class Reference}\n\\label{class_nakama_1_1_retry_configuration}\\index{Nakama.RetryConfiguration@{Nakama.RetryConfiguration}}\n\n\nA configuration for controlling retriable requests.   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_adbf0f298d35e14e72ef1ba0937b7f272}{Retry\\+Configuration}} (int base\\+Delay\\+Ms, int max\\+Retries)\n\\begin{DoxyCompactList}\\small\\item\\em Create a new retry configuration.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a743f91374fba32298211ad64cfd7d57a}{Retry\\+Configuration}} (int base\\+Delay\\+Ms, int max\\+Retries, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}{Retry\\+Listener}} listener)\n\\begin{DoxyCompactList}\\small\\item\\em Create a new retry configuration.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a4444b94d9d22c6ef75c03ac92d71264f}{Retry\\+Configuration}} (int base\\+Delay\\+Ms, int max\\+Retries, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}{Retry\\+Listener}} listener, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a06fc034fcd8b2fe5eed976079264c0cd}{Jitter}} jitter)\n\\begin{DoxyCompactList}\\small\\item\\em Create a new retry configuration.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_abb2a37c54f24e2fcd6c4ef4e2b5b3f75}\\label{class_nakama_1_1_retry_configuration_abb2a37c54f24e2fcd6c4ef4e2b5b3f75}} \nint {\\bfseries Base\\+Delay\\+Ms}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The base delay (milliseconds) used to calculate the time before making another request attempt. This base will be raised to N, where N is the number of retry attempts.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_a06fc034fcd8b2fe5eed976079264c0cd}\\label{class_nakama_1_1_retry_configuration_a06fc034fcd8b2fe5eed976079264c0cd}} \nJitter {\\bfseries Jitter}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The jitter algorithm used to apply randomness to the retry delay. Defaults to Retry\\+Jitter.\\+Full\\+Jitter  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_a3be7ea95f69217237c03c9bf50fd466e}\\label{class_nakama_1_1_retry_configuration_a3be7ea95f69217237c03c9bf50fd466e}} \nint {\\bfseries Max\\+Attempts}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of attempts to make before cancelling the request task.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}\\label{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}} \nRetry\\+Listener {\\bfseries Retry\\+Listener}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A callback that is invoked before a new retry attempt is made.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA configuration for controlling retriable requests.  \n\n\\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}} configurations can be assigned to the \\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}} on a request-\\/by-\\/request basis via the see \\texorpdfstring{$<$}{<}cref=\\char`\\\"{}\\+Request\\+Configuration\\char`\\\"{}/\\texorpdfstring{$>$}{>} parameter.\n\n\\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}} configurations can also be assigned on a global basis using \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad86bc2c00a137d35243e977086a00ffa}{IClient.\\+Global\\+Retry\\+Configuration}}. Configurations passed via the see \\texorpdfstring{$<$}{<}cref=\\char`\\\"{}\\+Request\\+Configuraiton\\char`\\\"{}/\\texorpdfstring{$>$}{>} parameter take precedence over the global configuration. \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_adbf0f298d35e14e72ef1ba0937b7f272}\\label{class_nakama_1_1_retry_configuration_adbf0f298d35e14e72ef1ba0937b7f272}} \n\\index{Nakama.RetryConfiguration@{Nakama.RetryConfiguration}!RetryConfiguration@{RetryConfiguration}}\n\\index{RetryConfiguration@{RetryConfiguration}!Nakama.RetryConfiguration@{Nakama.RetryConfiguration}}\n\\doxysubsubsection{\\texorpdfstring{RetryConfiguration()}{RetryConfiguration()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Nakama.\\+Retry\\+Configuration.\\+Retry\\+Configuration (\\begin{DoxyParamCaption}\\item[{int}]{base\\+Delay\\+Ms,  }\\item[{int}]{max\\+Retries }\\end{DoxyParamCaption})}\n\n\n\nCreate a new retry configuration.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em base\\+Delay\\+Ms} & The base delay (milliseconds) used to calculate the time before making another request attempt.\\\\\n\\hline\n{\\em max\\+Retries} & The maximum number of attempts to make before cancelling the request task.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_a743f91374fba32298211ad64cfd7d57a}\\label{class_nakama_1_1_retry_configuration_a743f91374fba32298211ad64cfd7d57a}} \n\\index{Nakama.RetryConfiguration@{Nakama.RetryConfiguration}!RetryConfiguration@{RetryConfiguration}}\n\\index{RetryConfiguration@{RetryConfiguration}!Nakama.RetryConfiguration@{Nakama.RetryConfiguration}}\n\\doxysubsubsection{\\texorpdfstring{RetryConfiguration()}{RetryConfiguration()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Nakama.\\+Retry\\+Configuration.\\+Retry\\+Configuration (\\begin{DoxyParamCaption}\\item[{int}]{base\\+Delay\\+Ms,  }\\item[{int}]{max\\+Retries,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}{Retry\\+Listener}}}]{listener }\\end{DoxyParamCaption})}\n\n\n\nCreate a new retry configuration.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em base\\+Delay\\+Ms} & The base delay (milliseconds) used to calculate the time before making another request attempt.\\\\\n\\hline\n{\\em max\\+Retries} & The maximum number of attempts to make before cancelling the request task.\\\\\n\\hline\n{\\em listener} & A callback that is invoked before a new retry attempt is made.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{class_nakama_1_1_retry_configuration_a4444b94d9d22c6ef75c03ac92d71264f}\\label{class_nakama_1_1_retry_configuration_a4444b94d9d22c6ef75c03ac92d71264f}} \n\\index{Nakama.RetryConfiguration@{Nakama.RetryConfiguration}!RetryConfiguration@{RetryConfiguration}}\n\\index{RetryConfiguration@{RetryConfiguration}!Nakama.RetryConfiguration@{Nakama.RetryConfiguration}}\n\\doxysubsubsection{\\texorpdfstring{RetryConfiguration()}{RetryConfiguration()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Nakama.\\+Retry\\+Configuration.\\+Retry\\+Configuration (\\begin{DoxyParamCaption}\\item[{int}]{base\\+Delay\\+Ms,  }\\item[{int}]{max\\+Retries,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a45bbacb24a971f1092d15bc2dac0bafe}{Retry\\+Listener}}}]{listener,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration_a06fc034fcd8b2fe5eed976079264c0cd}{Jitter}}}]{jitter }\\end{DoxyParamCaption})}\n\n\n\nCreate a new retry configuration.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em base\\+Delay\\+Ms} & The base delay (milliseconds) used to calculate the time before making another request attempt.\\\\\n\\hline\n{\\em max\\+Retries} & The maximum number of attempts to make before cancelling the request task.\\\\\n\\hline\n{\\em listener} & A callback that is invoked before a new retry attempt is made.\\\\\n\\hline\n{\\em jitter} & /// The jitter algorithm used to apply randomness to the retry delay.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Retry\\+Configuration.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_session.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 344.827576\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.450000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Session) cw\n(Nakama.ISession) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Session) 0.000000 0.000000 box\n (Nakama.ISession) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_session.tex",
    "content": "\\hypertarget{class_nakama_1_1_session}{}\\doxysection{Nakama.\\+Session Class Reference}\n\\label{class_nakama_1_1_session}\\index{Nakama.Session@{Nakama.Session}}\n\n\n \n\n\nInheritance diagram for Nakama.\\+Session\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_session}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_session_a32aa5055ec8b4629d48574c14ca52929}{Has\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check the session has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_session_a292f6d27e68f068d5b71a5e998f93adc}{Has\\+Refresh\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check if the refresh token has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_session_a8387864684cbee2f57ed82211c12e6cd}\\label{class_nakama_1_1_session_a8387864684cbee2f57ed82211c12e6cd}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} \\mbox{\\hyperlink{class_nakama_1_1_session_ac3615441ca8d14d464fd610c22ce5582}{Restore}} (string auth\\+Token, string refresh\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Restore a session from the auth token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_session_ae2346092b17fd6cecea2e5371f748b4f}\\label{class_nakama_1_1_session_ae2346092b17fd6cecea2e5371f748b4f}} \nstatic readonly Date\\+Time {\\bfseries Epoch} = new Date\\+Time(1970, 1, 1, 0, 0, 0, Date\\+Time\\+Kind.\\+Utc)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_session_a6109a78f8514b76f1a0977937dcaaaaf}{Auth\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The authorization token used to construct this session.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_session_a07dd0bf598118762c5d4ac81f1f234fb}{Created}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the user account for this session was just created.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{class_nakama_1_1_session_ad29e88275b3bb763a8153944e0bb9912}{Create\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session was created.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{class_nakama_1_1_session_acb53fd22e6b8a815c5cddb2686b2df91}{Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session will expire.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_session_a2fc70f9f9afb4440faa5936c0f4f1129}{Is\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the session has expired.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_session_a8b0cbb6a8f2c7f8a6bb41a77a05739ac}{Is\\+Refresh\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the refresh token has expired.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{class_nakama_1_1_session_aa220b017e0bb05a9e55f437268338002}{Refresh\\+Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when the refresh token will expire.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_session_a3b756ff336a724af7cb65b2711ffd8d0}{Refresh\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token that can be used for session token renewal.  \\end{DoxyCompactList}\\item \nIDictionary$<$ string, string $>$ \\mbox{\\hyperlink{class_nakama_1_1_session_a3c15d4dd38f96f5920516e9b0bd599d7}{Vars}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Any custom properties associated with this session.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_session_aaa6a5d93c2578c8c83aafdafc8ac724e}{Username}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user who owns this session.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_session_abb1e6deb54c15459678f13a8b0feaa1f}{User\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the user who owns this session.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a32aa5055ec8b4629d48574c14ca52929}\\label{class_nakama_1_1_session_a32aa5055ec8b4629d48574c14ca52929}} \n\\index{Nakama.Session@{Nakama.Session}!HasExpired@{HasExpired}}\n\\index{HasExpired@{HasExpired}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{HasExpired()}{HasExpired()}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Session.\\+Has\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck the session has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_aea82fdba74d6b20eb203b4fc2ccd19e6}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a292f6d27e68f068d5b71a5e998f93adc}\\label{class_nakama_1_1_session_a292f6d27e68f068d5b71a5e998f93adc}} \n\\index{Nakama.Session@{Nakama.Session}!HasRefreshExpired@{HasRefreshExpired}}\n\\index{HasRefreshExpired@{HasRefreshExpired}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{HasRefreshExpired()}{HasRefreshExpired()}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Session.\\+Has\\+Refresh\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck if the refresh token has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a8c7f2700402ab995544a4ff852ad5f35}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_ac3615441ca8d14d464fd610c22ce5582}\\label{class_nakama_1_1_session_ac3615441ca8d14d464fd610c22ce5582}} \n\\index{Nakama.Session@{Nakama.Session}!Restore@{Restore}}\n\\index{Restore@{Restore}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{Restore()}{Restore()}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} Nakama.\\+Session.\\+Restore (\\begin{DoxyParamCaption}\\item[{string}]{auth\\+Token,  }\\item[{string}]{refresh\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nRestore a session from the auth token.  \n\nA {\\ttfamily null} or empty authentication token will return null. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em auth\\+Token} & The authorization token to restore as a session.\\\\\n\\hline\n{\\em refresh\\+Token} & The refresh token for the session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA session.\n\\end{DoxyReturn}\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a6109a78f8514b76f1a0977937dcaaaaf}\\label{class_nakama_1_1_session_a6109a78f8514b76f1a0977937dcaaaaf}} \n\\index{Nakama.Session@{Nakama.Session}!AuthToken@{AuthToken}}\n\\index{AuthToken@{AuthToken}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{AuthToken}{AuthToken}}\n{\\footnotesize\\ttfamily string Nakama.\\+Session.\\+Auth\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe authorization token used to construct this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a49d091792a2145d7dbc72cbf36a60d91}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a07dd0bf598118762c5d4ac81f1f234fb}\\label{class_nakama_1_1_session_a07dd0bf598118762c5d4ac81f1f234fb}} \n\\index{Nakama.Session@{Nakama.Session}!Created@{Created}}\n\\index{Created@{Created}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{Created}{Created}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Session.\\+Created\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the user account for this session was just created.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a37d250a03d534d84538f4aa9473427bd}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_ad29e88275b3bb763a8153944e0bb9912}\\label{class_nakama_1_1_session_ad29e88275b3bb763a8153944e0bb9912}} \n\\index{Nakama.Session@{Nakama.Session}!CreateTime@{CreateTime}}\n\\index{CreateTime@{CreateTime}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{CreateTime}{CreateTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+Session.\\+Create\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session was created.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a0b12e1f2b4c2095ec96bc3c63e4177d7}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_acb53fd22e6b8a815c5cddb2686b2df91}\\label{class_nakama_1_1_session_acb53fd22e6b8a815c5cddb2686b2df91}} \n\\index{Nakama.Session@{Nakama.Session}!ExpireTime@{ExpireTime}}\n\\index{ExpireTime@{ExpireTime}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{ExpireTime}{ExpireTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+Session.\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session will expire.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_ae66907a1582b6c57eb96358cc27c93fc}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a2fc70f9f9afb4440faa5936c0f4f1129}\\label{class_nakama_1_1_session_a2fc70f9f9afb4440faa5936c0f4f1129}} \n\\index{Nakama.Session@{Nakama.Session}!IsExpired@{IsExpired}}\n\\index{IsExpired@{IsExpired}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{IsExpired}{IsExpired}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Session.\\+Is\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the session has expired.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_abe374a4f8e250ffb5207740ee935e791}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a8b0cbb6a8f2c7f8a6bb41a77a05739ac}\\label{class_nakama_1_1_session_a8b0cbb6a8f2c7f8a6bb41a77a05739ac}} \n\\index{Nakama.Session@{Nakama.Session}!IsRefreshExpired@{IsRefreshExpired}}\n\\index{IsRefreshExpired@{IsRefreshExpired}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{IsRefreshExpired}{IsRefreshExpired}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Session.\\+Is\\+Refresh\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the refresh token has expired.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a34a46ea21fd6d69cab5130eda5dee813}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_aa220b017e0bb05a9e55f437268338002}\\label{class_nakama_1_1_session_aa220b017e0bb05a9e55f437268338002}} \n\\index{Nakama.Session@{Nakama.Session}!RefreshExpireTime@{RefreshExpireTime}}\n\\index{RefreshExpireTime@{RefreshExpireTime}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{RefreshExpireTime}{RefreshExpireTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+Session.\\+Refresh\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when the refresh token will expire.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a8a56822b1939c90ba048c64a5522a83f}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a3b756ff336a724af7cb65b2711ffd8d0}\\label{class_nakama_1_1_session_a3b756ff336a724af7cb65b2711ffd8d0}} \n\\index{Nakama.Session@{Nakama.Session}!RefreshToken@{RefreshToken}}\n\\index{RefreshToken@{RefreshToken}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{RefreshToken}{RefreshToken}}\n{\\footnotesize\\ttfamily string Nakama.\\+Session.\\+Refresh\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nRefresh token that can be used for session token renewal.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_add730c3a5733264132cc63f39eb53b31}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_abb1e6deb54c15459678f13a8b0feaa1f}\\label{class_nakama_1_1_session_abb1e6deb54c15459678f13a8b0feaa1f}} \n\\index{Nakama.Session@{Nakama.Session}!UserId@{UserId}}\n\\index{UserId@{UserId}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{UserId}{UserId}}\n{\\footnotesize\\ttfamily string Nakama.\\+Session.\\+User\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe ID of the user who owns this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_aa830ae1045ddd2590e36f8c4feef7c9d}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_aaa6a5d93c2578c8c83aafdafc8ac724e}\\label{class_nakama_1_1_session_aaa6a5d93c2578c8c83aafdafc8ac724e}} \n\\index{Nakama.Session@{Nakama.Session}!Username@{Username}}\n\\index{Username@{Username}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{Username}{Username}}\n{\\footnotesize\\ttfamily string Nakama.\\+Session.\\+Username\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe username of the user who owns this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a29cddbd0cb5b8ec5cbffa1ec028e4ee5}{Nakama.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_session_a3c15d4dd38f96f5920516e9b0bd599d7}\\label{class_nakama_1_1_session_a3c15d4dd38f96f5920516e9b0bd599d7}} \n\\index{Nakama.Session@{Nakama.Session}!Vars@{Vars}}\n\\index{Vars@{Vars}!Nakama.Session@{Nakama.Session}}\n\\doxysubsubsection{\\texorpdfstring{Vars}{Vars}}\n{\\footnotesize\\ttfamily IDictionary$<$string, string$>$ Nakama.\\+Session.\\+Vars\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nAny custom properties associated with this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a35d8154eb7deff8e2bf953b23561bf19}{Nakama.\\+ISession}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Session.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_socket.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 363.636353\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.375000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Socket) cw\n(Nakama.ISocket) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Socket) 0.000000 0.000000 box\n (Nakama.ISocket) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_socket.tex",
    "content": "\\hypertarget{class_nakama_1_1_socket}{}\\doxysection{Nakama.\\+Socket Class Reference}\n\\label{class_nakama_1_1_socket}\\index{Nakama.Socket@{Nakama.Socket}}\n\n\nA socket which implements the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} realtime API.   \n\n\nInheritance diagram for Nakama.\\+Socket\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_socket}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a957a7a72f3206eeb71b4f823b89481b2}\\label{class_nakama_1_1_socket_a957a7a72f3206eeb71b4f823b89481b2}} \n{\\bfseries Socket} ()\n\\begin{DoxyCompactList}\\small\\item\\em A new socket with default options.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_socket_a5cd86e4fde0b78a4230ed024ef43dbe7}{Socket}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}} adapter)\n\\begin{DoxyCompactList}\\small\\item\\em A new socket with an adapter.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_socket_a7a528ae9507ab34fb8a19fe5fd90fde1}{Socket}} (string scheme, string host, int port, \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}} adapter, int send\\+Timeout\\+Sec=\\mbox{\\hyperlink{class_nakama_1_1_socket_a533161073904d1f02ea89edef79cfee7}{Default\\+Send\\+Timeout}})\n\\begin{DoxyCompactList}\\small\\item\\em A new socket with server connection and adapter options.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_ae9fa18dcb3d306d29c7dc97a8e64687a}{Accept\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} presence)\n\\begin{DoxyCompactList}\\small\\item\\em Accept a party member\\textquotesingle{}s request to join the party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The party ID to accept the join request for.\\\\\n\\hline\n{\\em presence} & The presence to accept as a party member. \\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_aed1cb5c5784d1fd08bf5e63ab270a848}{Add\\+Matchmaker\\+Async}} (string query=\\char`\\\"{}$\\ast$\\char`\\\"{}, int min\\+Count=2, int max\\+Count=8, Dictionary$<$ string, string $>$ string\\+Properties=null, Dictionary$<$ string, double $>$ numeric\\+Properties=null, int? count\\+Multiple=null)\n\\begin{DoxyCompactList}\\small\\item\\em Join the matchmaker pool and search for opponents on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em query} & The matchmaker query to search for opponents.\\\\\n\\hline\n{\\em min\\+Count} & The minimum number of players to compete against in a match.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of players to compete against in a match.\\\\\n\\hline\n{\\em string\\+Properties} & A set of key/value properties to provide to searches.\\\\\n\\hline\n{\\em numeric\\+Properties} & A set of key/value numeric properties to provide to searches.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a matchmaker ticket object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a5ed1f27ccf52792a55363ce3273e22de}{Add\\+Matchmaker\\+Party\\+Async}} (string party\\+Id, string query, int min\\+Count, int max\\+Count, Dictionary$<$ string, string $>$ string\\+Properties=null, Dictionary$<$ string, double $>$ numeric\\+Properties=null, int? count\\+Multiple=null)\n\\begin{DoxyCompactList}\\small\\item\\em Begin matchmaking as a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em query} & Filter query used to identify suitable users.\\\\\n\\hline\n{\\em min\\+Count} & Minimum total user count to match together.\\\\\n\\hline\n{\\em max\\+Count} & Maximum total user count to match together.\\\\\n\\hline\n{\\em string\\+Properties} & String properties.\\\\\n\\hline\n{\\em numeric\\+Properties} & Numeric properties.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a party matchmaker ticket object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a5d033f1ff9973aa3e53a5675c91d108e}{Close\\+Async}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Close the socket connection to the server. \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a11620a9e6706ddaf48d260d56c7cdcaa}{Connect\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, bool appear\\+Online=false, int connect\\+Timeout\\+Sec=\\mbox{\\hyperlink{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}{Default\\+Connect\\+Timeout}}, string lang\\+Tag=\\char`\\\"{}en\\char`\\\"{})\n\\begin{DoxyCompactList}\\small\\item\\em Connect to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em appear\\+Online} & If the user who appear online to other users.\\\\\n\\hline\n{\\em connect\\+Timeout} & The time allowed for the socket connection to be established.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag of the user on the connected socket.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a56e29efdc1831754a70b889a08588237}{Close\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em End a party, kicking all party members and closing it. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The ID of the party.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a62f9170d0c155670b7fb57d7de9884a6}{Create\\+Match\\+Async}} (string name=null)\n\\begin{DoxyCompactList}\\small\\item\\em Create a multiplayer match on the server. \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_af228c737dc62ab9bf084706413e8e9be}{Create\\+Party\\+Async}} (bool open, int max\\+Size)\n\\begin{DoxyCompactList}\\small\\item\\em Create a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em open} & Whether or not the party will require join requests to be approved by the party leader.\\\\\n\\hline\n{\\em max\\+Size} & Maximum number of party members.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_ad6180b6f74a9adfdbc53b1c19c63efa5}{Follow\\+Users\\+Async}} (IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$ users)\n\\begin{DoxyCompactList}\\small\\item\\em Subscribe to one or more users for their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a1f567b12eb7a0d498edb3bcea9518338}{Follow\\+Users\\+Async}} (IEnumerable$<$ string $>$ user\\+IDs, IEnumerable$<$ string $>$ usernames=null)\n\\begin{DoxyCompactList}\\small\\item\\em Subscribe to one or more users for their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of users.\\\\\n\\hline\n{\\em usernames} & The usernames of the users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_ad20754e8420f8adbf838a2c57b4f6fd4}{Join\\+Chat\\+Async}} (string target, \\mbox{\\hyperlink{namespace_nakama_addd7f097ac4c449d75e44da62657f307}{Channel\\+Type}} type, bool persistence=false, bool hidden=false)\n\\begin{DoxyCompactList}\\small\\item\\em Join a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em target} & The target channel to join.\\\\\n\\hline\n{\\em type} & The type of channel to join.\\\\\n\\hline\n{\\em persistence} & If chat messages should be stored.\\\\\n\\hline\n{\\em hidden} & If the current user should be hidden on the channel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a chat channel object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a2fe4966a0ad40291bafe2d4b3fc69c80}{Join\\+Match\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}} matched)\n\\begin{DoxyCompactList}\\small\\item\\em Join a multiplayer match with the matchmaker matched object. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em matched} & A matchmaker matched object.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a6d9068f06c70a089a1bd4c25b61802cb}{Join\\+Match\\+Async}} (string match\\+Id, IDictionary$<$ string, string $>$ metadata=null)\n\\begin{DoxyCompactList}\\small\\item\\em Join a multiplayer match by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match to attempt to join.\\\\\n\\hline\n{\\em metadata} & An optional set of key-\\/value metadata pairs to be passed to the match handler.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a57b7ff03c3588dcd4ff1f255f013d519}{Join\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Join a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a2e174430fb895e329fab4c6bde3b93a7}{Leave\\+Chat\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a8350140a21c191ea84617135fef4082e}{Leave\\+Chat\\+Async}} (string channel\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_abcd300eb623ef096f446bfb11b6de0dd}{Leave\\+Match\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} match)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_acc15b0880cb30f2c5afc3318c76a4db6}{Leave\\+Match\\+Async}} (string match\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a261e11e3f7828ec4854957c766c036cb}{Leave\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_ab0ae67833a8133ef069312fcdaecbe48}{List\\+Party\\+Join\\+Requests\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Request a list of pending join requests for a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of all party join requests.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_add01eba7310dbba3a01ecbefb132ade0}{Promote\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} party\\+Member)\n\\begin{DoxyCompactList}\\small\\item\\em Promote a new party leader. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em party\\+Member} & The presence of an existing party member to promote as the new leader.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an announcement of a new party leader.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_aa167fc7e9cae1b65a7f0585431fc3daf}{Remove\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string message\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Remove a chat message from a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a34eef836c0c7f1707c5ffdd9a07f248e}{Remove\\+Chat\\+Message\\+Async}} (string channel\\+Id, string message\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Remove a chat message from a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_aa49d9456a9a1ab735f7f5f1106f56827}{Remove\\+Matchmaker\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the matchmaker pool with the ticket. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a8afad86c4eedab3e40b5f7069b170f72}{Remove\\+Matchmaker\\+Async}} (string ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the matchmaker pool with the ticket contents. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The contents of the ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a7047d31f96d51a71879219df0d510dd3}{Remove\\+Matchmaker\\+Party\\+Async}} (string party\\+Id, string ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Cancel a party matchmaking process using a ticket. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em ticket} & The ticket to cancel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a35dcc5e4b9135bffd54793b42fb9b4e1}{Remove\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} presence)\n\\begin{DoxyCompactList}\\small\\item\\em Kick a party member, or decline a request to join. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to remove/reject from.\\\\\n\\hline\n{\\em presence} & The presence to remove or reject.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a01a6c34d95185413168cf645e7e8943f}{Rpc\\+Async}} (string func\\+Id, string payload=null)\n\\begin{DoxyCompactList}\\small\\item\\em Execute an RPC function to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload to send to the server.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a30717efa7340511c87fc7e4babe99f80}{Rpc\\+Async}} (string func\\+Id, Array\\+Segment$<$ byte $>$ payload)\n\\begin{DoxyCompactList}\\small\\item\\em Execute an RPC function to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload sent to the server from the byte buffer.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a4b674ce28156f9bec04915fefca0286a}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, Array\\+Segment$<$ byte $>$ state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match.\\\\\n\\hline\n{\\em op\\+Code} & An operation code for the input.\\\\\n\\hline\n{\\em state} & The input data to send from the byte buffer.\\\\\n\\hline\n{\\em presences} & The presences in the match who should receive the input.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a3e990dd6a05b4949d2800a6c8c91b935}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, string state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server. \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_af98298e1a187ca977c9dcf63c738dc2c}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, byte\\mbox{[}$\\,$\\mbox{]} state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server. \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a8b3b14eceedee8d96186d5bf234d820c}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, Array\\+Segment$<$ byte $>$ data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & The input data to send from the byte buffer, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_aaade8d235e868a54af041e54b216af9d}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, string data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a2208d5d13196fbf4f40e3131eb224d47}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, byte\\mbox{[}$\\,$\\mbox{]} data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3f20c76d13d14d9f7b3e82555815d39d}\\label{class_nakama_1_1_socket_a3f20c76d13d14d9f7b3e82555815d39d}} \noverride string {\\bfseries To\\+String} ()\n\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a69d7b68ed48c79402440a90101981eec}{Unfollow\\+Users\\+Async}} (IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$ users)\n\\begin{DoxyCompactList}\\small\\item\\em Unfollow one or more users from their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a3834aed45938e02964a4f29adcb51986}{Unfollow\\+Users\\+Async}} (IEnumerable$<$ string $>$ user\\+IDs)\n\\begin{DoxyCompactList}\\small\\item\\em Unfollow one or more users from their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of the users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a3c3fbea58ee3a2f6e3d3885ca79ded9b}{Update\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string message\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Update a chat message on a chat channel in the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_adcc67413fe0ddd3aa5125290680151cf}{Update\\+Chat\\+Message\\+Async}} (string channel\\+Id, string message\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Update a chat message on a chat channel in the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_socket_a869d3761f21ba7a2578f005a6690f707}{Update\\+Status\\+Async}} (string status)\n\\begin{DoxyCompactList}\\small\\item\\em Update the status for the current user online. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em status} & The new status for the user.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a6cb398d1815a5a14d0e98dbe726a45dc}{Write\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Send a chat message to a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{class_nakama_1_1_socket_a36c7765ff46d9f1fa8d3d9114311d772}{Write\\+Chat\\+Message\\+Async}} (string channel\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Send a chat message to a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic \\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{ISocket}} \\mbox{\\hyperlink{class_nakama_1_1_socket_a05a1bfe0921f27da4243fc6e829aa28d}{From}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}} client)\n\\begin{DoxyCompactList}\\small\\item\\em Build a socket from a client object.  \\end{DoxyCompactList}\\item \nstatic \\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{ISocket}} \\mbox{\\hyperlink{class_nakama_1_1_socket_ac4201f5bdda381252451e4aef465b498}{From}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}} client, \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}} adapter)\n\\begin{DoxyCompactList}\\small\\item\\em Build a socket from a client object and socket adapter.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}\\label{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}} \nconst int {\\bfseries Default\\+Connect\\+Timeout} = 30\n\\begin{DoxyCompactList}\\small\\item\\em The default timeout for when the socket connects.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a533161073904d1f02ea89edef79cfee7}\\label{class_nakama_1_1_socket_a533161073904d1f02ea89edef79cfee7}} \nconst int {\\bfseries Default\\+Send\\+Timeout} = 10\n\\begin{DoxyCompactList}\\small\\item\\em The default timeout for when the socket sends a message.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_socket_a3487edbd9dd5dfa7f5a47c485c506639}{Is\\+Connected}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connected.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_socket_a1319b640499d302aa32dc6d4b6373195}{Is\\+Connecting}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connecting.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a49b31620c26b5c3bcb73395c6e43e7e7}\\label{class_nakama_1_1_socket_a49b31620c26b5c3bcb73395c6e43e7e7}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} {\\bfseries Logger}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the socket.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a300991e0a08a180f811dd86cc81756f2}\\label{class_nakama_1_1_socket_a300991e0a08a180f811dd86cc81756f2}} \nAction {\\bfseries Closed}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a96b11a256b14b2f940d74ce55c6bcfac}\\label{class_nakama_1_1_socket_a96b11a256b14b2f940d74ce55c6bcfac}} \nAction {\\bfseries Connected}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a2fc741ef8ec0c967409927269fe17b2d}\\label{class_nakama_1_1_socket_a2fc741ef8ec0c967409927269fe17b2d}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}} $>$ {\\bfseries Received\\+Channel\\+Message}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a7df1f68cfed0dbc80c151d9fc9146436}\\label{class_nakama_1_1_socket_a7df1f68cfed0dbc80c151d9fc9146436}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_presence_event}{IChannel\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Channel\\+Presence}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a1d55fb80f035773813b9c20836fd7d4b}\\label{class_nakama_1_1_socket_a1d55fb80f035773813b9c20836fd7d4b}} \nAction$<$ Exception $>$ {\\bfseries Received\\+Error}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a58bda7f53b946b4aeea917fb410d5b53}\\label{class_nakama_1_1_socket_a58bda7f53b946b4aeea917fb410d5b53}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}} $>$ {\\bfseries Received\\+Matchmaker\\+Matched}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a2126823bf94305bc690de717c204ddc8}\\label{class_nakama_1_1_socket_a2126823bf94305bc690de717c204ddc8}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match_state}{IMatch\\+State}} $>$ {\\bfseries Received\\+Match\\+State}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aa994986e8223a436057a51123b53c138}\\label{class_nakama_1_1_socket_aa994986e8223a436057a51123b53c138}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match_presence_event}{IMatch\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Match\\+Presence}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ae852000e396b907fe3427275e20a438a}\\label{class_nakama_1_1_socket_ae852000e396b907fe3427275e20a438a}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification}{IApi\\+Notification}} $>$ {\\bfseries Received\\+Notification}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aafb682456f9e2f2f6786c7a604068579}\\label{class_nakama_1_1_socket_aafb682456f9e2f2f6786c7a604068579}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event}{IStatus\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Status\\+Presence}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a8f87e235201537ea096e9f7644fcbb53}\\label{class_nakama_1_1_socket_a8f87e235201537ea096e9f7644fcbb53}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_presence_event}{IStream\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Stream\\+Presence}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ab74f9b37e9a85409f5c742c1f7472df8}\\label{class_nakama_1_1_socket_ab74f9b37e9a85409f5c742c1f7472df8}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_state}{IStream\\+State}} $>$ {\\bfseries Received\\+Stream\\+State}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ae0aea1347e564c5b4e05808f8b4f7c7b}\\label{class_nakama_1_1_socket_ae0aea1347e564c5b4e05808f8b4f7c7b}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ {\\bfseries Received\\+Party}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a1c7b6705495d0d792ea206c2c3ec60db}\\label{class_nakama_1_1_socket_a1c7b6705495d0d792ea206c2c3ec60db}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_close}{IParty\\+Close}} $>$ {\\bfseries Received\\+Party\\+Close}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_af68d467390d65c70387cdb4a81f07b05}\\label{class_nakama_1_1_socket_af68d467390d65c70387cdb4a81f07b05}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_data}{IParty\\+Data}} $>$ {\\bfseries Received\\+Party\\+Data}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a5e3f748ba1eb18860832bf62c820bcd6}\\label{class_nakama_1_1_socket_a5e3f748ba1eb18860832bf62c820bcd6}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ {\\bfseries Received\\+Party\\+Join\\+Request}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a65997479fd70edd6a4c343d00413ca53}\\label{class_nakama_1_1_socket_a65997479fd70edd6a4c343d00413ca53}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_leader}{IParty\\+Leader}} $>$ {\\bfseries Received\\+Party\\+Leader}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a7efe921c019734677c663fadd61abd10}\\label{class_nakama_1_1_socket_a7efe921c019734677c663fadd61abd10}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_presence_event}{IParty\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Party\\+Presence}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3d974d278adc00819b18a946f07d467e}\\label{class_nakama_1_1_socket_a3d974d278adc00819b18a946f07d467e}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ {\\bfseries Received\\+Party\\+Matchmaker\\+Ticket}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA socket which implements the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} realtime API.  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a5cd86e4fde0b78a4230ed024ef43dbe7}\\label{class_nakama_1_1_socket_a5cd86e4fde0b78a4230ed024ef43dbe7}} \n\\index{Nakama.Socket@{Nakama.Socket}!Socket@{Socket}}\n\\index{Socket@{Socket}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{Socket()}{Socket()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Nakama.\\+Socket.\\+Socket (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}}}]{adapter }\\end{DoxyParamCaption})}\n\n\n\nA new socket with an adapter.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em adapter} & The adapter for use with the socket.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a7a528ae9507ab34fb8a19fe5fd90fde1}\\label{class_nakama_1_1_socket_a7a528ae9507ab34fb8a19fe5fd90fde1}} \n\\index{Nakama.Socket@{Nakama.Socket}!Socket@{Socket}}\n\\index{Socket@{Socket}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{Socket()}{Socket()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Nakama.\\+Socket.\\+Socket (\\begin{DoxyParamCaption}\\item[{string}]{scheme,  }\\item[{string}]{host,  }\\item[{int}]{port,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}}}]{adapter,  }\\item[{int}]{send\\+Timeout\\+Sec = {\\ttfamily \\mbox{\\hyperlink{class_nakama_1_1_socket_a533161073904d1f02ea89edef79cfee7}{Default\\+Send\\+Timeout}}} }\\end{DoxyParamCaption})}\n\n\n\nA new socket with server connection and adapter options.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em scheme} & The protocol scheme. Must be \\char`\\\"{}ws\\char`\\\"{} or \\char`\\\"{}wss\\char`\\\"{}.\\\\\n\\hline\n{\\em host} & The host address of the server.\\\\\n\\hline\n{\\em port} & The port number of the server.\\\\\n\\hline\n{\\em adapter} & The adapter for use with the socket.\\\\\n\\hline\n{\\em send\\+Timeout\\+Sec} & The maximum time allowed for a message to be sent.\\\\\n\\hline\n\\end{DoxyParams}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ae9fa18dcb3d306d29c7dc97a8e64687a}\\label{class_nakama_1_1_socket_ae9fa18dcb3d306d29c7dc97a8e64687a}} \n\\index{Nakama.Socket@{Nakama.Socket}!AcceptPartyMemberAsync@{AcceptPartyMemberAsync}}\n\\index{AcceptPartyMemberAsync@{AcceptPartyMemberAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{AcceptPartyMemberAsync()}{AcceptPartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Accept\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{presence }\\end{DoxyParamCaption})}\n\n\n\nAccept a party member\\textquotesingle{}s request to join the party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The party ID to accept the join request for.\\\\\n\\hline\n{\\em presence} & The presence to accept as a party member. \\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1bde1efda48cb1aac4d0e049dbe05e51}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aed1cb5c5784d1fd08bf5e63ab270a848}\\label{class_nakama_1_1_socket_aed1cb5c5784d1fd08bf5e63ab270a848}} \n\\index{Nakama.Socket@{Nakama.Socket}!AddMatchmakerAsync@{AddMatchmakerAsync}}\n\\index{AddMatchmakerAsync@{AddMatchmakerAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{AddMatchmakerAsync()}{AddMatchmakerAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} $>$ Nakama.\\+Socket.\\+Add\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{query = {\\ttfamily \\char`\\\"{}$\\ast$\\char`\\\"{}},  }\\item[{int}]{min\\+Count = {\\ttfamily 2},  }\\item[{int}]{max\\+Count = {\\ttfamily 8},  }\\item[{Dictionary$<$ string, string $>$}]{string\\+Properties = {\\ttfamily null},  }\\item[{Dictionary$<$ string, double $>$}]{numeric\\+Properties = {\\ttfamily null},  }\\item[{int?}]{count\\+Multiple = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nJoin the matchmaker pool and search for opponents on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em query} & The matchmaker query to search for opponents.\\\\\n\\hline\n{\\em min\\+Count} & The minimum number of players to compete against in a match.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of players to compete against in a match.\\\\\n\\hline\n{\\em string\\+Properties} & A set of key/value properties to provide to searches.\\\\\n\\hline\n{\\em numeric\\+Properties} & A set of key/value numeric properties to provide to searches.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a matchmaker ticket object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a162c3e3aae5243cd0d8aa39b588f6d96}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a5ed1f27ccf52792a55363ce3273e22de}\\label{class_nakama_1_1_socket_a5ed1f27ccf52792a55363ce3273e22de}} \n\\index{Nakama.Socket@{Nakama.Socket}!AddMatchmakerPartyAsync@{AddMatchmakerPartyAsync}}\n\\index{AddMatchmakerPartyAsync@{AddMatchmakerPartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{AddMatchmakerPartyAsync()}{AddMatchmakerPartyAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ Nakama.\\+Socket.\\+Add\\+Matchmaker\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{string}]{query,  }\\item[{int}]{min\\+Count,  }\\item[{int}]{max\\+Count,  }\\item[{Dictionary$<$ string, string $>$}]{string\\+Properties = {\\ttfamily null},  }\\item[{Dictionary$<$ string, double $>$}]{numeric\\+Properties = {\\ttfamily null},  }\\item[{int?}]{count\\+Multiple = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nBegin matchmaking as a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em query} & Filter query used to identify suitable users.\\\\\n\\hline\n{\\em min\\+Count} & Minimum total user count to match together.\\\\\n\\hline\n{\\em max\\+Count} & Maximum total user count to match together.\\\\\n\\hline\n{\\em string\\+Properties} & String properties.\\\\\n\\hline\n{\\em numeric\\+Properties} & Numeric properties.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a party matchmaker ticket object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a4309cafc8d3b17ddfdbeb3196bad98d5}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a5d033f1ff9973aa3e53a5675c91d108e}\\label{class_nakama_1_1_socket_a5d033f1ff9973aa3e53a5675c91d108e}} \n\\index{Nakama.Socket@{Nakama.Socket}!CloseAsync@{CloseAsync}}\n\\index{CloseAsync@{CloseAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{CloseAsync()}{CloseAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Close\\+Async (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nClose the socket connection to the server. \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a47d4805e5bc797be4640b9b40fd0a1ff}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a56e29efdc1831754a70b889a08588237}\\label{class_nakama_1_1_socket_a56e29efdc1831754a70b889a08588237}} \n\\index{Nakama.Socket@{Nakama.Socket}!ClosePartyAsync@{ClosePartyAsync}}\n\\index{ClosePartyAsync@{ClosePartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{ClosePartyAsync()}{ClosePartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Close\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nEnd a party, kicking all party members and closing it. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The ID of the party.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1e0dfa45e55ac98a90bd61ba68b3739c}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a11620a9e6706ddaf48d260d56c7cdcaa}\\label{class_nakama_1_1_socket_a11620a9e6706ddaf48d260d56c7cdcaa}} \n\\index{Nakama.Socket@{Nakama.Socket}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{bool}]{appear\\+Online = {\\ttfamily false},  }\\item[{int}]{connect\\+Timeout\\+Sec = {\\ttfamily \\mbox{\\hyperlink{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}{Default\\+Connect\\+Timeout}}},  }\\item[{string}]{lang\\+Tag = {\\ttfamily \\char`\\\"{}en\\char`\\\"{}} }\\end{DoxyParamCaption})}\n\n\n\nConnect to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em appear\\+Online} & If the user who appear online to other users.\\\\\n\\hline\n{\\em connect\\+Timeout} & The time allowed for the socket connection to be established.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag of the user on the connected socket.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_afce0421b802a0610d5ba0df073c76118}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a62f9170d0c155670b7fb57d7de9884a6}\\label{class_nakama_1_1_socket_a62f9170d0c155670b7fb57d7de9884a6}} \n\\index{Nakama.Socket@{Nakama.Socket}!CreateMatchAsync@{CreateMatchAsync}}\n\\index{CreateMatchAsync@{CreateMatchAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{CreateMatchAsync()}{CreateMatchAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+Socket.\\+Create\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{name = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nCreate a multiplayer match on the server. \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a82169726f5414f591824413d3a38f49c}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_af228c737dc62ab9bf084706413e8e9be}\\label{class_nakama_1_1_socket_af228c737dc62ab9bf084706413e8e9be}} \n\\index{Nakama.Socket@{Nakama.Socket}!CreatePartyAsync@{CreatePartyAsync}}\n\\index{CreatePartyAsync@{CreatePartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{CreatePartyAsync()}{CreatePartyAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ Nakama.\\+Socket.\\+Create\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{bool}]{open,  }\\item[{int}]{max\\+Size }\\end{DoxyParamCaption})}\n\n\n\nCreate a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em open} & Whether or not the party will require join requests to be approved by the party leader.\\\\\n\\hline\n{\\em max\\+Size} & Maximum number of party members.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a8dc33b819637084a48f2dc72811e64c3}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ad6180b6f74a9adfdbc53b1c19c63efa5}\\label{class_nakama_1_1_socket_ad6180b6f74a9adfdbc53b1c19c63efa5}} \n\\index{Nakama.Socket@{Nakama.Socket}!FollowUsersAsync@{FollowUsersAsync}}\n\\index{FollowUsersAsync@{FollowUsersAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{FollowUsersAsync()}{FollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ Nakama.\\+Socket.\\+Follow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$}]{users }\\end{DoxyParamCaption})}\n\n\n\nSubscribe to one or more users for their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a35fcf5e7221f3f4fb99629c7f7ffe2cf}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a1f567b12eb7a0d498edb3bcea9518338}\\label{class_nakama_1_1_socket_a1f567b12eb7a0d498edb3bcea9518338}} \n\\index{Nakama.Socket@{Nakama.Socket}!FollowUsersAsync@{FollowUsersAsync}}\n\\index{FollowUsersAsync@{FollowUsersAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{FollowUsersAsync()}{FollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ Nakama.\\+Socket.\\+Follow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ string $>$}]{user\\+IDs,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSubscribe to one or more users for their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of users.\\\\\n\\hline\n{\\em usernames} & The usernames of the users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aa1fc00a1c5e65035102d69c0da9c9bcf}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a05a1bfe0921f27da4243fc6e829aa28d}\\label{class_nakama_1_1_socket_a05a1bfe0921f27da4243fc6e829aa28d}} \n\\index{Nakama.Socket@{Nakama.Socket}!From@{From}}\n\\index{From@{From}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{From()}{From()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{ISocket}} Nakama.\\+Socket.\\+From (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}}}]{client }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nBuild a socket from a client object.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em client} & A client object.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA new socket with the connection settings from the client.\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ac4201f5bdda381252451e4aef465b498}\\label{class_nakama_1_1_socket_ac4201f5bdda381252451e4aef465b498}} \n\\index{Nakama.Socket@{Nakama.Socket}!From@{From}}\n\\index{From@{From}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{From()}{From()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{ISocket}} Nakama.\\+Socket.\\+From (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}}}]{client,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}}}]{adapter }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nBuild a socket from a client object and socket adapter.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em client} & A client object.\\\\\n\\hline\n{\\em adapter} & The socket adapter to use with the connection.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA new socket with connection settings from the client.\n\\end{DoxyReturn}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ad20754e8420f8adbf838a2c57b4f6fd4}\\label{class_nakama_1_1_socket_ad20754e8420f8adbf838a2c57b4f6fd4}} \n\\index{Nakama.Socket@{Nakama.Socket}!JoinChatAsync@{JoinChatAsync}}\n\\index{JoinChatAsync@{JoinChatAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{JoinChatAsync()}{JoinChatAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} $>$ Nakama.\\+Socket.\\+Join\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{target,  }\\item[{\\mbox{\\hyperlink{namespace_nakama_addd7f097ac4c449d75e44da62657f307}{Channel\\+Type}}}]{type,  }\\item[{bool}]{persistence = {\\ttfamily false},  }\\item[{bool}]{hidden = {\\ttfamily false} }\\end{DoxyParamCaption})}\n\n\n\nJoin a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em target} & The target channel to join.\\\\\n\\hline\n{\\em type} & The type of channel to join.\\\\\n\\hline\n{\\em persistence} & If chat messages should be stored.\\\\\n\\hline\n{\\em hidden} & If the current user should be hidden on the channel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a chat channel object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae30f0d0d5f72817bc5a477c4c105b950}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a2fe4966a0ad40291bafe2d4b3fc69c80}\\label{class_nakama_1_1_socket_a2fe4966a0ad40291bafe2d4b3fc69c80}} \n\\index{Nakama.Socket@{Nakama.Socket}!JoinMatchAsync@{JoinMatchAsync}}\n\\index{JoinMatchAsync@{JoinMatchAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{JoinMatchAsync()}{JoinMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+Socket.\\+Join\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}}}]{matched }\\end{DoxyParamCaption})}\n\n\n\nJoin a multiplayer match with the matchmaker matched object. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em matched} & A matchmaker matched object.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a459b0786a266bd8599b9435e5f45ea34}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a6d9068f06c70a089a1bd4c25b61802cb}\\label{class_nakama_1_1_socket_a6d9068f06c70a089a1bd4c25b61802cb}} \n\\index{Nakama.Socket@{Nakama.Socket}!JoinMatchAsync@{JoinMatchAsync}}\n\\index{JoinMatchAsync@{JoinMatchAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{JoinMatchAsync()}{JoinMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+Socket.\\+Join\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{IDictionary$<$ string, string $>$}]{metadata = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nJoin a multiplayer match by ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match to attempt to join.\\\\\n\\hline\n{\\em metadata} & An optional set of key-\\/value metadata pairs to be passed to the match handler.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ac6fe282b44ef6bed9179fe5766de5b27}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a57b7ff03c3588dcd4ff1f255f013d519}\\label{class_nakama_1_1_socket_a57b7ff03c3588dcd4ff1f255f013d519}} \n\\index{Nakama.Socket@{Nakama.Socket}!JoinPartyAsync@{JoinPartyAsync}}\n\\index{JoinPartyAsync@{JoinPartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{JoinPartyAsync()}{JoinPartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Join\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nJoin a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a7004ef370a75ed96cee268191ef82670}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a2e174430fb895e329fab4c6bde3b93a7}\\label{class_nakama_1_1_socket_a2e174430fb895e329fab4c6bde3b93a7}} \n\\index{Nakama.Socket@{Nakama.Socket}!LeaveChatAsync@{LeaveChatAsync}}\n\\index{LeaveChatAsync@{LeaveChatAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveChatAsync()}{LeaveChatAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Leave\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel }\\end{DoxyParamCaption})}\n\n\n\nLeave a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a647667ebb59e491e9462417bf96f6f41}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a8350140a21c191ea84617135fef4082e}\\label{class_nakama_1_1_socket_a8350140a21c191ea84617135fef4082e}} \n\\index{Nakama.Socket@{Nakama.Socket}!LeaveChatAsync@{LeaveChatAsync}}\n\\index{LeaveChatAsync@{LeaveChatAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveChatAsync()}{LeaveChatAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Leave\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a9ec279ff4873da0b9c9a90b9cfd0eada}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_abcd300eb623ef096f446bfb11b6de0dd}\\label{class_nakama_1_1_socket_abcd300eb623ef096f446bfb11b6de0dd}} \n\\index{Nakama.Socket@{Nakama.Socket}!LeaveMatchAsync@{LeaveMatchAsync}}\n\\index{LeaveMatchAsync@{LeaveMatchAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveMatchAsync()}{LeaveMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Leave\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}}}]{match }\\end{DoxyParamCaption})}\n\n\n\nLeave a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a094fbace93957878a94815d38967aaf3}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_acc15b0880cb30f2c5afc3318c76a4db6}\\label{class_nakama_1_1_socket_acc15b0880cb30f2c5afc3318c76a4db6}} \n\\index{Nakama.Socket@{Nakama.Socket}!LeaveMatchAsync@{LeaveMatchAsync}}\n\\index{LeaveMatchAsync@{LeaveMatchAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveMatchAsync()}{LeaveMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Leave\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_af7bc9c33420ac5c873f68d92058b1a2d}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a261e11e3f7828ec4854957c766c036cb}\\label{class_nakama_1_1_socket_a261e11e3f7828ec4854957c766c036cb}} \n\\index{Nakama.Socket@{Nakama.Socket}!LeavePartyAsync@{LeavePartyAsync}}\n\\index{LeavePartyAsync@{LeavePartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{LeavePartyAsync()}{LeavePartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Leave\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave the party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a9f157fc83e6dfeb5d32c82f0d71c603b}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_ab0ae67833a8133ef069312fcdaecbe48}\\label{class_nakama_1_1_socket_ab0ae67833a8133ef069312fcdaecbe48}} \n\\index{Nakama.Socket@{Nakama.Socket}!ListPartyJoinRequestsAsync@{ListPartyJoinRequestsAsync}}\n\\index{ListPartyJoinRequestsAsync@{ListPartyJoinRequestsAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{ListPartyJoinRequestsAsync()}{ListPartyJoinRequestsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ Nakama.\\+Socket.\\+List\\+Party\\+Join\\+Requests\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRequest a list of pending join requests for a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of all party join requests.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a3290abc231fbc13d10a279e9df4e3ef4}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_add01eba7310dbba3a01ecbefb132ade0}\\label{class_nakama_1_1_socket_add01eba7310dbba3a01ecbefb132ade0}} \n\\index{Nakama.Socket@{Nakama.Socket}!PromotePartyMemberAsync@{PromotePartyMemberAsync}}\n\\index{PromotePartyMemberAsync@{PromotePartyMemberAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{PromotePartyMemberAsync()}{PromotePartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Promote\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{party\\+Member }\\end{DoxyParamCaption})}\n\n\n\nPromote a new party leader. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em party\\+Member} & The presence of an existing party member to promote as the new leader.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an announcement of a new party leader.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a747dddd036256e29cdb5a0f9cbfffe1e}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aa167fc7e9cae1b65a7f0585431fc3daf}\\label{class_nakama_1_1_socket_aa167fc7e9cae1b65a7f0585431fc3daf}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemoveChatMessageAsync@{RemoveChatMessageAsync}}\n\\index{RemoveChatMessageAsync@{RemoveChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveChatMessageAsync()}{RemoveChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Remove\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{message\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRemove a chat message from a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a2e0d2258668b6a23ab8ef898a859b607}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a34eef836c0c7f1707c5ffdd9a07f248e}\\label{class_nakama_1_1_socket_a34eef836c0c7f1707c5ffdd9a07f248e}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemoveChatMessageAsync@{RemoveChatMessageAsync}}\n\\index{RemoveChatMessageAsync@{RemoveChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveChatMessageAsync()}{RemoveChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Remove\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{message\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRemove a chat message from a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a72b9923abc413441524248fb3dbaa6d2}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aa49d9456a9a1ab735f7f5f1106f56827}\\label{class_nakama_1_1_socket_aa49d9456a9a1ab735f7f5f1106f56827}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemoveMatchmakerAsync@{RemoveMatchmakerAsync}}\n\\index{RemoveMatchmakerAsync@{RemoveMatchmakerAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerAsync()}{RemoveMatchmakerAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Remove\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}}}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nLeave the matchmaker pool with the ticket. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1c4a81177c160384ef79eb0c4ae59b47}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a8afad86c4eedab3e40b5f7069b170f72}\\label{class_nakama_1_1_socket_a8afad86c4eedab3e40b5f7069b170f72}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemoveMatchmakerAsync@{RemoveMatchmakerAsync}}\n\\index{RemoveMatchmakerAsync@{RemoveMatchmakerAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerAsync()}{RemoveMatchmakerAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Remove\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nLeave the matchmaker pool with the ticket contents. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The contents of the ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_acda6e90c3bf82f29c849404a53583bae}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a7047d31f96d51a71879219df0d510dd3}\\label{class_nakama_1_1_socket_a7047d31f96d51a71879219df0d510dd3}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemoveMatchmakerPartyAsync@{RemoveMatchmakerPartyAsync}}\n\\index{RemoveMatchmakerPartyAsync@{RemoveMatchmakerPartyAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerPartyAsync()}{RemoveMatchmakerPartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Remove\\+Matchmaker\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{string}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nCancel a party matchmaking process using a ticket. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em ticket} & The ticket to cancel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ac07a04f376786f2d74404b755b0d2d3c}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a35dcc5e4b9135bffd54793b42fb9b4e1}\\label{class_nakama_1_1_socket_a35dcc5e4b9135bffd54793b42fb9b4e1}} \n\\index{Nakama.Socket@{Nakama.Socket}!RemovePartyMemberAsync@{RemovePartyMemberAsync}}\n\\index{RemovePartyMemberAsync@{RemovePartyMemberAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RemovePartyMemberAsync()}{RemovePartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Remove\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{presence }\\end{DoxyParamCaption})}\n\n\n\nKick a party member, or decline a request to join. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to remove/reject from.\\\\\n\\hline\n{\\em presence} & The presence to remove or reject.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aedd8b717ab06cb2e1a293cc65eaef503}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a30717efa7340511c87fc7e4babe99f80}\\label{class_nakama_1_1_socket_a30717efa7340511c87fc7e4babe99f80}} \n\\index{Nakama.Socket@{Nakama.Socket}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+Socket.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{func\\+Id,  }\\item[{Array\\+Segment$<$ byte $>$}]{payload }\\end{DoxyParamCaption})}\n\n\n\nExecute an RPC function to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload sent to the server from the byte buffer.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a862ba5aa777eebba3d86aa1c882e9c0a}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a01a6c34d95185413168cf645e7e8943f}\\label{class_nakama_1_1_socket_a01a6c34d95185413168cf645e7e8943f}} \n\\index{Nakama.Socket@{Nakama.Socket}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+Socket.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{func\\+Id,  }\\item[{string}]{payload = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nExecute an RPC function to the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload to send to the server.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a5d5e0936be90aac974a7beb908c086c6}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a4b674ce28156f9bec04915fefca0286a}\\label{class_nakama_1_1_socket_a4b674ce28156f9bec04915fefca0286a}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{Array\\+Segment$<$ byte $>$}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match.\\\\\n\\hline\n{\\em op\\+Code} & An operation code for the input.\\\\\n\\hline\n{\\em state} & The input data to send from the byte buffer.\\\\\n\\hline\n{\\em presences} & The presences in the match who should receive the input.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a035e541530d517125c5770d68765cd83}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_af98298e1a187ca977c9dcf63c738dc2c}\\label{class_nakama_1_1_socket_af98298e1a187ca977c9dcf63c738dc2c}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server. \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae594151407277c8c4689bfc4587cc7fb}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3e990dd6a05b4949d2800a6c8c91b935}\\label{class_nakama_1_1_socket_a3e990dd6a05b4949d2800a6c8c91b935}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{string}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server. \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aea679f2d9b9623d527cf6d5b58ecd5ef}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a8b3b14eceedee8d96186d5bf234d820c}\\label{class_nakama_1_1_socket_a8b3b14eceedee8d96186d5bf234d820c}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{Array\\+Segment$<$ byte $>$}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & The input data to send from the byte buffer, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae90675f58de4722900b1b1b139485120}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a2208d5d13196fbf4f40e3131eb224d47}\\label{class_nakama_1_1_socket_a2208d5d13196fbf4f40e3131eb224d47}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_af59ab771e89bb0dce237df3e316f1e63}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_aaade8d235e868a54af041e54b216af9d}\\label{class_nakama_1_1_socket_aaade8d235e868a54af041e54b216af9d}} \n\\index{Nakama.Socket@{Nakama.Socket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{string}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a20ec2fbcae378c8d46c6309dc87c41a9}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a69d7b68ed48c79402440a90101981eec}\\label{class_nakama_1_1_socket_a69d7b68ed48c79402440a90101981eec}} \n\\index{Nakama.Socket@{Nakama.Socket}!UnfollowUsersAsync@{UnfollowUsersAsync}}\n\\index{UnfollowUsersAsync@{UnfollowUsersAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{UnfollowUsersAsync()}{UnfollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Unfollow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$}]{users }\\end{DoxyParamCaption})}\n\n\n\nUnfollow one or more users from their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a89c6778b3357f5c3d305b291847cb44a}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3834aed45938e02964a4f29adcb51986}\\label{class_nakama_1_1_socket_a3834aed45938e02964a4f29adcb51986}} \n\\index{Nakama.Socket@{Nakama.Socket}!UnfollowUsersAsync@{UnfollowUsersAsync}}\n\\index{UnfollowUsersAsync@{UnfollowUsersAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{UnfollowUsersAsync()}{UnfollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Unfollow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ string $>$}]{user\\+IDs }\\end{DoxyParamCaption})}\n\n\n\nUnfollow one or more users from their status updates. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of the users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a8266f3c4803246a46e4066703ae62d37}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3c3fbea58ee3a2f6e3d3885ca79ded9b}\\label{class_nakama_1_1_socket_a3c3fbea58ee3a2f6e3d3885ca79ded9b}} \n\\index{Nakama.Socket@{Nakama.Socket}!UpdateChatMessageAsync@{UpdateChatMessageAsync}}\n\\index{UpdateChatMessageAsync@{UpdateChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateChatMessageAsync()}{UpdateChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Update\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{message\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nUpdate a chat message on a chat channel in the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aceed2d36c564cb6eb71d060a07c9c041}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_adcc67413fe0ddd3aa5125290680151cf}\\label{class_nakama_1_1_socket_adcc67413fe0ddd3aa5125290680151cf}} \n\\index{Nakama.Socket@{Nakama.Socket}!UpdateChatMessageAsync@{UpdateChatMessageAsync}}\n\\index{UpdateChatMessageAsync@{UpdateChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateChatMessageAsync()}{UpdateChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Update\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{message\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nUpdate a chat message on a chat channel in the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_abda0b03723050cdcba1c765f501f1ce0}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a869d3761f21ba7a2578f005a6690f707}\\label{class_nakama_1_1_socket_a869d3761f21ba7a2578f005a6690f707}} \n\\index{Nakama.Socket@{Nakama.Socket}!UpdateStatusAsync@{UpdateStatusAsync}}\n\\index{UpdateStatusAsync@{UpdateStatusAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateStatusAsync()}{UpdateStatusAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Socket.\\+Update\\+Status\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{status }\\end{DoxyParamCaption})}\n\n\n\nUpdate the status for the current user online. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em status} & The new status for the user.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aaf666992ffd841ac9486a9433aab6614}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a6cb398d1815a5a14d0e98dbe726a45dc}\\label{class_nakama_1_1_socket_a6cb398d1815a5a14d0e98dbe726a45dc}} \n\\index{Nakama.Socket@{Nakama.Socket}!WriteChatMessageAsync@{WriteChatMessageAsync}}\n\\index{WriteChatMessageAsync@{WriteChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{WriteChatMessageAsync()}{WriteChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Write\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nSend a chat message to a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aabcd26e73944cfdb51a1c3585c9348db}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a36c7765ff46d9f1fa8d3d9114311d772}\\label{class_nakama_1_1_socket_a36c7765ff46d9f1fa8d3d9114311d772}} \n\\index{Nakama.Socket@{Nakama.Socket}!WriteChatMessageAsync@{WriteChatMessageAsync}}\n\\index{WriteChatMessageAsync@{WriteChatMessageAsync}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{WriteChatMessageAsync()}{WriteChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+Socket.\\+Write\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nSend a chat message to a chat channel on the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a7f6f7d4e31a11b3a2cf9284b86568210}{Nakama.\\+ISocket}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a3487edbd9dd5dfa7f5a47c485c506639}\\label{class_nakama_1_1_socket_a3487edbd9dd5dfa7f5a47c485c506639}} \n\\index{Nakama.Socket@{Nakama.Socket}!IsConnected@{IsConnected}}\n\\index{IsConnected@{IsConnected}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{IsConnected}{IsConnected}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Socket.\\+Is\\+Connected\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connected.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ad2e3682e09ff2df296a9e26367fa9943}{Nakama.\\+ISocket}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_socket_a1319b640499d302aa32dc6d4b6373195}\\label{class_nakama_1_1_socket_a1319b640499d302aa32dc6d4b6373195}} \n\\index{Nakama.Socket@{Nakama.Socket}!IsConnecting@{IsConnecting}}\n\\index{IsConnecting@{IsConnecting}!Nakama.Socket@{Nakama.Socket}}\n\\doxysubsubsection{\\texorpdfstring{IsConnecting}{IsConnecting}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Socket.\\+Is\\+Connecting\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connecting.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adbde619842d6576575adaa0ee0947140}{Nakama.\\+ISocket}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Socket.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_storage_object_id.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 91.743118\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.450000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 2 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.StorageObjectId) cw\n(Nakama.IApiReadStorageObjectId) cw\n(Nakama.IApiDeleteStorageObjectId) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.StorageObjectId) 0.500000 0.000000 box\n (Nakama.IApiReadStorageObjectId) 0.000000 1.000000 box\n (Nakama.IApiDeleteStorageObjectId) 1.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.500000 0.000000 out\nsolid\n0.000000 1.000000 1.000000 conn\nsolid\n1 0.000000 1.000000 in\nsolid\n1 1.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_storage_object_id.tex",
    "content": "\\hypertarget{class_nakama_1_1_storage_object_id}{}\\doxysection{Nakama.\\+Storage\\+Object\\+Id Class Reference}\n\\label{class_nakama_1_1_storage_object_id}\\index{Nakama.StorageObjectId@{Nakama.StorageObjectId}}\n\n\nAn identifier for a storage object.   \n\n\nInheritance diagram for Nakama.\\+Storage\\+Object\\+Id\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_storage_object_id}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_storage_object_id_a97002e9e8415e9ba6c778f03b5c803f4}\\label{class_nakama_1_1_storage_object_id_a97002e9e8415e9ba6c778f03b5c803f4}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a1beb57b56e9b6b1f078391803e95fa95}{Collection}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a4243d96cb3a1cf50a4f5a3cf790d7a1b}{Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a16f5f70d638e02ef1a003ed4ae0f0bd6}{Version}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a02e8a3b9a07d74c4230d7836304463e6}{User\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user owner of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn identifier for a storage object.  \n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_storage_object_id_a1beb57b56e9b6b1f078391803e95fa95}\\label{class_nakama_1_1_storage_object_id_a1beb57b56e9b6b1f078391803e95fa95}} \n\\index{Nakama.StorageObjectId@{Nakama.StorageObjectId}!Collection@{Collection}}\n\\index{Collection@{Collection}!Nakama.StorageObjectId@{Nakama.StorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Collection}{Collection}}\n{\\footnotesize\\ttfamily string Nakama.\\+Storage\\+Object\\+Id.\\+Collection\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe collection which stores the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_a20637f8e0807a46dde97b56b6eff4024}{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_storage_object_id_a4243d96cb3a1cf50a4f5a3cf790d7a1b}\\label{class_nakama_1_1_storage_object_id_a4243d96cb3a1cf50a4f5a3cf790d7a1b}} \n\\index{Nakama.StorageObjectId@{Nakama.StorageObjectId}!Key@{Key}}\n\\index{Key@{Key}!Nakama.StorageObjectId@{Nakama.StorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Key}{Key}}\n{\\footnotesize\\ttfamily string Nakama.\\+Storage\\+Object\\+Id.\\+Key\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe key of the object within the collection.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_af63c5066a0c0172de35e43ba42b3316a}{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_storage_object_id_a02e8a3b9a07d74c4230d7836304463e6}\\label{class_nakama_1_1_storage_object_id_a02e8a3b9a07d74c4230d7836304463e6}} \n\\index{Nakama.StorageObjectId@{Nakama.StorageObjectId}!UserId@{UserId}}\n\\index{UserId@{UserId}!Nakama.StorageObjectId@{Nakama.StorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{UserId}{UserId}}\n{\\footnotesize\\ttfamily string Nakama.\\+Storage\\+Object\\+Id.\\+User\\+Id\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe user owner of the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id_a3dc390e319f5ed88de8bd95179b23cc9}{Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_storage_object_id_a16f5f70d638e02ef1a003ed4ae0f0bd6}\\label{class_nakama_1_1_storage_object_id_a16f5f70d638e02ef1a003ed4ae0f0bd6}} \n\\index{Nakama.StorageObjectId@{Nakama.StorageObjectId}!Version@{Version}}\n\\index{Version@{Version}!Nakama.StorageObjectId@{Nakama.StorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Version}{Version}}\n{\\footnotesize\\ttfamily string Nakama.\\+Storage\\+Object\\+Id.\\+Version\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe version hash of the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_af7570d690cf78118235584607bbb8ebd}{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Storage\\+Object\\+Id.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_authenticate_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Authenticate\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}\\index{Nakama.Tests.Api.AuthenticateTest@{Nakama.Tests.Api.AuthenticateTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a41962a8c9df56ae8591abfbcfb84c3a3}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a41962a8c9df56ae8591abfbcfb84c3a3}} \nasync Task {\\bfseries Should\\+Authenticate\\+Custom\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a121d259a54635ecbed4967e9b66cb58a}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a121d259a54635ecbed4967e9b66cb58a}} \nasync Task {\\bfseries Should\\+Authenticate\\+Device\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a7cd524ab66b07b4739c52bff5ad85596}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a7cd524ab66b07b4739c52bff5ad85596}} \nasync Task {\\bfseries Should\\+Authenticate\\+Device\\+And\\+Save\\+Username} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a794c5d9d43f8232d5fde9debdf7686c3}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a794c5d9d43f8232d5fde9debdf7686c3}} \nasync Task {\\bfseries Should\\+Authenticate\\+Email} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a4fb178729ae771e86296bf1771ec9877}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a4fb178729ae771e86296bf1771ec9877}} \nasync void {\\bfseries Should\\+Not\\+Authenticate\\+Facebook} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a8c8a75cf0f241677d81c5c94942fb3a4}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a8c8a75cf0f241677d81c5c94942fb3a4}} \nasync void {\\bfseries Should\\+Not\\+Authenticate\\+Game\\+Center} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a8b6c516a4da49a1554df56f43b1a5a78}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a8b6c516a4da49a1554df56f43b1a5a78}} \nasync void {\\bfseries Should\\+Not\\+Authenticate\\+Google} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_abd5c05c9b05bf9aab03ef1cdc60cdfe6}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_abd5c05c9b05bf9aab03ef1cdc60cdfe6}} \nasync void {\\bfseries Should\\+Not\\+Authenticate\\+Steam} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a5e81391332dc899edd2d4cf555f82320}\\label{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test_a5e81391332dc899edd2d4cf555f82320}} \nasync void {\\bfseries Should\\+Not\\+Authenticate\\+Apple} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Authenticate\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_group_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Group\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test}\\index{Nakama.Tests.Api.GroupTest@{Nakama.Tests.Api.GroupTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a961a5fafda0101da1970438a15202073}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a961a5fafda0101da1970438a15202073}} \nasync Task {\\bfseries Should\\+Create\\+Group} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a69267be15c9827879d3cd99cd5f762ce}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a69267be15c9827879d3cd99cd5f762ce}} \nasync Task {\\bfseries Should\\+Create\\+Group\\+Default} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_ab20f14fbc96b0c6e5c8037a607f2f181}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_ab20f14fbc96b0c6e5c8037a607f2f181}} \nasync Task {\\bfseries Should\\+Not\\+Create\\+Group} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a90a13c1648c008ff1481045cd68340f4}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a90a13c1648c008ff1481045cd68340f4}} \nasync Task {\\bfseries Should\\+List\\+Groups} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a684c5a29f00d5ec34314afdc6c5294da}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a684c5a29f00d5ec34314afdc6c5294da}} \nasync Task {\\bfseries Should\\+List\\+Groups\\+Name\\+Filter} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a449f7244b1d732ed72eeadf29323df0a}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a449f7244b1d732ed72eeadf29323df0a}} \nasync Task {\\bfseries Should\\+List\\+Groups\\+Filter\\+Two} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_abdd3eee2ef0f84c31b8ce67a4160f939}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_abdd3eee2ef0f84c31b8ce67a4160f939}} \nasync Task {\\bfseries Should\\+List\\+Groups\\+Cursor} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_af3e717220d44f0bfc292e69177f5a1d4}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_af3e717220d44f0bfc292e69177f5a1d4}} \nasync Task {\\bfseries Should\\+Delete\\+Group} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a456de88b1d17c5db5c17ae2f3b810cda}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a456de88b1d17c5db5c17ae2f3b810cda}} \nasync Task {\\bfseries Should\\+Delete\\+Group\\+Invalid} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a8c65eb49e5ebac6e503810b485824d7d}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a8c65eb49e5ebac6e503810b485824d7d}} \nasync Task {\\bfseries Should\\+Not\\+Delete\\+Group\\+Not\\+Super\\+Admin} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_aaf9c3b7579460f07b3ec710d2b83bed4}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_aaf9c3b7579460f07b3ec710d2b83bed4}} \nasync Task {\\bfseries Should\\+Promote\\+And\\+Demote\\+Users} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_group_test_a2ebd7264caa24fed9db3148a153e24a8}\\label{class_nakama_1_1_tests_1_1_api_1_1_group_test_a2ebd7264caa24fed9db3148a153e24a8}} \nasync Task {\\bfseries Should\\+Ban\\+Users} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Group\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_http_error_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Http\\+Error\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}\\index{Nakama.Tests.Api.HttpErrorTest@{Nakama.Tests.Api.HttpErrorTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_a07d076d4e0e05086b23303b1a0d953f7}\\label{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_a07d076d4e0e05086b23303b1a0d953f7}} \nasync Task {\\bfseries Bad\\+Lua\\+Rpc\\+Returns\\+Error\\+Message\\+And\\+Dict} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_a292b87cddb5142d22eea91d73193f101}\\label{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_a292b87cddb5142d22eea91d73193f101}} \nasync Task {\\bfseries Bad\\+Go\\+Rpc\\+Returns\\+Error\\+Message\\+And\\+Empty\\+Dict} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_aad101dc7ae4fa72d53516f09c4ea6f74}\\label{class_nakama_1_1_tests_1_1_api_1_1_http_error_test_aad101dc7ae4fa72d53516f09c4ea6f74}} \nasync Task {\\bfseries Bad\\+Go\\+Storage\\+Rpc\\+Returns\\+Error\\+Message\\+And\\+Empty\\+Dict} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Http\\+Error\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 199.335541\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.508333 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 3 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Api.LeaderboardAroundOwnerTest) cw\n(Nakama.Tests.Api.LeaderboardTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Api.LeaderboardAroundOwnerTest) 0.000000 0.000000 box\n (Nakama.Tests.Api.LeaderboardTest) 0.000000 1.000000 box\n (IAsyncLifetime) 0.000000 2.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\nsolid\n0 0.000000 1.000000 out\nsolid\n1 0.000000 2.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Around\\+Owner\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}\\index{Nakama.Tests.Api.LeaderboardAroundOwnerTest@{Nakama.Tests.Api.LeaderboardAroundOwnerTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Around\\+Owner\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=3.000000cm]{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a41372ec3387fcc40bd6efb8733cbf9e0}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a41372ec3387fcc40bd6efb8733cbf9e0}} \nasync Task {\\bfseries Owner\\+In\\+Front} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae3ce5ee251b92309a0a7c173034ce537}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae3ce5ee251b92309a0a7c173034ce537}} \nasync Task {\\bfseries Owner\\+In\\+Back} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae1ee42f9248802e690fe94065491b625}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae1ee42f9248802e690fe94065491b625}} \nasync Task {\\bfseries Owner\\+Near\\+Front} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_af52352fb5938e18e25a8ca8c3b59f672}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_af52352fb5938e18e25a8ca8c3b59f672}} \nasync Task {\\bfseries Owner\\+Near\\+Back} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae997ec60c9446a55b305e39f6662c008}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ae997ec60c9446a55b305e39f6662c008}} \nasync Task {\\bfseries Owner\\+In\\+Middle} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a9a279d1da914c70cd86f1cbeea398b06}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a9a279d1da914c70cd86f1cbeea398b06}} \nasync Task {\\bfseries Not\\+Enough\\+Records\\+For\\+Limit} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_afc9150d8462b48e304e55bf8bd84361a}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_afc9150d8462b48e304e55bf8bd84361a}} \nasync Task {\\bfseries Odd\\+Limit} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ac4bf4df69857cfd89a2f7a945a9ca483}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_ac4bf4df69857cfd89a2f7a945a9ca483}} \nasync Task {\\bfseries No\\+Records} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a1ff46d95e70ebe8519779f043a1a2c04}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a1ff46d95e70ebe8519779f043a1a2c04}} \nasync Task {\\bfseries One\\+Record\\+One\\+Limit} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a20da41ac24c3b7a824e0861642bfcd67}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a20da41ac24c3b7a824e0861642bfcd67}} \nasync Task {\\bfseries Two\\+Records\\+Two\\+Limit} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_afbcd10ece0f06956929378b721540175}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_afbcd10ece0f06956929378b721540175}} \nasync Task {\\bfseries Three\\+Records\\+Two\\+Limit} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a0e11f1fc1c182d89e14c39a3fa6e9b9b}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test_a0e11f1fc1c182d89e14c39a3fa6e9b9b}} \nasync Task {\\bfseries Three\\+Records\\+Three\\+Limit} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Additional Inherited Members}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Leaderboard\\+Around\\+Owner\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 199.335541\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.508333 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 3 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Api.LeaderboardTest) cw\n(IAsyncLifetime) cw\n(Nakama.Tests.Api.LeaderboardAroundOwnerTest) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Api.LeaderboardTest) 0.000000 1.000000 box\n (IAsyncLifetime) 0.000000 2.000000 box\n (Nakama.Tests.Api.LeaderboardAroundOwnerTest) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 1.000000 out\nsolid\n1 0.000000 2.000000 in\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}\\index{Nakama.Tests.Api.LeaderboardTest@{Nakama.Tests.Api.LeaderboardTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=3.000000cm]{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_ababe770453ae800d02f0b373a17bafdc}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_ababe770453ae800d02f0b373a17bafdc}} \nasync Task {\\bfseries Should\\+Write\\+Leaderboard\\+Record} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a61bcea07d16b8f2bf9c7ed79ac520b68}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a61bcea07d16b8f2bf9c7ed79ac520b68}} \nasync Task {\\bfseries Should\\+List\\+Leaderboard\\+Records\\+With\\+Owner\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a78983986078de9fc14cdf33f97267882}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a78983986078de9fc14cdf33f97267882}} \nasync Task {\\bfseries Should\\+List\\+Leaderboard\\+Records\\+Empty} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_abf9af23fd2f8ac3e1fb1577999a6da93}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_abf9af23fd2f8ac3e1fb1577999a6da93}} \nasync Task {\\bfseries Should\\+Delete\\+Leaderboard\\+Record} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_abd23ac785a36dd302e7b864d81088d12}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_abd23ac785a36dd302e7b864d81088d12}} \nasync Task {\\bfseries Should\\+Delete\\+Leaderboard\\+Record\\+Not\\+Found} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a38a63471d3654b66582e2420e31e1952}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a38a63471d3654b66582e2420e31e1952}} \nasync Task {\\bfseries Should\\+Delete\\+Leaderboard\\+Record\\+Not\\+Exists} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_ac5d7e7821e91777c393b2f61a7dd2cc8}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_ac5d7e7821e91777c393b2f61a7dd2cc8}} \nasync Task {\\bfseries Initialize\\+Async} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a7cfeaa464a847798487b68383ac338e2}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a7cfeaa464a847798487b68383ac338e2}} \nTask {\\bfseries Dispose\\+Async} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Protected Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a6078166e38f735cdf46db47a6ab521d1}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a6078166e38f735cdf46db47a6ab521d1}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}} {\\bfseries \\+\\_\\+client}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a4369c6ef1220f8d46f48053f27397d90}\\label{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test_a4369c6ef1220f8d46f48053f27397d90}} \nstring {\\bfseries \\+\\_\\+leaderboard\\+Id}\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Leaderboard\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Link\\+Unlink\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}\\index{Nakama.Tests.Api.LinkUnlinkTest@{Nakama.Tests.Api.LinkUnlinkTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a7ddbf24b69d735b748fdcdaa04b7a449}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a7ddbf24b69d735b748fdcdaa04b7a449}} \nasync Task {\\bfseries Should\\+Link\\+Custom\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a662663959eb7a27f8e6b405ac000bea2}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a662663959eb7a27f8e6b405ac000bea2}} \nasync Task {\\bfseries Should\\+Link\\+Custom\\+Id\\+Same} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ad94c42de92c940f818c9e235e7d6deab}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ad94c42de92c940f818c9e235e7d6deab}} \nasync Task {\\bfseries Should\\+Link\\+Custom\\+Id\\+Field\\+Empty} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ac4fade7261f1a3ad94967a8f0d262c96}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ac4fade7261f1a3ad94967a8f0d262c96}} \nasync Task {\\bfseries Should\\+Unlink\\+Custom\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ab134483f26ddc63685b33b5c3bd21890}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ab134483f26ddc63685b33b5c3bd21890}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Custom\\+Id\\+Inuse} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a626486026b0f4f5135449e829c8a6dbc}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a626486026b0f4f5135449e829c8a6dbc}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Custom\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a384d481d7c8bbb09790a00e295915058}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a384d481d7c8bbb09790a00e295915058}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Custom\\+Id\\+Not\\+Owned} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_af178e5ffbb09f7c151368a75d9315c03}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_af178e5ffbb09f7c151368a75d9315c03}} \nasync Task {\\bfseries Should\\+Link\\+Device\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ae74e8346a1df9ba76440fe5827f7a5fb}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ae74e8346a1df9ba76440fe5827f7a5fb}} \nasync Task {\\bfseries Should\\+Link\\+Device\\+Id\\+Same} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a0ef44983640348f02226bc04457ea43f}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a0ef44983640348f02226bc04457ea43f}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Device\\+Id\\+Inuse} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a52fe0cd76ed65c73b2abb293039ff623}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a52fe0cd76ed65c73b2abb293039ff623}} \nasync Task {\\bfseries Should\\+Unlink\\+Device\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ad9aae162f53d9c80f0d774228742a89c}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ad9aae162f53d9c80f0d774228742a89c}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Device\\+Id} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a2860b5ec157967f3489a5f6f1f3af13c}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a2860b5ec157967f3489a5f6f1f3af13c}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Device\\+Id\\+Not\\+Owned} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ab55714894dce9cc05f054ab35b8edc8f}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_ab55714894dce9cc05f054ab35b8edc8f}} \nasync Task {\\bfseries Should\\+Link\\+Email} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a45a0d11da5367c3b8909746eca12f5a6}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a45a0d11da5367c3b8909746eca12f5a6}} \nasync Task {\\bfseries Should\\+Link\\+Email\\+Same} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a4e8cbb575a8f330ae6889fd0004071fc}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a4e8cbb575a8f330ae6889fd0004071fc}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Email\\+Inuse} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a922c533a6e2fd3f79ff0600b68bb5d08}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a922c533a6e2fd3f79ff0600b68bb5d08}} \nasync Task {\\bfseries Should\\+Unlink\\+Email} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a780c75b70cf48952b795992017eed9d7}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a780c75b70cf48952b795992017eed9d7}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Email} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_abf20e8657ec97276d952869780a2f676}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_abf20e8657ec97276d952869780a2f676}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Email\\+Not\\+Owned} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a98824e26d88909d9758de05bdef38042}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a98824e26d88909d9758de05bdef38042}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Facebook} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a02c95fc215ab02fca592ccb3bd0a1499}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a02c95fc215ab02fca592ccb3bd0a1499}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Facebook} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_aa410f04e96d18f9ce0c923e2e9c862a3}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_aa410f04e96d18f9ce0c923e2e9c862a3}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Game\\+Center} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a3882973c072feed1a0fb12aaa9bb43e9}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a3882973c072feed1a0fb12aaa9bb43e9}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Game\\+Center\\+Bad\\+Input} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a942ea4f9ed07c3e39d9d5daacaf55708}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a942ea4f9ed07c3e39d9d5daacaf55708}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Game\\+Center\\+Bad\\+Input} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a627733ef2a680664e1f984f8f31e6157}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a627733ef2a680664e1f984f8f31e6157}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Google} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a14d807a73029bcc3245e519828510f14}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a14d807a73029bcc3245e519828510f14}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Google} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a9b57615fb153ec7068bd22b440284f9e}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a9b57615fb153ec7068bd22b440284f9e}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Steam} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a9fb125baa2dda6a23fb0ab6c8e578970}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a9fb125baa2dda6a23fb0ab6c8e578970}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Steam} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a7545a967f4169bad39d379111bb94ad9}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a7545a967f4169bad39d379111bb94ad9}} \nasync Task {\\bfseries Should\\+Not\\+Link\\+Apple} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a107c39f06a106014681812d8ef6d2eb4}\\label{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test_a107c39f06a106014681812d8ef6d2eb4}} \nasync Task {\\bfseries Should\\+Not\\+Unlink\\+Apple} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Link\\+Unlink\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_api_1_1_rpc_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}{}\\doxysection{Nakama.\\+Tests.\\+Api.\\+Rpc\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}\\index{Nakama.Tests.Api.RpcTest@{Nakama.Tests.Api.RpcTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_acb6fe69b3c860b0af014ba0c1bb075d6}\\label{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_acb6fe69b3c860b0af014ba0c1bb075d6}} \nasync Task {\\bfseries Should\\+Rpc\\+Roundtrip} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_a14001422d14b22a383910f7977506272}\\label{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_a14001422d14b22a383910f7977506272}} \nasync Task {\\bfseries Should\\+Rpc\\+Get} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_ae3bf11712d61ec917eb77561c8c80ec5}\\label{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_ae3bf11712d61ec917eb77561c8c80ec5}} \nasync Task {\\bfseries Should\\+Rpc\\+Get\\+Roundtrip} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_a039fd36c30816616b52aa2ad88f982a3}\\label{class_nakama_1_1_tests_1_1_api_1_1_rpc_test_a039fd36c30816616b52aa2ad88f982a3}} \nasync Task {\\bfseries Should\\+Rpc\\+Without\\+Session} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Rpc\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_awaited_socket_task_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 170.940170\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.925000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.AwaitedSocketTaskTest) cw\n(IDisposable) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.AwaitedSocketTaskTest) 0.000000 0.000000 box\n (IDisposable) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_awaited_socket_task_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_awaited_socket_task_test}{}\\doxysection{Nakama.\\+Tests.\\+Awaited\\+Socket\\+Task\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_awaited_socket_task_test}\\index{Nakama.Tests.AwaitedSocketTaskTest@{Nakama.Tests.AwaitedSocketTaskTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Awaited\\+Socket\\+Task\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_awaited_socket_task_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_awaited_socket_task_test_aca029b0bf1e7273053ba77afa00bc72c}\\label{class_nakama_1_1_tests_1_1_awaited_socket_task_test_aca029b0bf1e7273053ba77afa00bc72c}} \nvoid {\\bfseries Dispose} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_awaited_socket_task_test_a81d154916d9ab83b136436f8cca93055}\\label{class_nakama_1_1_tests_1_1_awaited_socket_task_test_a81d154916d9ab83b136436f8cca93055}} \nasync void {\\bfseries Socket\\+\\_\\+\\+Awaited\\+Tasks\\+\\_\\+\\+Are\\+Canceled} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_awaited_socket_task_test_a495df63a94fcd2d631250af9b00c019e}\\label{class_nakama_1_1_tests_1_1_awaited_socket_task_test_a495df63a94fcd2d631250af9b00c019e}} \nasync void {\\bfseries Socket\\+\\_\\+\\+Awaited\\+Tasks\\+After\\+Disconnect\\+\\_\\+\\+Throw\\+Exception} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Awaited\\+Socket\\+Task\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_cancel_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_cancel_test}{}\\doxysection{Nakama.\\+Tests.\\+Cancel\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_cancel_test}\\index{Nakama.Tests.CancelTest@{Nakama.Tests.CancelTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_cancel_test_a9069d7b931bba9dce93157b5b95f62eb}\\label{class_nakama_1_1_tests_1_1_cancel_test_a9069d7b931bba9dce93157b5b95f62eb}} \nasync void {\\bfseries Test\\+Basic\\+Cancel} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_cancel_test_a78fe144197ef65d573ab7337ce4c64ed}\\label{class_nakama_1_1_tests_1_1_cancel_test_a78fe144197ef65d573ab7337ce4c64ed}} \nasync void {\\bfseries Test\\+Cancel\\+During\\+Backoff} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Cancel\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_retry_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_retry_test}{}\\doxysection{Nakama.\\+Tests.\\+Retry\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_retry_test}\\index{Nakama.Tests.RetryTest@{Nakama.Tests.RetryTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a92179ec8453cc7663a3c72c1bae51863}\\label{class_nakama_1_1_tests_1_1_retry_test_a92179ec8453cc7663a3c72c1bae51863}} \nasync void {\\bfseries Transient\\+Http\\+Adapter\\+\\_\\+\\+Server\\+Default\\+\\_\\+\\+Creates\\+Session} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a11f000c4c2d0ae0571ae481fc9d28d9a}\\label{class_nakama_1_1_tests_1_1_retry_test_a11f000c4c2d0ae0571ae481fc9d28d9a}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+One\\+Retries\\+\\_\\+\\+Retries\\+Exactly\\+Once} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_ae31053355f23cbcec6c2838365d37d9c}\\label{class_nakama_1_1_tests_1_1_retry_test_ae31053355f23cbcec6c2838365d37d9c}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Five\\+Retries\\+\\_\\+\\+Retries\\+Exactly\\+Five\\+Times} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_af9554edf238231fcdf58419c477109f1}\\label{class_nakama_1_1_tests_1_1_retry_test_af9554edf238231fcdf58419c477109f1}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Past\\+Max\\+Retries\\+\\_\\+\\+Throws\\+Task\\+Cancelled\\+Exception} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a46c8f57c1bc985522c500ec5773f9928}\\label{class_nakama_1_1_tests_1_1_retry_test_a46c8f57c1bc985522c500ec5773f9928}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Zero\\+Retries\\+\\_\\+\\+Retries\\+Zero\\+Times} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a7046effe98e3e614f43320d4bafdd381}\\label{class_nakama_1_1_tests_1_1_retry_test_a7046effe98e3e614f43320d4bafdd381}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Override\\+Set\\+\\_\\+\\+Overrides\\+Global} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_aae9c6d185360cde7e7c99e91844da339}\\label{class_nakama_1_1_tests_1_1_retry_test_aae9c6d185360cde7e7c99e91844da339}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Delay\\+\\_\\+\\+Expected\\+Exponential\\+Times} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_abb81f48da3f556abed5dbe9f28c9808c}\\label{class_nakama_1_1_tests_1_1_retry_test_abb81f48da3f556abed5dbe9f28c9808c}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Delay\\+\\_\\+\\+Expected\\+Delays} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a7de13045faf1d589d84e465e5fcf812a}\\label{class_nakama_1_1_tests_1_1_retry_test_a7de13045faf1d589d84e465e5fcf812a}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Null\\+Configuration\\+\\_\\+\\+Does\\+Not\\+Throw\\+Null\\+Ref} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_a58bfc427e04f817090b71e373c512cd5}\\label{class_nakama_1_1_tests_1_1_retry_test_a58bfc427e04f817090b71e373c512cd5}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+No\\+Retries\\+\\_\\+\\+Throws\\+Base\\+Api\\+Response\\+Exception} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_retry_test_ae45d5b696372b447ef10461db1774546}\\label{class_nakama_1_1_tests_1_1_retry_test_ae45d5b696372b447ef10461db1774546}} \nasync void {\\bfseries Retry\\+Configuration\\+\\_\\+\\+Non\\+Transient\\+Error\\+\\_\\+\\+Throws} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Retry\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_session_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_session_test}{}\\doxysection{Nakama.\\+Tests.\\+Session\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_session_test}\\index{Nakama.Tests.SessionTest@{Nakama.Tests.SessionTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_acbe948dd1fdde3f01f4869a008fb7745}\\label{class_nakama_1_1_tests_1_1_session_test_acbe948dd1fdde3f01f4869a008fb7745}} \nvoid {\\bfseries Get\\+Variables\\+\\_\\+\\+Variables\\+Field\\+\\_\\+\\+Empty} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a41ba42361ae0f8b23aece19a0c092e8d}\\label{class_nakama_1_1_tests_1_1_session_test_a41ba42361ae0f8b23aece19a0c092e8d}} \nvoid {\\bfseries Get\\+Variables\\+\\_\\+\\+Variables\\+Field\\+\\_\\+\\+Values} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a17c387e6dbeaf79f2a56ea624d1eb9b6}\\label{class_nakama_1_1_tests_1_1_session_test_a17c387e6dbeaf79f2a56ea624d1eb9b6}} \nasync void {\\bfseries Get\\+Variables\\+\\_\\+\\+Variables\\+Field\\+\\_\\+\\+From\\+Authenticate} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a4bce9ab2895ce8ac04560d7924d32047}\\label{class_nakama_1_1_tests_1_1_session_test_a4bce9ab2895ce8ac04560d7924d32047}} \nasync void {\\bfseries Get\\+Refresh\\+Token\\+\\_\\+\\+Refresh\\+Token\\+Field\\+\\_\\+\\+From\\+Authenticate} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a10dab09885d1c99f8825fbdae4d707b0}\\label{class_nakama_1_1_tests_1_1_session_test_a10dab09885d1c99f8825fbdae4d707b0}} \nasync void {\\bfseries Session\\+Logout\\+\\_\\+\\+Refresh\\+Token\\+Field\\+\\_\\+\\+Disabled} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_aa6c36fa8ba614db0d14190b97fc2f12d}\\label{class_nakama_1_1_tests_1_1_session_test_aa6c36fa8ba614db0d14190b97fc2f12d}} \nvoid {\\bfseries Get\\+Username\\+\\_\\+\\+Username\\+Field\\+\\_\\+\\+Not\\+Null} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a50ed1dafbb0de79522b61823b123673d}\\label{class_nakama_1_1_tests_1_1_session_test_a50ed1dafbb0de79522b61823b123673d}} \nvoid {\\bfseries Get\\+User\\+Id\\+\\_\\+\\+User\\+Id\\+Field\\+\\_\\+\\+Not\\+Null} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a744491ab3034ce142de2302a88ce4a7e}\\label{class_nakama_1_1_tests_1_1_session_test_a744491ab3034ce142de2302a88ce4a7e}} \nvoid {\\bfseries Is\\+Expired\\+\\_\\+\\+Expired\\+Field\\+\\_\\+\\+True} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_abce261f1b8fd5a19c1875245134103d3}\\label{class_nakama_1_1_tests_1_1_session_test_abce261f1b8fd5a19c1875245134103d3}} \nvoid {\\bfseries Is\\+Refresh\\+Expired\\+\\_\\+\\+Refresh\\+Expired\\+Field\\+\\_\\+\\+True} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a0cf54b8dc575f19ec306c12db3cf8d5f}\\label{class_nakama_1_1_tests_1_1_session_test_a0cf54b8dc575f19ec306c12db3cf8d5f}} \nasync void {\\bfseries Refresh\\+\\_\\+\\+Metadata\\+Var\\+\\_\\+\\+Does\\+Not\\+Throw} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_ab92013743b3d34b81840778158dd10c6}\\label{class_nakama_1_1_tests_1_1_session_test_ab92013743b3d34b81840778158dd10c6}} \nvoid {\\bfseries Restore\\+\\_\\+\\+Auth\\+Token\\+Empty\\+String\\+\\_\\+\\+Null} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_session_test_a611f7282fb502c10f81573b21a5e53a4}\\label{class_nakama_1_1_tests_1_1_session_test_a611f7282fb502c10f81573b21a5e53a4}} \nvoid {\\bfseries Restore\\+\\_\\+\\+Refresh\\+Token\\+Null\\+\\_\\+\\+Valid} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Session\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 144.404327\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.462500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Socket.WebSocketChannelTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Socket.WebSocketChannelTest) 0.000000 0.000000 box\n (IAsyncLifetime) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Channel\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}\\index{Nakama.Tests.Socket.WebSocketChannelTest@{Nakama.Tests.Socket.WebSocketChannelTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Channel\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a23cc427b3057020ec0b1f8414202cd70}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a23cc427b3057020ec0b1f8414202cd70}} \nasync Task {\\bfseries Should\\+Create\\+Room\\+Channel} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a9b06aebdfadf8d3988ecfddbbc84b30c}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a9b06aebdfadf8d3988ecfddbbc84b30c}} \nasync Task {\\bfseries Should\\+Send\\+Message\\+Room\\+Channel} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a4122350b9061f3608684a2fe5e3b9745}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test_a4122350b9061f3608684a2fe5e3b9745}} \nasync Task {\\bfseries Should\\+Send\\+Message\\+Direct\\+Channel} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Channel\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 150.943390\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.312500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Socket.WebSocketMatchTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Socket.WebSocketMatchTest) 0.000000 0.000000 box\n (IAsyncLifetime) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Match\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}\\index{Nakama.Tests.Socket.WebSocketMatchTest@{Nakama.Tests.Socket.WebSocketMatchTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Match\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_ab86170a9b4815a13e5a468e00da90cb7}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_ab86170a9b4815a13e5a468e00da90cb7}} \nasync Task {\\bfseries Should\\+Create\\+Match} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a6bc132faf25315dd4fe5c4e00985eb18}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a6bc132faf25315dd4fe5c4e00985eb18}} \nasync Task {\\bfseries Should\\+Create\\+Match\\+With\\+Name} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_ac5240d4f4f96710c26752b80fb43372b}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_ac5240d4f4f96710c26752b80fb43372b}} \nasync Task {\\bfseries Should\\+Join\\+Match\\+With\\+Name} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_af66fc46aac3400014fb31ae6edf0cc4d}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_af66fc46aac3400014fb31ae6edf0cc4d}} \nasync Task {\\bfseries Should\\+Create\\+Match\\+And\\+Second\\+User\\+Join} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_aedb4312ba2244bfc749f83e95490539c}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_aedb4312ba2244bfc749f83e95490539c}} \nasync Task {\\bfseries Should\\+Create\\+Match\\+And\\+Leave} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a5e4de620aa10f1a5f45fda57a95a2164}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a5e4de620aa10f1a5f45fda57a95a2164}} \nasync Task {\\bfseries Should\\+Create\\+Match\\+And\\+Send\\+State} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_aa73608847abf98d66bffd840168ee5ba}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_aa73608847abf98d66bffd840168ee5ba}} \nasync Task {\\bfseries Each\\+Client\\+Should\\+Receive\\+Two\\+Presences} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a757547999628d46e1eccacfa4930f18b}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test_a757547999628d46e1eccacfa4930f18b}} \nasync Task {\\bfseries Should\\+Throw\\+Socket\\+Exception\\+When\\+Sending\\+Match\\+Data\\+After\\+Closing\\+Socket} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Match\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 133.779266\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.737500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Socket.WebSocketMatchmakerTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Socket.WebSocketMatchmakerTest) 0.000000 0.000000 box\n (IAsyncLifetime) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Matchmaker\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}\\index{Nakama.Tests.Socket.WebSocketMatchmakerTest@{Nakama.Tests.Socket.WebSocketMatchmakerTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Matchmaker\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a1161cf101784dbc3a8bc6d0421c5ece2}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a1161cf101784dbc3a8bc6d0421c5ece2}} \nasync Task {\\bfseries Should\\+Join\\+Matchmaker} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_af1507efa4ade4f5f83d45e71bf692a81}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_af1507efa4ade4f5f83d45e71bf692a81}} \nasync Task {\\bfseries Should\\+Join\\+And\\+Leave\\+Matchmaker} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a7b507ddfa4e6356fa4b3d800bfacb5ce}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a7b507ddfa4e6356fa4b3d800bfacb5ce}} \nasync Task {\\bfseries Should\\+Complete\\+Matchmaker} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a053f2beb77d05bde26479600e33b8e2c}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a053f2beb77d05bde26479600e33b8e2c}} \nasync Task {\\bfseries Should\\+Not\\+Match\\+Parties\\+With\\+ACombined\\+Amount\\+Of\\+Players\\+Above\\+Max\\+Count} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_aca0b1639e52f62d509f485794fcfdab8}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_aca0b1639e52f62d509f485794fcfdab8}} \nasync Task {\\bfseries Should\\+Match\\+Parties\\+With\\+Players} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a8202d70ee5793f3fd864dc959cb3b674}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_a8202d70ee5793f3fd864dc959cb3b674}} \nasync Task {\\bfseries Should\\+Complete\\+Matchmaker\\+Asymmetric\\+Query} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_aebbadb8a10d3957ade2974acf96ab011}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test_aebbadb8a10d3957ade2974acf96ab011}} \nasync Task {\\bfseries Should\\+Complete\\+Matchmaker\\+Symmetric\\+Query\\+Mid\\+Size} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Matchmaker\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 136.518768\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.662500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Socket.WebSocketNotificationTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Socket.WebSocketNotificationTest) 0.000000 0.000000 box\n (IAsyncLifetime) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Notification\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}\\index{Nakama.Tests.Socket.WebSocketNotificationTest@{Nakama.Tests.Socket.WebSocketNotificationTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Notification\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test_a5d82dc88e90e696a1e082efdcf50edce}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test_a5d82dc88e90e696a1e082efdcf50edce}} \nasync Task {\\bfseries Should\\+Receive\\+Notification} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Notification\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Party\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}\\index{Nakama.Tests.Socket.WebSocketPartyTest@{Nakama.Tests.Socket.WebSocketPartyTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a90b1bbd498f5dace2e9afa82264fc5f4}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a90b1bbd498f5dace2e9afa82264fc5f4}} \n{\\bfseries Web\\+Socket\\+Party\\+Test} (ITest\\+Output\\+Helper test\\+Output\\+Helper)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a4cc02beef4b41817ee4bad4c69994609}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a4cc02beef4b41817ee4bad4c69994609}} \nasync Task {\\bfseries Should\\+Create\\+Party} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_af15ae1c092a6040931297877a09b5087}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_af15ae1c092a6040931297877a09b5087}} \nasync Task {\\bfseries Should\\+Receive\\+Join\\+Event} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a640de400f1a6d87ccf13b9395ed62aaf}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a640de400f1a6d87ccf13b9395ed62aaf}} \nasync Task {\\bfseries Should\\+Add\\+And\\+Remove\\+Party\\+From\\+Matchmaker} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a0fcf1cf85ec1f1de75b1233549b09fd4}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a0fcf1cf85ec1f1de75b1233549b09fd4}} \nasync Task {\\bfseries Should\\+Promote\\+Member} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a9e8564b91c82304a85a29f6e4e187c19}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a9e8564b91c82304a85a29f6e4e187c19}} \nasync Task {\\bfseries Should\\+Send\\+And\\+Receive\\+Party\\+Data} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a5bdbf4c4eec65b83dde0f73543021832}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a5bdbf4c4eec65b83dde0f73543021832}} \nasync Task {\\bfseries Should\\+Join\\+Closed\\+Party} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a463882300d481c912785378f8babd95d}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a463882300d481c912785378f8babd95d}} \nasync Task {\\bfseries Should\\+Not\\+Join\\+Past\\+Max\\+Size} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a8b4d26ca0da8902ce7ba314f287f8aac}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a8b4d26ca0da8902ce7ba314f287f8aac}} \nasync Task {\\bfseries Leader\\+Should\\+Be\\+In\\+Initial\\+Presences} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a72b726cd361cbb1383b3e55e3d7ae26f}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a72b726cd361cbb1383b3e55e3d7ae26f}} \nasync Task {\\bfseries Presences\\+Initialized\\+With\\+Concurrent\\+Joins} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a068960875d4fb102e53283e04844b7c7}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a068960875d4fb102e53283e04844b7c7}} \nasync Task {\\bfseries Should\\+Boot\\+Then\\+Close} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a38b2be77adda6f9155b6568dd534f7db}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test_a38b2be77adda6f9155b6568dd534f7db}} \nasync Task {\\bfseries Leader\\+And\\+Members\\+Should\\+Receive\\+Ticket} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Party\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 158.730164\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.150000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.Socket.WebSocketRpcTest) cw\n(IAsyncLifetime) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.Socket.WebSocketRpcTest) 0.000000 0.000000 box\n (IAsyncLifetime) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Rpc\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}\\index{Nakama.Tests.Socket.WebSocketRpcTest@{Nakama.Tests.Socket.WebSocketRpcTest}}\nInheritance diagram for Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Rpc\\+Test\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_ae08ca64050fa448816f2cf80bbf9a82b}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_ae08ca64050fa448816f2cf80bbf9a82b}} \nasync Task {\\bfseries Should\\+Send\\+Rpc\\+Roundtrip} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_ad0e4a3cc503e58f85f76c7e6d1cc7499}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_ad0e4a3cc503e58f85f76c7e6d1cc7499}} \nTask {\\bfseries Initialize\\+Async} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_a75e1821c5dfb2da6e8005eef876f0ac6}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test_a75e1821c5dfb2da6e8005eef876f0ac6}} \nTask {\\bfseries Dispose\\+Async} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Rpc\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}\\index{Nakama.Tests.Socket.WebSocketTest@{Nakama.Tests.Socket.WebSocketTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_add74af894b56512c9ef29e0bf54a1b14}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_add74af894b56512c9ef29e0bf54a1b14}} \n{\\bfseries Web\\+Socket\\+Test} (ITest\\+Output\\+Helper test\\+Output\\+Helper)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_adb22482a7056ad975f099348d147de8e}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_adb22482a7056ad975f099348d147de8e}} \nvoid {\\bfseries Should\\+Create\\+Socket} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_af0df80f1eece38c91b19ec7cc47072e0}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_af0df80f1eece38c91b19ec7cc47072e0}} \nasync Task {\\bfseries Should\\+Create\\+Socket\\+And\\+Connect} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_ae98ecc548b67baa72c998f02b96bb393}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_ae98ecc548b67baa72c998f02b96bb393}} \nasync Task {\\bfseries Should\\+Create\\+Socket\\+And\\+Disconnect} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_afe391b5496be66fe4ddf8987678e5acb}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_afe391b5496be66fe4ddf8987678e5acb}} \nasync Task {\\bfseries Should\\+Create\\+Socket\\+And\\+Disconnect\\+Silent} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a538601a755e64f9fa75d9ca949303c48}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a538601a755e64f9fa75d9ca949303c48}} \nasync Task {\\bfseries Multiple\\+Connect\\+Attempts\\+Does\\+Not\\+Throw\\+Exception} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a228a8b0fed2e9febd2938b40aef107ef}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a228a8b0fed2e9febd2938b40aef107ef}} \nasync Task {\\bfseries Closing\\+Before\\+Connecting} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_ab3c1d3fc10ff36f924273ce19c9674a6}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_ab3c1d3fc10ff36f924273ce19c9674a6}} \nasync Task {\\bfseries Long\\+Lived\\+Socket\\+Lifecycle} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a5a6ed47aab2963268d4292c7277f852b}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test_a5a6ed47aab2963268d4292c7277f852b}} \nasync Task {\\bfseries Socket\\+Detects\\+Loss\\+Of\\+Internet} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}{}\\doxysection{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+User\\+Status\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}\\index{Nakama.Tests.Socket.WebSocketUserStatusTest@{Nakama.Tests.Socket.WebSocketUserStatusTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a0217c48dafe5438312c9f537b24ea0bb}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a0217c48dafe5438312c9f537b24ea0bb}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+No\\+Users\\+\\_\\+\\+Another\\+User} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a29002e9558301acad24d74fe86021da4}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a29002e9558301acad24d74fe86021da4}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+No\\+Users\\+\\_\\+\\+Another\\+User\\+By\\+Username} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2322041b194de0b5a3b9752cca101850}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2322041b194de0b5a3b9752cca101850}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+No\\+Users\\+\\_\\+\\+Followed\\+Self} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a02ab3c719c061e016ff692d872283e87}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a02ab3c719c061e016ff692d872283e87}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+No\\+Users\\+\\_\\+\\+User\\+Joins\\+And\\+Leaves} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a1088c429993fc7201156771bdb69ff00}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a1088c429993fc7201156771bdb69ff00}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+Two\\+Sessions\\+\\_\\+\\+Has\\+Two\\+Statuses} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2b47e40031c06378c077aa8af137f88b}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2b47e40031c06378c077aa8af137f88b}} \nasync void {\\bfseries Follow\\+Users\\+\\_\\+\\+Two\\+Users\\+\\_\\+\\+Third\\+User\\+Follows\\+Both} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_af74a3010912805a37a99e3b8401463da}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_af74a3010912805a37a99e3b8401463da}} \nasync void {\\bfseries Update\\+Status\\+\\_\\+\\+No\\+Status\\+\\_\\+\\+Has\\+Status} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2b0c8e35af4ce11ed1668a66aee8bf25}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a2b0c8e35af4ce11ed1668a66aee8bf25}} \nasync void {\\bfseries Test\\+Follow\\+Massive\\+Number\\+Of\\+Users} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a73c8ff5380184eec893307e4cd36b290}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a73c8ff5380184eec893307e4cd36b290}} \nasync void {\\bfseries Test\\+User\\+Does\\+Not\\+Receive\\+Updated\\+After\\+Unfollow} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a071655059953b9103f62d91470332d7f}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a071655059953b9103f62d91470332d7f}} \nasync void {\\bfseries Test\\+User\\+Follow\\+Same\\+User\\+Twice} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a20edac4c2fcd1d7820a7f956ed06fbd7}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a20edac4c2fcd1d7820a7f956ed06fbd7}} \nasync void {\\bfseries Test\\+Unfollow\\+Self} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a6b90cf78d0f7e3d59fe8bd6d45e18f9d}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_a6b90cf78d0f7e3d59fe8bd6d45e18f9d}} \nasync void {\\bfseries Test\\+Follow\\+Non\\+Existent\\+User} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_ae2e82241bd02194aefbd2bfda9017e70}\\label{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test_ae2e82241bd02194aefbd2bfda9017e70}} \nasync void {\\bfseries Test\\+Repeated\\+Online\\+Offline} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/\\+Socket/Web\\+Socket\\+User\\+Status\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_stdout_logger.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 225.988693\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.212500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.StdoutLogger) cw\n(Nakama.ILogger) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.StdoutLogger) 0.000000 0.000000 box\n (Nakama.ILogger) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_stdout_logger.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_stdout_logger}{}\\doxysection{Nakama.\\+Tests.\\+Stdout\\+Logger Class Reference}\n\\label{class_nakama_1_1_tests_1_1_stdout_logger}\\index{Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}}\nInheritance diagram for Nakama.\\+Tests.\\+Stdout\\+Logger\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_stdout_logger}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nvoid \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ad0c8e568fb1c1fb0e4eafc56562a5f66}{Debug\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the DEBUG level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ae240b447f299b3b8fe95a6ef51944aa9}{Error\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the ERROR level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ac6813139553ee876d74d08f30b8630fb}{Info\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the INFO level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_a750b6801ba33ffde12ada265f433b1a8}{Warn\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the WARN level.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_stdout_logger_ad0c8e568fb1c1fb0e4eafc56562a5f66}\\label{class_nakama_1_1_tests_1_1_stdout_logger_ad0c8e568fb1c1fb0e4eafc56562a5f66}} \n\\index{Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}!DebugFormat@{DebugFormat}}\n\\index{DebugFormat@{DebugFormat}!Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}}\n\\doxysubsubsection{\\texorpdfstring{DebugFormat()}{DebugFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+Tests.\\+Stdout\\+Logger.\\+Debug\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the DEBUG level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a7b8a076d052336b4bc965caba104d091}{Nakama.\\+ILogger}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_stdout_logger_ae240b447f299b3b8fe95a6ef51944aa9}\\label{class_nakama_1_1_tests_1_1_stdout_logger_ae240b447f299b3b8fe95a6ef51944aa9}} \n\\index{Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}!ErrorFormat@{ErrorFormat}}\n\\index{ErrorFormat@{ErrorFormat}!Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}}\n\\doxysubsubsection{\\texorpdfstring{ErrorFormat()}{ErrorFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+Tests.\\+Stdout\\+Logger.\\+Error\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the ERROR level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a7a32d0f6eadfce1dcdcd1884767978e8}{Nakama.\\+ILogger}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_stdout_logger_ac6813139553ee876d74d08f30b8630fb}\\label{class_nakama_1_1_tests_1_1_stdout_logger_ac6813139553ee876d74d08f30b8630fb}} \n\\index{Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}!InfoFormat@{InfoFormat}}\n\\index{InfoFormat@{InfoFormat}!Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}}\n\\doxysubsubsection{\\texorpdfstring{InfoFormat()}{InfoFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+Tests.\\+Stdout\\+Logger.\\+Info\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the INFO level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a04590700134fcc96228f9595c09cc901}{Nakama.\\+ILogger}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_stdout_logger_a750b6801ba33ffde12ada265f433b1a8}\\label{class_nakama_1_1_tests_1_1_stdout_logger_a750b6801ba33ffde12ada265f433b1a8}} \n\\index{Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}!WarnFormat@{WarnFormat}}\n\\index{WarnFormat@{WarnFormat}!Nakama.Tests.StdoutLogger@{Nakama.Tests.StdoutLogger}}\n\\doxysubsubsection{\\texorpdfstring{WarnFormat()}{WarnFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+Tests.\\+Stdout\\+Logger.\\+Warn\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the WARN level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_aea853b29e33993f4fbfe55ff9413e7c3}{Nakama.\\+ILogger}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Stdout\\+Logger.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_tiny_json_parser_test.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test}{}\\doxysection{Nakama.\\+Tests.\\+Tiny\\+Json\\+Parser\\+Test Class Reference}\n\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test}\\index{Nakama.Tests.TinyJsonParserTest@{Nakama.Tests.TinyJsonParserTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_ab49b182f46fec05aaca82d64580981bb}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_ab49b182f46fec05aaca82d64580981bb}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Parsed} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a6716ab771f2a8590651049e97d34435e}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a6716ab771f2a8590651049e97d34435e}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Number\\+To\\+String} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a53096b95c48e9d4465e9318d9b99eb5f}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a53096b95c48e9d4465e9318d9b99eb5f}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Single\\+Digit\\+Number\\+To\\+String} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a5bcedaa09702c0b454d6eaa84550330f}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a5bcedaa09702c0b454d6eaa84550330f}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+String\\+To\\+String} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_acb306cc7ed6c728a6b602cc718f7a4e0}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_acb306cc7ed6c728a6b602cc718f7a4e0}} \nvoid {\\bfseries To\\+Json\\+\\_\\+\\+Long\\+To\\+Unquoted\\+Json} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a3f99e3082b0c9ef619f7886938c23e8f}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a3f99e3082b0c9ef619f7886938c23e8f}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Parsed\\+Twice} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a85a009a63cb991d43f61d46908caf7e7}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a85a009a63cb991d43f61d46908caf7e7}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Parse\\+Single\\+Quotes\\+As\\+String} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a296da821a9efea5ca09ae9ff059d8f82}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a296da821a9efea5ca09ae9ff059d8f82}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Parse\\+Single\\+Quotes\\+As\\+String\\+In\\+Array} ()\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a04459293f694dfe4500b77f7bd2ce623}\\label{class_nakama_1_1_tests_1_1_tiny_json_parser_test_a04459293f694dfe4500b77f7bd2ce623}} \nvoid {\\bfseries From\\+Json\\+\\_\\+\\+Json\\+Input\\+\\_\\+\\+Parse\\+Bool} ()\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Tiny\\+Json\\+Parser\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_transient_exception_http_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 144.927536\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.450000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Tests.TransientExceptionHttpAdapter) cw\n(Nakama.IHttpAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Tests.TransientExceptionHttpAdapter) 0.000000 0.000000 box\n (Nakama.IHttpAdapter) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_tests_1_1_transient_exception_http_adapter.tex",
    "content": "\\hypertarget{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}{}\\doxysection{Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter Class Reference}\n\\label{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}\\index{Nakama.Tests.TransientExceptionHttpAdapter@{Nakama.Tests.TransientExceptionHttpAdapter}}\n\n\nAn adapter which throws transient/retryable exceptions whenever a request is made.   \n\n\nInheritance diagram for Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_ac12f6c9693463ebd79367fb40115cfb7}\\label{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_ac12f6c9693463ebd79367fb40115cfb7}} \n{\\bfseries Transient\\+Exception\\+Http\\+Adapter} (Transient\\+Adapter\\+Response\\+Type\\mbox{[}$\\,$\\mbox{]} send\\+Schedule)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_a13fdded7b12cc20e46b433fbe4e808f6}{Logger}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the adapter.  \\end{DoxyCompactList}\\item \nTransient\\+Exception\\+Delegate \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_ae63ff427be934b23c6836273b60b3d9a}{Transient\\+Exception\\+Delegate}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which throws transient/retryable exceptions whenever a request is made.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_a13fdded7b12cc20e46b433fbe4e808f6}\\label{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_a13fdded7b12cc20e46b433fbe4e808f6}} \n\\index{Nakama.Tests.TransientExceptionHttpAdapter@{Nakama.Tests.TransientExceptionHttpAdapter}!Logger@{Logger}}\n\\index{Logger@{Logger}!Nakama.Tests.TransientExceptionHttpAdapter@{Nakama.Tests.TransientExceptionHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{Logger}{Logger}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter.\\+Logger\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe logger to use with the adapter.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter_ad0514214ba7fce3b8c0697d70874ff1e}{Nakama.\\+IHttp\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_ae63ff427be934b23c6836273b60b3d9a}\\label{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_ae63ff427be934b23c6836273b60b3d9a}} \n\\index{Nakama.Tests.TransientExceptionHttpAdapter@{Nakama.Tests.TransientExceptionHttpAdapter}!TransientExceptionDelegate@{TransientExceptionDelegate}}\n\\index{TransientExceptionDelegate@{TransientExceptionDelegate}!Nakama.Tests.TransientExceptionHttpAdapter@{Nakama.Tests.TransientExceptionHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{TransientExceptionDelegate}{TransientExceptionDelegate}}\n{\\footnotesize\\ttfamily Transient\\+Exception\\+Delegate Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter.\\+Transient\\+Exception\\+Delegate\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{Nakama.\\+IHttp\\+Adapter}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Transient\\+Exception\\+Http\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_web_socket_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 225.988693\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.212500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.WebSocketAdapter) cw\n(Nakama.ISocketAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.WebSocketAdapter) 0.000000 0.000000 box\n (Nakama.ISocketAdapter) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_web_socket_adapter.tex",
    "content": "\\hypertarget{class_nakama_1_1_web_socket_adapter}{}\\doxysection{Nakama.\\+Web\\+Socket\\+Adapter Class Reference}\n\\label{class_nakama_1_1_web_socket_adapter}\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\n\nAn adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.   \n\n\nInheritance diagram for Nakama.\\+Web\\+Socket\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_web_socket_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a6ec693e73a378241ad1a8f5c02f36f4e}\\label{class_nakama_1_1_web_socket_adapter_a6ec693e73a378241ad1a8f5c02f36f4e}} \n{\\bfseries Web\\+Socket\\+Adapter} (int keep\\+Alive\\+Interval\\+Sec=Keep\\+Alive\\+Interval\\+Sec, int send\\+Timeout\\+Sec=Send\\+Timeout\\+Sec, int max\\+Message\\+Read\\+Size=Max\\+Message\\+Read\\+Size)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_aef611fb9113a550341cc2f631ef0dfe5}\\label{class_nakama_1_1_web_socket_adapter_aef611fb9113a550341cc2f631ef0dfe5}} \n{\\bfseries Web\\+Socket\\+Adapter} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} options, int send\\+Timeout\\+Sec, int max\\+Message\\+Read\\+Size)\n\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_af03fe39fb508d2ac716d63b0a7e2c71d}{Close\\+Async}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Close the socket with an asynchronous operation.  \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_a3097564c6c6ff6ff8945d0def0d4c1e0}{Connect\\+Async}} (Uri uri, int timeout)\n\\begin{DoxyCompactList}\\small\\item\\em Connect to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The URI of the server.\\\\\n\\hline\n{\\em timeout} & The timeout for the connect attempt on the socket.\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_ad3a05cb8ff2ece38c4b40b36b96710e4}{Send\\+Async}} (Array\\+Segment$<$ byte $>$ buffer, bool reliable=true, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer} & The buffer with the message to send.\\\\\n\\hline\n{\\em reliable} & If the message should be sent reliably (will be ignored by some protocols).\\\\\n\\hline\n{\\em canceller} & A cancellation token used to propagate when the operation should be canceled.\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_ac91f2ff65f7450ecb11574922989d457}\\label{class_nakama_1_1_web_socket_adapter_ac91f2ff65f7450ecb11574922989d457}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_af4d122fde2ef8ca67f3a05533f2b23d3}{Is\\+Connected}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the Web\\+Socket is connected.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_a57bbc818963586e72fc39f7dbbe28ad8}{Is\\+Connecting}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the Web\\+Socket is connecting.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_af8d0fc4d17f63c187397e777c10ecb7a}\\label{class_nakama_1_1_web_socket_adapter_af8d0fc4d17f63c187397e777c10ecb7a}} \nAction {\\bfseries Connected}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a2266ef4818b6ed5d211d056a66b7c21b}\\label{class_nakama_1_1_web_socket_adapter_a2266ef4818b6ed5d211d056a66b7c21b}} \nAction {\\bfseries Closed}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a9b94af8c8f2bd785e67e01ab521e1fb5}\\label{class_nakama_1_1_web_socket_adapter_a9b94af8c8f2bd785e67e01ab521e1fb5}} \nAction$<$ Exception $>$ {\\bfseries Received\\+Error}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a81ef85e5dae12ff8168055a0594e8c76}\\label{class_nakama_1_1_web_socket_adapter_a81ef85e5dae12ff8168055a0594e8c76}} \nAction$<$ Array\\+Segment$<$ byte $>$ $>$ {\\bfseries Received}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_af03fe39fb508d2ac716d63b0a7e2c71d}\\label{class_nakama_1_1_web_socket_adapter_af03fe39fb508d2ac716d63b0a7e2c71d}} \n\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}!CloseAsync@{CloseAsync}}\n\\index{CloseAsync@{CloseAsync}!Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{CloseAsync()}{CloseAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Web\\+Socket\\+Adapter.\\+Close\\+Async (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nClose the socket with an asynchronous operation.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ac4fdf85f7e31f3ef6fb573656081130e}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a3097564c6c6ff6ff8945d0def0d4c1e0}\\label{class_nakama_1_1_web_socket_adapter_a3097564c6c6ff6ff8945d0def0d4c1e0}} \n\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Web\\+Socket\\+Adapter.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{int}]{timeout }\\end{DoxyParamCaption})}\n\n\n\nConnect to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The URI of the server.\\\\\n\\hline\n{\\em timeout} & The timeout for the connect attempt on the socket.\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a98391b86100741424b89284cd2db8e06}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_ad3a05cb8ff2ece38c4b40b36b96710e4}\\label{class_nakama_1_1_web_socket_adapter_ad3a05cb8ff2ece38c4b40b36b96710e4}} \n\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Web\\+Socket\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{buffer,  }\\item[{bool}]{reliable = {\\ttfamily true},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nSend data to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer} & The buffer with the message to send.\\\\\n\\hline\n{\\em reliable} & If the message should be sent reliably (will be ignored by some protocols).\\\\\n\\hline\n{\\em canceller} & A cancellation token used to propagate when the operation should be canceled.\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ab814436b863363b8f8991c01336d77e4}{Nakama.\\+ISocket\\+Adapter}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_af4d122fde2ef8ca67f3a05533f2b23d3}\\label{class_nakama_1_1_web_socket_adapter_af4d122fde2ef8ca67f3a05533f2b23d3}} \n\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}!IsConnected@{IsConnected}}\n\\index{IsConnected@{IsConnected}!Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnected}{IsConnected}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Web\\+Socket\\+Adapter.\\+Is\\+Connected\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the Web\\+Socket is connected.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ae42c16c31ecc0e7db8ad53b427cc7fb2}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_adapter_a57bbc818963586e72fc39f7dbbe28ad8}\\label{class_nakama_1_1_web_socket_adapter_a57bbc818963586e72fc39f7dbbe28ad8}} \n\\index{Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}!IsConnecting@{IsConnecting}}\n\\index{IsConnecting@{IsConnecting}!Nakama.WebSocketAdapter@{Nakama.WebSocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnecting}{IsConnecting}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Web\\+Socket\\+Adapter.\\+Is\\+Connecting\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the Web\\+Socket is connecting.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a9ef33b94d5bc9e6a343f21b1b01229a2}{Nakama.\\+ISocket\\+Adapter}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Web\\+Socket\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_web_socket_stdlib_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 192.307693\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.600000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.WebSocketStdlibAdapter) cw\n(Nakama.ISocketAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.WebSocketStdlibAdapter) 0.000000 0.000000 box\n (Nakama.ISocketAdapter) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_web_socket_stdlib_adapter.tex",
    "content": "\\hypertarget{class_nakama_1_1_web_socket_stdlib_adapter}{}\\doxysection{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter Class Reference}\n\\label{class_nakama_1_1_web_socket_stdlib_adapter}\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\n\nAn adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.   \n\n\nInheritance diagram for Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_web_socket_stdlib_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a22ffb61a97bc21b86fa177a5025ebac7}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a22ffb61a97bc21b86fa177a5025ebac7}} \n{\\bfseries Web\\+Socket\\+Stdlib\\+Adapter} (int send\\+Timeout\\+Sec=Send\\+Timeout\\+Sec, int max\\+Message\\+Read\\+Size=Max\\+Message\\+Read\\+Size)\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a0d9779f96e2101f63852fe232e38c98b}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a0d9779f96e2101f63852fe232e38c98b}} \n{\\bfseries Web\\+Socket\\+Stdlib\\+Adapter} (Client\\+Web\\+Socket web\\+Socket)\n\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a6daea5ed11c76e33e915880c91272d45}{Close\\+Async}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Close the socket with an asynchronous operation.  \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_ae94a4c3b78f1d523257950553bea085a}{Connect\\+Async}} (Uri uri, int timeout)\n\\begin{DoxyCompactList}\\small\\item\\em Connect to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The URI of the server.\\\\\n\\hline\n{\\em timeout} & The timeout for the connect attempt on the socket.\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a3c809f05d8a713f2e04882e40306c64f}{Send\\+Async}} (Array\\+Segment$<$ byte $>$ buffer, bool reliable=true, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer} & The buffer with the message to send.\\\\\n\\hline\n{\\em reliable} & If the message should be sent reliably (will be ignored by some protocols).\\\\\n\\hline\n{\\em canceller} & A cancellation token used to propagate when the operation should be canceled.\\\\\n\\hline\n\\end{DoxyParams}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a499684d8c92a1bdf65e40663d9f327d7}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a499684d8c92a1bdf65e40663d9f327d7}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a7ab428776e53ddbac27832f238ab1ced}{Is\\+Connected}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the Web\\+Socket is connected.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_ac7cf95d952a33d4ab00c5ef610a8de74}{Is\\+Connecting}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the Web\\+Socket is connecting.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a64c972fdb7ba486e19bcd0671dec5409}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a64c972fdb7ba486e19bcd0671dec5409}} \nAction {\\bfseries Connected}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_ab79baa0d1f5fafec41b04c42308fe2e3}\\label{class_nakama_1_1_web_socket_stdlib_adapter_ab79baa0d1f5fafec41b04c42308fe2e3}} \nAction {\\bfseries Closed}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a4a219fe7e294787d2cb6bd0307057bed}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a4a219fe7e294787d2cb6bd0307057bed}} \nAction$<$ Exception $>$ {\\bfseries Received\\+Error}\n\\item \n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a00d89be74b84ba97c9c327d61fc22845}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a00d89be74b84ba97c9c327d61fc22845}} \nAction$<$ Array\\+Segment$<$ byte $>$ $>$ {\\bfseries Received}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a6daea5ed11c76e33e915880c91272d45}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a6daea5ed11c76e33e915880c91272d45}} \n\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}!CloseAsync@{CloseAsync}}\n\\index{CloseAsync@{CloseAsync}!Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\\doxysubsubsection{\\texorpdfstring{CloseAsync()}{CloseAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter.\\+Close\\+Async (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nClose the socket with an asynchronous operation.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ac4fdf85f7e31f3ef6fb573656081130e}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_ae94a4c3b78f1d523257950553bea085a}\\label{class_nakama_1_1_web_socket_stdlib_adapter_ae94a4c3b78f1d523257950553bea085a}} \n\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}}\n{\\footnotesize\\ttfamily async Task Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{int}]{timeout }\\end{DoxyParamCaption})}\n\n\n\nConnect to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The URI of the server.\\\\\n\\hline\n{\\em timeout} & The timeout for the connect attempt on the socket.\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a98391b86100741424b89284cd2db8e06}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a3c809f05d8a713f2e04882e40306c64f}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a3c809f05d8a713f2e04882e40306c64f}} \n\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{buffer,  }\\item[{bool}]{reliable = {\\ttfamily true},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nSend data to the server with an asynchronous operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer} & The buffer with the message to send.\\\\\n\\hline\n{\\em reliable} & If the message should be sent reliably (will be ignored by some protocols).\\\\\n\\hline\n{\\em canceller} & A cancellation token used to propagate when the operation should be canceled.\\\\\n\\hline\n\\end{DoxyParams}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ab814436b863363b8f8991c01336d77e4}{Nakama.\\+ISocket\\+Adapter}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_a7ab428776e53ddbac27832f238ab1ced}\\label{class_nakama_1_1_web_socket_stdlib_adapter_a7ab428776e53ddbac27832f238ab1ced}} \n\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}!IsConnected@{IsConnected}}\n\\index{IsConnected@{IsConnected}!Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnected}{IsConnected}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter.\\+Is\\+Connected\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the Web\\+Socket is connected.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ae42c16c31ecc0e7db8ad53b427cc7fb2}{Nakama.\\+ISocket\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_web_socket_stdlib_adapter_ac7cf95d952a33d4ab00c5ef610a8de74}\\label{class_nakama_1_1_web_socket_stdlib_adapter_ac7cf95d952a33d4ab00c5ef610a8de74}} \n\\index{Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}!IsConnecting@{IsConnecting}}\n\\index{IsConnecting@{IsConnecting}!Nakama.WebSocketStdlibAdapter@{Nakama.WebSocketStdlibAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnecting}{IsConnecting}}\n{\\footnotesize\\ttfamily bool Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter.\\+Is\\+Connecting\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the Web\\+Socket is connecting.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a9ef33b94d5bc9e6a343f21b1b01229a2}{Nakama.\\+ISocket\\+Adapter}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Web\\+Socket\\+Stdlib\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_write_storage_object.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 199.004974\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.512500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.WriteStorageObject) cw\n(Nakama.IApiWriteStorageObject) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.WriteStorageObject) 0.000000 0.000000 box\n (Nakama.IApiWriteStorageObject) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_nakama_1_1_write_storage_object.tex",
    "content": "\\hypertarget{class_nakama_1_1_write_storage_object}{}\\doxysection{Nakama.\\+Write\\+Storage\\+Object Class Reference}\n\\label{class_nakama_1_1_write_storage_object}\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\n\n \n\n\nInheritance diagram for Nakama.\\+Write\\+Storage\\+Object\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_nakama_1_1_write_storage_object}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_ac0d5b4bd2a8e8b6f6f35acb29fe799b3}{Collection}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection to store the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a3cad528f534a95f3bfae4c4db48cb7a1}{Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key for the object within the collection.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a8da5054f8a07031a14ed7c9b20e1b0ed}{Permission\\+Read}} = 1\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The read access permissions for the object.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_ac3a29f29170b78edd7e45b7c539fe811}{Permission\\+Write}} = 1\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The write access permissions for the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a8957c485fd56e513c1e17b47a22f9026}{Value}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The value of the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a16000a938ed162fde6b9aa50675e61e2}{Version}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object to check. Possible values are\\+: \\mbox{[}\\char`\\\"{}\\char`\\\"{}, \\char`\\\"{}$\\ast$\\char`\\\"{}, \\char`\\\"{}\\#hash\\#\\char`\\\"{}\\mbox{]}.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_ac0d5b4bd2a8e8b6f6f35acb29fe799b3}\\label{class_nakama_1_1_write_storage_object_ac0d5b4bd2a8e8b6f6f35acb29fe799b3}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!Collection@{Collection}}\n\\index{Collection@{Collection}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Collection}{Collection}}\n{\\footnotesize\\ttfamily string Nakama.\\+Write\\+Storage\\+Object.\\+Collection\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe collection to store the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_acb00e14d09ac57ee6244e42bb7e8a521}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_a3cad528f534a95f3bfae4c4db48cb7a1}\\label{class_nakama_1_1_write_storage_object_a3cad528f534a95f3bfae4c4db48cb7a1}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!Key@{Key}}\n\\index{Key@{Key}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Key}{Key}}\n{\\footnotesize\\ttfamily string Nakama.\\+Write\\+Storage\\+Object.\\+Key\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe key for the object within the collection.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a3126c1e5831a1984900be2ad8b51f757}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_a8da5054f8a07031a14ed7c9b20e1b0ed}\\label{class_nakama_1_1_write_storage_object_a8da5054f8a07031a14ed7c9b20e1b0ed}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!PermissionRead@{PermissionRead}}\n\\index{PermissionRead@{PermissionRead}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{PermissionRead}{PermissionRead}}\n{\\footnotesize\\ttfamily int Nakama.\\+Write\\+Storage\\+Object.\\+Permission\\+Read = 1\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe read access permissions for the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a89e035c6b6f1fff5e890c1124039cc14}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_ac3a29f29170b78edd7e45b7c539fe811}\\label{class_nakama_1_1_write_storage_object_ac3a29f29170b78edd7e45b7c539fe811}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!PermissionWrite@{PermissionWrite}}\n\\index{PermissionWrite@{PermissionWrite}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{PermissionWrite}{PermissionWrite}}\n{\\footnotesize\\ttfamily int Nakama.\\+Write\\+Storage\\+Object.\\+Permission\\+Write = 1\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe write access permissions for the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a818dfc3d3c371095958a182635bd9fad}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_a8957c485fd56e513c1e17b47a22f9026}\\label{class_nakama_1_1_write_storage_object_a8957c485fd56e513c1e17b47a22f9026}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!Value@{Value}}\n\\index{Value@{Value}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Value}{Value}}\n{\\footnotesize\\ttfamily string Nakama.\\+Write\\+Storage\\+Object.\\+Value\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe value of the object.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_aefddcaddc15b913e27fcebe9d655c5f5}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{class_nakama_1_1_write_storage_object_a16000a938ed162fde6b9aa50675e61e2}\\label{class_nakama_1_1_write_storage_object_a16000a938ed162fde6b9aa50675e61e2}} \n\\index{Nakama.WriteStorageObject@{Nakama.WriteStorageObject}!Version@{Version}}\n\\index{Version@{Version}!Nakama.WriteStorageObject@{Nakama.WriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Version}{Version}}\n{\\footnotesize\\ttfamily string Nakama.\\+Write\\+Storage\\+Object.\\+Version\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe version hash of the object to check. Possible values are\\+: \\mbox{[}\\char`\\\"{}\\char`\\\"{}, \\char`\\\"{}$\\ast$\\char`\\\"{}, \\char`\\\"{}\\#hash\\#\\char`\\\"{}\\mbox{]}.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_aa5c76e4c2e3d5a0b5e514553bed16068}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Write\\+Storage\\+Object.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_api_response_exception.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 215.053757\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.325000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.ApiResponseException) cw\n(Exception) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.ApiResponseException) 0.000000 0.000000 box\n (Exception) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_api_response_exception.tex",
    "content": "\\hypertarget{class_satori_1_1_api_response_exception}{}\\doxysection{Satori.\\+Api\\+Response\\+Exception Class Reference}\n\\label{class_satori_1_1_api_response_exception}\\index{Satori.ApiResponseException@{Satori.ApiResponseException}}\n\n\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.   \n\n\nInheritance diagram for Satori.\\+Api\\+Response\\+Exception\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_satori_1_1_api_response_exception}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_a7dff8536db4f58609912a614892fd936}\\label{class_satori_1_1_api_response_exception_a7dff8536db4f58609912a614892fd936}} \n{\\bfseries Api\\+Response\\+Exception} (long status\\+Code, string content, int grpc\\+Code)\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_ae1355f7662390b58fa0b6ba5c9666926}\\label{class_satori_1_1_api_response_exception_ae1355f7662390b58fa0b6ba5c9666926}} \n{\\bfseries Api\\+Response\\+Exception} (string message, Exception e)\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_add8410b006b9f8688943eb865bed21df}\\label{class_satori_1_1_api_response_exception_add8410b006b9f8688943eb865bed21df}} \n{\\bfseries Api\\+Response\\+Exception} (string content)\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_a28bbbfe3b8dce84d5982886ca3d98cc1}\\label{class_satori_1_1_api_response_exception_a28bbbfe3b8dce84d5982886ca3d98cc1}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_af56ef69f0c3f973ef9a9c5695d3d911f}\\label{class_satori_1_1_api_response_exception_af56ef69f0c3f973ef9a9c5695d3d911f}} \nlong {\\bfseries Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_api_response_exception_a009bc0a50d29f68dd7bc839e7c667042}\\label{class_satori_1_1_api_response_exception_a009bc0a50d29f68dd7bc839e7c667042}} \nint {\\bfseries Grpc\\+Status\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_client.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 434.782623\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.150000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.Client) cw\n(Satori.IClient) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.Client) 0.000000 0.000000 box\n (Satori.IClient) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_client.tex",
    "content": "\\hypertarget{class_satori_1_1_client}{}\\doxysection{Satori.\\+Client Class Reference}\n\\label{class_satori_1_1_client}\\index{Satori.Client@{Satori.Client}}\n\n\n \n\n\nInheritance diagram for Satori.\\+Client\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_satori_1_1_client}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_ad4a1744be01088948fd4724253720a84}\\label{class_satori_1_1_client_ad4a1744be01088948fd4724253720a84}} \n{\\bfseries Client} (string scheme, string host, int port, string api\\+Key)\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a52592e348df73a0d8776b7620666607d}\\label{class_satori_1_1_client_a52592e348df73a0d8776b7620666607d}} \n{\\bfseries Client} (string scheme, string host, int port, string api\\+Key, \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{IHttp\\+Adapter}} adapter, bool auto\\+Refresh\\+Session=true)\n\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_ab2b3b14e99032adee70760833acbac58}{Authenticate\\+Async}} (string id, Cancellation\\+Token? cancellation\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate against the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & An optional user id.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{class_satori_1_1_client_a19a54b27abb6adb73f1094cb69445986}{Authenticate\\+Logout\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_satori_1_1_client_a3515d87f03d73b2923c45454b4e6c35b}{Event\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} @event, Cancellation\\+Token? cancellation\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send an event for this session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em event} & The event to send.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_satori_1_1_client_a168e519dc7621109d2726986e3928139}{Events\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} $>$ events, Cancellation\\+Token? cancellation\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send a batch of events for this session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em events} & The batch of events which will be sent.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{IApi\\+Experiment\\+List}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_aeae7a12032aa553fbbfdc856f3886c83}{Get\\+Experiments\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names=null, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get all experiments data. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Experiment names; if empty string all experiments are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all experiments that this identity is involved with.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a049d78069eb7828f88863e8776040615}{Get\\+Flag\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string name, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single flag for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single feature flag.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a2b05b22f9f9071f6c26614a13997c536}{Get\\+Flag\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string name, string default\\+Value, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single flag for this identity. \n\nUnlike {\\ttfamily Get\\+Flags(\\+ISession,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unavailable.  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a49603b64cf61100806d934110f8ea352}{Get\\+Flag\\+Default\\+Async}} (string api\\+Key, string name, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single default flag for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single default feature flag.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a2a555f48f48e5c070db9c115d92a8805}{Get\\+Flag\\+Default\\+Async}} (string api\\+Key, string name, string default\\+Value, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single default flag for this identity. \n\nUnlike {\\ttfamily Get\\+Flag\\+Default\\+Async(string,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unreachable.  \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a477cea4ad8662115d4221e4e7b9c203c}{Get\\+Flags\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all available flags for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all flags available to this identity.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a84d87516c745950e3f35ea3810283f06}{Get\\+Flags\\+Default\\+Async}} (string api\\+Key, IEnumerable$<$ string $>$ names, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all available default flags. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all available default flags.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a2bcd0f294df315ca5e46dfa7448c02f8}{Identify\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string id, Dictionary$<$ string, string $>$ default\\+Properties, Dictionary$<$ string, string $>$ custom\\+Properties, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Identify a session with a new ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. \\\\\n\\hline\n{\\em default\\+Properties} & The default properties.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom event properties.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the new session for the user.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{IApi\\+Live\\+Event\\+List}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a454f2b97226548687442d05a3a6465b0}{Get\\+Live\\+Events\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names=null, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List available live events. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Live event names, if null or empty, all live events are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_aef13463487b3c09d7c9a347cbe8c5cd1}{List\\+Properties\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List properties associated with this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{class_satori_1_1_client_a05e0853fc71cc8520f38acd27951daf9}{Session\\+Refresh\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Refresh a user\\textquotesingle{}s session using a refresh token retrieved from a previous authentication request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nasync Task \\mbox{\\hyperlink{class_satori_1_1_client_a78fc439169d96ec41b3cd3631e31d43d}{Update\\+Properties\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Dictionary$<$ string, string $>$ default\\+Properties, Dictionary$<$ string, string $>$ custom\\+Properties, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update properties associated with this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em default\\+Properties} & The default properties to update.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom properties to update.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a836edc3382ac9e74a5d460d74d1e38a0}\\label{class_satori_1_1_client_a836edc3382ac9e74a5d460d74d1e38a0}} \nstatic Time\\+Span {\\bfseries Default\\+Expired\\+Time\\+Span} = Time\\+Span.\\+From\\+Minutes(5)\n\\begin{DoxyCompactList}\\small\\item\\em The default expired timespan used to check session lifetime.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a1b8575bc43602e11fa892861735014de}\\label{class_satori_1_1_client_a1b8575bc43602e11fa892861735014de}} \nconst int {\\bfseries Default\\+Timeout} = 15\n\\begin{DoxyCompactList}\\small\\item\\em The default timeout of the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_satori_1_1_client_a1fc4e5a73077533d8671e64686528d1a}{Auto\\+Refresh\\+Session}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the session should be refreshed with an active refresh token.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a7e2d5442493469d57009038a05752561}\\label{class_satori_1_1_client_a7e2d5442493469d57009038a05752561}} \nstring {\\bfseries Host}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The host address of the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a76decfd57c04250e3ac3d98cf0106d8b}\\label{class_satori_1_1_client_a76decfd57c04250e3ac3d98cf0106d8b}} \nint {\\bfseries Port}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The port number of the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a7a5062ffa65ca4882f75dc6da7bff858}\\label{class_satori_1_1_client_a7a5062ffa65ca4882f75dc6da7bff858}} \nstring {\\bfseries Scheme}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The protocol scheme used to connect with the server. Must be either \\char`\\\"{}http\\char`\\\"{} or \\char`\\\"{}https\\char`\\\"{}.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a6a3b18b2c87e5235ecc6558bae414f35}\\label{class_satori_1_1_client_a6a3b18b2c87e5235ecc6558bae414f35}} \nstring {\\bfseries Api\\+Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key used to authenticate with the server without a session.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_client_a92d087e7452bccafc3148dbab3dac12c}\\label{class_satori_1_1_client_a92d087e7452bccafc3148dbab3dac12c}} \nint {\\bfseries Timeout}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Set the timeout in seconds on requests sent to the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_client_ab2b3b14e99032adee70760833acbac58}\\label{class_satori_1_1_client_ab2b3b14e99032adee70760833acbac58}} \n\\index{Satori.Client@{Satori.Client}!AuthenticateAsync@{AuthenticateAsync}}\n\\index{AuthenticateAsync@{AuthenticateAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateAsync()}{AuthenticateAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+Client.\\+Authenticate\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate against the server. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & An optional user id.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a563a7848fc6cfb9f7b5bd71a1351ab80}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a19a54b27abb6adb73f1094cb69445986}\\label{class_satori_1_1_client_a19a54b27abb6adb73f1094cb69445986}} \n\\index{Satori.Client@{Satori.Client}!AuthenticateLogoutAsync@{AuthenticateLogoutAsync}}\n\\index{AuthenticateLogoutAsync@{AuthenticateLogoutAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateLogoutAsync()}{AuthenticateLogoutAsync()}}\n{\\footnotesize\\ttfamily Task Satori.\\+Client.\\+Authenticate\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a827092f8b15b38c4a86ca88907338908}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a3515d87f03d73b2923c45454b4e6c35b}\\label{class_satori_1_1_client_a3515d87f03d73b2923c45454b4e6c35b}} \n\\index{Satori.Client@{Satori.Client}!EventAsync@{EventAsync}}\n\\index{EventAsync@{EventAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{EventAsync()}{EventAsync()}}\n{\\footnotesize\\ttfamily async Task Satori.\\+Client.\\+Event\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_satori_1_1_event}{Event}} @}]{event,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend an event for this session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em event} & The event to send.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a517f15b484c813732bde081b5d8a1bf5}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a168e519dc7621109d2726986e3928139}\\label{class_satori_1_1_client_a168e519dc7621109d2726986e3928139}} \n\\index{Satori.Client@{Satori.Client}!EventsAsync@{EventsAsync}}\n\\index{EventsAsync@{EventsAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{EventsAsync()}{EventsAsync()}}\n{\\footnotesize\\ttfamily async Task Satori.\\+Client.\\+Events\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} $>$}]{events,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend a batch of events for this session. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em events} & The batch of events which will be sent.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a89b11b74d66d79a2807489140af1e307}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_aeae7a12032aa553fbbfdc856f3886c83}\\label{class_satori_1_1_client_aeae7a12032aa553fbbfdc856f3886c83}} \n\\index{Satori.Client@{Satori.Client}!GetExperimentsAsync@{GetExperimentsAsync}}\n\\index{GetExperimentsAsync@{GetExperimentsAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetExperimentsAsync()}{GetExperimentsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{IApi\\+Experiment\\+List}} $>$ Satori.\\+Client.\\+Get\\+Experiments\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names = {\\ttfamily null},  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet all experiments data. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Experiment names; if empty string all experiments are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all experiments that this identity is involved with.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a0b141b22c449ade3548442ec562679df}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a049d78069eb7828f88863e8776040615}\\label{class_satori_1_1_client_a049d78069eb7828f88863e8776040615}} \n\\index{Satori.Client@{Satori.Client}!GetFlagAsync@{GetFlagAsync}}\n\\index{GetFlagAsync@{GetFlagAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagAsync()}{GetFlagAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+Client.\\+Get\\+Flag\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single flag for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single feature flag.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a6b03ae171a637d4938c2e9cacbf9ee28}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a2b05b22f9f9071f6c26614a13997c536}\\label{class_satori_1_1_client_a2b05b22f9f9071f6c26614a13997c536}} \n\\index{Satori.Client@{Satori.Client}!GetFlagAsync@{GetFlagAsync}}\n\\index{GetFlagAsync@{GetFlagAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagAsync()}{GetFlagAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+Client.\\+Get\\+Flag\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{string}]{default\\+Value,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single flag for this identity. \n\nUnlike {\\ttfamily Get\\+Flags(\\+ISession,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unavailable.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a486e38938074ed725715c81e64166f60}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a49603b64cf61100806d934110f8ea352}\\label{class_satori_1_1_client_a49603b64cf61100806d934110f8ea352}} \n\\index{Satori.Client@{Satori.Client}!GetFlagDefaultAsync@{GetFlagDefaultAsync}}\n\\index{GetFlagDefaultAsync@{GetFlagDefaultAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagDefaultAsync()}{GetFlagDefaultAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+Client.\\+Get\\+Flag\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{string}]{name,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single default flag for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single default feature flag.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_ae943709079ce5f690d5478addcd50f86}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a2a555f48f48e5c070db9c115d92a8805}\\label{class_satori_1_1_client_a2a555f48f48e5c070db9c115d92a8805}} \n\\index{Satori.Client@{Satori.Client}!GetFlagDefaultAsync@{GetFlagDefaultAsync}}\n\\index{GetFlagDefaultAsync@{GetFlagDefaultAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagDefaultAsync()}{GetFlagDefaultAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+Client.\\+Get\\+Flag\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{string}]{name,  }\\item[{string}]{default\\+Value,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single default flag for this identity. \n\nUnlike {\\ttfamily Get\\+Flag\\+Default\\+Async(string,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unreachable.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a6548048f5d846c0af46a665cc1f53193}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a477cea4ad8662115d4221e4e7b9c203c}\\label{class_satori_1_1_client_a477cea4ad8662115d4221e4e7b9c203c}} \n\\index{Satori.Client@{Satori.Client}!GetFlagsAsync@{GetFlagsAsync}}\n\\index{GetFlagsAsync@{GetFlagsAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagsAsync()}{GetFlagsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ Satori.\\+Client.\\+Get\\+Flags\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all available flags for this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all flags available to this identity.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_aeb95e0c8049682e9a55d55422229c1ea}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a84d87516c745950e3f35ea3810283f06}\\label{class_satori_1_1_client_a84d87516c745950e3f35ea3810283f06}} \n\\index{Satori.Client@{Satori.Client}!GetFlagsDefaultAsync@{GetFlagsDefaultAsync}}\n\\index{GetFlagsDefaultAsync@{GetFlagsDefaultAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagsDefaultAsync()}{GetFlagsDefaultAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ Satori.\\+Client.\\+Get\\+Flags\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{IEnumerable$<$ string $>$}]{names,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all available default flags. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all available default flags.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a81548d70c2bd082078aed71a8e3f4094}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a454f2b97226548687442d05a3a6465b0}\\label{class_satori_1_1_client_a454f2b97226548687442d05a3a6465b0}} \n\\index{Satori.Client@{Satori.Client}!GetLiveEventsAsync@{GetLiveEventsAsync}}\n\\index{GetLiveEventsAsync@{GetLiveEventsAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{GetLiveEventsAsync()}{GetLiveEventsAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{IApi\\+Live\\+Event\\+List}} $>$ Satori.\\+Client.\\+Get\\+Live\\+Events\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names = {\\ttfamily null},  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList available live events. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Live event names, if null or empty, all live events are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a49fd5e2b4a7106087c18e3e0a4699240}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a2bcd0f294df315ca5e46dfa7448c02f8}\\label{class_satori_1_1_client_a2bcd0f294df315ca5e46dfa7448c02f8}} \n\\index{Satori.Client@{Satori.Client}!IdentifyAsync@{IdentifyAsync}}\n\\index{IdentifyAsync@{IdentifyAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{IdentifyAsync()}{IdentifyAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+Client.\\+Identify\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{Dictionary$<$ string, string $>$}]{default\\+Properties,  }\\item[{Dictionary$<$ string, string $>$}]{custom\\+Properties,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nIdentify a session with a new ID. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. \\\\\n\\hline\n{\\em default\\+Properties} & The default properties.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom event properties.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the new session for the user.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_aeab7bbd37f9f5650803284d5f4302b50}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_aef13463487b3c09d7c9a347cbe8c5cd1}\\label{class_satori_1_1_client_aef13463487b3c09d7c9a347cbe8c5cd1}} \n\\index{Satori.Client@{Satori.Client}!ListPropertiesAsync@{ListPropertiesAsync}}\n\\index{ListPropertiesAsync@{ListPropertiesAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{ListPropertiesAsync()}{ListPropertiesAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}} $>$ Satori.\\+Client.\\+List\\+Properties\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList properties associated with this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_ae3b5ed8835db318bac9e9358c9ca9d62}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a05e0853fc71cc8520f38acd27951daf9}\\label{class_satori_1_1_client_a05e0853fc71cc8520f38acd27951daf9}} \n\\index{Satori.Client@{Satori.Client}!SessionRefreshAsync@{SessionRefreshAsync}}\n\\index{SessionRefreshAsync@{SessionRefreshAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{SessionRefreshAsync()}{SessionRefreshAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+Client.\\+Session\\+Refresh\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRefresh a user\\textquotesingle{}s session using a refresh token retrieved from a previous authentication request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a75b8b2a0675d4e42244ae66ac60e903f}{Satori.\\+IClient}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_client_a78fc439169d96ec41b3cd3631e31d43d}\\label{class_satori_1_1_client_a78fc439169d96ec41b3cd3631e31d43d}} \n\\index{Satori.Client@{Satori.Client}!UpdatePropertiesAsync@{UpdatePropertiesAsync}}\n\\index{UpdatePropertiesAsync@{UpdatePropertiesAsync}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{UpdatePropertiesAsync()}{UpdatePropertiesAsync()}}\n{\\footnotesize\\ttfamily async Task Satori.\\+Client.\\+Update\\+Properties\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Dictionary$<$ string, string $>$}]{default\\+Properties,  }\\item[{Dictionary$<$ string, string $>$}]{custom\\+Properties,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate properties associated with this identity. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em default\\+Properties} & The default properties to update.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom properties to update.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_aea9d790170b8366f8632f0ff1fdfb494}{Satori.\\+IClient}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_client_a1fc4e5a73077533d8671e64686528d1a}\\label{class_satori_1_1_client_a1fc4e5a73077533d8671e64686528d1a}} \n\\index{Satori.Client@{Satori.Client}!AutoRefreshSession@{AutoRefreshSession}}\n\\index{AutoRefreshSession@{AutoRefreshSession}!Satori.Client@{Satori.Client}}\n\\doxysubsubsection{\\texorpdfstring{AutoRefreshSession}{AutoRefreshSession}}\n{\\footnotesize\\ttfamily bool Satori.\\+Client.\\+Auto\\+Refresh\\+Session\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nTrue if the session should be refreshed with an active refresh token.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_client_a92cededba8674818db5107bca319ed39}{Satori.\\+IClient}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Client.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_event.tex",
    "content": "\\hypertarget{class_satori_1_1_event}{}\\doxysection{Satori.\\+Event Class Reference}\n\\label{class_satori_1_1_event}\\index{Satori.Event@{Satori.Event}}\n\n\nAn event to be published to the server.   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{class_satori_1_1_event_ae52296874234666607b8115b243beb60}{Event}} (string name, Date\\+Time timestamp, string value=null, Dictionary$<$ string, string $>$ metadata=null, string id=null)\n\\begin{DoxyCompactList}\\small\\item\\em The event constructor.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_event_aa85c546929734196994af9feb4e5836f}\\label{class_satori_1_1_event_aa85c546929734196994af9feb4e5836f}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the event.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_event_a73d5b866bb7792202a0559384af0da36}\\label{class_satori_1_1_event_a73d5b866bb7792202a0559384af0da36}} \nDate\\+Time {\\bfseries Timestamp}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The time when the event was triggered.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_event_ae67aa2eea397d195534f8c618d092ca6}\\label{class_satori_1_1_event_ae67aa2eea397d195534f8c618d092ca6}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_event_af36bf65cd20cb4f02b11b27bcc63d873}\\label{class_satori_1_1_event_af36bf65cd20cb4f02b11b27bcc63d873}} \nDictionary$<$ string, string $>$ {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} metadata, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_event_a6c15ddba3ae789be6f20bd33ba6c276d}\\label{class_satori_1_1_event_a6c15ddba3ae789be6f20bd33ba6c276d}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional event ID assigned by the client, used to de-\\/duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn event to be published to the server.  \n\n\\doxysubsection{Constructor \\& Destructor Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_event_ae52296874234666607b8115b243beb60}\\label{class_satori_1_1_event_ae52296874234666607b8115b243beb60}} \n\\index{Satori.Event@{Satori.Event}!Event@{Event}}\n\\index{Event@{Event}!Satori.Event@{Satori.Event}}\n\\doxysubsubsection{\\texorpdfstring{Event()}{Event()}}\n{\\footnotesize\\ttfamily Satori.\\+Event.\\+Event (\\begin{DoxyParamCaption}\\item[{string}]{name,  }\\item[{Date\\+Time}]{timestamp,  }\\item[{string}]{value = {\\ttfamily null},  }\\item[{Dictionary$<$ string, string $>$}]{metadata = {\\ttfamily null},  }\\item[{string}]{id = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nThe event constructor.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em name} & The \\mbox{\\hyperlink{class_satori_1_1_event_aa85c546929734196994af9feb4e5836f}{Event.\\+Name}}\\\\\n\\hline\n{\\em timestamp} & The \\mbox{\\hyperlink{class_satori_1_1_event_a73d5b866bb7792202a0559384af0da36}{Event.\\+Timestamp}}\\\\\n\\hline\n{\\em value} & The \\mbox{\\hyperlink{class_satori_1_1_event_ae67aa2eea397d195534f8c618d092ca6}{Event.\\+Value}}\\\\\n\\hline\n{\\em metadata} & The \\mbox{\\hyperlink{class_satori_1_1_event_af36bf65cd20cb4f02b11b27bcc63d873}{Event.\\+Metadata}}\\\\\n\\hline\n{\\em id} & The \\mbox{\\hyperlink{class_satori_1_1_event_a6c15ddba3ae789be6f20bd33ba6c276d}{Event.\\+Id}}\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_http_request_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 238.095245\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.100000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.HttpRequestAdapter) cw\n(Satori.IHttpAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.HttpRequestAdapter) 0.000000 0.000000 box\n (Satori.IHttpAdapter) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_http_request_adapter.tex",
    "content": "\\hypertarget{class_satori_1_1_http_request_adapter}{}\\doxysection{Satori.\\+Http\\+Request\\+Adapter Class Reference}\n\\label{class_satori_1_1_http_request_adapter}\\index{Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}}\n\n\nHTTP Request adapter which uses the .NET Http\\+Client to send requests.   \n\n\nInheritance diagram for Satori.\\+Http\\+Request\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_satori_1_1_http_request_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_http_request_adapter_aa9a3b7b022a3e716af4ca62bb7e972ef}\\label{class_satori_1_1_http_request_adapter_aa9a3b7b022a3e716af4ca62bb7e972ef}} \n{\\bfseries Http\\+Request\\+Adapter} (Http\\+Client http\\+Client)\n\\item \nasync Task$<$ string $>$ \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a68c34ab8213a4658b431c1d28646dc9a}{Send\\+Async}} (string method, Uri uri, IDictionary$<$ string, string $>$ headers, byte\\mbox{[}$\\,$\\mbox{]} body, int timeout, Cancellation\\+Token? user\\+Cancel\\+Token)\n\\begin{DoxyCompactList}\\small\\item\\em Send a HTTP request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{IHttp\\+Adapter}} \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a625d2031f4142607a1b5a4c7054e77fd}{With\\+Gzip}} (bool decompression=false, bool compression=false)\n\\begin{DoxyCompactList}\\small\\item\\em A new HTTP adapter with configuration for gzip support in the underlying HTTP client.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{interface_satori_1_1_i_logger}{ILogger}} \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a6736d4ab9046b2b991c1a0e7260f8def}{Logger}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the adapter.  \\end{DoxyCompactList}\\item \nTransient\\+Exception\\+Delegate \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a546f98fc502df23332f3cfce7101d1e3}{Transient\\+Exception\\+Delegate}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.\\+e., is \\textquotesingle{}transient\\textquotesingle{}).  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nHTTP Request adapter which uses the .NET Http\\+Client to send requests.  \n\nAccept header is always set as \\textquotesingle{}application/json\\textquotesingle{}. \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_http_request_adapter_a68c34ab8213a4658b431c1d28646dc9a}\\label{class_satori_1_1_http_request_adapter_a68c34ab8213a4658b431c1d28646dc9a}} \n\\index{Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily async Task$<$ string $>$ Satori.\\+Http\\+Request\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{method,  }\\item[{Uri}]{uri,  }\\item[{IDictionary$<$ string, string $>$}]{headers,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{body,  }\\item[{int}]{timeout,  }\\item[{Cancellation\\+Token?}]{user\\+Cancel\\+Token }\\end{DoxyParamCaption})}\n\n\n\nSend a HTTP request. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a5a8263afb745168a52c3e9a778b36344}{Satori.\\+IHttp\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_http_request_adapter_a625d2031f4142607a1b5a4c7054e77fd}\\label{class_satori_1_1_http_request_adapter_a625d2031f4142607a1b5a4c7054e77fd}} \n\\index{Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}!WithGzip@{WithGzip}}\n\\index{WithGzip@{WithGzip}!Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{WithGzip()}{WithGzip()}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{IHttp\\+Adapter}} Satori.\\+Http\\+Request\\+Adapter.\\+With\\+Gzip (\\begin{DoxyParamCaption}\\item[{bool}]{decompression = {\\ttfamily false},  }\\item[{bool}]{compression = {\\ttfamily false} }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nA new HTTP adapter with configuration for gzip support in the underlying HTTP client.  \n\nNOTE Decompression does not work with Mono AOT on Android. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em decompression} & If automatic decompression should be enabled with the HTTP adapter.\\\\\n\\hline\n{\\em compression} & If automatic compression should be enabled with the HTTP adapter.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA new HTTP adapter.\n\\end{DoxyReturn}\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_http_request_adapter_a6736d4ab9046b2b991c1a0e7260f8def}\\label{class_satori_1_1_http_request_adapter_a6736d4ab9046b2b991c1a0e7260f8def}} \n\\index{Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}!Logger@{Logger}}\n\\index{Logger@{Logger}!Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{Logger}{Logger}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_satori_1_1_i_logger}{ILogger}} Satori.\\+Http\\+Request\\+Adapter.\\+Logger\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe logger to use with the adapter.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a60f7f315f6269aa15eea61fa0155dc0b}{Satori.\\+IHttp\\+Adapter}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_http_request_adapter_a546f98fc502df23332f3cfce7101d1e3}\\label{class_satori_1_1_http_request_adapter_a546f98fc502df23332f3cfce7101d1e3}} \n\\index{Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}!TransientExceptionDelegate@{TransientExceptionDelegate}}\n\\index{TransientExceptionDelegate@{TransientExceptionDelegate}!Satori.HttpRequestAdapter@{Satori.HttpRequestAdapter}}\n\\doxysubsubsection{\\texorpdfstring{TransientExceptionDelegate}{TransientExceptionDelegate}}\n{\\footnotesize\\ttfamily Transient\\+Exception\\+Delegate Satori.\\+Http\\+Request\\+Adapter.\\+Transient\\+Exception\\+Delegate\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nA delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.\\+e., is \\textquotesingle{}transient\\textquotesingle{}).  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a4a1fd5b9edeccda3485b62d94f22578f}{Satori.\\+IHttp\\+Adapter}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Http\\+Request\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_session.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 384.615387\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.300000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.Session) cw\n(Satori.ISession) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.Session) 0.000000 0.000000 box\n (Satori.ISession) 0.000000 1.000000 box\n\n% ----- relations -----\n\nsolid\n0 0.000000 0.000000 out\nsolid\n1 0.000000 1.000000 in\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_session.tex",
    "content": "\\hypertarget{class_satori_1_1_session}{}\\doxysection{Satori.\\+Session Class Reference}\n\\label{class_satori_1_1_session}\\index{Satori.Session@{Satori.Session}}\n\n\n \n\n\nInheritance diagram for Satori.\\+Session\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{class_satori_1_1_session}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{class_satori_1_1_session_ac0337cc38b9a04e5d812a8b87720e407}{Has\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check the session has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_satori_1_1_session_a4a4cc7d98de34718e385241eaa9984fe}{Has\\+Refresh\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check if the refresh token has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{class_satori_1_1_session_ad241a4da8f93b528fff4c0f3e080165c}\\label{class_satori_1_1_session_ad241a4da8f93b528fff4c0f3e080165c}} \noverride string {\\bfseries To\\+String} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nstatic \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} \\mbox{\\hyperlink{class_satori_1_1_session_a83ba1f658c8d31b3b0307e3807ef36ed}{Restore}} (string auth\\+Token, string refresh\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Restore a session from the auth token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_session_afe8a0d13004ba3878b400d2d4eaf90c4}\\label{class_satori_1_1_session_afe8a0d13004ba3878b400d2d4eaf90c4}} \nstatic readonly Date\\+Time {\\bfseries Epoch} = new Date\\+Time(1970, 1, 1, 0, 0, 0, Date\\+Time\\+Kind.\\+Utc)\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{class_satori_1_1_session_afdc7cdcad28bc4c95c1b6244f9b208bf}{Auth\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The authorization token used to construct this session.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{class_satori_1_1_session_afe0f9228873dbd047a024b16e45d368e}{Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session will expire.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_satori_1_1_session_aa933c455425edfd02a68c52e2ea52135}{Is\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the session has expired.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{class_satori_1_1_session_a6467393cfe6d024d0a3526f0ee29eec9}{Is\\+Refresh\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the refresh token has expired.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{class_satori_1_1_session_aa3ff3bfb4404d71172a2fcb323632f9e}{Refresh\\+Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when the refresh token will expire.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_satori_1_1_session_a6de405afc91032a2c328ae863decc122}{Refresh\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token that can be used for session token renewal.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{class_satori_1_1_session_a17977d09db716a100515246046689acb}{Identity\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the user who owns this session.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_session_ac0337cc38b9a04e5d812a8b87720e407}\\label{class_satori_1_1_session_ac0337cc38b9a04e5d812a8b87720e407}} \n\\index{Satori.Session@{Satori.Session}!HasExpired@{HasExpired}}\n\\index{HasExpired@{HasExpired}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{HasExpired()}{HasExpired()}}\n{\\footnotesize\\ttfamily bool Satori.\\+Session.\\+Has\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck the session has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_aabe1a8aae689ca7d1eaca3537ffa55f5}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_a4a4cc7d98de34718e385241eaa9984fe}\\label{class_satori_1_1_session_a4a4cc7d98de34718e385241eaa9984fe}} \n\\index{Satori.Session@{Satori.Session}!HasRefreshExpired@{HasRefreshExpired}}\n\\index{HasRefreshExpired@{HasRefreshExpired}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{HasRefreshExpired()}{HasRefreshExpired()}}\n{\\footnotesize\\ttfamily bool Satori.\\+Session.\\+Has\\+Refresh\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck if the refresh token has expired against the offset time. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_aa690bf2fd9e3cebdc597a17ad95eb8ac}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_a83ba1f658c8d31b3b0307e3807ef36ed}\\label{class_satori_1_1_session_a83ba1f658c8d31b3b0307e3807ef36ed}} \n\\index{Satori.Session@{Satori.Session}!Restore@{Restore}}\n\\index{Restore@{Restore}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{Restore()}{Restore()}}\n{\\footnotesize\\ttfamily static \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} Satori.\\+Session.\\+Restore (\\begin{DoxyParamCaption}\\item[{string}]{auth\\+Token,  }\\item[{string}]{refresh\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})\\hspace{0.3cm}{\\ttfamily [static]}}\n\n\n\nRestore a session from the auth token.  \n\nA {\\ttfamily null} or empty authentication token will return null. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em auth\\+Token} & The authorization token to restore as a session.\\\\\n\\hline\n{\\em refresh\\+Token} & The refresh token for the session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA session.\n\\end{DoxyReturn}\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{class_satori_1_1_session_afdc7cdcad28bc4c95c1b6244f9b208bf}\\label{class_satori_1_1_session_afdc7cdcad28bc4c95c1b6244f9b208bf}} \n\\index{Satori.Session@{Satori.Session}!AuthToken@{AuthToken}}\n\\index{AuthToken@{AuthToken}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{AuthToken}{AuthToken}}\n{\\footnotesize\\ttfamily string Satori.\\+Session.\\+Auth\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe authorization token used to construct this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_a3a090ee3fe0d7a6f01d45f185ec8f3ba}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_afe0f9228873dbd047a024b16e45d368e}\\label{class_satori_1_1_session_afe0f9228873dbd047a024b16e45d368e}} \n\\index{Satori.Session@{Satori.Session}!ExpireTime@{ExpireTime}}\n\\index{ExpireTime@{ExpireTime}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{ExpireTime}{ExpireTime}}\n{\\footnotesize\\ttfamily long Satori.\\+Session.\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session will expire.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_a2ac53e0aab134b3df05bd46f29d5e34f}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_a17977d09db716a100515246046689acb}\\label{class_satori_1_1_session_a17977d09db716a100515246046689acb}} \n\\index{Satori.Session@{Satori.Session}!IdentityId@{IdentityId}}\n\\index{IdentityId@{IdentityId}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{IdentityId}{IdentityId}}\n{\\footnotesize\\ttfamily string Satori.\\+Session.\\+Identity\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe ID of the user who owns this session.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_ad2cf0bf88e2f23a3f3fdff64502a799e}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_aa933c455425edfd02a68c52e2ea52135}\\label{class_satori_1_1_session_aa933c455425edfd02a68c52e2ea52135}} \n\\index{Satori.Session@{Satori.Session}!IsExpired@{IsExpired}}\n\\index{IsExpired@{IsExpired}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{IsExpired}{IsExpired}}\n{\\footnotesize\\ttfamily bool Satori.\\+Session.\\+Is\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the session has expired.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_a8fe379446411cfdff5e11cabc83eed9d}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_a6467393cfe6d024d0a3526f0ee29eec9}\\label{class_satori_1_1_session_a6467393cfe6d024d0a3526f0ee29eec9}} \n\\index{Satori.Session@{Satori.Session}!IsRefreshExpired@{IsRefreshExpired}}\n\\index{IsRefreshExpired@{IsRefreshExpired}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{IsRefreshExpired}{IsRefreshExpired}}\n{\\footnotesize\\ttfamily bool Satori.\\+Session.\\+Is\\+Refresh\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the refresh token has expired.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_a35ce1adb322ea67137bce06d711c9779}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_aa3ff3bfb4404d71172a2fcb323632f9e}\\label{class_satori_1_1_session_aa3ff3bfb4404d71172a2fcb323632f9e}} \n\\index{Satori.Session@{Satori.Session}!RefreshExpireTime@{RefreshExpireTime}}\n\\index{RefreshExpireTime@{RefreshExpireTime}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{RefreshExpireTime}{RefreshExpireTime}}\n{\\footnotesize\\ttfamily long Satori.\\+Session.\\+Refresh\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when the refresh token will expire.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_a4303314d30ab93e5297842327ef97571}{Satori.\\+ISession}}.\n\n\\mbox{\\Hypertarget{class_satori_1_1_session_a6de405afc91032a2c328ae863decc122}\\label{class_satori_1_1_session_a6de405afc91032a2c328ae863decc122}} \n\\index{Satori.Session@{Satori.Session}!RefreshToken@{RefreshToken}}\n\\index{RefreshToken@{RefreshToken}!Satori.Session@{Satori.Session}}\n\\doxysubsubsection{\\texorpdfstring{RefreshToken}{RefreshToken}}\n{\\footnotesize\\ttfamily string Satori.\\+Session.\\+Refresh\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nRefresh token that can be used for session token renewal.  \n\n\n\nImplements \\mbox{\\hyperlink{interface_satori_1_1_i_session_abfc2880c5080481f9ea718e18c2845cf}{Satori.\\+ISession}}.\n\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Session.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/class_satori_1_1_tests_1_1_client_test.tex",
    "content": "\\hypertarget{class_satori_1_1_tests_1_1_client_test}{}\\doxysection{Satori.\\+Tests.\\+Client\\+Test Class Reference}\n\\label{class_satori_1_1_tests_1_1_client_test}\\index{Satori.Tests.ClientTest@{Satori.Tests.ClientTest}}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_a7c35c7c5dca1c319617183a7217abc34}\\label{class_satori_1_1_tests_1_1_client_test_a7c35c7c5dca1c319617183a7217abc34}} \nasync Task {\\bfseries Test\\+Authenticate\\+And\\+Logout} ()\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_a0226abf2b807a9b25a9a779ec867163c}\\label{class_satori_1_1_tests_1_1_client_test_a0226abf2b807a9b25a9a779ec867163c}} \nasync Task {\\bfseries Test\\+Get\\+Experiments} ()\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_a929b685acf5fc25ea841abcec3b6dc53}\\label{class_satori_1_1_tests_1_1_client_test_a929b685acf5fc25ea841abcec3b6dc53}} \nasync Task {\\bfseries Test\\+Get\\+Flags} ()\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_a6e4169b9483ca4faaead263307dc7ff7}\\label{class_satori_1_1_tests_1_1_client_test_a6e4169b9483ca4faaead263307dc7ff7}} \nasync Task {\\bfseries Test\\+Get\\+Flags\\+Default} ()\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_a9b827eb88d646adb0ea167d0a8f67b7a}\\label{class_satori_1_1_tests_1_1_client_test_a9b827eb88d646adb0ea167d0a8f67b7a}} \nasync Task {\\bfseries Test\\+Send\\+Events} ()\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_aec28e8b1ee57efb4e4bd7ec31382efe1}\\label{class_satori_1_1_tests_1_1_client_test_aec28e8b1ee57efb4e4bd7ec31382efe1}} \nasync Task {\\bfseries Test\\+Get\\+Live\\+Event} ()\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Static Public Attributes}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{class_satori_1_1_tests_1_1_client_test_acc5e004188358d9f3efac96c2f38cd0b}\\label{class_satori_1_1_tests_1_1_client_test_acc5e004188358d9f3efac96c2f38cd0b}} \nconst int {\\bfseries Timeout\\+Milliseconds} = 5000\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this class was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori.\\+Tests/Client\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/doxygen.sty",
    "content": "\\NeedsTeXFormat{LaTeX2e}\n\\ProvidesPackage{doxygen}\n\n% Packages used by this style file\n\\RequirePackage{alltt}\n%%\\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package\n\\RequirePackage{calc}\n\\RequirePackage{float}\n%%\\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package\n\\RequirePackage{verbatim}\n\\RequirePackage[table]{xcolor}\n\\RequirePackage{longtable_doxygen}\n\\RequirePackage{tabu_doxygen}\n\\RequirePackage{fancyvrb}\n\\RequirePackage{tabularx}\n\\RequirePackage{multicol}\n\\RequirePackage{multirow}\n\\RequirePackage{hanging}\n\\RequirePackage{ifpdf}\n\\RequirePackage{adjustbox}\n\\RequirePackage{amssymb}\n\\RequirePackage{stackengine}\n\\RequirePackage{enumitem}\n\\RequirePackage{alphalph}\n\\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis\n\\RequirePackage{enumitem}\n\n%---------- Internal commands used in this style file ----------------\n\n\\newcommand{\\ensurespace}[1]{%\n  \\begingroup%\n    \\setlength{\\dimen@}{#1}%\n    \\vskip\\z@\\@plus\\dimen@%\n    \\penalty -100\\vskip\\z@\\@plus -\\dimen@%\n    \\vskip\\dimen@%\n    \\penalty 9999%\n    \\vskip -\\dimen@%\n    \\vskip\\z@skip% hide the previous |\\vskip| from |\\addvspace|\n  \\endgroup%\n}\n\n\\newcommand{\\DoxyHorRuler}[1]{%\n  \\setlength{\\parskip}{0ex plus 0ex minus 0ex}%\n  \\ifthenelse{#1=0}%\n  {%\n    \\hrule%\n  }%\n  {%\n    \\hrulefilll%\n  }%\n}\n\\newcommand{\\DoxyLabelFont}{}\n\\newcommand{\\entrylabel}[1]{%\n  {%\n    \\parbox[b]{\\labelwidth-4pt}{%\n      \\makebox[0pt][l]{\\DoxyLabelFont#1}%\n      \\vspace{1.5\\baselineskip}%\n    }%\n  }%\n}\n\n\\newenvironment{DoxyDesc}[1]{%\n  \\ensurespace{4\\baselineskip}%\n  \\begin{list}{}{%\n    \\settowidth{\\labelwidth}{20pt}%\n    %\\setlength{\\parsep}{0pt}%\n    \\setlength{\\itemsep}{0pt}%\n    \\setlength{\\leftmargin}{\\labelwidth+\\labelsep}%\n    \\renewcommand{\\makelabel}{\\entrylabel}%\n  }%\n  \\item[#1]%\n}{%\n  \\end{list}%\n}\n\n\\newsavebox{\\xrefbox}\n\\newlength{\\xreflength}\n\\newcommand{\\xreflabel}[1]{%\n  \\sbox{\\xrefbox}{#1}%\n  \\setlength{\\xreflength}{\\wd\\xrefbox}%\n  \\ifthenelse{\\xreflength>\\labelwidth}{%\n    \\begin{minipage}{\\textwidth}%\n      \\setlength{\\parindent}{0pt}%\n      \\hangindent=15pt\\bfseries #1\\vspace{1.2\\itemsep}%\n    \\end{minipage}%\n  }{%\n   \\parbox[b]{\\labelwidth}{\\makebox[0pt][l]{\\textbf{#1}}}%\n  }%\n}\n\n%---------- Commands used by doxygen LaTeX output generator ----------\n\n% Used by <pre> ... </pre>\n\\newenvironment{DoxyPre}{%\n  \\small%\n  \\begin{alltt}%\n}{%\n  \\end{alltt}%\n  \\normalsize%\n}\n% Necessary for redefining not defined characters, i.e. \"Replacement Character\" in tex output.\n\\newlength{\\CodeWidthChar}\n\\newlength{\\CodeHeightChar}\n\\settowidth{\\CodeWidthChar}{?}\n\\settoheight{\\CodeHeightChar}{?}\n% Necessary for hanging indent\n\\newlength{\\DoxyCodeWidth}\n\n\\newcommand\\DoxyCodeLine[1]{\\hangpara{\\DoxyCodeWidth}{1}{#1}\\par}\n\n\\newcommand\\NiceSpace{%\n     \\discretionary{}{\\kern\\fontdimen2\\font}{\\kern\\fontdimen2\\font}%\n}\n\n% Used by @code ... @endcode\n\\newenvironment{DoxyCode}[1]{%\n  \\par%\n  \\scriptsize%\n  \\normalfont\\ttfamily%\n  \\rightskip0pt plus 1fil%\n  \\settowidth{\\DoxyCodeWidth}{000000}%\n  \\settowidth{\\CodeWidthChar}{?}%\n  \\settoheight{\\CodeHeightChar}{?}%\n  \\setlength{\\parskip}{0ex plus 0ex minus 0ex}%\n  \\ifthenelse{\\equal{#1}{0}}\n  {\n    {\\lccode`~32 \\lowercase{\\global\\let~}\\NiceSpace}\\obeyspaces%\n  }\n  {\n    {\\lccode`~32 \\lowercase{\\global\\let~}}\\obeyspaces%\n  }\n\n}{%\n  \\normalfont%\n  \\normalsize%\n  \\settowidth{\\CodeWidthChar}{?}%\n  \\settoheight{\\CodeHeightChar}{?}%\n}\n\n% Redefining not defined characters, i.e. \"Replacement Character\" in tex output.\n\\def\\ucr{\\adjustbox{width=\\CodeWidthChar,height=\\CodeHeightChar}{\\stackinset{c}{}{c}{-.2pt}{%\n   \\textcolor{white}{\\sffamily\\bfseries\\small ?}}{%\n   \\rotatebox{45}{$\\blacksquare$}}}}\n\n% Used by @example, @include, @includelineno and @dontinclude\n\\newenvironment{DoxyCodeInclude}[1]{%\n\t\\DoxyCode{#1}%\n}{%\n  \\endDoxyCode%\n}\n\n% Used by @verbatim ... @endverbatim\n\\newenvironment{DoxyVerb}{%\n  \\par%\n  \\footnotesize%\n  \\verbatim%\n}{%\n  \\endverbatim%\n  \\normalsize%\n}\n\n% Used by @verbinclude\n\\newenvironment{DoxyVerbInclude}{%\n  \\DoxyVerb%\n}{%\n  \\endDoxyVerb%\n}\n\n% Used by numbered lists (using '-#' or <ol> ... </ol>)\n\\setlistdepth{12}\n\\newlist{DoxyEnumerate}{enumerate}{12}\n\\setlist[DoxyEnumerate,1]{label=\\arabic*.}\n\\setlist[DoxyEnumerate,2]{label=(\\enumalphalphcnt*)}\n\\setlist[DoxyEnumerate,3]{label=\\roman*.}\n\\setlist[DoxyEnumerate,4]{label=\\enumAlphAlphcnt*.}\n\\setlist[DoxyEnumerate,5]{label=\\arabic*.}\n\\setlist[DoxyEnumerate,6]{label=(\\enumalphalphcnt*)}\n\\setlist[DoxyEnumerate,7]{label=\\roman*.}\n\\setlist[DoxyEnumerate,8]{label=\\enumAlphAlphcnt*.}\n\\setlist[DoxyEnumerate,9]{label=\\arabic*.}\n\\setlist[DoxyEnumerate,10]{label=(\\enumalphalphcnt*)}\n\\setlist[DoxyEnumerate,11]{label=\\roman*.}\n\\setlist[DoxyEnumerate,12]{label=\\enumAlphAlphcnt*.}\n\n% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)\n\\setlistdepth{12}\n\\newlist{DoxyItemize}{itemize}{12}\n\\setlist[DoxyItemize]{label=\\textperiodcentered}\n\n\\setlist[DoxyItemize,1]{label=\\textbullet}\n\\setlist[DoxyItemize,2]{label=\\normalfont\\bfseries \\textendash}\n\\setlist[DoxyItemize,3]{label=\\textasteriskcentered}\n\\setlist[DoxyItemize,4]{label=\\textperiodcentered}\n\n% Used by description lists (using <dl> ... </dl>)\n\\newenvironment{DoxyDescription}{%\n  \\description%\n}{%\n  \\enddescription%\n}\n\n% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc\n% (only if caption is specified)\n\\newenvironment{DoxyImage}{%\n  \\begin{figure}[H]%\n    \\centering%\n}{%\n  \\end{figure}%\n}\n\n% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc\n% (only if no caption is specified)\n\\newenvironment{DoxyImageNoCaption}{%\n  \\begin{center}%\n}{%\n  \\end{center}%\n}\n\n% Used by @image\n% (only if inline is specified)\n\\newenvironment{DoxyInlineImage}{%\n}{%\n}\n\n% Used by @attention\n\\newenvironment{DoxyAttention}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @author and @authors\n\\newenvironment{DoxyAuthor}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @date\n\\newenvironment{DoxyDate}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @invariant\n\\newenvironment{DoxyInvariant}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @note\n\\newenvironment{DoxyNote}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @post\n\\newenvironment{DoxyPostcond}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @pre\n\\newenvironment{DoxyPrecond}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @copyright\n\\newenvironment{DoxyCopyright}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @remark\n\\newenvironment{DoxyRemark}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @return and @returns\n\\newenvironment{DoxyReturn}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @since\n\\newenvironment{DoxySince}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @see\n\\newenvironment{DoxySeeAlso}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @version\n\\newenvironment{DoxyVersion}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @warning\n\\newenvironment{DoxyWarning}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by @par and @paragraph\n\\newenvironment{DoxyParagraph}[1]{%\n  \\begin{DoxyDesc}{#1}%\n}{%\n  \\end{DoxyDesc}%\n}\n\n% Used by parameter lists\n\\newenvironment{DoxyParams}[2][]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\ifthenelse{\\equal{#1}{}}%\n      {\\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description\n    {\\ifthenelse{\\equal{#1}{1}}%\n      {\\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc\n      {\\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc\n    }\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #2}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #2}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used for fields of simple structs\n\\newenvironment{DoxyFields}[1]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%\n    \\multicolumn{3}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{3}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used for fields simple class style enums\n\\newenvironment{DoxyEnumFields}[1]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used for parameters within a detailed function description\n\\newenvironment{DoxyParamCaption}{%\n  \\renewcommand{\\item}[2][]{\\\\ \\hspace*{2.0cm} ##1 {\\em ##2}}% \n}{%\n}\n\n% Used by return value lists\n\\newenvironment{DoxyRetVals}[1]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used by exception lists\n\\newenvironment{DoxyExceptions}[1]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used by template parameter lists\n\\newenvironment{DoxyTemplParams}[1]{%\n    \\tabulinesep=1mm%\n    \\par%\n    \\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endfirsthead%\n    \\multicolumn{2}{l}{\\hspace{-6pt}\\bfseries\\fontseries{bc}\\selectfont\\color{darkgray} #1}\\\\[1ex]%\n    \\hline%\n    \\endhead%\n}{%\n    \\end{longtabu*}%\n    \\vspace{6pt}%\n}\n\n% Used for member lists\n\\newenvironment{DoxyCompactItemize}{%\n  \\begin{itemize}%\n    \\setlength{\\itemsep}{-3pt}%\n    \\setlength{\\parsep}{0pt}%\n    \\setlength{\\topsep}{0pt}%\n    \\setlength{\\partopsep}{0pt}%\n}{%\n  \\end{itemize}%\n}\n\n% Used for member descriptions\n\\newenvironment{DoxyCompactList}{%\n  \\begin{list}{}{%\n    \\setlength{\\leftmargin}{0.5cm}%\n    \\setlength{\\itemsep}{0pt}%\n    \\setlength{\\parsep}{0pt}%\n    \\setlength{\\topsep}{0pt}%\n    \\renewcommand{\\makelabel}{\\hfill}%\n  }%\n}{%\n  \\end{list}%\n}\n\n% Used for reference lists (@bug, @deprecated, @todo, etc.)\n\\newenvironment{DoxyRefList}{%\n  \\begin{list}{}{%\n    \\setlength{\\labelwidth}{10pt}%\n    \\setlength{\\leftmargin}{\\labelwidth}%\n    \\addtolength{\\leftmargin}{\\labelsep}%\n    \\renewcommand{\\makelabel}{\\xreflabel}%\n  }%\n}{%\n  \\end{list}%\n}\n\n% Used by @bug, @deprecated, @todo, etc.\n\\newenvironment{DoxyRefDesc}[1]{%\n  \\begin{list}{}{%\n    \\renewcommand\\makelabel[1]{\\textbf{##1}}%\n    \\settowidth\\labelwidth{\\makelabel{#1}}%\n    \\setlength\\leftmargin{\\labelwidth+\\labelsep}%\n  }%\n}{%\n  \\end{list}%\n}\n\n% Used by parameter lists and simple sections\n\\newenvironment{Desc}\n{\\begin{list}{}{%\n    \\settowidth{\\labelwidth}{20pt}%\n    \\setlength{\\parsep}{0pt}%\n    \\setlength{\\itemsep}{0pt}%\n    \\setlength{\\leftmargin}{\\labelwidth+\\labelsep}%\n    \\renewcommand{\\makelabel}{\\entrylabel}%\n  }\n}{%\n  \\end{list}%\n}\n\n% Used by tables\n\\newcommand{\\PBS}[1]{\\let\\temp=\\\\#1\\let\\\\=\\temp}%\n\\newenvironment{TabularC}[1]%\n{\\tabulinesep=1mm\n\\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%\n{\\end{longtabu*}\\par}%\n\n\\newenvironment{TabularNC}[1]%\n{\\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%\n{\\end{tabu}\\par}%\n\n% Used for member group headers\n\\newenvironment{Indent}{%\n  \\begin{list}{}{%\n    \\setlength{\\leftmargin}{0.5cm}%\n  }%\n  \\item[]\\ignorespaces%\n}{%\n  \\unskip%\n  \\end{list}%\n}\n\n% Used when hyperlinks are turned off\n\\newcommand{\\doxyref}[3]{%\n  \\textbf{#1} (\\textnormal{#2}\\,\\pageref{#3})%\n}\n\n% Used to link to a table when hyperlinks are turned on\n\\newcommand{\\doxytablelink}[2]{%\n  \\ref{#1}%\n}\n\n% Used to link to a table when hyperlinks are turned off\n\\newcommand{\\doxytableref}[3]{%\n  \\ref{#3}%\n}\n\n% Used by @addindex\n\\newcommand{\\lcurly}{\\{}\n\\newcommand{\\rcurly}{\\}}\n\n% Colors used for syntax highlighting\n\\definecolor{comment}{rgb}{0.5,0.0,0.0}\n\\definecolor{keyword}{rgb}{0.0,0.5,0.0}\n\\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}\n\\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}\n\\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}\n\\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}\n\\definecolor{charliteral}{rgb}{0.0,0.5,0.5}\n\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n\\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}\n\n% Color used for table heading\n\\newcommand{\\tableheadbgcolor}{lightgray}%\n\n% Version of hypertarget with correct landing location\n\\newcommand{\\Hypertarget}[1]{\\Hy@raisedlink{\\hypertarget{#1}{}}}\n\n% possibility to have sections etc. be within the margins\n% unfortunately had to copy part of book.cls and add \\raggedright\n\\makeatletter\n\\newcommand\\doxysection{\\@startsection {section}{1}{\\z@}%\n                                   {-3.5ex \\@plus -1ex \\@minus -.2ex}%\n                                   {2.3ex \\@plus.2ex}%\n                                   {\\raggedright\\normalfont\\Large\\bfseries}}\n\\newcommand\\doxysubsection{\\@startsection{subsection}{2}{\\z@}%\n                                     {-3.25ex\\@plus -1ex \\@minus -.2ex}%\n                                     {1.5ex \\@plus .2ex}%\n                                     {\\raggedright\\normalfont\\large\\bfseries}}\n\\newcommand\\doxysubsubsection{\\@startsection{subsubsection}{3}{\\z@}%\n                                     {-3.25ex\\@plus -1ex \\@minus -.2ex}%\n                                     {1.5ex \\@plus .2ex}%\n                                     {\\raggedright\\normalfont\\normalsize\\bfseries}}\n\\newcommand\\doxyparagraph{\\@startsection{paragraph}{4}{\\z@}%\n                                    {3.25ex \\@plus1ex \\@minus.2ex}%\n                                    {-1em}%\n                                    {\\raggedright\\normalfont\\normalsize\\bfseries}}\n\\newcommand\\doxysubparagraph{\\@startsection{subparagraph}{5}{\\parindent}%\n                                       {3.25ex \\@plus1ex \\@minus .2ex}%\n                                       {-1em}%\n                                      {\\raggedright\\normalfont\\normalsize\\bfseries}}\n\\makeatother\n% Define caption that is also suitable in a table\n\\makeatletter\n\\def\\doxyfigcaption{%\n\\H@refstepcounter{figure}%\n\\@dblarg{\\@caption{figure}}}\n\\makeatother\n\n% Define alpha enumarative names for counters > 26\n\\makeatletter\n\\def\\enumalphalphcnt#1{\\expandafter\\@enumalphalphcnt\\csname c@#1\\endcsname}\n\\def\\@enumalphalphcnt#1{\\alphalph{#1}}\n\\def\\enumAlphAlphcnt#1{\\expandafter\\@enumAlphAlphcnt\\csname c@#1\\endcsname}\n\\def\\@enumAlphAlphcnt#1{\\AlphAlph{#1}}\n\\makeatother\n\\AddEnumerateCounter{\\enumalphalphcnt}{\\@enumalphalphcnt}{aa}\n\\AddEnumerateCounter{\\enumAlphAlphcnt}{\\@enumAlphAlphcnt}{AA}\n"
  },
  {
    "path": "docs/latex/hierarchy.tex",
    "content": "\\doxysection{Class Hierarchy}\nThis inheritance list is sorted roughly, but not completely, alphabetically\\+:\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Authenticate\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Cancel\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_cancel_test}}{}\n\\item \\contentsline{section}{Satori.\\+Tests.\\+Client\\+Test}{\\pageref{class_satori_1_1_tests_1_1_client_test}}{}\n\\item \\contentsline{section}{Satori.\\+Event}{\\pageref{class_satori_1_1_event}}{}\n\\item Event\\+Args\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Pong\\+Event\\+Args}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}}{}\n\\end{DoxyCompactList}\n\\item Exception\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Api\\+Response\\+Exception}{\\pageref{class_nakama_1_1_api_response_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+Api\\+Response\\+Exception}{\\pageref{class_nakama_1_1_console_1_1_api_response_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Entity\\+Too\\+Large\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Invalid\\+Http\\+Response\\+Code\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Server\\+Listener\\+Socket\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Buffer\\+Overflow\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Handshake\\+Failed\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions.\\+Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}}{}\n\\item \\contentsline{section}{Satori.\\+Api\\+Response\\+Exception}{\\pageref{class_satori_1_1_api_response_exception}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Group\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_group_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Http\\+Error\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Http\\+Helper}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account}{\\pageref{interface_nakama_1_1_i_api_account}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Apple}{\\pageref{interface_nakama_1_1_i_api_account_apple}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Custom}{\\pageref{interface_nakama_1_1_i_api_account_custom}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Account\\+Device}{\\pageref{interface_nakama_1_1_console_1_1_i_api_account_device}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Device}{\\pageref{interface_nakama_1_1_i_api_account_device}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Email}{\\pageref{interface_nakama_1_1_i_api_account_email}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Facebook}{\\pageref{interface_nakama_1_1_i_api_account_facebook}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Facebook\\+Instant\\+Game}{\\pageref{interface_nakama_1_1_i_api_account_facebook_instant_game}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Game\\+Center}{\\pageref{interface_nakama_1_1_i_api_account_game_center}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Google}{\\pageref{interface_nakama_1_1_i_api_account_google}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Account\\+Steam}{\\pageref{interface_nakama_1_1_i_api_account_steam}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Authenticate\\+Logout\\+Request}{\\pageref{interface_satori_1_1_i_api_authenticate_logout_request}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Authenticate\\+Refresh\\+Request}{\\pageref{interface_satori_1_1_i_api_authenticate_refresh_request}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Authenticate\\+Request}{\\pageref{interface_satori_1_1_i_api_authenticate_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Channel\\+Message}{\\pageref{interface_nakama_1_1_console_1_1_i_api_channel_message}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Channel\\+Message}{\\pageref{interface_nakama_1_1_i_api_channel_message}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Channel\\+Message\\+List}{\\pageref{interface_nakama_1_1_i_api_channel_message_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Create\\+Group\\+Request}{\\pageref{interface_nakama_1_1_i_api_create_group_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id}{\\pageref{interface_nakama_1_1_i_api_delete_storage_object_id}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Storage\\+Object\\+Id}{\\pageref{class_nakama_1_1_storage_object_id}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Delete\\+Storage\\+Objects\\+Request}{\\pageref{interface_nakama_1_1_i_api_delete_storage_objects_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Event}{\\pageref{interface_nakama_1_1_i_api_event}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Event}{\\pageref{interface_satori_1_1_i_api_event}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Event\\+Request}{\\pageref{interface_satori_1_1_i_api_event_request}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Experiment}{\\pageref{interface_satori_1_1_i_api_experiment}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Experiment\\+List}{\\pageref{interface_satori_1_1_i_api_experiment_list}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Flag}{\\pageref{interface_satori_1_1_i_api_flag}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Flag\\+List}{\\pageref{interface_satori_1_1_i_api_flag_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Friend}{\\pageref{interface_nakama_1_1_console_1_1_i_api_friend}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Friend}{\\pageref{interface_nakama_1_1_i_api_friend}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Friend\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_api_friend_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Friend\\+List}{\\pageref{interface_nakama_1_1_i_api_friend_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Group}{\\pageref{interface_nakama_1_1_console_1_1_i_api_group}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Group}{\\pageref{interface_nakama_1_1_i_api_group}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Group\\+List}{\\pageref{interface_nakama_1_1_i_api_group_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Group\\+User\\+List}{\\pageref{interface_nakama_1_1_i_api_group_user_list}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Identify\\+Request}{\\pageref{interface_satori_1_1_i_api_identify_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Leaderboard\\+Record}{\\pageref{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Leaderboard\\+Record}{\\pageref{interface_nakama_1_1_i_api_leaderboard_record}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Leaderboard\\+Record\\+List}{\\pageref{interface_nakama_1_1_i_api_leaderboard_record_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Link\\+Steam\\+Request}{\\pageref{interface_nakama_1_1_i_api_link_steam_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+List\\+Subscriptions\\+Request}{\\pageref{interface_nakama_1_1_i_api_list_subscriptions_request}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Live\\+Event}{\\pageref{interface_satori_1_1_i_api_live_event}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Live\\+Event\\+List}{\\pageref{interface_satori_1_1_i_api_live_event_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Match}{\\pageref{interface_nakama_1_1_i_api_match}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Match\\+List}{\\pageref{interface_nakama_1_1_i_api_match_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Notification}{\\pageref{interface_nakama_1_1_console_1_1_i_api_notification}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Notification}{\\pageref{interface_nakama_1_1_i_api_notification}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Notification\\+List}{\\pageref{interface_nakama_1_1_i_api_notification_list}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Properties}{\\pageref{interface_satori_1_1_i_api_properties}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id}{\\pageref{interface_nakama_1_1_i_api_read_storage_object_id}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Storage\\+Object\\+Id}{\\pageref{class_nakama_1_1_storage_object_id}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Read\\+Storage\\+Objects\\+Request}{\\pageref{interface_nakama_1_1_i_api_read_storage_objects_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Rpc}{\\pageref{interface_nakama_1_1_i_api_rpc}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Session}{\\pageref{interface_nakama_1_1_i_api_session}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Session}{\\pageref{interface_satori_1_1_i_api_session}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Session\\+Logout\\+Request}{\\pageref{interface_nakama_1_1_i_api_session_logout_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Session\\+Refresh\\+Request}{\\pageref{interface_nakama_1_1_i_api_session_refresh_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Storage\\+Object}{\\pageref{interface_nakama_1_1_console_1_1_i_api_storage_object}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Storage\\+Object}{\\pageref{interface_nakama_1_1_i_api_storage_object}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+Storage\\+Object\\+Ack}{\\pageref{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Storage\\+Object\\+Ack}{\\pageref{interface_nakama_1_1_i_api_storage_object_ack}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Storage\\+Object\\+Acks}{\\pageref{interface_nakama_1_1_i_api_storage_object_acks}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Storage\\+Object\\+List}{\\pageref{interface_nakama_1_1_i_api_storage_object_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Storage\\+Objects}{\\pageref{interface_nakama_1_1_i_api_storage_objects}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Subscription\\+List}{\\pageref{interface_nakama_1_1_i_api_subscription_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Tournament}{\\pageref{interface_nakama_1_1_i_api_tournament}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Tournament\\+List}{\\pageref{interface_nakama_1_1_i_api_tournament_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Tournament\\+Record\\+List}{\\pageref{interface_nakama_1_1_i_api_tournament_record_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Update\\+Account\\+Request}{\\pageref{interface_nakama_1_1_i_api_update_account_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Update\\+Group\\+Request}{\\pageref{interface_nakama_1_1_i_api_update_group_request}}{}\n\\item \\contentsline{section}{Satori.\\+IApi\\+Update\\+Properties\\+Request}{\\pageref{interface_satori_1_1_i_api_update_properties_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+User}{\\pageref{interface_nakama_1_1_console_1_1_i_api_user}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+User}{\\pageref{interface_nakama_1_1_i_api_user}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IApi\\+User\\+Group\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_api_user_group_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+User\\+Group\\+List}{\\pageref{interface_nakama_1_1_i_api_user_group_list}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Users}{\\pageref{interface_nakama_1_1_i_api_users}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validated\\+Purchase}{\\pageref{interface_nakama_1_1_i_api_validated_purchase}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validated\\+Subscription}{\\pageref{interface_nakama_1_1_i_api_validated_subscription}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Apple\\+Request}{\\pageref{interface_nakama_1_1_i_api_validate_purchase_apple_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Google\\+Request}{\\pageref{interface_nakama_1_1_i_api_validate_purchase_google_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Huawei\\+Request}{\\pageref{interface_nakama_1_1_i_api_validate_purchase_huawei_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Purchase\\+Response}{\\pageref{interface_nakama_1_1_i_api_validate_purchase_response}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Apple\\+Request}{\\pageref{interface_nakama_1_1_i_api_validate_subscription_apple_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Google\\+Request}{\\pageref{interface_nakama_1_1_i_api_validate_subscription_google_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Validate\\+Subscription\\+Response}{\\pageref{interface_nakama_1_1_i_api_validate_subscription_response}}{}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Write\\+Storage\\+Object}{\\pageref{interface_nakama_1_1_i_api_write_storage_object}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Write\\+Storage\\+Object}{\\pageref{class_nakama_1_1_write_storage_object}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IApi\\+Write\\+Storage\\+Objects\\+Request}{\\pageref{interface_nakama_1_1_i_api_write_storage_objects_request}}{}\n\\item IAsync\\+Lifetime\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Leaderboard\\+Around\\+Owner\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Channel\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Match\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Matchmaker\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Notification\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Rpc\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool}{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IChannel}{\\pageref{interface_nakama_1_1_i_channel}}{}\n\\item \\contentsline{section}{Nakama.\\+IChannel\\+Message\\+Ack}{\\pageref{interface_nakama_1_1_i_channel_message_ack}}{}\n\\item \\contentsline{section}{Nakama.\\+IChannel\\+Presence\\+Event}{\\pageref{interface_nakama_1_1_i_channel_presence_event}}{}\n\\item \\contentsline{section}{Nakama.\\+IClient}{\\pageref{interface_nakama_1_1_i_client}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Client}{\\pageref{class_nakama_1_1_client}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+IClient}{\\pageref{interface_satori_1_1_i_client}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+Client}{\\pageref{class_satori_1_1_client}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConfig\\+Warning}{\\pageref{interface_nakama_1_1_console_1_1_i_config_warning}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Account\\+Export}{\\pageref{interface_nakama_1_1_console_1_1_i_console_account_export}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Authenticate\\+Request}{\\pageref{interface_nakama_1_1_console_1_1_i_console_authenticate_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Config}{\\pageref{interface_nakama_1_1_console_1_1_i_console_config}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Console\\+Session}{\\pageref{interface_nakama_1_1_console_1_1_i_console_console_session}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Status\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_console_status_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Storage\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_console_storage_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Unlink\\+Device\\+Request}{\\pageref{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+User\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_console_user_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger}{\\pageref{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger\\+List}{\\pageref{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IConsole\\+Write\\+Storage\\+Object\\+Request}{\\pageref{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}}{}\n\\item IDisposable\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Awaited\\+Socket\\+Task\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_awaited_socket_task_test}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IGroup\\+User\\+List\\+Group\\+User}{\\pageref{interface_nakama_1_1_i_group_user_list_group_user}}{}\n\\item \\contentsline{section}{Nakama.\\+IHttp\\+Adapter}{\\pageref{interface_nakama_1_1_i_http_adapter}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Http\\+Request\\+Adapter}{\\pageref{class_nakama_1_1_http_request_adapter}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter}{\\pageref{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+IHttp\\+Adapter}{\\pageref{interface_satori_1_1_i_http_adapter}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+Http\\+Request\\+Adapter}{\\pageref{class_satori_1_1_http_request_adapter}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+ILogger}{\\pageref{interface_nakama_1_1_i_logger}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Stdout\\+Logger}{\\pageref{class_nakama_1_1_tests_1_1_stdout_logger}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+ILogger}{\\pageref{interface_satori_1_1_i_logger}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatch}{\\pageref{interface_nakama_1_1_i_match}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatchmaker\\+Matched}{\\pageref{interface_nakama_1_1_i_matchmaker_matched}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatchmaker\\+Ticket}{\\pageref{interface_nakama_1_1_i_matchmaker_ticket}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatchmaker\\+User}{\\pageref{interface_nakama_1_1_i_matchmaker_user}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatch\\+Presence\\+Event}{\\pageref{interface_nakama_1_1_i_match_presence_event}}{}\n\\item \\contentsline{section}{Nakama.\\+IMatch\\+State}{\\pageref{interface_nakama_1_1_i_match_state}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+INakamaapi\\+Account}{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaapi_account}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+INakamaconsole\\+Account}{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+INakamaconsole\\+Update\\+Account\\+Request}{\\pageref{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+INested\\+Test\\+Object}{\\pageref{interface_nakama_1_1_tests_1_1_i_nested_test_object}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty}{\\pageref{interface_nakama_1_1_i_party}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Close}{\\pageref{interface_nakama_1_1_i_party_close}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Data}{\\pageref{interface_nakama_1_1_i_party_data}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Join\\+Request}{\\pageref{interface_nakama_1_1_i_party_join_request}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Leader}{\\pageref{interface_nakama_1_1_i_party_leader}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Matchmaker\\+Ticket}{\\pageref{interface_nakama_1_1_i_party_matchmaker_ticket}}{}\n\\item \\contentsline{section}{Nakama.\\+IParty\\+Presence\\+Event}{\\pageref{interface_nakama_1_1_i_party_presence_event}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager}{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IProtobuf\\+Any}{\\pageref{interface_nakama_1_1_console_1_1_i_protobuf_any}}{}\n\\item \\contentsline{section}{Nakama.\\+IProtobuf\\+Any}{\\pageref{interface_nakama_1_1_i_protobuf_any}}{}\n\\item \\contentsline{section}{Satori.\\+IProtobuf\\+Any}{\\pageref{interface_satori_1_1_i_protobuf_any}}{}\n\\item \\contentsline{section}{Nakama.\\+IRpc\\+Status}{\\pageref{interface_nakama_1_1_i_rpc_status}}{}\n\\item \\contentsline{section}{Satori.\\+IRpc\\+Status}{\\pageref{interface_satori_1_1_i_rpc_status}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IRuntime\\+Error}{\\pageref{interface_nakama_1_1_console_1_1_i_runtime_error}}{}\n\\item \\contentsline{section}{Nakama.\\+ISession}{\\pageref{interface_nakama_1_1_i_session}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Session}{\\pageref{class_nakama_1_1_session}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+ISession}{\\pageref{interface_satori_1_1_i_session}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Satori.\\+Session}{\\pageref{class_satori_1_1_session}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+ISocket}{\\pageref{interface_nakama_1_1_i_socket}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Socket}{\\pageref{class_nakama_1_1_socket}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+ISocket\\+Adapter}{\\pageref{interface_nakama_1_1_i_socket_adapter}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Web\\+Socket\\+Adapter}{\\pageref{class_nakama_1_1_web_socket_adapter}}{}\n\\item \\contentsline{section}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}{\\pageref{class_nakama_1_1_web_socket_stdlib_adapter}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IStatus}{\\pageref{interface_nakama_1_1_i_status}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IStatus\\+List\\+Status}{\\pageref{interface_nakama_1_1_console_1_1_i_status_list_status}}{}\n\\item \\contentsline{section}{Nakama.\\+IStatus\\+Presence\\+Event}{\\pageref{interface_nakama_1_1_i_status_presence_event}}{}\n\\item \\contentsline{section}{Nakama.\\+IStream}{\\pageref{interface_nakama_1_1_i_stream}}{}\n\\item \\contentsline{section}{Nakama.\\+IStream\\+Presence\\+Event}{\\pageref{interface_nakama_1_1_i_stream_presence_event}}{}\n\\item \\contentsline{section}{Nakama.\\+IStream\\+State}{\\pageref{interface_nakama_1_1_i_stream_state}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+ITest\\+Object}{\\pageref{interface_nakama_1_1_tests_1_1_i_test_object}}{}\n\\item \\contentsline{section}{Nakama.\\+Console.\\+IUser\\+Group\\+List\\+User\\+Group}{\\pageref{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}}{}\n\\item \\contentsline{section}{Nakama.\\+IUser\\+Group\\+List\\+User\\+Group}{\\pageref{interface_nakama_1_1_i_user_group_list_user_group}}{}\n\\item \\contentsline{section}{Nakama.\\+IUser\\+Presence}{\\pageref{interface_nakama_1_1_i_user_presence}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory}{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory}{\\pageref{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}}{}\n\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+IWrite\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write}{\\pageref{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}}{}\n\\item \\contentsline{section}{Nakama.\\+IWrite\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write}{\\pageref{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Link\\+Unlink\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}}{}\n\\item Memory\\+Stream\\begin{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool.\\+Public\\+Buffer\\+Memory\\+Stream}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}}{}\n\\end{DoxyCompactList}\n\\item \\contentsline{section}{Nakama.\\+Retry}{\\pageref{class_nakama_1_1_retry}}{}\n\\item \\contentsline{section}{Nakama.\\+Retry\\+Configuration}{\\pageref{class_nakama_1_1_retry_configuration}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Retry\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_retry_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Api.\\+Rpc\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Session\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_session_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Tiny\\+Json\\+Parser\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_tiny_json_parser_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Options}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Http\\+Context}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Party\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Options}{\\pageref{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}}{}\n\\item \\contentsline{section}{Nakama.\\+Tests.\\+Socket.\\+Web\\+Socket\\+User\\+Status\\+Test}{\\pageref{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}}{}\n\\end{DoxyCompactList}\n"
  },
  {
    "path": "docs/latex/index.tex",
    "content": "\\label{index_md_README}%\n\\Hypertarget{index_md_README}%\n\\hypertarget{index_autotoc_md78}{}\\doxysection{Nakama}\\label{index_autotoc_md78}\n\\begin{quote}\n.NET client for \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server written in C\\#. \\end{quote}\n\\href{https://github.com/heroiclabs/nakama}{\\texttt{ Nakama}} is an open-\\/source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much \\href{https://heroiclabs.com}{\\texttt{ more}}.\n\nThis client implements the full API and socket options with the server. It\\textquotesingle{}s written in C\\# with minimal dependencies to support Unity, Xamarin, Godot, XNA, and other engines and frameworks.\n\nFull documentation is online -\\/ \\href{https://heroiclabs.com/docs}{\\texttt{ https\\+://heroiclabs.\\+com/docs}}\\hypertarget{index_autotoc_md79}{}\\doxysubsection{Getting Started}\\label{index_autotoc_md79}\nYou\\textquotesingle{}ll need to setup the server and database before you can connect with the client. The simplest way is to use Docker but have a look at the \\href{https://github.com/heroiclabs/nakama\\#getting-started}{\\texttt{ server documentation}} for other options.\n\n\n\\begin{DoxyEnumerate}\n\\item Install and run the servers. Follow these \\href{https://heroiclabs.com/docs/install-docker-quickstart}{\\texttt{ instructions}}.\n\\item Download the client from the \\href{https://github.com/heroiclabs/nakama-dotnet/releases}{\\texttt{ releases page}} and import it into your project. You can also build from source.\n\\item Use the connection credentials to build a client object.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{\\textcolor{comment}{// using Nakama;}}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} scheme = \\textcolor{stringliteral}{\"{}http\"{}};}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} host = \\textcolor{stringliteral}{\"{}127.0.0.1\"{}};}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{int} port = 7350;}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} serverKey = \\textcolor{stringliteral}{\"{}defaultkey\"{}};}\n\\DoxyCodeLine{var client = \\textcolor{keyword}{new} Client(scheme, host, port, serverKey);}\n\n\\end{DoxyCode}\n\n\\end{DoxyEnumerate}\\hypertarget{index_autotoc_md80}{}\\doxysubsection{Usage}\\label{index_autotoc_md80}\nThe client object has many methods to execute various features in the server or open realtime socket connections with the server.\\hypertarget{index_autotoc_md81}{}\\doxysubsubsection{Authenticate}\\label{index_autotoc_md81}\nThere\\textquotesingle{}s a variety of ways to \\href{https://heroiclabs.com/docs/authentication}{\\texttt{ authenticate}} with the server. Authentication can create a user if they don\\textquotesingle{}t already exist with those credentials. It\\textquotesingle{}s also easy to authenticate with a social profile from Google Play Games, Facebook, Game Center, etc.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var email = \\textcolor{stringliteral}{\"{}super@heroes.com\"{}};}\n\\DoxyCodeLine{var password = \\textcolor{stringliteral}{\"{}batsignal\"{}};}\n\\DoxyCodeLine{var session = await client.AuthenticateEmailAsync(email, password);}\n\\DoxyCodeLine{System.Console.WriteLine(session);}\n\n\\end{DoxyCode}\n\\hypertarget{index_autotoc_md82}{}\\doxysubsubsection{Sessions}\\label{index_autotoc_md82}\nWhen authenticated the server responds with an auth token (JWT) which contains useful properties and gets deserialized into a {\\ttfamily Session} object.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{System.Console.WriteLine(session.AuthToken); \\textcolor{comment}{// raw JWT token}}\n\\DoxyCodeLine{System.Console.WriteLine(session.RefreshToken); \\textcolor{comment}{// raw JWT token.}}\n\\DoxyCodeLine{System.Console.WriteLine(session.UserId);}\n\\DoxyCodeLine{System.Console.WriteLine(session.Username);}\n\\DoxyCodeLine{System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session has expired: \\{0\\}\"{}}, session.IsExpired);}\n\\DoxyCodeLine{System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session expires at: \\{0\\}\"{}}, session.ExpireTime);}\n\n\\end{DoxyCode}\n\n\nIt is recommended to store the auth token from the session and check at startup if it has expired. If the token has expired you must reauthenticate. The expiry time of the token can be changed as a setting in the server.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var authToken = \\textcolor{stringliteral}{\"{}restored from somewhere\"{}};}\n\\DoxyCodeLine{var refreshToken = \\textcolor{stringliteral}{\"{}restored from somewhere\"{}};}\n\\DoxyCodeLine{var session = Session.Restore(authToken, refreshToken);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{\\textcolor{comment}{// Check whether a session is close to expiry.}}\n\\DoxyCodeLine{\\textcolor{keywordflow}{if} (session.HasExpired(DateTime.UtcNow.AddDays(1)))}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    \\textcolor{keywordflow}{try}}\n\\DoxyCodeLine{    \\{}\n\\DoxyCodeLine{        session = await client.SessionRefreshAsync(session);}\n\\DoxyCodeLine{    \\}}\n\\DoxyCodeLine{    \\textcolor{keywordflow}{catch} (ApiResponseException e)}\n\\DoxyCodeLine{    \\{}\n\\DoxyCodeLine{        System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session can no longer be refreshed. Must reauthenticate!\"{}});}\n\\DoxyCodeLine{    \\}}\n\\DoxyCodeLine{\\}}\n\n\\end{DoxyCode}\n\n\n\\+:warning\\+: NOTE\\+: The length of the lifetime of a session can be set on the server with the \\char`\\\"{}-\\/-\\/session.\\+token\\+\\_\\+expiry\\+\\_\\+sec\\char`\\\"{} command flag argument. The lifetime of the refresh token for a session can be set on the server with the \\char`\\\"{}-\\/-\\/session.\\+refresh\\+\\_\\+token\\+\\_\\+expiry\\+\\_\\+sec\\char`\\\"{} command flag.\\hypertarget{index_autotoc_md83}{}\\doxysubsubsection{Requests}\\label{index_autotoc_md83}\nThe client includes lots of builtin APIs for various features of the game server. These can be accessed with the async methods. It can also call custom logic in RPC functions on the server. These can also be executed with a socket object.\n\nAll requests are sent with a session object which authorizes the client.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session);}\n\\DoxyCodeLine{System.Console.WriteLine(account.User.Id);}\n\\DoxyCodeLine{System.Console.WriteLine(account.User.Username);}\n\\DoxyCodeLine{System.Console.WriteLine(account.Wallet);}\n\n\\end{DoxyCode}\n\n\nRequests can be supplied with a retry configurations in cases of transient network or server errors.\n\nA single configuration can be used to control all request retry behavior\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var retryConfiguration = \\textcolor{keyword}{new} RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate \\{ System.Console.Writeline(\\textcolor{stringliteral}{\"{}about to retry.\"{}}); \\});}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{client.GlobalRetryConfiguration = retryConfiguration;}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session);}\n\n\\end{DoxyCode}\n\n\nOr, the configuration can be supplied on a per-\\/request basis\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var retryConfiguration = \\textcolor{keyword}{new} RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate \\{ System.Console.Writeline(\\textcolor{stringliteral}{\"{}about to retry.\"{}}); \\});}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session, retryConfiguration);}\n\n\\end{DoxyCode}\n\n\nPer-\\/request retry configurations override the global retry configuration.\n\nRequests also can be supplied with a cancellation token if you need to cancel them mid-\\/flight\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var canceller = \\textcolor{keyword}{new} CancellationTokenSource();}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session, retryConfiguration: \\textcolor{keyword}{null}, canceller);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{await Task.Delay(25);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{canceller.Cancel(); \\textcolor{comment}{// will raise a TaskCanceledException}}\n\n\\end{DoxyCode}\n\\hypertarget{index_autotoc_md84}{}\\doxysubsubsection{Socket}\\label{index_autotoc_md84}\nThe client can create one or more sockets with the server. Each socket can have it\\textquotesingle{}s own event listeners registered for responses received from the server.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var socket = Socket.From(client);}\n\\DoxyCodeLine{socket.Connected += () =>}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Socket connected.\"{}});}\n\\DoxyCodeLine{\\};}\n\\DoxyCodeLine{socket.Closed += () =>}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Socket closed.\"{}});}\n\\DoxyCodeLine{\\};}\n\\DoxyCodeLine{socket.ReceivedError += e => System.Console.WriteLine(e);}\n\\DoxyCodeLine{await socket.ConnectAsync(session);}\n\n\\end{DoxyCode}\n\\hypertarget{index_autotoc_md85}{}\\doxysubsection{Contribute}\\label{index_autotoc_md85}\nThe development roadmap is managed as Git\\+Hub issues and pull requests are welcome. If you\\textquotesingle{}re interested to improve the code please open an issue to discuss the changes or drop in and discuss it in the \\href{https://forum.heroiclabs.com}{\\texttt{ community forum}}.\\hypertarget{index_autotoc_md86}{}\\doxysubsubsection{Source Builds}\\label{index_autotoc_md86}\nThe codebase can be built with the \\href{https://docs.microsoft.com/en-us/dotnet/core/tools}{\\texttt{ Dotnet CLI}}. All dependencies are downloaded at build time with Nuget.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet build src/Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\n\nFor release builds use\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet build -\\/c Release /p:AssemblyVersion=2.0.0.0 Nakama/Nakama.csproj}\n\\DoxyCodeLine{// For Nuget packaging}\n\\DoxyCodeLine{dotnet pack -\\/p:AssemblyVersion=2.0.0.0 -\\/p:PackageVersion=2.0.0 -\\/c Release Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\\hypertarget{index_autotoc_md87}{}\\doxysubsubsection{Run Tests}\\label{index_autotoc_md87}\nTo run tests you will need to run the server and database. Most tests are written as integration tests which execute against the server. A quick approach we use with our test workflow is to use the Docker compose file described in the \\href{https://heroiclabs.com/docs/install-docker-quickstart}{\\texttt{ documentation}}.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{docker-\\/compose -\\/f ./docker-\\/compose-\\/postgres.yml up}\n\\DoxyCodeLine{dotnet test tests/Nakama.Tests/Nakama.Tests.csproj}\n\n\\end{DoxyCode}\n\n\nTo run a specific test, pass the fully qualified name of the method to {\\ttfamily dotnet test -\\/-\\/filter}\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet test -\\/-\\/filter \"{}Nakama.Tests.Api.GroupTest.ShouldPromoteAndDemoteUsers\"{}}\n\n\\end{DoxyCode}\n\n\nIf you\\textquotesingle{}d like to attach a Visual Studio debugger to a test, set {\\ttfamily VSTEST\\+\\_\\+\\+HOST\\+\\_\\+\\+DEBUG} to {\\ttfamily true} in your shell environment and run {\\ttfamily dotnet test}. Attach the debugger to the process identified by the console.\\hypertarget{index_autotoc_md88}{}\\doxysubsubsection{Generate Docs}\\label{index_autotoc_md88}\nnakama-\\/dotnet API docs are generated with Doxygen and deployed to Git\\+Hub pages.\n\nWhen changing the API comments, rerun Doxygen and commit the changes in {\\ttfamily docs/$\\ast$}.\n\nTo run Doxygen\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{brew install doxygen}\n\\DoxyCodeLine{cd docs/}\n\\DoxyCodeLine{doxygen}\n\n\\end{DoxyCode}\n\\hypertarget{index_autotoc_md89}{}\\doxysection{Satori}\\label{index_autotoc_md89}\nThis repository also contains the \\mbox{\\hyperlink{namespace_satori}{Satori}} client for use with the \\href{https://heroiclabs.com/satori/}{\\texttt{ Satori Liveops Server}}.\n\nIt follows the same authentication patterns as \\mbox{\\hyperlink{namespace_nakama}{Nakama}} but is used for managing your live game via sending analytics events, updating properties, getting feature flags and experiments, and more.\n\nIn order to run tests for \\mbox{\\hyperlink{namespace_satori}{Satori}}, create sample data via the \\mbox{\\hyperlink{namespace_satori}{Satori}} console.\n\nThen run {\\ttfamily dotnet test} from this directory.\\hypertarget{index_autotoc_md90}{}\\doxysection{Licenses}\\label{index_autotoc_md90}\nThis project is licensed under the \\href{https://github.com/heroiclabs/nakama-dotnet/blob/master/LICENSE}{\\texttt{ Apache-\\/2 License}}.\\hypertarget{index_autotoc_md91}{}\\doxysection{Special Thanks}\\label{index_autotoc_md91}\nThanks to Alex Parker (@zanders3) for the excellent \\href{https://github.com/zanders3/json}{\\texttt{ json}} library and David Haig (@ninjasource) for \\href{https://github.com/ninjasource/Ninja.WebSockets}{\\texttt{ Ninja.\\+Web\\+Sockets}}. "
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_account_device.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_account_device}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Account\\+Device Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_account_device}\\index{Nakama.Console.IApiAccountDevice@{Nakama.Console.IApiAccountDevice}}\n\n\nSend a device to the server. Used with authenticate/link/unlink and user.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Account\\+Device.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_account_device_a332d88e255f8ec01249173be1cf0e133}\\label{interface_nakama_1_1_console_1_1_i_api_account_device_a332d88e255f8ec01249173be1cf0e133}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A device identifier. Should be obtained by a platform-\\/specific device API.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_account_device_a84d8d865a0853bfb55a78e991a92aa90}\\label{interface_nakama_1_1_console_1_1_i_api_account_device_a84d8d865a0853bfb55a78e991a92aa90}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a device to the server. Used with authenticate/link/unlink and user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_channel_message.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Channel\\+Message Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_channel_message}\\index{Nakama.Console.IApiChannelMessage@{Nakama.Console.IApiChannelMessage}}\n\n\nA message sent on a channel.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Channel\\+Message.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_aefbb1055e9337a302a3177932c85c050}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_aefbb1055e9337a302a3177932c85c050}} \nstring {\\bfseries Channel\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The channel this message belongs to.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a192e09a3d4af18616bc0b65669e2b49b}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a192e09a3d4af18616bc0b65669e2b49b}} \nint {\\bfseries Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The code representing a message type or category.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a45a5c2ddbd0eef159232202f2ebeda94}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a45a5c2ddbd0eef159232202f2ebeda94}} \nstring {\\bfseries Content}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The content payload.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_aa7bb977779ca2100bad6ce4cd42dd4c6}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_aa7bb977779ca2100bad6ce4cd42dd4c6}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a7f964b4eb85c2b4cb9789268d22e4e74}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a7f964b4eb85c2b4cb9789268d22e4e74}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group, or an empty string if this message was not sent through a group channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a3b31094377741c16f421caa584904bb3}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a3b31094377741c16f421caa584904bb3}} \nstring {\\bfseries Message\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique ID of this message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a4fbb0e6d9e6de4f17f347c8e34ebe366}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a4fbb0e6d9e6de4f17f347c8e34ebe366}} \nbool {\\bfseries Persistent}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the message was persisted to the channel\\textquotesingle{}s history, false otherwise.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a4dfdc0ecc3181068cd4270cfe5e7bf83}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a4dfdc0ecc3181068cd4270cfe5e7bf83}} \nstring {\\bfseries Room\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the chat room, or an empty string if this message was not sent through a chat room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a3ae8c0a397dc2efe2160d7c5655b493a}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a3ae8c0a397dc2efe2160d7c5655b493a}} \nstring {\\bfseries Sender\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Message sender, usually a user ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_af1eef5f9c860e13751f0e3383a56ed3c}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_af1eef5f9c860e13751f0e3383a56ed3c}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_aa6549e653010913d8611c6ee98a7a580}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_aa6549e653010913d8611c6ee98a7a580}} \nstring {\\bfseries User\\+Id\\+One}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_abaab7698f30ead8c7bc6ffb0ba8169ee}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_abaab7698f30ead8c7bc6ffb0ba8169ee}} \nstring {\\bfseries User\\+Id\\+Two}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_channel_message_a0d14740909d4c062f1fc805b5226b6a7}\\label{interface_nakama_1_1_console_1_1_i_api_channel_message_a0d14740909d4c062f1fc805b5226b6a7}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the message sender, if any.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA message sent on a channel.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_friend.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_friend}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Friend Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_friend}\\index{Nakama.Console.IApiFriend@{Nakama.Console.IApiFriend}}\n\n\nA friend of a user.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Friend.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_friend_a0da515066a7c41f9165f7f02389d45be}\\label{interface_nakama_1_1_console_1_1_i_api_friend_a0da515066a7c41f9165f7f02389d45be}} \nint {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The friend status.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_friend_a8c290e4497a6c1ee1f46fdd6a4ff3694}\\label{interface_nakama_1_1_console_1_1_i_api_friend_a8c290e4497a6c1ee1f46fdd6a4ff3694}} \n\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user}{IApi\\+User}} {\\bfseries User}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA friend of a user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_friend_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_friend_list}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Friend\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_friend_list}\\index{Nakama.Console.IApiFriendList@{Nakama.Console.IApiFriendList}}\n\n\nA collection of zero or more friends of the user.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Friend\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_friend_list_a9e8d3286c1e5e9d169820dcf6443dc5f}\\label{interface_nakama_1_1_console_1_1_i_api_friend_list_a9e8d3286c1e5e9d169820dcf6443dc5f}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_friend_list_afe569f7085539b22d1a405d610084cf5}\\label{interface_nakama_1_1_console_1_1_i_api_friend_list_afe569f7085539b22d1a405d610084cf5}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend}{IApi\\+Friend}} $>$ {\\bfseries Friends}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Friend objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA collection of zero or more friends of the user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_group.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_group}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Group Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_group}\\index{Nakama.Console.IApiGroup@{Nakama.Console.IApiGroup}}\n\n\nA group in the server.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Group.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a8b27cbc95648fcd0b276347ea091aea8}\\label{interface_nakama_1_1_console_1_1_i_api_group_a8b27cbc95648fcd0b276347ea091aea8}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_aea2ef7f74c874cae6cce76c7f2e03c67}\\label{interface_nakama_1_1_console_1_1_i_api_group_aea2ef7f74c874cae6cce76c7f2e03c67}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the group was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a585323f5cd38592a821f5d9580f34c39}\\label{interface_nakama_1_1_console_1_1_i_api_group_a585323f5cd38592a821f5d9580f34c39}} \nstring {\\bfseries Creator\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of the user who created the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a071adf7945080a8026c7605704878df4}\\label{interface_nakama_1_1_console_1_1_i_api_group_a071adf7945080a8026c7605704878df4}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A description for the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a70989afa906fa241926ae4d8ae21f5be}\\label{interface_nakama_1_1_console_1_1_i_api_group_a70989afa906fa241926ae4d8ae21f5be}} \nint {\\bfseries Edge\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current count of all members in the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a7c8266ce04201582c292c47b3ca934ce}\\label{interface_nakama_1_1_console_1_1_i_api_group_a7c8266ce04201582c292c47b3ca934ce}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of a group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a3391b2788b8e00e72c5eaa26fcae37a6}\\label{interface_nakama_1_1_console_1_1_i_api_group_a3391b2788b8e00e72c5eaa26fcae37a6}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_a30506924b9edec0d4fd08b3e602bc4f5}\\label{interface_nakama_1_1_console_1_1_i_api_group_a30506924b9edec0d4fd08b3e602bc4f5}} \nint {\\bfseries Max\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of members allowed.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_af73b1e2498e614cd2d2ab0fc1554cad8}\\label{interface_nakama_1_1_console_1_1_i_api_group_af73b1e2498e614cd2d2ab0fc1554cad8}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Additional information stored as a JSON object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_ad06404133c69d5bb8447fc6d741d1303}\\label{interface_nakama_1_1_console_1_1_i_api_group_ad06404133c69d5bb8447fc6d741d1303}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique name of the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_ab02fb2c7614911231cf9779a5d15c529}\\label{interface_nakama_1_1_console_1_1_i_api_group_ab02fb2c7614911231cf9779a5d15c529}} \nbool {\\bfseries Open}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Anyone can join open groups, otherwise only admins can accept members.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_group_abbbd22fa5df2036ecad22197a40a44c8}\\label{interface_nakama_1_1_console_1_1_i_api_group_abbbd22fa5df2036ecad22197a40a44c8}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the group was last updated.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA group in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_leaderboard_record.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Leaderboard\\+Record Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}\\index{Nakama.Console.IApiLeaderboardRecord@{Nakama.Console.IApiLeaderboardRecord}}\n\n\nRepresents a complete leaderboard record with all scores and associated metadata.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Leaderboard\\+Record.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_af4136c3f77e0c7dbc63c1c5ea78f0f04}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_af4136c3f77e0c7dbc63c1c5ea78f0f04}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_aa5fa79acece56b4c28e2e596db5d8af3}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_aa5fa79acece56b4c28e2e596db5d8af3}} \nstring {\\bfseries Expiry\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record expires.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a46ee642ea9931908910e06f2b85783d1}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a46ee642ea9931908910e06f2b85783d1}} \nstring {\\bfseries Leaderboard\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the leaderboard this score belongs to.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_aca0a7ff0d76f0bc5af0030e81e13c4b1}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_aca0a7ff0d76f0bc5af0030e81e13c4b1}} \nint {\\bfseries Max\\+Num\\+Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of score updates allowed by the owner.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a3894b31e8b47c3f5b145ddce285f946e}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a3894b31e8b47c3f5b145ddce285f946e}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Metadata.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_af6f57c01af5acb5c311940e6ac3852e3}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_af6f57c01af5acb5c311940e6ac3852e3}} \nint {\\bfseries Num\\+Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The number of submissions to this score record.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a3688e871dc2c924d90abd682e49c888d}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a3688e871dc2c924d90abd682e49c888d}} \nstring {\\bfseries Owner\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the score owner, usually a user or group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a8b6fe15ce1ef65f85b99d8881a0ab07e}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a8b6fe15ce1ef65f85b99d8881a0ab07e}} \nstring {\\bfseries Rank}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The rank of this record.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_ad99e6355419cdf19385b3a7980b20807}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_ad99e6355419cdf19385b3a7980b20807}} \nstring {\\bfseries Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The score value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a8adc2b089935523b0c0ba298605a98e7}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a8adc2b089935523b0c0ba298605a98e7}} \nstring {\\bfseries Subscore}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em An optional subscore value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_ada7130274d01b270c3943314da01c2d4}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_ada7130274d01b270c3943314da01c2d4}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record was updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a9714cff05af36be455a99b2c46d34dbb}\\label{interface_nakama_1_1_console_1_1_i_api_leaderboard_record_a9714cff05af36be455a99b2c46d34dbb}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the score owner, if the owner is a user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRepresents a complete leaderboard record with all scores and associated metadata.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_notification.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_notification}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Notification Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_notification}\\index{Nakama.Console.IApiNotification@{Nakama.Console.IApiNotification}}\n\n\nA notification in the server.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Notification.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_a312d42df4ef08dc9b62821167f534d8f}\\label{interface_nakama_1_1_console_1_1_i_api_notification_a312d42df4ef08dc9b62821167f534d8f}} \nint {\\bfseries Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Category code for this notification.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_a1ef19605de607fbdb6596e44fc9cdf53}\\label{interface_nakama_1_1_console_1_1_i_api_notification_a1ef19605de607fbdb6596e44fc9cdf53}} \nstring {\\bfseries Content}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Content of the notification in JSON.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_ab1d5e01d9064e9e34963884f39d23dbf}\\label{interface_nakama_1_1_console_1_1_i_api_notification_ab1d5e01d9064e9e34963884f39d23dbf}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the notification was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_ad05b14a384173eaf88e87733f277b0a0}\\label{interface_nakama_1_1_console_1_1_i_api_notification_ad05b14a384173eaf88e87733f277b0a0}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em ID of the Notification.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_a486a79e0dc9fe285041284ace0c2e491}\\label{interface_nakama_1_1_console_1_1_i_api_notification_a486a79e0dc9fe285041284ace0c2e491}} \nbool {\\bfseries Persistent}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if this notification was persisted to the database.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_a9022630f97359e1438e8a795e5131492}\\label{interface_nakama_1_1_console_1_1_i_api_notification_a9022630f97359e1438e8a795e5131492}} \nstring {\\bfseries Sender\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em ID of the sender, if a user. Otherwise \\textquotesingle{}null\\textquotesingle{}.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_notification_a3cb86317ceb89d5b5093b64e7b11217b}\\label{interface_nakama_1_1_console_1_1_i_api_notification_a3cb86317ceb89d5b5093b64e7b11217b}} \nstring {\\bfseries Subject}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Subject of the notification.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA notification in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_storage_object.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Storage\\+Object Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_storage_object}\\index{Nakama.Console.IApiStorageObject@{Nakama.Console.IApiStorageObject}}\n\n\nAn object within the storage engine.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Storage\\+Object.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_a817cbd561f009c92fd7010985c533998}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_a817cbd561f009c92fd7010985c533998}} \nstring {\\bfseries Collection}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_a7341668562d7762c715d49137af1badb}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_a7341668562d7762c715d49137af1badb}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the object was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_aea52a7568376c289350b1de1e2c08995}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_aea52a7568376c289350b1de1e2c08995}} \nstring {\\bfseries Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_aecdd20d5a5fb89f87e76372687b7bf4d}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_aecdd20d5a5fb89f87e76372687b7bf4d}} \nint {\\bfseries Permission\\+Read}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The read access permissions for the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_a977890a58ece6639393815334c7bc2af}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_a977890a58ece6639393815334c7bc2af}} \nint {\\bfseries Permission\\+Write}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The write access permissions for the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_aedc1b5f56b33928bf34204f4e9817aa7}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_aedc1b5f56b33928bf34204f4e9817aa7}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the object was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_a4995265775d9f2d316a70950b0c45a92}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_a4995265775d9f2d316a70950b0c45a92}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user owner of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ab0c2db9caa28372e753e5f338ddce8ba}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ab0c2db9caa28372e753e5f338ddce8ba}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The value of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ad810db66ec385c48e274098ef8c3861a}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ad810db66ec385c48e274098ef8c3861a}} \nstring {\\bfseries Version}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn object within the storage engine.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_storage_object_ack.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+Storage\\+Object\\+Ack Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}\\index{Nakama.Console.IApiStorageObjectAck@{Nakama.Console.IApiStorageObjectAck}}\n\n\nA storage acknowledgement.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+Storage\\+Object\\+Ack.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_ae12dd7f9b4666b1ef0733a6ae5a44c7f}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_ae12dd7f9b4666b1ef0733a6ae5a44c7f}} \nstring {\\bfseries Collection}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_aa1e7059dd9e441ba5aa0c1757b29b7dc}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_aa1e7059dd9e441ba5aa0c1757b29b7dc}} \nstring {\\bfseries Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_acd898f2dbcf1799968dd68351aef60db}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_acd898f2dbcf1799968dd68351aef60db}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The owner of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_a71c8c791ec77c38ab93b9bee1082d28e}\\label{interface_nakama_1_1_console_1_1_i_api_storage_object_ack_a71c8c791ec77c38ab93b9bee1082d28e}} \nstring {\\bfseries Version}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA storage acknowledgement.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_user.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_user}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+User Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_user}\\index{Nakama.Console.IApiUser@{Nakama.Console.IApiUser}}\n\n\nA user in the server.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+User.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a901553cfe0359184b304752b0c5ba78e}\\label{interface_nakama_1_1_console_1_1_i_api_user_a901553cfe0359184b304752b0c5ba78e}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a805f65da53508c7b89d6460267106442}\\label{interface_nakama_1_1_console_1_1_i_api_user_a805f65da53508c7b89d6460267106442}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a891e29fedcefbde0f865785a55632298}\\label{interface_nakama_1_1_console_1_1_i_api_user_a891e29fedcefbde0f865785a55632298}} \nstring {\\bfseries Display\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The display name of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a7aaf807ddb8550042a550d8ec6ea94ba}\\label{interface_nakama_1_1_console_1_1_i_api_user_a7aaf807ddb8550042a550d8ec6ea94ba}} \nint {\\bfseries Edge\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Number of related edges to this user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a62e1431224e82c440c891aa6d821acde}\\label{interface_nakama_1_1_console_1_1_i_api_user_a62e1431224e82c440c891aa6d821acde}} \nstring {\\bfseries Facebook\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Facebook id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a9cc93e7076c5524be06ac8cc8b57c97d}\\label{interface_nakama_1_1_console_1_1_i_api_user_a9cc93e7076c5524be06ac8cc8b57c97d}} \nstring {\\bfseries Facebook\\+Instant\\+Game\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Facebook Instant Game id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a0f18a35aaf831fa9843332beda01a995}\\label{interface_nakama_1_1_console_1_1_i_api_user_a0f18a35aaf831fa9843332beda01a995}} \nstring {\\bfseries Gamecenter\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Apple Game Center in of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a21b77e07dde3fa0a46ec3d6ecf766185}\\label{interface_nakama_1_1_console_1_1_i_api_user_a21b77e07dde3fa0a46ec3d6ecf766185}} \nstring {\\bfseries Google\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Google id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_acc3d21e1c88992c40ecacb9c037b4555}\\label{interface_nakama_1_1_console_1_1_i_api_user_acc3d21e1c88992c40ecacb9c037b4555}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a02f2d7c581f1e5f0ab14b7ba25564595}\\label{interface_nakama_1_1_console_1_1_i_api_user_a02f2d7c581f1e5f0ab14b7ba25564595}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_ac6e175fd7eb29c7ddb4161e1440091bd}\\label{interface_nakama_1_1_console_1_1_i_api_user_ac6e175fd7eb29c7ddb4161e1440091bd}} \nstring {\\bfseries Location}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The location set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a824ef8f0a6b71a797993bb7d312853a7}\\label{interface_nakama_1_1_console_1_1_i_api_user_a824ef8f0a6b71a797993bb7d312853a7}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Additional information stored as a JSON object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a8e3d99268d2c5833e12141576283305d}\\label{interface_nakama_1_1_console_1_1_i_api_user_a8e3d99268d2c5833e12141576283305d}} \nbool {\\bfseries Online}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Indicates whether the user is currently online.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_aaf7cc670cdc069ed911ccac9766dd65a}\\label{interface_nakama_1_1_console_1_1_i_api_user_aaf7cc670cdc069ed911ccac9766dd65a}} \nstring {\\bfseries Steam\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Steam id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_ab7bc58732b4f2fdcf86d3e59e54fccb5}\\label{interface_nakama_1_1_console_1_1_i_api_user_ab7bc58732b4f2fdcf86d3e59e54fccb5}} \nstring {\\bfseries Timezone}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The timezone set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_afa69bac4d2ac21fcb18b8df53b44646f}\\label{interface_nakama_1_1_console_1_1_i_api_user_afa69bac4d2ac21fcb18b8df53b44646f}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_a9ad3492dc8be24a6cf9a1a9756bee5cf}\\label{interface_nakama_1_1_console_1_1_i_api_user_a9ad3492dc8be24a6cf9a1a9756bee5cf}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA user in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_api_user_group_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_api_user_group_list}{}\\doxysection{Nakama.\\+Console.\\+IApi\\+User\\+Group\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_api_user_group_list}\\index{Nakama.Console.IApiUserGroupList@{Nakama.Console.IApiUserGroupList}}\n\n\nA list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Api\\+User\\+Group\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_group_list_a9f9e577a0a6a8b937eb8fc1e0fefe933}\\label{interface_nakama_1_1_console_1_1_i_api_user_group_list_a9f9e577a0a6a8b937eb8fc1e0fefe933}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_api_user_group_list_aeb7ac2189e53365fbdc7f0401b7fa66e}\\label{interface_nakama_1_1_console_1_1_i_api_user_group_list_aeb7ac2189e53365fbdc7f0401b7fa66e}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}{IUser\\+Group\\+List\\+User\\+Group}} $>$ {\\bfseries User\\+Groups}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Group-\\/role pairs for a user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_config_warning.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_config_warning}{}\\doxysection{Nakama.\\+Console.\\+IConfig\\+Warning Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_config_warning}\\index{Nakama.Console.IConfigWarning@{Nakama.Console.IConfigWarning}}\n\n\nA warning for a configuration field.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Config\\+Warning.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_config_warning_aeb4704db3565ef185d5806dc55b43406}\\label{interface_nakama_1_1_console_1_1_i_config_warning_aeb4704db3565ef185d5806dc55b43406}} \nstring {\\bfseries Field}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The config field this warning is for in a JSON pointer format.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_config_warning_ac36d557d92a6e1e9022f246b50e4a61b}\\label{interface_nakama_1_1_console_1_1_i_config_warning_ac36d557d92a6e1e9022f246b50e4a61b}} \nstring {\\bfseries Message}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Warning message text.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA warning for a configuration field.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_account_export.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Account\\+Export Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_account_export}\\index{Nakama.Console.IConsoleAccountExport@{Nakama.Console.IConsoleAccountExport}}\n\n\nAn export of all information stored for a user account.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Account\\+Export.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a4048b1250af7682f706940712d2f1c65}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a4048b1250af7682f706940712d2f1c65}} \n\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaapi_account}{INakamaapi\\+Account}} {\\bfseries Account}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s account details.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a2e90ee045efaa10f7f6354a8cafbc088}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a2e90ee045efaa10f7f6354a8cafbc088}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend}{IApi\\+Friend}} $>$ {\\bfseries Friends}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s friends.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a24dfc914775897b3430825c9b09ca021}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a24dfc914775897b3430825c9b09ca021}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_group}{IApi\\+Group}} $>$ {\\bfseries Groups}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s groups.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_ad1521901874cd1d3b0c25cb52d3c9856}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_ad1521901874cd1d3b0c25cb52d3c9856}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ {\\bfseries Leaderboard\\+Records}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s leaderboard records.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a0cdacfc37d84217e3bf612b0d40d9920}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a0cdacfc37d84217e3bf612b0d40d9920}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}} $>$ {\\bfseries Messages}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s chat messages.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a02eaeb434c9cf9599934493b44c89108}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a02eaeb434c9cf9599934493b44c89108}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_notification}{IApi\\+Notification}} $>$ {\\bfseries Notifications}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s notifications.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_ab0f2aa7828a1dd4314dda8ee10081efc}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_ab0f2aa7828a1dd4314dda8ee10081efc}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}} $>$ {\\bfseries Objects}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s storage.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_account_export_a8213347c0307a8ded82c9b4b0b6f9cd9}\\label{interface_nakama_1_1_console_1_1_i_console_account_export_a8213347c0307a8ded82c9b4b0b6f9cd9}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}{IConsole\\+Wallet\\+Ledger}} $>$ {\\bfseries Wallet\\+Ledgers}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s wallet ledger items.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn export of all information stored for a user account.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_authenticate_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_authenticate_request}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Authenticate\\+Request Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_authenticate_request}\\index{Nakama.Console.IConsoleAuthenticateRequest@{Nakama.Console.IConsoleAuthenticateRequest}}\n\n\nAuthenticate a console user with username and password.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Authenticate\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_authenticate_request_a0051d14e775850b549a4ac9d3c038966}\\label{interface_nakama_1_1_console_1_1_i_console_authenticate_request_a0051d14e775850b549a4ac9d3c038966}} \nstring {\\bfseries Password}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The password of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_authenticate_request_a0787ad23510e67a73448da2d68470419}\\label{interface_nakama_1_1_console_1_1_i_console_authenticate_request_a0787ad23510e67a73448da2d68470419}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAuthenticate a console user with username and password.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_config.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_config}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Config Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_config}\\index{Nakama.Console.IConsoleConfig@{Nakama.Console.IConsoleConfig}}\n\n\nThe current server configuration and any associated warnings.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Config.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_config_afc2f390d0e4742b9320b35a74b383d79}\\label{interface_nakama_1_1_console_1_1_i_console_config_afc2f390d0e4742b9320b35a74b383d79}} \nstring {\\bfseries Config}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em JSON-\\/encoded active server configuration.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_config_af8a88d86a7e574dd64cad759e06e1e35}{Server\\+Version}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_config_acd5f7853005eda28e5a83e3927231da8}\\label{interface_nakama_1_1_console_1_1_i_console_config_acd5f7853005eda28e5a83e3927231da8}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_config_warning}{IConfig\\+Warning}} $>$ {\\bfseries Warnings}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Any warnings about the current config.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe current server configuration and any associated warnings.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_config_af8a88d86a7e574dd64cad759e06e1e35}\\label{interface_nakama_1_1_console_1_1_i_console_config_af8a88d86a7e574dd64cad759e06e1e35}} \n\\index{Nakama.Console.IConsoleConfig@{Nakama.Console.IConsoleConfig}!ServerVersion@{ServerVersion}}\n\\index{ServerVersion@{ServerVersion}!Nakama.Console.IConsoleConfig@{Nakama.Console.IConsoleConfig}}\n\\doxysubsubsection{\\texorpdfstring{ServerVersion}{ServerVersion}}\n{\\footnotesize\\ttfamily string Nakama.\\+Console.\\+IConsole\\+Config.\\+Server\\+Version\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_console_session.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_console_session}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Console\\+Session Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_console_session}\\index{Nakama.Console.IConsoleConsoleSession@{Nakama.Console.IConsoleConsoleSession}}\n\n\nA console user session.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Console\\+Session.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_console_session_a28549381b6f0e7b7cc92a9d9cf819ae2}\\label{interface_nakama_1_1_console_1_1_i_console_console_session_a28549381b6f0e7b7cc92a9d9cf819ae2}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A session token (JWT) for the console user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA console user session.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_status_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_status_list}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Status\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_status_list}\\index{Nakama.Console.IConsoleStatusList@{Nakama.Console.IConsoleStatusList}}\n\n\nList of nodes and their stats.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Status\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_status_list_a0323e23a836cceafff5e4f279802889d}\\label{interface_nakama_1_1_console_1_1_i_console_status_list_a0323e23a836cceafff5e4f279802889d}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_status_list_status}{IStatus\\+List\\+Status}} $>$ {\\bfseries Nodes}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em List of nodes and their stats.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList of nodes and their stats.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_storage_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_storage_list}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Storage\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_storage_list}\\index{Nakama.Console.IConsoleStorageList@{Nakama.Console.IConsoleStorageList}}\n\n\nList of storage objects.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Storage\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_storage_list_af93125ef6c4dbd1dd8027e5d10a30238}\\label{interface_nakama_1_1_console_1_1_i_console_storage_list_af93125ef6c4dbd1dd8027e5d10a30238}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}} $>$ {\\bfseries Objects}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em List of storage objects matching list/filter operation.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_storage_list_ae3edcfd19bcde4d6bb3162e9728a1454}\\label{interface_nakama_1_1_console_1_1_i_console_storage_list_ae3edcfd19bcde4d6bb3162e9728a1454}} \nint {\\bfseries Total\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Approximate total number of storage objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList of storage objects.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_unlink_device_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Unlink\\+Device\\+Request Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}\\index{Nakama.Console.IConsoleUnlinkDeviceRequest@{Nakama.Console.IConsoleUnlinkDeviceRequest}}\n\n\nUnlink a particular device ID from a user\\textquotesingle{}s account.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Unlink\\+Device\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_unlink_device_request_aa3003b4a1c87e8b1ec858b8dab4f96bd}\\label{interface_nakama_1_1_console_1_1_i_console_unlink_device_request_aa3003b4a1c87e8b1ec858b8dab4f96bd}} \nstring {\\bfseries Device\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Device ID to unlink.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_unlink_device_request_a3e50cf276c3ca4d9324466192029e0b7}\\label{interface_nakama_1_1_console_1_1_i_console_unlink_device_request_a3e50cf276c3ca4d9324466192029e0b7}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em User ID to unlink from.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nUnlink a particular device ID from a user\\textquotesingle{}s account.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_user_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_user_list}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+User\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_user_list}\\index{Nakama.Console.IConsoleUserList@{Nakama.Console.IConsoleUserList}}\n\n\nA list of users.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+User\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_user_list_a60e8109cdbc7acab309fef2cf34ea1f0}\\label{interface_nakama_1_1_console_1_1_i_console_user_list_a60e8109cdbc7acab309fef2cf34ea1f0}} \nint {\\bfseries Total\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Approximate total number of users.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_user_list_a917a612c0bab3fea020f38732c67d6c1}\\label{interface_nakama_1_1_console_1_1_i_console_user_list_a917a612c0bab3fea020f38732c67d6c1}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user}{IApi\\+User}} $>$ {\\bfseries Users}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of users.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of users.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_wallet_ledger.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}\\index{Nakama.Console.IConsoleWalletLedger@{Nakama.Console.IConsoleWalletLedger}}\n\n\nAn individual update to a user\\textquotesingle{}s wallet.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Wallet\\+Ledger.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a5bcd52bee2dcbe9fc00ec944b7ae2bb8}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a5bcd52bee2dcbe9fc00ec944b7ae2bb8}} \nstring {\\bfseries Changeset}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The changeset.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_af3c347c882246b135afbb1a5a4cb304c}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_af3c347c882246b135afbb1a5a4cb304c}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the wallet ledger item was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a8d4a4453e879e561f9e933452d1ff174}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a8d4a4453e879e561f9e933452d1ff174}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The identifier of this wallet change.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a9d7ee382141ef1020bc0d6f0e463f124}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a9d7ee382141ef1020bc0d6f0e463f124}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Any associated metadata.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a53478c6bcccbf4427826badc72288f02}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a53478c6bcccbf4427826badc72288f02}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the wallet ledger item was updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a55cfc46ba08490541d278f9d7b68817c}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_a55cfc46ba08490541d278f9d7b68817c}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user ID this wallet ledger item belongs to.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn individual update to a user\\textquotesingle{}s wallet.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Wallet\\+Ledger\\+List Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}\\index{Nakama.Console.IConsoleWalletLedgerList@{Nakama.Console.IConsoleWalletLedgerList}}\n\n\nList of wallet ledger items for a particular user.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Wallet\\+Ledger\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list_a8d757a185f6a2ff3caba034ee88a037b}\\label{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list_a8d757a185f6a2ff3caba034ee88a037b}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}{IConsole\\+Wallet\\+Ledger}} $>$ {\\bfseries Items}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of wallet ledger items.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList of wallet ledger items for a particular user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_console_write_storage_object_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}{}\\doxysection{Nakama.\\+Console.\\+IConsole\\+Write\\+Storage\\+Object\\+Request Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}\\index{Nakama.Console.IConsoleWriteStorageObjectRequest@{Nakama.Console.IConsoleWriteStorageObjectRequest}}\n\n\nWrite a new storage object or update an existing one.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Console\\+Write\\+Storage\\+Object\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ae7ba8fbbdc43e99233d2b76e8225f853}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ae7ba8fbbdc43e99233d2b76e8225f853}} \nstring {\\bfseries Collection}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Collection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a865ce3ebefbf5a554e2b6aa6a5f3bdf2}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a865ce3ebefbf5a554e2b6aa6a5f3bdf2}} \nstring {\\bfseries Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Key.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ae2986d810a1c7794be14c2c9a42275ee}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ae2986d810a1c7794be14c2c9a42275ee}} \nint {\\bfseries Permission\\+Read}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Read permission value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a51d3b829a2cb8738df418da3f1455cf0}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a51d3b829a2cb8738df418da3f1455cf0}} \nint {\\bfseries Permission\\+Write}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Write permission value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a449dde7ecb6e3e8250df05b83eb7037f}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a449dde7ecb6e3e8250df05b83eb7037f}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Owner user ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a1b184fc1454c3c0ac4d4844c9ef0668b}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_a1b184fc1454c3c0ac4d4844c9ef0668b}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ad9890896ef62f031a41353e5e75f81ad}\\label{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request_ad9890896ef62f031a41353e5e75f81ad}} \nstring {\\bfseries Version}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Version for OCC.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWrite a new storage object or update an existing one.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_nakamaapi_account.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account}{}\\doxysection{Nakama.\\+Console.\\+INakamaapi\\+Account Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account}\\index{Nakama.Console.INakamaapiAccount@{Nakama.Console.INakamaapiAccount}}\n\n\nA user with additional account details. Always the current user.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Nakamaapi\\+Account.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a2d01d75c529d43104107034b755baf88}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a2d01d75c529d43104107034b755baf88}} \nstring {\\bfseries Custom\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The custom id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a25d6d1f668a38e769551d7928f8abaad}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a25d6d1f668a38e769551d7928f8abaad}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_account_device}{IApi\\+Account\\+Device}} $>$ {\\bfseries Devices}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The devices which belong to the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a8f2f9149ea64beaa48a835ac06c5f593}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a8f2f9149ea64beaa48a835ac06c5f593}} \nstring {\\bfseries Email}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The email address of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_adfbce9fd9851cfcc00cc71feb27a76c7}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_adfbce9fd9851cfcc00cc71feb27a76c7}} \n\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user}{IApi\\+User}} {\\bfseries User}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_ad330da1b5bb578459922e62aa06a6021}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_ad330da1b5bb578459922e62aa06a6021}} \nstring {\\bfseries Verify\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user\\textquotesingle{}s email was verified.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a465f0b3ff26ec121d61ecdcd3ab62603}\\label{interface_nakama_1_1_console_1_1_i_nakamaapi_account_a465f0b3ff26ec121d61ecdcd3ab62603}} \nstring {\\bfseries Wallet}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s wallet data.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA user with additional account details. Always the current user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_nakamaconsole_account.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}{}\\doxysection{Nakama.\\+Console.\\+INakamaconsole\\+Account Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}\\index{Nakama.Console.INakamaconsoleAccount@{Nakama.Console.INakamaconsoleAccount}}\n\n\nAccount information.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Nakamaconsole\\+Account.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_account_a7f8b5cefecb55ea753a24e1cc2ffdd2d}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_account_a7f8b5cefecb55ea753a24e1cc2ffdd2d}} \n\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaapi_account}{INakamaapi\\+Account}} {\\bfseries Account}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s account details.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_account_ab94979eb4d8824d1e8545e7095b32b49}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_account_ab94979eb4d8824d1e8545e7095b32b49}} \nstring {\\bfseries Disable\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the account was disabled.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAccount information.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}{}\\doxysection{Nakama.\\+Console.\\+INakamaconsole\\+Update\\+Account\\+Request Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}\\index{Nakama.Console.INakamaconsoleUpdateAccountRequest@{Nakama.Console.INakamaconsoleUpdateAccountRequest}}\n\n\nUpdate user account information.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Nakamaconsole\\+Update\\+Account\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_adffafb64eb25eae91db9cc48b543e41e}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_adffafb64eb25eae91db9cc48b543e41e}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Avatar URL.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ab18189e6dbc035b470ba9f712b0bf1b2}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ab18189e6dbc035b470ba9f712b0bf1b2}} \nstring {\\bfseries Custom\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Custom ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a46f9a945d47ef169e18a0d1282cf7c52}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a46f9a945d47ef169e18a0d1282cf7c52}} \nIDictionary$<$ string, string $>$ {\\bfseries Device\\+Ids}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Device ID modifications.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a647c7e505cff59fdb95027c5e7f63632}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a647c7e505cff59fdb95027c5e7f63632}} \nstring {\\bfseries Display\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Display name.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_aa22d406abe1fba22e778a07ff6dc9a27}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_aa22d406abe1fba22e778a07ff6dc9a27}} \nstring {\\bfseries Email}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Email.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a297aa9ffe9921c15a9b705d8fca01536}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a297aa9ffe9921c15a9b705d8fca01536}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em User ID to update.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_aa49047119e5b00623f8f89e9c1f0208d}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_aa49047119e5b00623f8f89e9c1f0208d}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Langtag.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ae6aca8cf5fb6b116c73fae61a1d35058}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ae6aca8cf5fb6b116c73fae61a1d35058}} \nstring {\\bfseries Location}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Location.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a9deeb2b42d6b2d24ebac4b5ce438390d}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a9deeb2b42d6b2d24ebac4b5ce438390d}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Metadata.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a99467a2409d25b238071ebec97a55e29}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a99467a2409d25b238071ebec97a55e29}} \nstring {\\bfseries Password}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Password.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_afb6b5a14e3cfae2139dd7a69bb6510f0}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_afb6b5a14e3cfae2139dd7a69bb6510f0}} \nstring {\\bfseries Timezone}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Timezone.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ab68e3e84cae2c1a93ced9eefca3cbf6e}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_ab68e3e84cae2c1a93ced9eefca3cbf6e}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Username.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a3109c374d942fc84224609f3c63159e0}\\label{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request_a3109c374d942fc84224609f3c63159e0}} \nstring {\\bfseries Wallet}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Wallet.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nUpdate user account information.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_protobuf_any.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_protobuf_any}{}\\doxysection{Nakama.\\+Console.\\+IProtobuf\\+Any Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_protobuf_any}\\index{Nakama.Console.IProtobufAny@{Nakama.Console.IProtobufAny}}\n\n\n{\\ttfamily Any} contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1\\+: Pack and unpack a message in C++. Foo foo = ...; Any any; any.\\+Pack\\+From(foo); ... if (any.\\+Unpack\\+To(\\&foo)) \\{ ... \\} Example 2\\+: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.\\+pack(foo); ... if (any.\\+is(Foo.\\+class)) \\{ foo = any.\\+unpack(Foo.\\+class); \\} Example 3\\+: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.\\+Pack(foo) ... if any.\\+Is(Foo.\\+DESCRIPTOR)\\+: any.\\+Unpack(foo) ... Example 4\\+: Pack and unpack a message in Go foo \\+:= \\&pb.\\+Foo\\{...\\} any, err \\+:= ptypes.\\+Marshal\\+Any(foo) ... foo \\+:= \\&pb.\\+Foo\\{\\} if err \\+:= ptypes.\\+Unmarshal\\+Any(any, foo); err != nil \\{ ... \\} The pack methods provided by protobuf library will by default use \\textquotesingle{}type.\\+googleapis.\\+com/full.type.\\+name\\textquotesingle{} as the type URL and the unpack methods only use the fully qualified type name after the last \\textquotesingle{}/\\textquotesingle{} in the type URL, for example \\char`\\\"{}foo.\\+bar.\\+com/x/y.\\+z\\char`\\\"{} will yield type name \\char`\\\"{}y.\\+z\\char`\\\"{}. JSON ==== The JSON representation of an {\\ttfamily Any} value uses the regular representation of the deserialized, embedded message, with an additional field {\\ttfamily @type} which contains the type URL. Example\\+: package google.\\+profile; message Person \\{ string first\\+\\_\\+name = 1; string last\\+\\_\\+name = 2; \\} \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+profile.\\+Person\\char`\\\"{}, \\char`\\\"{}first\\+Name\\char`\\\"{}\\+: $<$string$>$, \\char`\\\"{}last\\+Name\\char`\\\"{}\\+: $<$string$>$ \\} If the embedded message type is well-\\/known and has a custom JSON representation, that representation will be embedded adding a field {\\ttfamily value} which holds the custom JSON in addition to the {\\ttfamily @type} field. Example (for message \\mbox{[}google.\\+protobuf.\\+Duration\\mbox{]}\\mbox{[}\\mbox{]})\\+: \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+protobuf.\\+Duration\\char`\\\"{}, \\char`\\\"{}value\\char`\\\"{}\\+: \\char`\\\"{}1.\\+212s\\char`\\\"{} \\}   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Protobuf\\+Any.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_protobuf_any_a9729b3262d0481a8510ec54901fecb4a}\\label{interface_nakama_1_1_console_1_1_i_protobuf_any_a9729b3262d0481a8510ec54901fecb4a}} \nstring {\\bfseries Type\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \\char`\\\"{}/\\char`\\\"{} character. The last segment of the URL\\textquotesingle{}s path must represent the fully qualified name of the type (as in {\\ttfamily path/google.\\+protobuf.\\+Duration}). The name should be in a canonical form (e.\\+g., leading \\char`\\\"{}.\\char`\\\"{} is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme {\\ttfamily http}, {\\ttfamily https}, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows\\+: $\\ast$ If no scheme is provided, {\\ttfamily https} is assumed. $\\ast$ An HTTP GET on the URL must yield a \\mbox{[}google.\\+protobuf.\\+Type\\mbox{]}\\mbox{[}\\mbox{]} value in binary format, or produce an error. $\\ast$ Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note\\+: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.\\+googleapis.\\+com. Schemes other than {\\ttfamily http}, {\\ttfamily https} (or the empty scheme) might be used with implementation specific semantics.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_protobuf_any_a382dcf0d9d31a6e039d743ec74cabbcc}\\label{interface_nakama_1_1_console_1_1_i_protobuf_any_a382dcf0d9d31a6e039d743ec74cabbcc}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Must be a valid serialized protocol buffer of the above specified type.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n{\\ttfamily Any} contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1\\+: Pack and unpack a message in C++. Foo foo = ...; Any any; any.\\+Pack\\+From(foo); ... if (any.\\+Unpack\\+To(\\&foo)) \\{ ... \\} Example 2\\+: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.\\+pack(foo); ... if (any.\\+is(Foo.\\+class)) \\{ foo = any.\\+unpack(Foo.\\+class); \\} Example 3\\+: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.\\+Pack(foo) ... if any.\\+Is(Foo.\\+DESCRIPTOR)\\+: any.\\+Unpack(foo) ... Example 4\\+: Pack and unpack a message in Go foo \\+:= \\&pb.\\+Foo\\{...\\} any, err \\+:= ptypes.\\+Marshal\\+Any(foo) ... foo \\+:= \\&pb.\\+Foo\\{\\} if err \\+:= ptypes.\\+Unmarshal\\+Any(any, foo); err != nil \\{ ... \\} The pack methods provided by protobuf library will by default use \\textquotesingle{}type.\\+googleapis.\\+com/full.type.\\+name\\textquotesingle{} as the type URL and the unpack methods only use the fully qualified type name after the last \\textquotesingle{}/\\textquotesingle{} in the type URL, for example \\char`\\\"{}foo.\\+bar.\\+com/x/y.\\+z\\char`\\\"{} will yield type name \\char`\\\"{}y.\\+z\\char`\\\"{}. JSON ==== The JSON representation of an {\\ttfamily Any} value uses the regular representation of the deserialized, embedded message, with an additional field {\\ttfamily @type} which contains the type URL. Example\\+: package google.\\+profile; message Person \\{ string first\\+\\_\\+name = 1; string last\\+\\_\\+name = 2; \\} \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+profile.\\+Person\\char`\\\"{}, \\char`\\\"{}first\\+Name\\char`\\\"{}\\+: $<$string$>$, \\char`\\\"{}last\\+Name\\char`\\\"{}\\+: $<$string$>$ \\} If the embedded message type is well-\\/known and has a custom JSON representation, that representation will be embedded adding a field {\\ttfamily value} which holds the custom JSON in addition to the {\\ttfamily @type} field. Example (for message \\mbox{[}google.\\+protobuf.\\+Duration\\mbox{]}\\mbox{[}\\mbox{]})\\+: \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+protobuf.\\+Duration\\char`\\\"{}, \\char`\\\"{}value\\char`\\\"{}\\+: \\char`\\\"{}1.\\+212s\\char`\\\"{} \\}  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_runtime_error.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_runtime_error}{}\\doxysection{Nakama.\\+Console.\\+IRuntime\\+Error Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_runtime_error}\\index{Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}}\n\n\n \n\n\n\n\nInherited by Nakama.\\+Console.\\+Runtime\\+Error.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error_ac0a9d42676b9d2d98cc7e23bde758941}{Code}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_protobuf_any}{IProtobuf\\+Any}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error_a22e13cad727b9167505d381db3b482af}{Details}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error_a9f5226041b29e4390df9a5e81e589a08}{Error}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error_a12c16673169678cbb109952673dc8a60}{Message}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_runtime_error_ac0a9d42676b9d2d98cc7e23bde758941}\\label{interface_nakama_1_1_console_1_1_i_runtime_error_ac0a9d42676b9d2d98cc7e23bde758941}} \n\\index{Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}!Code@{Code}}\n\\index{Code@{Code}!Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}}\n\\doxysubsubsection{\\texorpdfstring{Code}{Code}}\n{\\footnotesize\\ttfamily int Nakama.\\+Console.\\+IRuntime\\+Error.\\+Code\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_runtime_error_a22e13cad727b9167505d381db3b482af}\\label{interface_nakama_1_1_console_1_1_i_runtime_error_a22e13cad727b9167505d381db3b482af}} \n\\index{Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}!Details@{Details}}\n\\index{Details@{Details}!Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}}\n\\doxysubsubsection{\\texorpdfstring{Details}{Details}}\n{\\footnotesize\\ttfamily IEnumerable$<$\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_protobuf_any}{IProtobuf\\+Any}}$>$ Nakama.\\+Console.\\+IRuntime\\+Error.\\+Details\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_runtime_error_a9f5226041b29e4390df9a5e81e589a08}\\label{interface_nakama_1_1_console_1_1_i_runtime_error_a9f5226041b29e4390df9a5e81e589a08}} \n\\index{Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}!Error@{Error}}\n\\index{Error@{Error}!Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}}\n\\doxysubsubsection{\\texorpdfstring{Error}{Error}}\n{\\footnotesize\\ttfamily string Nakama.\\+Console.\\+IRuntime\\+Error.\\+Error\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_runtime_error_a12c16673169678cbb109952673dc8a60}\\label{interface_nakama_1_1_console_1_1_i_runtime_error_a12c16673169678cbb109952673dc8a60}} \n\\index{Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}!Message@{Message}}\n\\index{Message@{Message}!Nakama.Console.IRuntimeError@{Nakama.Console.IRuntimeError}}\n\\doxysubsubsection{\\texorpdfstring{Message}{Message}}\n{\\footnotesize\\ttfamily string Nakama.\\+Console.\\+IRuntime\\+Error.\\+Message\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_status_list_status.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status}{}\\doxysection{Nakama.\\+Console.\\+IStatus\\+List\\+Status Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_status_list_status}\\index{Nakama.Console.IStatusListStatus@{Nakama.Console.IStatusListStatus}}\n\n\nThe status of a \\mbox{\\hyperlink{namespace_nakama}{Nakama}} node.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+Status\\+List\\+Status.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_ac58367d6f0155bdb5751120941fc00a2}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_ac58367d6f0155bdb5751120941fc00a2}} \ndouble {\\bfseries Avg\\+Input\\+Kbs}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Average input bandwidth usage.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a56b2405d856da581a487bd73b8c07d11}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a56b2405d856da581a487bd73b8c07d11}} \ndouble {\\bfseries Avg\\+Latency\\+Ms}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Average response latency in milliseconds.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a69f5f7c4dccd9b6a6f39097f6ccb8fcd}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a69f5f7c4dccd9b6a6f39097f6ccb8fcd}} \ndouble {\\bfseries Avg\\+Output\\+Kbs}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Average output bandwidth usage.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a17724f6e13a79a8139d1523efd9c4add}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a17724f6e13a79a8139d1523efd9c4add}} \ndouble {\\bfseries Avg\\+Rate\\+Sec}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Average number of requests per second.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_ab419b611b74c5dca67086a46533851e9}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_ab419b611b74c5dca67086a46533851e9}} \nint {\\bfseries Goroutine\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Current number of running goroutines.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_ad81610c87e84a4dbd91549f4e1a1af37}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_ad81610c87e84a4dbd91549f4e1a1af37}} \nint {\\bfseries Health}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Health score.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a5c9d6f670b3b47e9ea7a20a8fcc6406b}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a5c9d6f670b3b47e9ea7a20a8fcc6406b}} \nint {\\bfseries Match\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Current number of active authoritative matches.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a6ac7c70a733c82c5cd232ee16e0e4f2d}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a6ac7c70a733c82c5cd232ee16e0e4f2d}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Node name.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_a8728a67da038b9ad65c14a343ba9ca9c}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_a8728a67da038b9ad65c14a343ba9ca9c}} \nint {\\bfseries Presence\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Currently registered live presences.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_status_list_status_ac117df6b0cf3efbc304669bf19258eab}\\label{interface_nakama_1_1_console_1_1_i_status_list_status_ac117df6b0cf3efbc304669bf19258eab}} \nint {\\bfseries Session\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Currently connected sessions.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe status of a \\mbox{\\hyperlink{namespace_nakama}{Nakama}} node.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_console_1_1_i_user_group_list_user_group.tex",
    "content": "\\hypertarget{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}{}\\doxysection{Nakama.\\+Console.\\+IUser\\+Group\\+List\\+User\\+Group Interface Reference}\n\\label{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}\\index{Nakama.Console.IUserGroupListUserGroup@{Nakama.Console.IUserGroupListUserGroup}}\n\n\nA single group-\\/role pair.   \n\n\n\n\nInherited by Nakama.\\+Console.\\+User\\+Group\\+List\\+User\\+Group.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_user_group_list_user_group_aca0c07b5c1d82954fdfd7b36721c5827}\\label{interface_nakama_1_1_console_1_1_i_user_group_list_user_group_aca0c07b5c1d82954fdfd7b36721c5827}} \n\\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_group}{IApi\\+Group}} {\\bfseries Group}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_console_1_1_i_user_group_list_user_group_a909a6a9e0446c46dc4b65e73777fc007}\\label{interface_nakama_1_1_console_1_1_i_user_group_list_user_group_a909a6a9e0446c46dc4b65e73777fc007}} \nint {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s relationship to the group.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA single group-\\/role pair.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Console/Console\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account}{}\\doxysection{Nakama.\\+IApi\\+Account Interface Reference}\n\\label{interface_nakama_1_1_i_api_account}\\index{Nakama.IApiAccount@{Nakama.IApiAccount}}\n\n\nA user with additional account details. Always the current user.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a4830e284d2f6becd55ba6f7c0be2db8e}\\label{interface_nakama_1_1_i_api_account_a4830e284d2f6becd55ba6f7c0be2db8e}} \nstring {\\bfseries Custom\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The custom id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a79ecb479d141136401f012c63d83511a}\\label{interface_nakama_1_1_i_api_account_a79ecb479d141136401f012c63d83511a}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_device}{IApi\\+Account\\+Device}} $>$ {\\bfseries Devices}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The devices which belong to the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_acbbe09894d6fcf3669e9fc370a3d9bbc}\\label{interface_nakama_1_1_i_api_account_acbbe09894d6fcf3669e9fc370a3d9bbc}} \nstring {\\bfseries Disable\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user\\textquotesingle{}s account was disabled/banned.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a640472f2fc5084d98cc8b7bbe0ca32bb}\\label{interface_nakama_1_1_i_api_account_a640472f2fc5084d98cc8b7bbe0ca32bb}} \nstring {\\bfseries Email}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The email address of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a4fcda9baa0b711e8edb5523eb4ebaa7f}\\label{interface_nakama_1_1_i_api_account_a4fcda9baa0b711e8edb5523eb4ebaa7f}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} {\\bfseries User}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a50d5c545cc0a4ace61c8dd6e5af23db0}\\label{interface_nakama_1_1_i_api_account_a50d5c545cc0a4ace61c8dd6e5af23db0}} \nstring {\\bfseries Verify\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user\\textquotesingle{}s email was verified.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_a5a6e8ee791417656a0f0b8f5eff14355}\\label{interface_nakama_1_1_i_api_account_a5a6e8ee791417656a0f0b8f5eff14355}} \nstring {\\bfseries Wallet}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s wallet data.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA user with additional account details. Always the current user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_apple.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_apple}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Apple Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_apple}\\index{Nakama.IApiAccountApple@{Nakama.IApiAccountApple}}\n\n\nSend a Apple Sign In token to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Apple.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_apple_a236aef936550ef693ae1ba4e752836c5}\\label{interface_nakama_1_1_i_api_account_apple_a236aef936550ef693ae1ba4e752836c5}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID token received from Apple to validate.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_apple_a74975b2ced42410721d3862a12a842b6}\\label{interface_nakama_1_1_i_api_account_apple_a74975b2ced42410721d3862a12a842b6}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a Apple Sign In token to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_custom.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_custom}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Custom Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_custom}\\index{Nakama.IApiAccountCustom@{Nakama.IApiAccountCustom}}\n\n\nSend a custom ID to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Custom.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_custom_a1509569fa6580beb01a86148343b9262}\\label{interface_nakama_1_1_i_api_account_custom_a1509569fa6580beb01a86148343b9262}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A custom identifier.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_custom_a0f3301629398208a5b47bab3e6245a78}\\label{interface_nakama_1_1_i_api_account_custom_a0f3301629398208a5b47bab3e6245a78}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a custom ID to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_device.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_device}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Device Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_device}\\index{Nakama.IApiAccountDevice@{Nakama.IApiAccountDevice}}\n\n\nSend a device to the server. Used with authenticate/link/unlink and user.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Device.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_device_ab7a96ef6d15d563501fd387b76f98b74}\\label{interface_nakama_1_1_i_api_account_device_ab7a96ef6d15d563501fd387b76f98b74}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A device identifier. Should be obtained by a platform-\\/specific device API.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_device_a6f5eb4d1e2f2930c3176199fa64e01ec}\\label{interface_nakama_1_1_i_api_account_device_a6f5eb4d1e2f2930c3176199fa64e01ec}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a device to the server. Used with authenticate/link/unlink and user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_email.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_email}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Email Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_email}\\index{Nakama.IApiAccountEmail@{Nakama.IApiAccountEmail}}\n\n\nSend an email with password to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Email.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_email_ad55b447ecddd9bd3afc8242b8ee26d09}\\label{interface_nakama_1_1_i_api_account_email_ad55b447ecddd9bd3afc8242b8ee26d09}} \nstring {\\bfseries Email}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A valid RFC-\\/5322 email address.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_email_ad177139e341a3787f3cf09e0271066c2}\\label{interface_nakama_1_1_i_api_account_email_ad177139e341a3787f3cf09e0271066c2}} \nstring {\\bfseries Password}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A password for the user account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_email_aff45051f1088d4f780179e03795d81f6}\\label{interface_nakama_1_1_i_api_account_email_aff45051f1088d4f780179e03795d81f6}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend an email with password to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_facebook.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_facebook}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Facebook Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_facebook}\\index{Nakama.IApiAccountFacebook@{Nakama.IApiAccountFacebook}}\n\n\nSend a Facebook token to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Facebook.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_facebook_ac7964eef958b9601424636e740936283}\\label{interface_nakama_1_1_i_api_account_facebook_ac7964eef958b9601424636e740936283}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The OAuth token received from Facebook to access their profile API.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_facebook_a3f020c0b47138aef81d2bc00d42e3436}\\label{interface_nakama_1_1_i_api_account_facebook_a3f020c0b47138aef81d2bc00d42e3436}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a Facebook token to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_facebook_instant_game.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_facebook_instant_game}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Facebook\\+Instant\\+Game Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_facebook_instant_game}\\index{Nakama.IApiAccountFacebookInstantGame@{Nakama.IApiAccountFacebookInstantGame}}\n\n\nSend a Facebook Instant Game token to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Facebook\\+Instant\\+Game.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_facebook_instant_game_a72b59c27bf3485eed5578482f270e610}\\label{interface_nakama_1_1_i_api_account_facebook_instant_game_a72b59c27bf3485eed5578482f270e610}} \nstring {\\bfseries Signed\\+Player\\+Info}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration)  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_facebook_instant_game_a7fcfc5ce27bd97e4d2a8e8cebc6c1802}\\label{interface_nakama_1_1_i_api_account_facebook_instant_game_a7fcfc5ce27bd97e4d2a8e8cebc6c1802}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_game_center.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_game_center}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Game\\+Center Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_game_center}\\index{Nakama.IApiAccountGameCenter@{Nakama.IApiAccountGameCenter}}\n\n\nSend Apple\\textquotesingle{}s Game Center account credentials to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Game\\+Center.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_ac27ebc1ca627474a06564a8ce057105b}\\label{interface_nakama_1_1_i_api_account_game_center_ac27ebc1ca627474a06564a8ce057105b}} \nstring {\\bfseries Bundle\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Bundle ID (generated by Game\\+Center).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_a4ee74b10ff5c36b165201772d4ad50d9}\\label{interface_nakama_1_1_i_api_account_game_center_a4ee74b10ff5c36b165201772d4ad50d9}} \nstring {\\bfseries Player\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Player ID (generated by Game\\+Center).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_adf878e6254f2b59a87e3f338698b16f7}\\label{interface_nakama_1_1_i_api_account_game_center_adf878e6254f2b59a87e3f338698b16f7}} \nstring {\\bfseries Public\\+Key\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The URL for the public encryption key.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_aea2cbca29fcf6cc5970e39a550fb8222}\\label{interface_nakama_1_1_i_api_account_game_center_aea2cbca29fcf6cc5970e39a550fb8222}} \nstring {\\bfseries Salt}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A random \\char`\\\"{}\\+NSString\\char`\\\"{} used to compute the hash and keep it randomized.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_a4a707ce6bd71298851bf6007280eb2d6}\\label{interface_nakama_1_1_i_api_account_game_center_a4a707ce6bd71298851bf6007280eb2d6}} \nstring {\\bfseries Signature}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The verification signature data generated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_abe561a33c4ca1eb201c6cb84b173194b}\\label{interface_nakama_1_1_i_api_account_game_center_abe561a33c4ca1eb201c6cb84b173194b}} \nstring {\\bfseries Timestamp\\+Seconds}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Time since UNIX epoch when the signature was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_game_center_ad6ed660a63dc2052ea2f5fba70ca5b00}\\label{interface_nakama_1_1_i_api_account_game_center_ad6ed660a63dc2052ea2f5fba70ca5b00}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend Apple\\textquotesingle{}s Game Center account credentials to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_google.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_google}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Google Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_google}\\index{Nakama.IApiAccountGoogle@{Nakama.IApiAccountGoogle}}\n\n\nSend a Google token to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Google.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_google_a0d9d31fc404382118e7c9fa8671b1ab0}\\label{interface_nakama_1_1_i_api_account_google_a0d9d31fc404382118e7c9fa8671b1ab0}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The OAuth token received from Google to access their profile API.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_google_ad34ef90d1dd37f05d0ec036f9edf983d}\\label{interface_nakama_1_1_i_api_account_google_ad34ef90d1dd37f05d0ec036f9edf983d}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a Google token to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_account_steam.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_account_steam}{}\\doxysection{Nakama.\\+IApi\\+Account\\+Steam Interface Reference}\n\\label{interface_nakama_1_1_i_api_account_steam}\\index{Nakama.IApiAccountSteam@{Nakama.IApiAccountSteam}}\n\n\nSend a Steam token to the server. Used with authenticate/link/unlink.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Account\\+Steam.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_steam_a1624ba777a34d93a944e7939e41f8b8d}\\label{interface_nakama_1_1_i_api_account_steam_a1624ba777a34d93a944e7939e41f8b8d}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The account token received from Steam to access their profile API.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_account_steam_a8b78f9247736b22818c4faf6e731300c}\\label{interface_nakama_1_1_i_api_account_steam_a8b78f9247736b22818c4faf6e731300c}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSend a Steam token to the server. Used with authenticate/link/unlink.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_channel_message.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_channel_message}{}\\doxysection{Nakama.\\+IApi\\+Channel\\+Message Interface Reference}\n\\label{interface_nakama_1_1_i_api_channel_message}\\index{Nakama.IApiChannelMessage@{Nakama.IApiChannelMessage}}\n\n\nA message sent on a channel.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Channel\\+Message.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_a1259cb0c701a188655f3afaf10cc7a96}\\label{interface_nakama_1_1_i_api_channel_message_a1259cb0c701a188655f3afaf10cc7a96}} \nstring {\\bfseries Channel\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The channel this message belongs to.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_aa68dd9505b869e995f44f4f3c06a3051}\\label{interface_nakama_1_1_i_api_channel_message_aa68dd9505b869e995f44f4f3c06a3051}} \nint {\\bfseries Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The code representing a message type or category.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_abd910f2d7721923835792460cad8996a}\\label{interface_nakama_1_1_i_api_channel_message_abd910f2d7721923835792460cad8996a}} \nstring {\\bfseries Content}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The content payload.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_a3a3bf603099483eca0dbf727ca1817ec}\\label{interface_nakama_1_1_i_api_channel_message_a3a3bf603099483eca0dbf727ca1817ec}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_ab3c2b53aca6445ef0686fa63aba534b5}\\label{interface_nakama_1_1_i_api_channel_message_ab3c2b53aca6445ef0686fa63aba534b5}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group, or an empty string if this message was not sent through a group channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_a6b83ec9fec3fe2f236d0983a8d6143a6}\\label{interface_nakama_1_1_i_api_channel_message_a6b83ec9fec3fe2f236d0983a8d6143a6}} \nstring {\\bfseries Message\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique ID of this message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_aaf9dc2c4247b2d1589dd17f3c0735800}\\label{interface_nakama_1_1_i_api_channel_message_aaf9dc2c4247b2d1589dd17f3c0735800}} \nbool {\\bfseries Persistent}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the message was persisted to the channel\\textquotesingle{}s history, false otherwise.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_ac2b13020832c4cb54dbf0cc582c76f06}\\label{interface_nakama_1_1_i_api_channel_message_ac2b13020832c4cb54dbf0cc582c76f06}} \nstring {\\bfseries Room\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the chat room, or an empty string if this message was not sent through a chat room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_acc6f10451b49e3868082df10fed11414}\\label{interface_nakama_1_1_i_api_channel_message_acc6f10451b49e3868082df10fed11414}} \nstring {\\bfseries Sender\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Message sender, usually a user ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_a8667392822e75cf8bc7f940653514e18}\\label{interface_nakama_1_1_i_api_channel_message_a8667392822e75cf8bc7f940653514e18}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_a5d041bf33e573269cec36a7531fafe0a}\\label{interface_nakama_1_1_i_api_channel_message_a5d041bf33e573269cec36a7531fafe0a}} \nstring {\\bfseries User\\+Id\\+One}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_afcb15b942b92f9da8b6c66e6fb7397b9}\\label{interface_nakama_1_1_i_api_channel_message_afcb15b942b92f9da8b6c66e6fb7397b9}} \nstring {\\bfseries User\\+Id\\+Two}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_af7c5ac495951fc3b0ed606466af8033e}\\label{interface_nakama_1_1_i_api_channel_message_af7c5ac495951fc3b0ed606466af8033e}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the message sender, if any.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA message sent on a channel.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_channel_message_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_channel_message_list}{}\\doxysection{Nakama.\\+IApi\\+Channel\\+Message\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_channel_message_list}\\index{Nakama.IApiChannelMessageList@{Nakama.IApiChannelMessageList}}\n\n\nA list of channel messages, usually a result of a list operation.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Channel\\+Message\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_list_afeb63d64fcc6f8499582db0d4eb189e3}\\label{interface_nakama_1_1_i_api_channel_message_list_afeb63d64fcc6f8499582db0d4eb189e3}} \nstring {\\bfseries Cacheable\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cacheable cursor to list newer messages. Durable and designed to be stored, unlike next/prev cursors.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_list_a312918337005e53c34bd42330d55030e}\\label{interface_nakama_1_1_i_api_channel_message_list_a312918337005e53c34bd42330d55030e}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}} $>$ {\\bfseries Messages}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of messages.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_list_a63851eef1851e892d2e6d89f2d6f22d4}\\label{interface_nakama_1_1_i_api_channel_message_list_a63851eef1851e892d2e6d89f2d6f22d4}} \nstring {\\bfseries Next\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the next page, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_channel_message_list_a63800c8730fedca78043e2856b6efbff}\\label{interface_nakama_1_1_i_api_channel_message_list_a63800c8730fedca78043e2856b6efbff}} \nstring {\\bfseries Prev\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the previous page, if any.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of channel messages, usually a result of a list operation.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_create_group_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_create_group_request}{}\\doxysection{Nakama.\\+IApi\\+Create\\+Group\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_create_group_request}\\index{Nakama.IApiCreateGroupRequest@{Nakama.IApiCreateGroupRequest}}\n\n\nCreate a group with the current user as owner.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Create\\+Group\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_a8d5dad2c2fda2fcec06c5c5550d1cdbb}\\label{interface_nakama_1_1_i_api_create_group_request_a8d5dad2c2fda2fcec06c5c5550d1cdbb}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_a881870903370376431cf2f7c31797ad2}\\label{interface_nakama_1_1_i_api_create_group_request_a881870903370376431cf2f7c31797ad2}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A description for the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_a92e928ad3562a22470a46aadcc4ebee9}\\label{interface_nakama_1_1_i_api_create_group_request_a92e928ad3562a22470a46aadcc4ebee9}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_abcc5c8511add4336b86eb68cbe43c7de}\\label{interface_nakama_1_1_i_api_create_group_request_abcc5c8511add4336b86eb68cbe43c7de}} \nint {\\bfseries Max\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Maximum number of group members.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_a72e42bbdb158c39fbd755f7972a161d2}\\label{interface_nakama_1_1_i_api_create_group_request_a72e42bbdb158c39fbd755f7972a161d2}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A unique name for the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_create_group_request_a6ade798c7a71adc1662dcc2fb8a79d36}\\label{interface_nakama_1_1_i_api_create_group_request_a6ade798c7a71adc1662dcc2fb8a79d36}} \nbool {\\bfseries Open}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Mark a group as open or not where only admins can accept members.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nCreate a group with the current user as owner.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_delete_storage_object_id.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 183.486237\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.725000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.IApiDeleteStorageObjectId) cw\n(Nakama.StorageObjectId) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.IApiDeleteStorageObjectId) 0.000000 1.000000 box\n (Nakama.StorageObjectId) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_delete_storage_object_id.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_delete_storage_object_id}{}\\doxysection{Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id Interface Reference}\n\\label{interface_nakama_1_1_i_api_delete_storage_object_id}\\index{Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}}\n\n\nStorage objects to delete.   \n\n\nInheritance diagram for Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_api_delete_storage_object_id}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_a20637f8e0807a46dde97b56b6eff4024}{Collection}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_af63c5066a0c0172de35e43ba42b3316a}{Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id_af7570d690cf78118235584607bbb8ebd}{Version}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nStorage objects to delete.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_delete_storage_object_id_a20637f8e0807a46dde97b56b6eff4024}\\label{interface_nakama_1_1_i_api_delete_storage_object_id_a20637f8e0807a46dde97b56b6eff4024}} \n\\index{Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}!Collection@{Collection}}\n\\index{Collection@{Collection}!Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Collection}{Collection}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id.\\+Collection\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe collection which stores the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a1beb57b56e9b6b1f078391803e95fa95}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_delete_storage_object_id_af63c5066a0c0172de35e43ba42b3316a}\\label{interface_nakama_1_1_i_api_delete_storage_object_id_af63c5066a0c0172de35e43ba42b3316a}} \n\\index{Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}!Key@{Key}}\n\\index{Key@{Key}!Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Key}{Key}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id.\\+Key\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe key of the object within the collection.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a4243d96cb3a1cf50a4f5a3cf790d7a1b}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_delete_storage_object_id_af7570d690cf78118235584607bbb8ebd}\\label{interface_nakama_1_1_i_api_delete_storage_object_id_af7570d690cf78118235584607bbb8ebd}} \n\\index{Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}!Version@{Version}}\n\\index{Version@{Version}!Nakama.IApiDeleteStorageObjectId@{Nakama.IApiDeleteStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Version}{Version}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Delete\\+Storage\\+Object\\+Id.\\+Version\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe version hash of the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a16f5f70d638e02ef1a003ed4ae0f0bd6}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_delete_storage_objects_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_delete_storage_objects_request}{}\\doxysection{Nakama.\\+IApi\\+Delete\\+Storage\\+Objects\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_delete_storage_objects_request}\\index{Nakama.IApiDeleteStorageObjectsRequest@{Nakama.IApiDeleteStorageObjectsRequest}}\n\n\nBatch delete storage objects.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Delete\\+Storage\\+Objects\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_delete_storage_objects_request_a256506b8b1c243bcbf22e9a341e9a725}\\label{interface_nakama_1_1_i_api_delete_storage_objects_request_a256506b8b1c243bcbf22e9a341e9a725}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id}{IApi\\+Delete\\+Storage\\+Object\\+Id}} $>$ {\\bfseries Object\\+Ids}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch of storage objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nBatch delete storage objects.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_event}{}\\doxysection{Nakama.\\+IApi\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_api_event}\\index{Nakama.IApiEvent@{Nakama.IApiEvent}}\n\n\nRepresents an event to be passed through the server to registered event handlers.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_event_aa6dab036da2e4cbd3ca41ff10fa0d610}\\label{interface_nakama_1_1_i_api_event_aa6dab036da2e4cbd3ca41ff10fa0d610}} \nbool {\\bfseries External}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the event came directly from a client call, false otherwise.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_event_aba6a44997576666fab8b98ab0ed59923}\\label{interface_nakama_1_1_i_api_event_aba6a44997576666fab8b98ab0ed59923}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em An event name, type, category, or identifier.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_event_abba047f10041db3729e3c5e9b0d7ace4}\\label{interface_nakama_1_1_i_api_event_abba047f10041db3729e3c5e9b0d7ace4}} \nIDictionary$<$ string, string $>$ {\\bfseries Properties}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Arbitrary event property values.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_event_a781fb5a536c2ffc3cbf7470774baeadf}\\label{interface_nakama_1_1_i_api_event_a781fb5a536c2ffc3cbf7470774baeadf}} \nstring {\\bfseries Timestamp}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The time when the event was triggered.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRepresents an event to be passed through the server to registered event handlers.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_friend.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_friend}{}\\doxysection{Nakama.\\+IApi\\+Friend Interface Reference}\n\\label{interface_nakama_1_1_i_api_friend}\\index{Nakama.IApiFriend@{Nakama.IApiFriend}}\n\n\nA friend of a user.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Friend.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_friend_a1f2e60028fece48989d4b7f075a2e06b}\\label{interface_nakama_1_1_i_api_friend_a1f2e60028fece48989d4b7f075a2e06b}} \nint {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The friend status.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_friend_afdaaed338599be89e1f00fd4df57a909}\\label{interface_nakama_1_1_i_api_friend_afdaaed338599be89e1f00fd4df57a909}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Time of the latest relationship update.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_friend_afbc1387cf2c3b1cc69fcbf7ce0098ce8}\\label{interface_nakama_1_1_i_api_friend_afbc1387cf2c3b1cc69fcbf7ce0098ce8}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} {\\bfseries User}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA friend of a user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_friend_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_friend_list}{}\\doxysection{Nakama.\\+IApi\\+Friend\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_friend_list}\\index{Nakama.IApiFriendList@{Nakama.IApiFriendList}}\n\n\nA collection of zero or more friends of the user.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Friend\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_friend_list_ac9e478ef8f255d2881f025d084b33c2f}\\label{interface_nakama_1_1_i_api_friend_list_ac9e478ef8f255d2881f025d084b33c2f}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_friend_list_acb35c683f6d487f60a0f10d823f15469}\\label{interface_nakama_1_1_i_api_friend_list_acb35c683f6d487f60a0f10d823f15469}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend}{IApi\\+Friend}} $>$ {\\bfseries Friends}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Friend objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA collection of zero or more friends of the user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_group.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_group}{}\\doxysection{Nakama.\\+IApi\\+Group Interface Reference}\n\\label{interface_nakama_1_1_i_api_group}\\index{Nakama.IApiGroup@{Nakama.IApiGroup}}\n\n\nA group in the server.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Group.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a82ce2b2b17083d5793a7b29d5ecc31c5}\\label{interface_nakama_1_1_i_api_group_a82ce2b2b17083d5793a7b29d5ecc31c5}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a17dca9ec1efba71d1c4d7318779d8671}\\label{interface_nakama_1_1_i_api_group_a17dca9ec1efba71d1c4d7318779d8671}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the group was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_acf879ad78e0728c9fef1a4cad469ca92}\\label{interface_nakama_1_1_i_api_group_acf879ad78e0728c9fef1a4cad469ca92}} \nstring {\\bfseries Creator\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of the user who created the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_aafe0f0a17e12f3f03dcebe888739fe62}\\label{interface_nakama_1_1_i_api_group_aafe0f0a17e12f3f03dcebe888739fe62}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A description for the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_af01f3528bcd125916aadfa5195e366c6}\\label{interface_nakama_1_1_i_api_group_af01f3528bcd125916aadfa5195e366c6}} \nint {\\bfseries Edge\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current count of all members in the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_ad1f31e094e9972d02d92ffcc78fdfa5d}\\label{interface_nakama_1_1_i_api_group_ad1f31e094e9972d02d92ffcc78fdfa5d}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of a group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a644091bd3ed932fd51ddaeba7df07959}\\label{interface_nakama_1_1_i_api_group_a644091bd3ed932fd51ddaeba7df07959}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a81d90a158836868cf20735e9e0d8ea27}\\label{interface_nakama_1_1_i_api_group_a81d90a158836868cf20735e9e0d8ea27}} \nint {\\bfseries Max\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of members allowed.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a0810484f48d791d355f93c03fb41d292}\\label{interface_nakama_1_1_i_api_group_a0810484f48d791d355f93c03fb41d292}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Additional information stored as a JSON object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a18dad063aa4a43fb3b25eee848cae3be}\\label{interface_nakama_1_1_i_api_group_a18dad063aa4a43fb3b25eee848cae3be}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique name of the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_a7750eaee67311bfb73bfed5c2dfa73f2}\\label{interface_nakama_1_1_i_api_group_a7750eaee67311bfb73bfed5c2dfa73f2}} \nbool {\\bfseries Open}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Anyone can join open groups, otherwise only admins can accept members.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_ab745c75e67065996dbf1cb4359590bee}\\label{interface_nakama_1_1_i_api_group_ab745c75e67065996dbf1cb4359590bee}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the group was last updated.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA group in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_group_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_group_list}{}\\doxysection{Nakama.\\+IApi\\+Group\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_group_list}\\index{Nakama.IApiGroupList@{Nakama.IApiGroupList}}\n\n\nOne or more groups returned from a listing operation.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Group\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_list_a082e53926ccb3bdeffbf41da3f92be1f}\\label{interface_nakama_1_1_i_api_group_list_a082e53926ccb3bdeffbf41da3f92be1f}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A cursor used to get the next page.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_list_a57e8d2b7d2e89233ee1a0dc1aed3a82b}\\label{interface_nakama_1_1_i_api_group_list_a57e8d2b7d2e89233ee1a0dc1aed3a82b}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} $>$ {\\bfseries Groups}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em One or more groups.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nOne or more groups returned from a listing operation.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_group_user_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_group_user_list}{}\\doxysection{Nakama.\\+IApi\\+Group\\+User\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_group_user_list}\\index{Nakama.IApiGroupUserList@{Nakama.IApiGroupUserList}}\n\n\nA list of users belonging to a group, along with their role.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Group\\+User\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_user_list_a8ecc0f2760edbfe1e5d2012aac48612f}\\label{interface_nakama_1_1_i_api_group_user_list_a8ecc0f2760edbfe1e5d2012aac48612f}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_group_user_list_a6a9a0a0279661f2a655977c9bf74e1e3}\\label{interface_nakama_1_1_i_api_group_user_list_a6a9a0a0279661f2a655977c9bf74e1e3}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_group_user_list_group_user}{IGroup\\+User\\+List\\+Group\\+User}} $>$ {\\bfseries Group\\+Users}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em User-\\/role pairs for a group.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of users belonging to a group, along with their role.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_leaderboard_record.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_leaderboard_record}{}\\doxysection{Nakama.\\+IApi\\+Leaderboard\\+Record Interface Reference}\n\\label{interface_nakama_1_1_i_api_leaderboard_record}\\index{Nakama.IApiLeaderboardRecord@{Nakama.IApiLeaderboardRecord}}\n\n\nRepresents a complete leaderboard record with all scores and associated metadata.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Leaderboard\\+Record.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_aedd0603f88812231f2c6962691c6b972}\\label{interface_nakama_1_1_i_api_leaderboard_record_aedd0603f88812231f2c6962691c6b972}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a16026f3b43bb76b8f9b7f5b64febecc1}\\label{interface_nakama_1_1_i_api_leaderboard_record_a16026f3b43bb76b8f9b7f5b64febecc1}} \nstring {\\bfseries Expiry\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record expires.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a069024f0680417b6d59ad6023f5c39ac}\\label{interface_nakama_1_1_i_api_leaderboard_record_a069024f0680417b6d59ad6023f5c39ac}} \nstring {\\bfseries Leaderboard\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the leaderboard this score belongs to.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_ac7ae9d4daa203421fa4ff6f87e3806a3}\\label{interface_nakama_1_1_i_api_leaderboard_record_ac7ae9d4daa203421fa4ff6f87e3806a3}} \nint {\\bfseries Max\\+Num\\+Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of score updates allowed by the owner.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a35dfcebb353a26543dd7247f654b0c0c}\\label{interface_nakama_1_1_i_api_leaderboard_record_a35dfcebb353a26543dd7247f654b0c0c}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Metadata.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_ae57e14a0741fb2e0627ddc0dd1cbb6c3}\\label{interface_nakama_1_1_i_api_leaderboard_record_ae57e14a0741fb2e0627ddc0dd1cbb6c3}} \nint {\\bfseries Num\\+Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The number of submissions to this score record.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a7da72a3ec5146681730022c74c9be999}\\label{interface_nakama_1_1_i_api_leaderboard_record_a7da72a3ec5146681730022c74c9be999}} \nstring {\\bfseries Owner\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the score owner, usually a user or group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a3267afb94ba15649efb80fc0f86dc0f8}\\label{interface_nakama_1_1_i_api_leaderboard_record_a3267afb94ba15649efb80fc0f86dc0f8}} \nstring {\\bfseries Rank}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The rank of this record.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_a3a95692a81f3262b8ee1867d8e8344a7}\\label{interface_nakama_1_1_i_api_leaderboard_record_a3a95692a81f3262b8ee1867d8e8344a7}} \nstring {\\bfseries Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The score value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_aacb0fe48d0a9f8c1b41031fa38660e0a}\\label{interface_nakama_1_1_i_api_leaderboard_record_aacb0fe48d0a9f8c1b41031fa38660e0a}} \nstring {\\bfseries Subscore}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em An optional subscore value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_afff6cfb1102c2ac6d02cb930c94fc841}\\label{interface_nakama_1_1_i_api_leaderboard_record_afff6cfb1102c2ac6d02cb930c94fc841}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the leaderboard record was updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_ac384ae3388a5e1f9ea1abb5c11ce3966}\\label{interface_nakama_1_1_i_api_leaderboard_record_ac384ae3388a5e1f9ea1abb5c11ce3966}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the score owner, if the owner is a user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRepresents a complete leaderboard record with all scores and associated metadata.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_leaderboard_record_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_leaderboard_record_list}{}\\doxysection{Nakama.\\+IApi\\+Leaderboard\\+Record\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_leaderboard_record_list}\\index{Nakama.IApiLeaderboardRecordList@{Nakama.IApiLeaderboardRecordList}}\n\n\nA set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Leaderboard\\+Record\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_list_a8141377d0ed766e306e767eb670b1d0c}\\label{interface_nakama_1_1_i_api_leaderboard_record_list_a8141377d0ed766e306e767eb670b1d0c}} \nstring {\\bfseries Next\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the next page, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_list_a0467e17292ce1118bfcb922cb7a3c4aa}\\label{interface_nakama_1_1_i_api_leaderboard_record_list_a0467e17292ce1118bfcb922cb7a3c4aa}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ {\\bfseries Owner\\+Records}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A batched set of leaderboard records belonging to specified owners.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_list_a3a593d9750f2dc2ea4c2ba3b6c879880}\\label{interface_nakama_1_1_i_api_leaderboard_record_list_a3a593d9750f2dc2ea4c2ba3b6c879880}} \nstring {\\bfseries Prev\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the previous page, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_leaderboard_record_list_afc22e53bcc626655097b8ddbe487f2b0}\\label{interface_nakama_1_1_i_api_leaderboard_record_list_afc22e53bcc626655097b8ddbe487f2b0}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ {\\bfseries Records}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of leaderboard records.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_link_steam_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_link_steam_request}{}\\doxysection{Nakama.\\+IApi\\+Link\\+Steam\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_link_steam_request}\\index{Nakama.IApiLinkSteamRequest@{Nakama.IApiLinkSteamRequest}}\n\n\nLink Steam to the current user\\textquotesingle{}s account.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Link\\+Steam\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_link_steam_request_ad508d87c1a7ff1e453c8c5f171adf258}\\label{interface_nakama_1_1_i_api_link_steam_request_ad508d87c1a7ff1e453c8c5f171adf258}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_steam}{IApi\\+Account\\+Steam}} {\\bfseries Account}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Facebook account details.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_link_steam_request_a72801c16022a5c1f9a950225b1af8bd8}\\label{interface_nakama_1_1_i_api_link_steam_request_a72801c16022a5c1f9a950225b1af8bd8}} \nbool {\\bfseries Sync}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Import Steam friends for the user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nLink Steam to the current user\\textquotesingle{}s account.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_list_subscriptions_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_list_subscriptions_request}{}\\doxysection{Nakama.\\+IApi\\+List\\+Subscriptions\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_list_subscriptions_request}\\index{Nakama.IApiListSubscriptionsRequest@{Nakama.IApiListSubscriptionsRequest}}\n\n\nList user subscriptions.   \n\n\n\n\nInherited by Nakama.\\+Api\\+List\\+Subscriptions\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_list_subscriptions_request_a7fcfaaf2213c0a0c4b2117d3637006d4}\\label{interface_nakama_1_1_i_api_list_subscriptions_request_a7fcfaaf2213c0a0c4b2117d3637006d4}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor to retrieve a page of records from  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_list_subscriptions_request_a7c750f07a5761a59d1719c6b3db73ac1}\\label{interface_nakama_1_1_i_api_list_subscriptions_request_a7c750f07a5761a59d1719c6b3db73ac1}} \nint {\\bfseries Limit}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Max number of results per page  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList user subscriptions.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_match.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_match}{}\\doxysection{Nakama.\\+IApi\\+Match Interface Reference}\n\\label{interface_nakama_1_1_i_api_match}\\index{Nakama.IApiMatch@{Nakama.IApiMatch}}\n\n\nRepresents a realtime match.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Match.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_a102a2515c695ea594b7d20f78c7a7357}\\label{interface_nakama_1_1_i_api_match_a102a2515c695ea594b7d20f78c7a7357}} \nbool {\\bfseries Authoritative}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if it\\textquotesingle{}s an server-\\/managed authoritative match, false otherwise.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_afc84c3927f6f889313ec34153c744753}\\label{interface_nakama_1_1_i_api_match_afc84c3927f6f889313ec34153c744753}} \nstring {\\bfseries Handler\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Handler name  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_aa5c09c4a5b4e19d8acb2aa3bc1f555c1}\\label{interface_nakama_1_1_i_api_match_aa5c09c4a5b4e19d8acb2aa3bc1f555c1}} \nstring {\\bfseries Label}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Match label, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_adeb7ec5cc19e0d6f8e517eeadc044a0d}\\label{interface_nakama_1_1_i_api_match_adeb7ec5cc19e0d6f8e517eeadc044a0d}} \nstring {\\bfseries Match\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the match, can be used to join.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_a54eed534d6eb5fb1b60fbdd09f54e280}\\label{interface_nakama_1_1_i_api_match_a54eed534d6eb5fb1b60fbdd09f54e280}} \nint {\\bfseries Size}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Current number of users in the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_abdd9d1b2e633e702f3e5ef02299e5529}\\label{interface_nakama_1_1_i_api_match_abdd9d1b2e633e702f3e5ef02299e5529}} \nint {\\bfseries Tick\\+Rate}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Tick Rate  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRepresents a realtime match.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_match_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_match_list}{}\\doxysection{Nakama.\\+IApi\\+Match\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_match_list}\\index{Nakama.IApiMatchList@{Nakama.IApiMatchList}}\n\n\nA list of realtime matches.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Match\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_match_list_a31db7ac1b4df0a496bcf73e17ecd4589}\\label{interface_nakama_1_1_i_api_match_list_a31db7ac1b4df0a496bcf73e17ecd4589}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match}{IApi\\+Match}} $>$ {\\bfseries Matches}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A number of matches corresponding to a list operation.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of realtime matches.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_notification.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_notification}{}\\doxysection{Nakama.\\+IApi\\+Notification Interface Reference}\n\\label{interface_nakama_1_1_i_api_notification}\\index{Nakama.IApiNotification@{Nakama.IApiNotification}}\n\n\nA notification in the server.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Notification.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_a28725e838382d3d1626d460104d93f54}\\label{interface_nakama_1_1_i_api_notification_a28725e838382d3d1626d460104d93f54}} \nint {\\bfseries Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Category code for this notification.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_ab598caa08025f1ec0969bebd6f044b8d}\\label{interface_nakama_1_1_i_api_notification_ab598caa08025f1ec0969bebd6f044b8d}} \nstring {\\bfseries Content}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Content of the notification in JSON.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_aade869f44d0cfd07bd51ff88c4c12eab}\\label{interface_nakama_1_1_i_api_notification_aade869f44d0cfd07bd51ff88c4c12eab}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the notification was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_a10cfb8ec425330ae47354b33285fb0ab}\\label{interface_nakama_1_1_i_api_notification_a10cfb8ec425330ae47354b33285fb0ab}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em ID of the Notification.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_af4fd12051eb295ce84a65d871a7b8c2a}\\label{interface_nakama_1_1_i_api_notification_af4fd12051eb295ce84a65d871a7b8c2a}} \nbool {\\bfseries Persistent}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if this notification was persisted to the database.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_a61fed141e1c0148f55eb1d8cf3a4a75a}\\label{interface_nakama_1_1_i_api_notification_a61fed141e1c0148f55eb1d8cf3a4a75a}} \nstring {\\bfseries Sender\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em ID of the sender, if a user. Otherwise \\textquotesingle{}null\\textquotesingle{}.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_a170e4f78c5754e9cac88b9791c8eedf7}\\label{interface_nakama_1_1_i_api_notification_a170e4f78c5754e9cac88b9791c8eedf7}} \nstring {\\bfseries Subject}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Subject of the notification.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA notification in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_notification_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_notification_list}{}\\doxysection{Nakama.\\+IApi\\+Notification\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_notification_list}\\index{Nakama.IApiNotificationList@{Nakama.IApiNotificationList}}\n\n\nA collection of zero or more notifications.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Notification\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_list_ad1e1367526b3bb581874a72521c1e80d}\\label{interface_nakama_1_1_i_api_notification_list_ad1e1367526b3bb581874a72521c1e80d}} \nstring {\\bfseries Cacheable\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Use this cursor to paginate notifications. Cache this to catch up to new notifications.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_notification_list_ae9af8a0fbf2f772de85683e8dc6c6f72}\\label{interface_nakama_1_1_i_api_notification_list_ae9af8a0fbf2f772de85683e8dc6c6f72}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification}{IApi\\+Notification}} $>$ {\\bfseries Notifications}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Collection of notifications.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA collection of zero or more notifications.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_read_storage_object_id.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 189.573456\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.637500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.IApiReadStorageObjectId) cw\n(Nakama.StorageObjectId) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.IApiReadStorageObjectId) 0.000000 1.000000 box\n (Nakama.StorageObjectId) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_read_storage_object_id.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_read_storage_object_id}{}\\doxysection{Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id Interface Reference}\n\\label{interface_nakama_1_1_i_api_read_storage_object_id}\\index{Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}}\n\n\nStorage objects to get.   \n\n\nInheritance diagram for Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_api_read_storage_object_id}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id_a978da3d2f7475abb748e153b2e742362}{Collection}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id_af6e84434171da0547ff9d04875c9df1c}{Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id_a3dc390e319f5ed88de8bd95179b23cc9}{User\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user owner of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nStorage objects to get.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_read_storage_object_id_a978da3d2f7475abb748e153b2e742362}\\label{interface_nakama_1_1_i_api_read_storage_object_id_a978da3d2f7475abb748e153b2e742362}} \n\\index{Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}!Collection@{Collection}}\n\\index{Collection@{Collection}!Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Collection}{Collection}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id.\\+Collection\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe collection which stores the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a1beb57b56e9b6b1f078391803e95fa95}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_read_storage_object_id_af6e84434171da0547ff9d04875c9df1c}\\label{interface_nakama_1_1_i_api_read_storage_object_id_af6e84434171da0547ff9d04875c9df1c}} \n\\index{Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}!Key@{Key}}\n\\index{Key@{Key}!Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{Key}{Key}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id.\\+Key\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe key of the object within the collection.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a4243d96cb3a1cf50a4f5a3cf790d7a1b}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_read_storage_object_id_a3dc390e319f5ed88de8bd95179b23cc9}\\label{interface_nakama_1_1_i_api_read_storage_object_id_a3dc390e319f5ed88de8bd95179b23cc9}} \n\\index{Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}!UserId@{UserId}}\n\\index{UserId@{UserId}!Nakama.IApiReadStorageObjectId@{Nakama.IApiReadStorageObjectId}}\n\\doxysubsubsection{\\texorpdfstring{UserId}{UserId}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Read\\+Storage\\+Object\\+Id.\\+User\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe user owner of the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id_a02e8a3b9a07d74c4230d7836304463e6}{Nakama.\\+Storage\\+Object\\+Id}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_read_storage_objects_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_read_storage_objects_request}{}\\doxysection{Nakama.\\+IApi\\+Read\\+Storage\\+Objects\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_read_storage_objects_request}\\index{Nakama.IApiReadStorageObjectsRequest@{Nakama.IApiReadStorageObjectsRequest}}\n\n\nBatch get storage objects.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Read\\+Storage\\+Objects\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_read_storage_objects_request_a045bd0e606650f42b5069a02801cc849}\\label{interface_nakama_1_1_i_api_read_storage_objects_request_a045bd0e606650f42b5069a02801cc849}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}} $>$ {\\bfseries Object\\+Ids}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch of storage objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nBatch get storage objects.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_rpc.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_rpc}{}\\doxysection{Nakama.\\+IApi\\+Rpc Interface Reference}\n\\label{interface_nakama_1_1_i_api_rpc}\\index{Nakama.IApiRpc@{Nakama.IApiRpc}}\n\n\nExecute an Lua function on the server.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Rpc.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_rpc_a3a27a1ee6c59781f9e7dfdc101976129}\\label{interface_nakama_1_1_i_api_rpc_a3a27a1ee6c59781f9e7dfdc101976129}} \nstring {\\bfseries Http\\+Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The authentication key used when executed as a non-\\/client HTTP request.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_rpc_acf92ca725c8b7b3e4c1bfc4e1dbdc274}\\label{interface_nakama_1_1_i_api_rpc_acf92ca725c8b7b3e4c1bfc4e1dbdc274}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The identifier of the function.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_rpc_a04baf54b17a8939f330b9549f9297246}\\label{interface_nakama_1_1_i_api_rpc_a04baf54b17a8939f330b9549f9297246}} \nstring {\\bfseries Payload}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The payload of the function which must be a JSON object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nExecute an Lua function on the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_session.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_session}{}\\doxysection{Nakama.\\+IApi\\+Session Interface Reference}\n\\label{interface_nakama_1_1_i_api_session}\\index{Nakama.IApiSession@{Nakama.IApiSession}}\n\n\nA user\\textquotesingle{}s session used to authenticate messages.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Session.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_a8bd8f7b82041c368fc60e6dd9ce5f2ce}\\label{interface_nakama_1_1_i_api_session_a8bd8f7b82041c368fc60e6dd9ce5f2ce}} \nbool {\\bfseries Created}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the corresponding account was just created, false otherwise.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_a454c959e3d561be5a45da315d99446b3}\\label{interface_nakama_1_1_i_api_session_a454c959e3d561be5a45da315d99446b3}} \nstring {\\bfseries Refresh\\+Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token that can be used for session token renewal.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_ae7eaba760429059845023e94e931a511}\\label{interface_nakama_1_1_i_api_session_ae7eaba760429059845023e94e931a511}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Authentication credentials.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA user\\textquotesingle{}s session used to authenticate messages.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_session_logout_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_session_logout_request}{}\\doxysection{Nakama.\\+IApi\\+Session\\+Logout\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_session_logout_request}\\index{Nakama.IApiSessionLogoutRequest@{Nakama.IApiSessionLogoutRequest}}\n\n\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Session\\+Logout\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_logout_request_a922b55c5d0d42e50c5ba0723c90007c2}\\label{interface_nakama_1_1_i_api_session_logout_request_a922b55c5d0d42e50c5ba0723c90007c2}} \nstring {\\bfseries Refresh\\+Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token to invalidate.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_logout_request_a4d22d391c1f34a8003bde5344524af61}\\label{interface_nakama_1_1_i_api_session_logout_request_a4d22d391c1f34a8003bde5344524af61}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_nakama_1_1_session}{Session}} token to log out.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_session_refresh_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_session_refresh_request}{}\\doxysection{Nakama.\\+IApi\\+Session\\+Refresh\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_session_refresh_request}\\index{Nakama.IApiSessionRefreshRequest@{Nakama.IApiSessionRefreshRequest}}\n\n\nAuthenticate against the server with a refresh token.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Session\\+Refresh\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_refresh_request_ab38a7f131abc8e234ae3aec7956ae5d5}\\label{interface_nakama_1_1_i_api_session_refresh_request_ab38a7f131abc8e234ae3aec7956ae5d5}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_session_refresh_request_a38e9ac3a365044f485fc169e64528369}\\label{interface_nakama_1_1_i_api_session_refresh_request_a38e9ac3a365044f485fc169e64528369}} \nIDictionary$<$ string, string $>$ {\\bfseries Vars}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Extra information that will be bundled in the session token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAuthenticate against the server with a refresh token.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_storage_object.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_storage_object}{}\\doxysection{Nakama.\\+IApi\\+Storage\\+Object Interface Reference}\n\\label{interface_nakama_1_1_i_api_storage_object}\\index{Nakama.IApiStorageObject@{Nakama.IApiStorageObject}}\n\n\nAn object within the storage engine.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Storage\\+Object.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ace56736c1d5ee02e6c227339cb19aebc}\\label{interface_nakama_1_1_i_api_storage_object_ace56736c1d5ee02e6c227339cb19aebc}} \nstring {\\bfseries Collection}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_aca1ee4d6d4b72763a50ce4ad49bae35d}\\label{interface_nakama_1_1_i_api_storage_object_aca1ee4d6d4b72763a50ce4ad49bae35d}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the object was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ae5d7d75e7c6d17a28948a523be66718d}\\label{interface_nakama_1_1_i_api_storage_object_ae5d7d75e7c6d17a28948a523be66718d}} \nstring {\\bfseries Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_afe764d8ab0ac13cfe2a55d165ee5611d}\\label{interface_nakama_1_1_i_api_storage_object_afe764d8ab0ac13cfe2a55d165ee5611d}} \nint {\\bfseries Permission\\+Read}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The read access permissions for the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_a2822259e1786821bf38f1ad6172516ef}\\label{interface_nakama_1_1_i_api_storage_object_a2822259e1786821bf38f1ad6172516ef}} \nint {\\bfseries Permission\\+Write}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The write access permissions for the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_a67b2c6f4b9dd3f933a885309e91addbc}\\label{interface_nakama_1_1_i_api_storage_object_a67b2c6f4b9dd3f933a885309e91addbc}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the object was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_a4659527ac8d99a2f953d3a2a10647390}\\label{interface_nakama_1_1_i_api_storage_object_a4659527ac8d99a2f953d3a2a10647390}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user owner of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ab0fd9c8504361c8184e254893210afa8}\\label{interface_nakama_1_1_i_api_storage_object_ab0fd9c8504361c8184e254893210afa8}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The value of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_a350c971007a18d83bc35af8216643023}\\label{interface_nakama_1_1_i_api_storage_object_a350c971007a18d83bc35af8216643023}} \nstring {\\bfseries Version}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn object within the storage engine.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_storage_object_ack.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_storage_object_ack}{}\\doxysection{Nakama.\\+IApi\\+Storage\\+Object\\+Ack Interface Reference}\n\\label{interface_nakama_1_1_i_api_storage_object_ack}\\index{Nakama.IApiStorageObjectAck@{Nakama.IApiStorageObjectAck}}\n\n\nA storage acknowledgement.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Storage\\+Object\\+Ack.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ack_a5303268ed75343c6b41b4ee8bb95a826}\\label{interface_nakama_1_1_i_api_storage_object_ack_a5303268ed75343c6b41b4ee8bb95a826}} \nstring {\\bfseries Collection}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection which stores the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ack_a67093404b849db0edcaacaf5f5fbd26f}\\label{interface_nakama_1_1_i_api_storage_object_ack_a67093404b849db0edcaacaf5f5fbd26f}} \nstring {\\bfseries Key}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key of the object within the collection.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ack_aac969bd5c11233308fe280643109945d}\\label{interface_nakama_1_1_i_api_storage_object_ack_aac969bd5c11233308fe280643109945d}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The owner of the object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_ack_a83d288d0b4a11a484e7fe6deee0cd03f}\\label{interface_nakama_1_1_i_api_storage_object_ack_a83d288d0b4a11a484e7fe6deee0cd03f}} \nstring {\\bfseries Version}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA storage acknowledgement.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_storage_object_acks.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_storage_object_acks}{}\\doxysection{Nakama.\\+IApi\\+Storage\\+Object\\+Acks Interface Reference}\n\\label{interface_nakama_1_1_i_api_storage_object_acks}\\index{Nakama.IApiStorageObjectAcks@{Nakama.IApiStorageObjectAcks}}\n\n\nBatch of acknowledgements for the storage object write.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Storage\\+Object\\+Acks.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_acks_a85b2fe1a3f5cffdec69a6ae036e3f456}\\label{interface_nakama_1_1_i_api_storage_object_acks_a85b2fe1a3f5cffdec69a6ae036e3f456}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_ack}{IApi\\+Storage\\+Object\\+Ack}} $>$ {\\bfseries Acks}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch of storage write acknowledgements.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nBatch of acknowledgements for the storage object write.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_storage_object_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_storage_object_list}{}\\doxysection{Nakama.\\+IApi\\+Storage\\+Object\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_storage_object_list}\\index{Nakama.IApiStorageObjectList@{Nakama.IApiStorageObjectList}}\n\n\nList of storage objects.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Storage\\+Object\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_list_a7741b9b18dead8cdc71eceb27940efca}\\label{interface_nakama_1_1_i_api_storage_object_list_a7741b9b18dead8cdc71eceb27940efca}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_object_list_a5cf3f05e26bf01887edc99b2f59d54e4}\\label{interface_nakama_1_1_i_api_storage_object_list_a5cf3f05e26bf01887edc99b2f59d54e4}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}} $>$ {\\bfseries Objects}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The list of storage objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList of storage objects.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_storage_objects.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_storage_objects}{}\\doxysection{Nakama.\\+IApi\\+Storage\\+Objects Interface Reference}\n\\label{interface_nakama_1_1_i_api_storage_objects}\\index{Nakama.IApiStorageObjects@{Nakama.IApiStorageObjects}}\n\n\nBatch of storage objects.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Storage\\+Objects.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_storage_objects_a2435b98e1fa0994979d58af1fba71a06}\\label{interface_nakama_1_1_i_api_storage_objects_a2435b98e1fa0994979d58af1fba71a06}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}} $>$ {\\bfseries Objects}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The batch of storage objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nBatch of storage objects.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_subscription_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_subscription_list}{}\\doxysection{Nakama.\\+IApi\\+Subscription\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_subscription_list}\\index{Nakama.IApiSubscriptionList@{Nakama.IApiSubscriptionList}}\n\n\nA list of validated subscriptions stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Subscription\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_subscription_list_a1fc507382f5582df7f7fe0bfaf608c41}\\label{interface_nakama_1_1_i_api_subscription_list_a1fc507382f5582df7f7fe0bfaf608c41}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the next page, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_subscription_list_a27a234d8246232f5e1f80746e495c276}\\label{interface_nakama_1_1_i_api_subscription_list_a27a234d8246232f5e1f80746e495c276}} \nstring {\\bfseries Prev\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the previous page, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_subscription_list_ac8c1cbe824f3e128a0af4622d1a05906}\\label{interface_nakama_1_1_i_api_subscription_list_ac8c1cbe824f3e128a0af4622d1a05906}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} $>$ {\\bfseries Validated\\+Subscriptions}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Stored validated subscriptions.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of validated subscriptions stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_tournament.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_tournament}{}\\doxysection{Nakama.\\+IApi\\+Tournament Interface Reference}\n\\label{interface_nakama_1_1_i_api_tournament}\\index{Nakama.IApiTournament@{Nakama.IApiTournament}}\n\n\nA tournament on the server.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Tournament.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_abca204c196b0a90e4342e18f4c935630}\\label{interface_nakama_1_1_i_api_tournament_abca204c196b0a90e4342e18f4c935630}} \nbool {\\bfseries Can\\+Enter}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the tournament is active and can enter. A computed value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_ad4d095c5500d084ae1071979320f4803}\\label{interface_nakama_1_1_i_api_tournament_ad4d095c5500d084ae1071979320f4803}} \nint {\\bfseries Category}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The category of the tournament. e.\\+g. \\char`\\\"{}vip\\char`\\\"{} could be category 1.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a327d36c0623cd95772505dbde9029671}\\label{interface_nakama_1_1_i_api_tournament_a327d36c0623cd95772505dbde9029671}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_aa7ee9f3fa78017bed567b84b7af1d356}\\label{interface_nakama_1_1_i_api_tournament_aa7ee9f3fa78017bed567b84b7af1d356}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The description of the tournament. May be blank.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a8229e8ffce987b19036dd1af156f4748}\\label{interface_nakama_1_1_i_api_tournament_a8229e8ffce987b19036dd1af156f4748}} \nint {\\bfseries Duration}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Duration of the tournament in seconds.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a28f939c5594b45c2a8f517b5646f0f06}\\label{interface_nakama_1_1_i_api_tournament_a28f939c5594b45c2a8f517b5646f0f06}} \nint {\\bfseries End\\+Active}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament stops being active until next reset. A computed value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a2fe168cd7f9b5adf8aca1074d14f6bee}\\label{interface_nakama_1_1_i_api_tournament_a2fe168cd7f9b5adf8aca1074d14f6bee}} \nstring {\\bfseries End\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament will be stopped.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a451f344a2984712b711f89e49198fa57}\\label{interface_nakama_1_1_i_api_tournament_a451f344a2984712b711f89e49198fa57}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the tournament.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a437455a81843911cf56fcb6d2a8a80a7}\\label{interface_nakama_1_1_i_api_tournament_a437455a81843911cf56fcb6d2a8a80a7}} \nint {\\bfseries Max\\+Num\\+Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum score updates allowed per player for the current tournament.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a42f5ceae3569e5d4081a501f08e0b7b9}\\label{interface_nakama_1_1_i_api_tournament_a42f5ceae3569e5d4081a501f08e0b7b9}} \nint {\\bfseries Max\\+Size}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of players for the tournament.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a47768bcf7dd97abea99e001f7c9695f7}\\label{interface_nakama_1_1_i_api_tournament_a47768bcf7dd97abea99e001f7c9695f7}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Additional information stored as a JSON object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a95b05c4d22f3e44c458e082b28696ca1}\\label{interface_nakama_1_1_i_api_tournament_a95b05c4d22f3e44c458e082b28696ca1}} \nint {\\bfseries Next\\+Reset}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament is next playable. A computed value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_ac176de4d1c0e1442861bf0de5d64edef}\\label{interface_nakama_1_1_i_api_tournament_ac176de4d1c0e1442861bf0de5d64edef}} \n\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} {\\bfseries Operator}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Operator.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_aa9795e55a84d977b4858193f667015fb}\\label{interface_nakama_1_1_i_api_tournament_aa9795e55a84d977b4858193f667015fb}} \nint {\\bfseries Prev\\+Reset}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament was last reset. A computed value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a2b6ac3469abfb67c9cbc6f8929f04bb7}\\label{interface_nakama_1_1_i_api_tournament_a2b6ac3469abfb67c9cbc6f8929f04bb7}} \nint {\\bfseries Size}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current number of players in the tournament.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_acb01044753093c9ab2311f51f9c01cdf}\\label{interface_nakama_1_1_i_api_tournament_acb01044753093c9ab2311f51f9c01cdf}} \nint {\\bfseries Sort\\+Order}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em ASC (0) or DESC (1) sort mode of scores in the tournament.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_aceca06fc1dd464d9635399e4add87cbf}\\label{interface_nakama_1_1_i_api_tournament_aceca06fc1dd464d9635399e4add87cbf}} \nint {\\bfseries Start\\+Active}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament start being active. A computed value.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a02aea8c93c075cbb364bf9215916dfda}\\label{interface_nakama_1_1_i_api_tournament_a02aea8c93c075cbb364bf9215916dfda}} \nstring {\\bfseries Start\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the tournament will start.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_a0d1cdd84f43595345239d58b5a56cd41}\\label{interface_nakama_1_1_i_api_tournament_a0d1cdd84f43595345239d58b5a56cd41}} \nstring {\\bfseries Title}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The title for the tournament.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA tournament on the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_tournament_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_tournament_list}{}\\doxysection{Nakama.\\+IApi\\+Tournament\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_tournament_list}\\index{Nakama.IApiTournamentList@{Nakama.IApiTournamentList}}\n\n\nA list of tournaments.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Tournament\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_list_a26a61ec1b98b82ef3f61c209228a5241}\\label{interface_nakama_1_1_i_api_tournament_list_a26a61ec1b98b82ef3f61c209228a5241}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A pagination cursor (optional).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_list_ac0e197f155ef68dff3ab4835407651b3}\\label{interface_nakama_1_1_i_api_tournament_list_ac0e197f155ef68dff3ab4835407651b3}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament}{IApi\\+Tournament}} $>$ {\\bfseries Tournaments}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The list of tournaments returned.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of tournaments.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_tournament_record_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_tournament_record_list}{}\\doxysection{Nakama.\\+IApi\\+Tournament\\+Record\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_tournament_record_list}\\index{Nakama.IApiTournamentRecordList@{Nakama.IApiTournamentRecordList}}\n\n\nA set of tournament records which may be part of a tournament records page or a batch of individual records.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Tournament\\+Record\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_record_list_a16b8f33e3684635d89904c4faadf64a0}\\label{interface_nakama_1_1_i_api_tournament_record_list_a16b8f33e3684635d89904c4faadf64a0}} \nstring {\\bfseries Next\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retireving the next page (optional).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_record_list_a25bb923777ed497e6e951d5e3ddb54fe}\\label{interface_nakama_1_1_i_api_tournament_record_list_a25bb923777ed497e6e951d5e3ddb54fe}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ {\\bfseries Owner\\+Records}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A batched set of tournament records belonging to specified owners.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_record_list_a56fa396d34225f5b646941f06cc7add8}\\label{interface_nakama_1_1_i_api_tournament_record_list_a56fa396d34225f5b646941f06cc7add8}} \nstring {\\bfseries Prev\\+Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The cursor to send when retrieving the previous page (optional).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_tournament_record_list_a1a1021817f86ef4232fa9f539bf9200d}\\label{interface_nakama_1_1_i_api_tournament_record_list_a1a1021817f86ef4232fa9f539bf9200d}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ {\\bfseries Records}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of tournament records.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA set of tournament records which may be part of a tournament records page or a batch of individual records.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_update_account_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_update_account_request}{}\\doxysection{Nakama.\\+IApi\\+Update\\+Account\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_update_account_request}\\index{Nakama.IApiUpdateAccountRequest@{Nakama.IApiUpdateAccountRequest}}\n\n\nUpdate a user\\textquotesingle{}s account details.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Update\\+Account\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_a8d1f3bf3766cd7340ba66ca2a74e7a63}\\label{interface_nakama_1_1_i_api_update_account_request_a8d1f3bf3766cd7340ba66ca2a74e7a63}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_a993356bac470c2c097e3737c592df904}\\label{interface_nakama_1_1_i_api_update_account_request_a993356bac470c2c097e3737c592df904}} \nstring {\\bfseries Display\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The display name of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_a7899f3c0f57fd33631e5e255f5b76445}\\label{interface_nakama_1_1_i_api_update_account_request_a7899f3c0f57fd33631e5e255f5b76445}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_a6a2ab4f61a274f4a618ad7362ebb7708}\\label{interface_nakama_1_1_i_api_update_account_request_a6a2ab4f61a274f4a618ad7362ebb7708}} \nstring {\\bfseries Location}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The location set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_aa55b972d8c9443ae99e47020d3231665}\\label{interface_nakama_1_1_i_api_update_account_request_aa55b972d8c9443ae99e47020d3231665}} \nstring {\\bfseries Timezone}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The timezone set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_account_request_a582846f7bdd9a35d8864fc2004b0e26d}\\label{interface_nakama_1_1_i_api_update_account_request_a582846f7bdd9a35d8864fc2004b0e26d}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nUpdate a user\\textquotesingle{}s account details.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_update_group_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_update_group_request}{}\\doxysection{Nakama.\\+IApi\\+Update\\+Group\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_update_group_request}\\index{Nakama.IApiUpdateGroupRequest@{Nakama.IApiUpdateGroupRequest}}\n\n\nUpdate fields in a given group.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Update\\+Group\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_a144112a79ce69e6fe3ad8802b6ce82e7}\\label{interface_nakama_1_1_i_api_update_group_request_a144112a79ce69e6fe3ad8802b6ce82e7}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Avatar URL.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_affe1c70151669abaf57777cf84b4acab}\\label{interface_nakama_1_1_i_api_update_group_request_affe1c70151669abaf57777cf84b4acab}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Description string.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_a49381265ed2f5d7fe6bba067634ad29f}\\label{interface_nakama_1_1_i_api_update_group_request_a49381265ed2f5d7fe6bba067634ad29f}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group to update.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_ace7628056b6e1eab29b3ff8ff2a8ca4d}\\label{interface_nakama_1_1_i_api_update_group_request_ace7628056b6e1eab29b3ff8ff2a8ca4d}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Lang tag.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_a1415bb059f6c75ea9e22f87de398c660}\\label{interface_nakama_1_1_i_api_update_group_request_a1415bb059f6c75ea9e22f87de398c660}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Name.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_update_group_request_a7bf227165843823761670f54a4e4f262}\\label{interface_nakama_1_1_i_api_update_group_request_a7bf227165843823761670f54a4e4f262}} \nbool {\\bfseries Open}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nUpdate fields in a given group.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_user.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_user}{}\\doxysection{Nakama.\\+IApi\\+User Interface Reference}\n\\label{interface_nakama_1_1_i_api_user}\\index{Nakama.IApiUser@{Nakama.IApiUser}}\n\n\nA user in the server.   \n\n\n\n\nInherited by Nakama.\\+Api\\+User.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_ab0198bc70ded313e6c9c6763eb8ceb2c}\\label{interface_nakama_1_1_i_api_user_ab0198bc70ded313e6c9c6763eb8ceb2c}} \nstring {\\bfseries Apple\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Apple Sign In ID in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_afb7372669926e49e84d65eda35d96e57}\\label{interface_nakama_1_1_i_api_user_afb7372669926e49e84d65eda35d96e57}} \nstring {\\bfseries Avatar\\+Url}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A URL for an avatar image.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a6116a031588ee6664cdd6b65ca3e3a35}\\label{interface_nakama_1_1_i_api_user_a6116a031588ee6664cdd6b65ca3e3a35}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_ac93d01ededb4f9a2105ab9f828288554}\\label{interface_nakama_1_1_i_api_user_ac93d01ededb4f9a2105ab9f828288554}} \nstring {\\bfseries Display\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The display name of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a7f2b29d0beac44418db1fe0a91d28f4a}\\label{interface_nakama_1_1_i_api_user_a7f2b29d0beac44418db1fe0a91d28f4a}} \nint {\\bfseries Edge\\+Count}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Number of related edges to this user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_afd987c60472977cc3bd5f8b0da50f194}\\label{interface_nakama_1_1_i_api_user_afd987c60472977cc3bd5f8b0da50f194}} \nstring {\\bfseries Facebook\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Facebook id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a798294cd46d9dd22fd9eee3596f8454f}\\label{interface_nakama_1_1_i_api_user_a798294cd46d9dd22fd9eee3596f8454f}} \nstring {\\bfseries Facebook\\+Instant\\+Game\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Facebook Instant Game ID in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a0071dbc7def5d61dc862bf299cd539fd}\\label{interface_nakama_1_1_i_api_user_a0071dbc7def5d61dc862bf299cd539fd}} \nstring {\\bfseries Gamecenter\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Apple Game Center in of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a9d9808e7de09665a27a3c80c5b0528c6}\\label{interface_nakama_1_1_i_api_user_a9d9808e7de09665a27a3c80c5b0528c6}} \nstring {\\bfseries Google\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Google id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a27ba5e2dff5807febaf5efae3d5e1a05}\\label{interface_nakama_1_1_i_api_user_a27ba5e2dff5807febaf5efae3d5e1a05}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a122a8e64057ff866cf1f70d56250bbc3}\\label{interface_nakama_1_1_i_api_user_a122a8e64057ff866cf1f70d56250bbc3}} \nstring {\\bfseries Lang\\+Tag}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The language expected to be a tag which follows the BCP-\\/47 spec.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_ae1da0ac24e130205f709f5866c9eab40}\\label{interface_nakama_1_1_i_api_user_ae1da0ac24e130205f709f5866c9eab40}} \nstring {\\bfseries Location}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The location set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a4b152a1c6dedc1d5153073752d745ee4}\\label{interface_nakama_1_1_i_api_user_a4b152a1c6dedc1d5153073752d745ee4}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Additional information stored as a JSON object.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_ad0cde265702684b22c011e5ad50bc623}\\label{interface_nakama_1_1_i_api_user_ad0cde265702684b22c011e5ad50bc623}} \nbool {\\bfseries Online}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Indicates whether the user is currently online.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a4d5ae38271c94c784a6109eb75b445c9}\\label{interface_nakama_1_1_i_api_user_a4d5ae38271c94c784a6109eb75b445c9}} \nstring {\\bfseries Steam\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The Steam id in the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_ae873fe0750aa08303676c1f21ef55dd5}\\label{interface_nakama_1_1_i_api_user_ae873fe0750aa08303676c1f21ef55dd5}} \nstring {\\bfseries Timezone}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The timezone set by the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a8aff59a5e341fe445578d2f108a80ddd}\\label{interface_nakama_1_1_i_api_user_a8aff59a5e341fe445578d2f108a80ddd}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the user was last updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_a0c91538eea10c6fa05fc5ea8271ef266}\\label{interface_nakama_1_1_i_api_user_a0c91538eea10c6fa05fc5ea8271ef266}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA user in the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_user_group_list.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_user_group_list}{}\\doxysection{Nakama.\\+IApi\\+User\\+Group\\+List Interface Reference}\n\\label{interface_nakama_1_1_i_api_user_group_list}\\index{Nakama.IApiUserGroupList@{Nakama.IApiUserGroupList}}\n\n\nA list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.   \n\n\n\n\nInherited by Nakama.\\+Api\\+User\\+Group\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_group_list_ab8631f083296460a22008ed1d4c5f3de}\\label{interface_nakama_1_1_i_api_user_group_list_ab8631f083296460a22008ed1d4c5f3de}} \nstring {\\bfseries Cursor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Cursor for the next page of results, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_user_group_list_a9fb7bd1ab9624d212aa94cc12023c201}\\label{interface_nakama_1_1_i_api_user_group_list_a9fb7bd1ab9624d212aa94cc12023c201}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_group_list_user_group}{IUser\\+Group\\+List\\+User\\+Group}} $>$ {\\bfseries User\\+Groups}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Group-\\/role pairs for a user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_users.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_users}{}\\doxysection{Nakama.\\+IApi\\+Users Interface Reference}\n\\label{interface_nakama_1_1_i_api_users}\\index{Nakama.IApiUsers@{Nakama.IApiUsers}}\n\n\nA collection of zero or more users.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Users.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_users_ad55f30878df5930844ed1d7ece6cf30e}\\label{interface_nakama_1_1_i_api_users_ad55f30878df5930844ed1d7ece6cf30e}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$ {\\bfseries Users}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The User objects.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA collection of zero or more users.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_purchase_apple_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_purchase_apple_request}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Purchase\\+Apple\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_purchase_apple_request}\\index{Nakama.IApiValidatePurchaseAppleRequest@{Nakama.IApiValidatePurchaseAppleRequest}}\n\n\nApple IAP Purchases validation request   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Purchase\\+Apple\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_apple_request_a29eafeeb27bbd3712cae61a661446274}\\label{interface_nakama_1_1_i_api_validate_purchase_apple_request_a29eafeeb27bbd3712cae61a661446274}} \nbool {\\bfseries Persist}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Persist the purchase  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_apple_request_aa6721f9ea220bce44e5274fcf335a4b6}\\label{interface_nakama_1_1_i_api_validate_purchase_apple_request_aa6721f9ea220bce44e5274fcf335a4b6}} \nstring {\\bfseries Receipt}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Base64 encoded Apple receipt data payload.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nApple IAP Purchases validation request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_purchase_google_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_purchase_google_request}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Purchase\\+Google\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_purchase_google_request}\\index{Nakama.IApiValidatePurchaseGoogleRequest@{Nakama.IApiValidatePurchaseGoogleRequest}}\n\n\nGoogle IAP Purchase validation request   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Purchase\\+Google\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_google_request_ad24968b3a0dc1595776465da70f0ee97}\\label{interface_nakama_1_1_i_api_validate_purchase_google_request_ad24968b3a0dc1595776465da70f0ee97}} \nbool {\\bfseries Persist}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Persist the purchase  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_google_request_adbb2be238e1fda23e46502e541909437}\\label{interface_nakama_1_1_i_api_validate_purchase_google_request_adbb2be238e1fda23e46502e541909437}} \nstring {\\bfseries Purchase}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em JSON encoded Google purchase payload.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nGoogle IAP Purchase validation request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_purchase_huawei_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_purchase_huawei_request}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Purchase\\+Huawei\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_purchase_huawei_request}\\index{Nakama.IApiValidatePurchaseHuaweiRequest@{Nakama.IApiValidatePurchaseHuaweiRequest}}\n\n\nHuawei IAP Purchase validation request   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Purchase\\+Huawei\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_huawei_request_a65bb03ffbc75254960de1019c98fdf7a}\\label{interface_nakama_1_1_i_api_validate_purchase_huawei_request_a65bb03ffbc75254960de1019c98fdf7a}} \nbool {\\bfseries Persist}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Persist the purchase  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_huawei_request_ac3306d845f2efbb81bcedf36605d9670}\\label{interface_nakama_1_1_i_api_validate_purchase_huawei_request_ac3306d845f2efbb81bcedf36605d9670}} \nstring {\\bfseries Purchase}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em JSON encoded Huawei In\\+App\\+Purchase\\+Data.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_huawei_request_a7b98a33ae94db920a247eb5f1c618489}\\label{interface_nakama_1_1_i_api_validate_purchase_huawei_request_a7b98a33ae94db920a247eb5f1c618489}} \nstring {\\bfseries Signature}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em In\\+App\\+Purchase\\+Data signature.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nHuawei IAP Purchase validation request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_purchase_response.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_purchase_response}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Purchase\\+Response Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_purchase_response}\\index{Nakama.IApiValidatePurchaseResponse@{Nakama.IApiValidatePurchaseResponse}}\n\n\nValidate IAP response.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Purchase\\+Response.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_purchase_response_ac515e00701e7a9e955b59940109844c3}\\label{interface_nakama_1_1_i_api_validate_purchase_response_ac515e00701e7a9e955b59940109844c3}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_purchase}{IApi\\+Validated\\+Purchase}} $>$ {\\bfseries Validated\\+Purchases}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Newly seen validated purchases.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nValidate IAP response.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_subscription_apple_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_subscription_apple_request}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Subscription\\+Apple\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_subscription_apple_request}\\index{Nakama.IApiValidateSubscriptionAppleRequest@{Nakama.IApiValidateSubscriptionAppleRequest}}\n\n\nApple Subscription validation request   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Subscription\\+Apple\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_subscription_apple_request_ac3678f34874a815bfbe6d81b8fe25779}\\label{interface_nakama_1_1_i_api_validate_subscription_apple_request_ac3678f34874a815bfbe6d81b8fe25779}} \nbool {\\bfseries Persist}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Persist the subscription.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_subscription_apple_request_aea80877b3c4ab065ec156c2e5e97edc9}\\label{interface_nakama_1_1_i_api_validate_subscription_apple_request_aea80877b3c4ab065ec156c2e5e97edc9}} \nstring {\\bfseries Receipt}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Base64 encoded Apple receipt data payload.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nApple Subscription validation request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_subscription_google_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_subscription_google_request}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Subscription\\+Google\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_subscription_google_request}\\index{Nakama.IApiValidateSubscriptionGoogleRequest@{Nakama.IApiValidateSubscriptionGoogleRequest}}\n\n\nGoogle Subscription validation request   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Subscription\\+Google\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_subscription_google_request_a1b0a2361edbd84507267d9cacf2a2602}\\label{interface_nakama_1_1_i_api_validate_subscription_google_request_a1b0a2361edbd84507267d9cacf2a2602}} \nbool {\\bfseries Persist}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Persist the subscription.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_subscription_google_request_a9b163d346293af62efe1bc1be55628dc}\\label{interface_nakama_1_1_i_api_validate_subscription_google_request_a9b163d346293af62efe1bc1be55628dc}} \nstring {\\bfseries Receipt}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em JSON encoded Google purchase payload.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nGoogle Subscription validation request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validate_subscription_response.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validate_subscription_response}{}\\doxysection{Nakama.\\+IApi\\+Validate\\+Subscription\\+Response Interface Reference}\n\\label{interface_nakama_1_1_i_api_validate_subscription_response}\\index{Nakama.IApiValidateSubscriptionResponse@{Nakama.IApiValidateSubscriptionResponse}}\n\n\nValidate Subscription response.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validate\\+Subscription\\+Response.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response_a6580631e345803ccb37fc9835078bdb1}{Validated\\+Subscription}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nValidate Subscription response.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validate_subscription_response_a6580631e345803ccb37fc9835078bdb1}\\label{interface_nakama_1_1_i_api_validate_subscription_response_a6580631e345803ccb37fc9835078bdb1}} \n\\index{Nakama.IApiValidateSubscriptionResponse@{Nakama.IApiValidateSubscriptionResponse}!ValidatedSubscription@{ValidatedSubscription}}\n\\index{ValidatedSubscription@{ValidatedSubscription}!Nakama.IApiValidateSubscriptionResponse@{Nakama.IApiValidateSubscriptionResponse}}\n\\doxysubsubsection{\\texorpdfstring{ValidatedSubscription}{ValidatedSubscription}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} Nakama.\\+IApi\\+Validate\\+Subscription\\+Response.\\+Validated\\+Subscription\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validated_purchase.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validated_purchase}{}\\doxysection{Nakama.\\+IApi\\+Validated\\+Purchase Interface Reference}\n\\label{interface_nakama_1_1_i_api_validated_purchase}\\index{Nakama.IApiValidatedPurchase@{Nakama.IApiValidatedPurchase}}\n\n\nValidated Purchase stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Validated\\+Purchase.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_ab522c40c8f1cffedcd9b3ad45c5f8fd5}\\label{interface_nakama_1_1_i_api_validated_purchase_ab522c40c8f1cffedcd9b3ad45c5f8fd5}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the receipt validation was stored in DB.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_a5171b7d837aa864e97317c7f13919b33}\\label{interface_nakama_1_1_i_api_validated_purchase_a5171b7d837aa864e97317c7f13919b33}} \n\\mbox{\\hyperlink{namespace_nakama_a216a2d7c4acbc3a4f29a98514c483cd6}{Api\\+Store\\+Environment}} {\\bfseries Environment}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Whether the purchase was done in production or sandbox environment.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_a9e77eff1ebd7d0c2c55d8df258365810}\\label{interface_nakama_1_1_i_api_validated_purchase_a9e77eff1ebd7d0c2c55d8df258365810}} \nstring {\\bfseries Product\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Purchase Product ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_a4b6f8451926587ea57801a8461e3199d}\\label{interface_nakama_1_1_i_api_validated_purchase_a4b6f8451926587ea57801a8461e3199d}} \nstring {\\bfseries Provider\\+Response}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Raw provider validation response.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_abcd7b40de1b2e332e03cb32fb3c42395}\\label{interface_nakama_1_1_i_api_validated_purchase_abcd7b40de1b2e332e03cb32fb3c42395}} \nstring {\\bfseries Purchase\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the purchase was done.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_ac09207aebbde21f6c3e0fdd90f88f5f4}\\label{interface_nakama_1_1_i_api_validated_purchase_ac09207aebbde21f6c3e0fdd90f88f5f4}} \nbool {\\bfseries Seen\\+Before}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Whether the purchase had already been validated by \\mbox{\\hyperlink{namespace_nakama}{Nakama}} before.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_a82b03837923ce9da25df12a6e72962e1}\\label{interface_nakama_1_1_i_api_validated_purchase_a82b03837923ce9da25df12a6e72962e1}} \n\\mbox{\\hyperlink{namespace_nakama_a80ae1f687aff9e2cdddb9e69a557cc49}{Api\\+Store\\+Provider}} {\\bfseries Store}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Store identifier  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_a6b3f6c488bf5a83524e8b09e19dd1427}\\label{interface_nakama_1_1_i_api_validated_purchase_a6b3f6c488bf5a83524e8b09e19dd1427}} \nstring {\\bfseries Transaction\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Purchase Transaction ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_purchase_ae4607e3920b05740205f5149166ff23f}\\label{interface_nakama_1_1_i_api_validated_purchase_ae4607e3920b05740205f5149166ff23f}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the receipt validation was updated in DB.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nValidated Purchase stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_validated_subscription.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_validated_subscription}{}\\doxysection{Nakama.\\+IApi\\+Validated\\+Subscription Interface Reference}\n\\label{interface_nakama_1_1_i_api_validated_subscription}\\index{Nakama.IApiValidatedSubscription@{Nakama.IApiValidatedSubscription}}\n\n\n \n\n\n\n\nInherited by Nakama.\\+Api\\+Validated\\+Subscription.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_ad295f4a89fa4d5b54a691e086cfdb013}\\label{interface_nakama_1_1_i_api_validated_subscription_ad295f4a89fa4d5b54a691e086cfdb013}} \nbool {\\bfseries Active}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Whether the subscription is currently active or not.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a2d25263a204ac800dfcab8a1f24bcfc6}\\label{interface_nakama_1_1_i_api_validated_subscription_a2d25263a204ac800dfcab8a1f24bcfc6}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the receipt validation was stored in DB.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a85d85cc53beb77e429f8f5416f7e2ee3}\\label{interface_nakama_1_1_i_api_validated_subscription_a85d85cc53beb77e429f8f5416f7e2ee3}} \n\\mbox{\\hyperlink{namespace_nakama_a216a2d7c4acbc3a4f29a98514c483cd6}{Api\\+Store\\+Environment}} {\\bfseries Environment}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Whether the purchase was done in production or sandbox environment.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a0d0a1443f00326171a35e53cd9294b73}\\label{interface_nakama_1_1_i_api_validated_subscription_a0d0a1443f00326171a35e53cd9294b73}} \nstring {\\bfseries Expiry\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Subscription expiration time. The subscription can still be auto-\\/renewed to extend the expiration time further.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_afae954930e5534383653571ba5261a8a}\\label{interface_nakama_1_1_i_api_validated_subscription_afae954930e5534383653571ba5261a8a}} \nstring {\\bfseries Original\\+Transaction\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Purchase Original transaction ID (we only keep track of the original subscription, not subsequent renewals).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a27b8546445c82ef0ec29e2e19e7012bb}\\label{interface_nakama_1_1_i_api_validated_subscription_a27b8546445c82ef0ec29e2e19e7012bb}} \nstring {\\bfseries Product\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Purchase Product ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a1f5e26f1891e4ec02d7f977e924a5e3f}\\label{interface_nakama_1_1_i_api_validated_subscription_a1f5e26f1891e4ec02d7f977e924a5e3f}} \nstring {\\bfseries Purchase\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the purchase was done.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a0823f4340d5db22b3e765c624df8ad24}\\label{interface_nakama_1_1_i_api_validated_subscription_a0823f4340d5db22b3e765c624df8ad24}} \n\\mbox{\\hyperlink{namespace_nakama_a80ae1f687aff9e2cdddb9e69a557cc49}{Api\\+Store\\+Provider}} {\\bfseries Store}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Store identifier  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_validated_subscription_a491121c001aceae5d066dd6fa71a2695}\\label{interface_nakama_1_1_i_api_validated_subscription_a491121c001aceae5d066dd6fa71a2695}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em UNIX Timestamp when the receipt validation was updated in DB.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_write_storage_object.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 199.004974\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.512500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.IApiWriteStorageObject) cw\n(Nakama.WriteStorageObject) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.IApiWriteStorageObject) 0.000000 1.000000 box\n (Nakama.WriteStorageObject) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_write_storage_object.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_write_storage_object}{}\\doxysection{Nakama.\\+IApi\\+Write\\+Storage\\+Object Interface Reference}\n\\label{interface_nakama_1_1_i_api_write_storage_object}\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\n\nThe object to store.   \n\n\nInheritance diagram for Nakama.\\+IApi\\+Write\\+Storage\\+Object\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_api_write_storage_object}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_acb00e14d09ac57ee6244e42bb7e8a521}{Collection}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The collection to store the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a3126c1e5831a1984900be2ad8b51f757}{Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key for the object within the collection.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a89e035c6b6f1fff5e890c1124039cc14}{Permission\\+Read}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The read access permissions for the object.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_a818dfc3d3c371095958a182635bd9fad}{Permission\\+Write}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The write access permissions for the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_aefddcaddc15b913e27fcebe9d655c5f5}{Value}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The value of the object.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object_aa5c76e4c2e3d5a0b5e514553bed16068}{Version}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The version hash of the object to check. Possible values are\\+: \\mbox{[}\\char`\\\"{}\\char`\\\"{}, \\char`\\\"{}$\\ast$\\char`\\\"{}, \\char`\\\"{}\\#hash\\#\\char`\\\"{}\\mbox{]}.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe object to store.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_acb00e14d09ac57ee6244e42bb7e8a521}\\label{interface_nakama_1_1_i_api_write_storage_object_acb00e14d09ac57ee6244e42bb7e8a521}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!Collection@{Collection}}\n\\index{Collection@{Collection}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Collection}{Collection}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Collection\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe collection to store the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_ac0d5b4bd2a8e8b6f6f35acb29fe799b3}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_a3126c1e5831a1984900be2ad8b51f757}\\label{interface_nakama_1_1_i_api_write_storage_object_a3126c1e5831a1984900be2ad8b51f757}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!Key@{Key}}\n\\index{Key@{Key}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Key}{Key}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Key\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe key for the object within the collection.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a3cad528f534a95f3bfae4c4db48cb7a1}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_a89e035c6b6f1fff5e890c1124039cc14}\\label{interface_nakama_1_1_i_api_write_storage_object_a89e035c6b6f1fff5e890c1124039cc14}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!PermissionRead@{PermissionRead}}\n\\index{PermissionRead@{PermissionRead}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{PermissionRead}{PermissionRead}}\n{\\footnotesize\\ttfamily int Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Permission\\+Read\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe read access permissions for the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a8da5054f8a07031a14ed7c9b20e1b0ed}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_a818dfc3d3c371095958a182635bd9fad}\\label{interface_nakama_1_1_i_api_write_storage_object_a818dfc3d3c371095958a182635bd9fad}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!PermissionWrite@{PermissionWrite}}\n\\index{PermissionWrite@{PermissionWrite}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{PermissionWrite}{PermissionWrite}}\n{\\footnotesize\\ttfamily int Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Permission\\+Write\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe write access permissions for the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_ac3a29f29170b78edd7e45b7c539fe811}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_aefddcaddc15b913e27fcebe9d655c5f5}\\label{interface_nakama_1_1_i_api_write_storage_object_aefddcaddc15b913e27fcebe9d655c5f5}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!Value@{Value}}\n\\index{Value@{Value}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Value}{Value}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Value\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe value of the object.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a8957c485fd56e513c1e17b47a22f9026}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_object_aa5c76e4c2e3d5a0b5e514553bed16068}\\label{interface_nakama_1_1_i_api_write_storage_object_aa5c76e4c2e3d5a0b5e514553bed16068}} \n\\index{Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}!Version@{Version}}\n\\index{Version@{Version}!Nakama.IApiWriteStorageObject@{Nakama.IApiWriteStorageObject}}\n\\doxysubsubsection{\\texorpdfstring{Version}{Version}}\n{\\footnotesize\\ttfamily string Nakama.\\+IApi\\+Write\\+Storage\\+Object.\\+Version\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe version hash of the object to check. Possible values are\\+: \\mbox{[}\\char`\\\"{}\\char`\\\"{}, \\char`\\\"{}$\\ast$\\char`\\\"{}, \\char`\\\"{}\\#hash\\#\\char`\\\"{}\\mbox{]}.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object_a16000a938ed162fde6b9aa50675e61e2}{Nakama.\\+Write\\+Storage\\+Object}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_api_write_storage_objects_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_api_write_storage_objects_request}{}\\doxysection{Nakama.\\+IApi\\+Write\\+Storage\\+Objects\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_api_write_storage_objects_request}\\index{Nakama.IApiWriteStorageObjectsRequest@{Nakama.IApiWriteStorageObjectsRequest}}\n\n\nWrite objects to the storage engine.   \n\n\n\n\nInherited by Nakama.\\+Api\\+Write\\+Storage\\+Objects\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_api_write_storage_objects_request_a5ee63d82d0bd76b8159983642c7142e2}\\label{interface_nakama_1_1_i_api_write_storage_objects_request_a5ee63d82d0bd76b8159983642c7142e2}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}} $>$ {\\bfseries Objects}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The objects to store on the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWrite objects to the storage engine.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_channel.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_channel}{}\\doxysection{Nakama.\\+IChannel Interface Reference}\n\\label{interface_nakama_1_1_i_channel}\\index{Nakama.IChannel@{Nakama.IChannel}}\n\n\nA chat channel on the server.   \n\n\n\n\nInherited by Nakama.\\+Channel.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_a39fb9c483de665ac5ccd75617952dea5}\\label{interface_nakama_1_1_i_channel_a39fb9c483de665ac5ccd75617952dea5}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The server-\\/assigned channel ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_a24d5000cdeddf45977f9a9c4e2c186db}\\label{interface_nakama_1_1_i_channel_a24d5000cdeddf45977f9a9c4e2c186db}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Presences}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The presences visible on the chat channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_ad3b8547c0ca2c322236dc640e648410f}\\label{interface_nakama_1_1_i_channel_ad3b8547c0ca2c322236dc640e648410f}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Self}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The presence of the current user. i.\\+e. Your self.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_a0a47216873656bccbae97ada995780fc}\\label{interface_nakama_1_1_i_channel_a0a47216873656bccbae97ada995780fc}} \nstring {\\bfseries Room\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the chat room, or an empty string if this message was not sent through a chat room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_a7a285328ca09f9521f495bfebc6e1312}\\label{interface_nakama_1_1_i_channel_a7a285328ca09f9521f495bfebc6e1312}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group, or an empty string if this message was not sent through a group channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_aaec45628d3ca0dbd873657fba3ce65f8}\\label{interface_nakama_1_1_i_channel_aaec45628d3ca0dbd873657fba3ce65f8}} \nstring {\\bfseries User\\+Id\\+One}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_a5ab925c1def55a23abf66fce013f0bf8}\\label{interface_nakama_1_1_i_channel_a5ab925c1def55a23abf66fce013f0bf8}} \nstring {\\bfseries User\\+Id\\+Two}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA chat channel on the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IChannel.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_channel_message_ack.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_channel_message_ack}{}\\doxysection{Nakama.\\+IChannel\\+Message\\+Ack Interface Reference}\n\\label{interface_nakama_1_1_i_channel_message_ack}\\index{Nakama.IChannelMessageAck@{Nakama.IChannelMessageAck}}\n\n\nAn acknowledgement from the server when a chat message is delivered to a channel.   \n\n\n\n\nInherited by Nakama.\\+Channel\\+Message\\+Ack.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_ab36b2166bedb2f2351928c522625e98c}\\label{interface_nakama_1_1_i_channel_message_ack_ab36b2166bedb2f2351928c522625e98c}} \nstring {\\bfseries Channel\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The server-\\/assigned channel ID.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a744bd46919f589756c68de87742d2d7f}\\label{interface_nakama_1_1_i_channel_message_ack_a744bd46919f589756c68de87742d2d7f}} \nint {\\bfseries Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A user-\\/defined code for the chat message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a81d7672e04b8754dcf092e7da18a2029}\\label{interface_nakama_1_1_i_channel_message_ack_a81d7672e04b8754dcf092e7da18a2029}} \nstring {\\bfseries Create\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was created.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a60f3a5535d86d01fc98faa1855416671}\\label{interface_nakama_1_1_i_channel_message_ack_a60f3a5535d86d01fc98faa1855416671}} \nstring {\\bfseries Message\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A unique ID for the chat message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a5f9c378b048f1385c56ac13c5ba0a2bd}\\label{interface_nakama_1_1_i_channel_message_ack_a5f9c378b048f1385c56ac13c5ba0a2bd}} \nbool {\\bfseries Persistent}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the chat message has been stored in history.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a6fa47244793ad1dafc89693e5300e8b3}\\label{interface_nakama_1_1_i_channel_message_ack_a6fa47244793ad1dafc89693e5300e8b3}} \nstring {\\bfseries Update\\+Time}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX time when the message was updated.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a56bc2256e0ca3ad47b75db8768a66517}\\label{interface_nakama_1_1_i_channel_message_ack_a56bc2256e0ca3ad47b75db8768a66517}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the sender of the message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a5227455826725648e96df53f9e6130aa}\\label{interface_nakama_1_1_i_channel_message_ack_a5227455826725648e96df53f9e6130aa}} \nstring {\\bfseries Room\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the chat room, or an empty string if this message was not sent through a chat room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a5db4380a1a4c44165c8bcc8e32eebcbf}\\label{interface_nakama_1_1_i_channel_message_ack_a5db4380a1a4c44165c8bcc8e32eebcbf}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group, or an empty string if this message was not sent through a group channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a38b5540111c8089d37403631f21e27b4}\\label{interface_nakama_1_1_i_channel_message_ack_a38b5540111c8089d37403631f21e27b4}} \nstring {\\bfseries User\\+Id\\+One}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_message_ack_a80b2ccd63418af2d2498d47e3bc815d1}\\label{interface_nakama_1_1_i_channel_message_ack_a80b2ccd63418af2d2498d47e3bc815d1}} \nstring {\\bfseries User\\+Id\\+Two}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn acknowledgement from the server when a chat message is delivered to a channel.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IChannel\\+Message\\+Ack.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_channel_presence_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_channel_presence_event}{}\\doxysection{Nakama.\\+IChannel\\+Presence\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_channel_presence_event}\\index{Nakama.IChannelPresenceEvent@{Nakama.IChannelPresenceEvent}}\n\n\nA batch of join and leave presences on a chat channel.   \n\n\n\n\nInherited by Nakama.\\+Channel\\+Presence\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_a996e95fc400397a4d2cbf1ee8da5dc29}\\label{interface_nakama_1_1_i_channel_presence_event_a996e95fc400397a4d2cbf1ee8da5dc29}} \nstring {\\bfseries Channel\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique identifier of the chat channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_a4c6bf34c8e899b37feea0a6ed5affb29}\\label{interface_nakama_1_1_i_channel_presence_event_a4c6bf34c8e899b37feea0a6ed5affb29}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Joins}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of the users who joined the channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_a25f9a3fb8301ae6085da103bfad01fc4}\\label{interface_nakama_1_1_i_channel_presence_event_a25f9a3fb8301ae6085da103bfad01fc4}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Leaves}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who left the channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_ada1acc95b4a8614a040e08148ce20873}\\label{interface_nakama_1_1_i_channel_presence_event_ada1acc95b4a8614a040e08148ce20873}} \nstring {\\bfseries Room\\+Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The name of the chat room, or an empty string if this message was not sent through a chat room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_ac2c7e729b0c9f75fc633eed8b9cfe000}\\label{interface_nakama_1_1_i_channel_presence_event_ac2c7e729b0c9f75fc633eed8b9cfe000}} \nstring {\\bfseries Group\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the group, or an empty string if this message was not sent through a group channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_a03e876ef3172ebb954ec55628dd4ddbd}\\label{interface_nakama_1_1_i_channel_presence_event_a03e876ef3172ebb954ec55628dd4ddbd}} \nstring {\\bfseries User\\+Id\\+One}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the first DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_channel_presence_event_ad0e554d3f8037a8e03f0572d0f21422e}\\label{interface_nakama_1_1_i_channel_presence_event_ad0e554d3f8037a8e03f0572d0f21422e}} \nstring {\\bfseries User\\+Id\\+Two}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the second DM user, or an empty string if this message was not sent through a DM chat.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA batch of join and leave presences on a chat channel.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IChannel\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_client.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 384.615387\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.300000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.IClient) cw\n(Nakama.Client) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.IClient) 0.000000 1.000000 box\n (Nakama.Client) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_client.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_client}{}\\doxysection{Nakama.\\+IClient Interface Reference}\n\\label{interface_nakama_1_1_i_client}\\index{Nakama.IClient@{Nakama.IClient}}\n\n\nA client for the API in \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.   \n\n\nInheritance diagram for Nakama.\\+IClient\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_client}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac21ff4d771b8ce9c77ee2755cea4ca07}{Add\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Add one or more friends by id or username.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abec54a30d216a009e04cb7df410e15f3}{Add\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Add one or more users to the group.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af56a59b69e6416645041852198bbc220}{Authenticate\\+Apple\\+Async}} (string token, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with an Apple ID against the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1081470b3d1dc65a43e57e158118dde0}{Authenticate\\+Custom\\+Async}} (string id, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a custom id.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad9a6d4b73bc4ac965a7d913fcc7d5ee3}{Authenticate\\+Device\\+Async}} (string id, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a device id.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1b77958ff52a879a27a5bfd0b97dfa6b}{Authenticate\\+Email\\+Async}} (string email, string password, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with an email and password.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a94137b0b4dd44bae5fcf4d112d4cab4d}{Authenticate\\+Facebook\\+Async}} (string token, string username=null, bool create=true, bool import=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Facebook auth token.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab1b035116f1e0a1cf22d2f5fd8ed9233}{Authenticate\\+Game\\+Center\\+Async}} (string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with Apple Game Center.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aa7d5ea6ff35652864256236b6a298e16}{Authenticate\\+Google\\+Async}} (string token, string username=null, bool create=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Google auth token.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a2f1dee9bd5c5761d55e5ab5a4d12690c}{Authenticate\\+Steam\\+Async}} (string token, string username=null, bool create=true, bool import=true, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a user with a Steam auth token.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab22184136c797808a2aebe53100804e2}{Ban\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Ban a set of users from a group.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a625ec426d7062f4c118f3f014dd6e378}{Block\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Block one or more friends by id or username.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aae0252ef30e7b6f9a1e2dc518f7478ee}{Create\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name, string description=\\char`\\\"{}\\char`\\\"{}, string avatar\\+Url=null, string lang\\+Tag=null, bool open=true, int max\\+Count=100, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Create a group.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6c9418726e8c74b0cefff24bccf335e1}{Delete\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one more or users by id or username from friends.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a90a221604c5aee514bae83bfce921005}{Delete\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete a group by id.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae50039a13b1b5d75613030d130f9d5e3}{Delete\\+Leaderboard\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete a leaderboard record.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_adab62219d9b6f091995738a8746b8bcb}{Delete\\+Notifications\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one or more notifications by id.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a359f19ae1aad413e47565b355380b63a}{Delete\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]} ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Delete one or more storage objects.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a134eedfe28270dc3086b490fd16c5efb}{Demote\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ user\\+Ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Demote a set of users in a group to the next role down. \n\\begin{DoxyParams}{Parameters}\n{\\em group\\+Id} & The group to demote users in.\\\\\n\\hline\n{\\em user\\+Ids} & The users to demote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5a255470f06a9004673ba8fc6f8af682}{Event\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name, Dictionary$<$ string, string $>$ properties, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Submit an event for processing in the server\\textquotesingle{}s registered runtime custom events handler.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{IApi\\+Account}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a291886d28a053ef9db0d231b1f74140e}{Get\\+Account\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8ad3b6d4f866d3b4d8cd54cbeaf5a01e}{Get\\+Subscription\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string product\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get the subscription represented by the provided product id.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{IApi\\+Users}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8b4075bc49ee57670e94a56557be05d2}{Get\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ ids, IEnumerable$<$ string $>$ usernames=null, IEnumerable$<$ string $>$ facebook\\+Ids=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch one or more users by id, usernames, and Facebook ids.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad63c0cfb18480592c8eff4583cc16233}{Import\\+Facebook\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? reset=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Import Facebook friends and add them to the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8ff7dfd40f14d3161d7fc4426e078214}{Import\\+Steam\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? reset=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Import Steam friends and add them to the user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6662dc402c9867c647ea300eae380bc0}{Join\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Join a group if it has open membership or request to join it.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8520e2e99a83f3cac309f2a0354c2e65}{Join\\+Tournament\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Join a tournament by ID.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae1643a627d5b2733349b2a3eb8811829}{Kick\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Kick one or more users from the group.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abe13990afd23fbf8257ff448970e1bfa}{Leave\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a group by ID.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aed84d3ba843ee53c3fc62bfac3d56aef}{Link\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link an Apple ID to the social profiles on the current user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ab18171e22bdc5d997ff5d87a206fbc18}{Link\\+Custom\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a custom ID to the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_accadcf9970bbc108cae1eaa386b2ad0c}{Link\\+Device\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a device ID to the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ae6bd9267c215b0df2246862d566c6d63}{Link\\+Email\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string email, string password, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link an email with password to the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a68926218392683fb7112bf26d7b1814c}{Link\\+Facebook\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool? import=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Facebook profile to a user account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a15277cc6c181d77784a87da9383df7e4}{Link\\+Game\\+Center\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Game Center profile to a user account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3fa471a46116248041a080016ad181cf}{Link\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Google profile to a user account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aaa180e86df389caf7cc42d82760aabf0}{Link\\+Steam\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, bool import, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Link a Steam profile to a user account.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac7cad85806c3824a967959455d828440}{List\\+Channel\\+Messages\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, int limit=1, bool forward=true, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List messages from a chat channel.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0fd095e04016f75de9d589891a1518ac}{List\\+Channel\\+Messages\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string channel\\+Id, int limit=1, bool forward=true, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List messages from a chat channel.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{IApi\\+Friend\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af4b8829ce42c75274ab62e4692b748a8}{List\\+Friends\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int? state=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List of friends of the current user.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{IApi\\+Group\\+User\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac77e1bbf873d728d622b627943e64351}{List\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, int? state=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all users part of the group.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{IApi\\+Group\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a93b462ed1236ba5839cdb811b19524bc}{List\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string name=null, int limit=1, string cursor=null, string lang\\+Tag=null, int? members=null, bool? open=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List groups on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a90b33da885f5fee1267420a0acbc1e87}{List\\+Leaderboard\\+Records\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, IEnumerable$<$ string $>$ owner\\+Ids=null, long? expiry=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List records from a leaderboard.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5fac82246b40a4df8311f51b3d565dae}{List\\+Leaderboard\\+Records\\+Around\\+Owner\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, string owner\\+Id, long? expiry=null, int limit=1, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List leaderboard records that belong to a user.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{IApi\\+Match\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af52b743a4d334b23a43fad156f0eb54c}{List\\+Matches\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int min, int max, int limit, bool authoritative, string label, string query, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Fetch a list of matches active on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{IApi\\+Notification\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a9443bb244b7a51c6a493900822c654f1}{List\\+Notifications\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int limit=1, string cacheable\\+Cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List notifications for the user with an optional cursor.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a0dae35b8820b90e23303cdb58336dddc}\\label{interface_nakama_1_1_i_client_a0dae35b8820b90e23303cdb58336dddc}} \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ {\\bfseries List\\+Storage\\+Objects} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_afeec7a75562cfc1c9f51d35095580046}{List\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List storage objects in a collection which have public read access.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{IApi\\+Subscription\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3e2cf89415aebbfdecb0f7015b37ba37}{List\\+Subscriptions\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int limit, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List the user\\textquotesingle{}s subscriptions.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0165ccd67746f2775a70387b9f5f7cfb}{List\\+Tournament\\+Records\\+Around\\+Owner\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, string owner\\+Id, long? expiry=null, int limit=1, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List tournament records around the owner.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac4a420dab57716222bbb8151700b1cdc}{List\\+Tournament\\+Records\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, IEnumerable$<$ string $>$ owner\\+Ids=null, long? expiry=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List records from a tournament.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{IApi\\+Tournament\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a43e7575784efc55785124576651ac617}{List\\+Tournaments\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int category\\+Start, int category\\+End, int? start\\+Time=null, int? end\\+Time=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List current or upcoming tournaments.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a20b9a6e164506988f758a00d0dd68efe}{List\\+User\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, int? state=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List of groups the current user is a member of.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aceddfd721720890ee6de3d4c67d699f6}{List\\+User\\+Groups\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string user\\+Id, int? state=null, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List groups a user is a member of.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aeb5b5a9f8920ee2e287fc15e6dbae5d9}{List\\+Users\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string collection, string user\\+Id, int limit=1, string cursor=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em List storage objects in a collection which belong to a specific user and have public read access.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6f9bf7b5dc74dfab741e7aadfba89e4b}{Promote\\+Group\\+Users\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, IEnumerable$<$ string $>$ ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Promote one or more users in the group.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{IApi\\+Storage\\+Objects}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1b2f0ed3a7a73e8263d98036d53817fc}{Read\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]} ids, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Read one or more objects from the storage engine.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a29b2534c256578fc1868d488e8f553f8}{Rpc\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, string payload, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function with an input payload on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3b15daa0defb16913157e3fed94b1aab}{Rpc\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a929523abb193fede9a6db74056d57ac4}{Rpc\\+Async}} (string http\\+Key, string id, string payload=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Execute a function on the server without a session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ac0bf64fd0de7fe6a73a737b5ef514d93}{Session\\+Logout\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session which invalidates the authorization and refresh token.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6c53fa09b45cde7987ca6e3dc1f877bc}{Session\\+Logout\\+Async}} (string auth\\+Token, string refresh\\+Token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session which optionally invalidates the authorization and/or refresh tokens.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_af75a6a3aceaddf452fb714e08b0d3b0b}{Session\\+Refresh\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, Dictionary$<$ string, string $>$ vars=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Refresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a4ba0c6637b9685eb0474352de1797a2e}{Unlink\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Remove the Apple ID from the social profiles on the current user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a2c4af0c1a411fff04f6f68427d9c82ae}{Unlink\\+Custom\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a custom ID from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a4be577065a26f40b5c8fcf501b83c7fc}{Unlink\\+Device\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string id, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a device ID from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a94c94fa13db5528abe5fc6a13cb469f1}{Unlink\\+Email\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string email, string password, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink an email with password from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a9209cbf097fc5d612df113dc1f7a380e}{Unlink\\+Facebook\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Facebook profile from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a8db620f585a3b1c6b33c83ffa959759c}{Unlink\\+Game\\+Center\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string bundle\\+Id, string player\\+Id, string public\\+Key\\+Url, string salt, string signature, string timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Game Center profile from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aec2588fcb68ad3807af840f6886f79e7}{Unlink\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Google profile from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0b5ce7e1a9d3707e2a098ea531a26b5d}{Unlink\\+Steam\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string token, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a Steam profile from the user account owned by the session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a981b2780f9f9bf2b8e2b4f423680013f}{Update\\+Account\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string username, string display\\+Name=null, string avatar\\+Url=null, string lang\\+Tag=null, string location=null, string timezone=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update the current user\\textquotesingle{}s account on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a1ab56488f06c34d4c8e7a184ef923176}{Update\\+Group\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string group\\+Id, string name, bool open, string description=null, string avatar\\+Url=null, string lang\\+Tag=null, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update a group.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a3b4319cfed8f66406e01105fcbd46286}{Validate\\+Purchase\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Apple App Store.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a58ec876cf25e2c0a096fa02dac977985}{Validate\\+Purchase\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Google Play Store.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a04cd45c9b6e5cc2333f7299a55a182a3}{Validate\\+Purchase\\+Huawei\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, string signature, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a purchase receipt against the Huawei App\\+Gallery.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abc626bfa5a312f23033b1dcce16abe90}{Validate\\+Subscription\\+Apple\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate an Apple subscription receipt.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_abdceffcc291e56bf4de8683fb6386fe9}{Validate\\+Subscription\\+Google\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string receipt, bool persist=true, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Validate a Google subscription receipt.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a75172b3237e2c1a0dd2df2d1e0a19ec1}{Write\\+Leaderboard\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string leaderboard\\+Id, long score, long sub\\+Score=0L, string metadata=null, \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} api\\+Operator=Api\\+Operator.\\+NO\\+\\_\\+\\+OVERRIDE, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write a record to a leaderboard.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{IApi\\+Storage\\+Object\\+Acks}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_adc8f34b5cacc6e61d0240d53c1383935}{Write\\+Storage\\+Objects\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}}\\mbox{[}$\\,$\\mbox{]} objects, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write objects to the storage engine.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a0e18257ebdd85c9a0d56c501e221e90a}{Write\\+Tournament\\+Record\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, string tournament\\+Id, long score, long sub\\+Score=0L, string metadata=null, \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} api\\+Operator=Api\\+Operator.\\+NO\\+\\_\\+\\+OVERRIDE, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration=null, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Write a record to a tournament.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a65ce1849bf8c639c0d11853be12f22f8}{Auto\\+Refresh\\+Session}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the session should be refreshed with an active refresh token.  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad86bc2c00a137d35243e977086a00ffa}{Global\\+Retry\\+Configuration}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The global retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a93e9759631f1a3106dc4ec47477f3eb8}{Host}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The host address of the server. Defaults to \\char`\\\"{}127.\\+0.\\+0.\\+1\\char`\\\"{}.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_i_client_ad5d7b98d99d381d0340e7d8e90a54d26}{Port}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The port number of the server. Defaults to 7350.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a5ce30e2720c3b831e249bf19452eb340}{Scheme}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The protocol scheme used to connect with the server. Must be either \\char`\\\"{}http\\char`\\\"{} or \\char`\\\"{}https\\char`\\\"{}.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_client_a6b13274c171e19e07f26ea5334f8ab23}{Server\\+Key}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The key used to authenticate with the server without a session. Defaults to \\char`\\\"{}defaultkey\\char`\\\"{}.  \\end{DoxyCompactList}\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_i_client_aadcfb5308770d73098d9ba66534074af}{Timeout}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Set the timeout in seconds on requests sent to the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA client for the API in \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ac21ff4d771b8ce9c77ee2755cea4ca07}\\label{interface_nakama_1_1_i_client_ac21ff4d771b8ce9c77ee2755cea4ca07}} \n\\index{Nakama.IClient@{Nakama.IClient}!AddFriendsAsync@{AddFriendsAsync}}\n\\index{AddFriendsAsync@{AddFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AddFriendsAsync()}{AddFriendsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Add\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAdd one or more friends by id or username.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite as friends.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to add as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a0348314e04b0b80057e8383cdd5c8d50}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_abec54a30d216a009e04cb7df410e15f3}\\label{interface_nakama_1_1_i_client_abec54a30d216a009e04cb7df410e15f3}} \n\\index{Nakama.IClient@{Nakama.IClient}!AddGroupUsersAsync@{AddGroupUsersAsync}}\n\\index{AddGroupUsersAsync@{AddGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AddGroupUsersAsync()}{AddGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Add\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAdd one or more users to the group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The id of the group to add users into.\\\\\n\\hline\n{\\em ids} & The ids of the users to add or invite to the group.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a769d19ca9593f14fc8a3f91d1950f155}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_af56a59b69e6416645041852198bbc220}\\label{interface_nakama_1_1_i_client_af56a59b69e6416645041852198bbc220}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateAppleAsync@{AuthenticateAppleAsync}}\n\\index{AuthenticateAppleAsync@{AuthenticateAppleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateAppleAsync()}{AuthenticateAppleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with an Apple ID against the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em username} & A username used to create the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae30e21d72b2f12cdb23d03994e6dfd35}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a1081470b3d1dc65a43e57e158118dde0}\\label{interface_nakama_1_1_i_client_a1081470b3d1dc65a43e57e158118dde0}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateCustomAsync@{AuthenticateCustomAsync}}\n\\index{AuthenticateCustomAsync@{AuthenticateCustomAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateCustomAsync()}{AuthenticateCustomAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a custom id.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aecf7fd6a4745f23d3e411b3911ef7b8d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ad9a6d4b73bc4ac965a7d913fcc7d5ee3}\\label{interface_nakama_1_1_i_client_ad9a6d4b73bc4ac965a7d913fcc7d5ee3}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateDeviceAsync@{AuthenticateDeviceAsync}}\n\\index{AuthenticateDeviceAsync@{AuthenticateDeviceAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateDeviceAsync()}{AuthenticateDeviceAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a device id.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_afe268da1eb4063933420c27ac8ce6bfe}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a1b77958ff52a879a27a5bfd0b97dfa6b}\\label{interface_nakama_1_1_i_client_a1b77958ff52a879a27a5bfd0b97dfa6b}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateEmailAsync@{AuthenticateEmailAsync}}\n\\index{AuthenticateEmailAsync@{AuthenticateEmailAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateEmailAsync()}{AuthenticateEmailAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with an email and password.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a40bb677a0c6360f6402850720de573a6}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a94137b0b4dd44bae5fcf4d112d4cab4d}\\label{interface_nakama_1_1_i_client_a94137b0b4dd44bae5fcf4d112d4cab4d}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateFacebookAsync@{AuthenticateFacebookAsync}}\n\\index{AuthenticateFacebookAsync@{AuthenticateFacebookAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateFacebookAsync()}{AuthenticateFacebookAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{bool}]{import = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Facebook auth token.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a8965dfabd8ea716c3b119fb57b93d499}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ab1b035116f1e0a1cf22d2f5fd8ed9233}\\label{interface_nakama_1_1_i_client_ab1b035116f1e0a1cf22d2f5fd8ed9233}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateGameCenterAsync@{AuthenticateGameCenterAsync}}\n\\index{AuthenticateGameCenterAsync@{AuthenticateGameCenterAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateGameCenterAsync()}{AuthenticateGameCenterAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with Apple Game Center.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em bundle\\+Id} & The bundle id of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player id of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a275feb7d3de0a6b85741f463645fad3f}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aa7d5ea6ff35652864256236b6a298e16}\\label{interface_nakama_1_1_i_client_aa7d5ea6ff35652864256236b6a298e16}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateGoogleAsync@{AuthenticateGoogleAsync}}\n\\index{AuthenticateGoogleAsync@{AuthenticateGoogleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateGoogleAsync()}{AuthenticateGoogleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Google auth token.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a09315e1b205b1b94074f4137e6be9f00}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a2f1dee9bd5c5761d55e5ab5a4d12690c}\\label{interface_nakama_1_1_i_client_a2f1dee9bd5c5761d55e5ab5a4d12690c}} \n\\index{Nakama.IClient@{Nakama.IClient}!AuthenticateSteamAsync@{AuthenticateSteamAsync}}\n\\index{AuthenticateSteamAsync@{AuthenticateSteamAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateSteamAsync()}{AuthenticateSteamAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Authenticate\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{token,  }\\item[{string}]{username = {\\ttfamily null},  }\\item[{bool}]{create = {\\ttfamily true},  }\\item[{bool}]{import = {\\ttfamily true},  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate a user with a Steam auth token.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em username} & A username used to create the user. May be {\\ttfamily null}.\\\\\n\\hline\n{\\em create} & If the user should be created when authenticated.\\\\\n\\hline\n{\\em vars} & Extra information that will be bundled in the session token.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a2e075e4cf4c522e3de378a855dc34899}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ab22184136c797808a2aebe53100804e2}\\label{interface_nakama_1_1_i_client_ab22184136c797808a2aebe53100804e2}} \n\\index{Nakama.IClient@{Nakama.IClient}!BanGroupUsersAsync@{BanGroupUsersAsync}}\n\\index{BanGroupUsersAsync@{BanGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{BanGroupUsersAsync()}{BanGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Ban\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nBan a set of users from a group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group to ban the users from.\\\\\n\\hline\n{\\em ids} & The ids of the users to ban.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_af3738338a0465f5bb312b8c8ea9a5cf1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a625ec426d7062f4c118f3f014dd6e378}\\label{interface_nakama_1_1_i_client_a625ec426d7062f4c118f3f014dd6e378}} \n\\index{Nakama.IClient@{Nakama.IClient}!BlockFriendsAsync@{BlockFriendsAsync}}\n\\index{BlockFriendsAsync@{BlockFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{BlockFriendsAsync()}{BlockFriendsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Block\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nBlock one or more friends by id or username.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the users to block.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to block.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ac0dc24ed36ac130f370fe7e9d47a109a}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aae0252ef30e7b6f9a1e2dc518f7478ee}\\label{interface_nakama_1_1_i_client_aae0252ef30e7b6f9a1e2dc518f7478ee}} \n\\index{Nakama.IClient@{Nakama.IClient}!CreateGroupAsync@{CreateGroupAsync}}\n\\index{CreateGroupAsync@{CreateGroupAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{CreateGroupAsync()}{CreateGroupAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} $>$ Nakama.\\+IClient.\\+Create\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{string}]{description = {\\ttfamily \\char`\\\"{}\\char`\\\"{}},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{bool}]{open = {\\ttfamily true},  }\\item[{int}]{max\\+Count = {\\ttfamily 100},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nCreate a group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name for the group.\\\\\n\\hline\n{\\em description} & A description for the group.\\\\\n\\hline\n{\\em avatar\\+Url} & An avatar url for the group.\\\\\n\\hline\n{\\em lang\\+Tag} & A language tag in BCP-\\/47 format for the group.\\\\\n\\hline\n{\\em open} & If the group should have open membership.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of members allowed.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new group object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ad74fadcf61eebd9cb089641775671798}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a6c9418726e8c74b0cefff24bccf335e1}\\label{interface_nakama_1_1_i_client_a6c9418726e8c74b0cefff24bccf335e1}} \n\\index{Nakama.IClient@{Nakama.IClient}!DeleteFriendsAsync@{DeleteFriendsAsync}}\n\\index{DeleteFriendsAsync@{DeleteFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DeleteFriendsAsync()}{DeleteFriendsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Delete\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one more or users by id or username from friends.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The user ids to remove as friends.\\\\\n\\hline\n{\\em usernames} & The usernames to remove as friends.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a638d387931e416f96e3355dbcc9dd95d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a90a221604c5aee514bae83bfce921005}\\label{interface_nakama_1_1_i_client_a90a221604c5aee514bae83bfce921005}} \n\\index{Nakama.IClient@{Nakama.IClient}!DeleteGroupAsync@{DeleteGroupAsync}}\n\\index{DeleteGroupAsync@{DeleteGroupAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DeleteGroupAsync()}{DeleteGroupAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Delete\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete a group by id.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The group id to to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ab2c13e106e4abaad160c025fd4b171f5}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ae50039a13b1b5d75613030d130f9d5e3}\\label{interface_nakama_1_1_i_client_ae50039a13b1b5d75613030d130f9d5e3}} \n\\index{Nakama.IClient@{Nakama.IClient}!DeleteLeaderboardRecordAsync@{DeleteLeaderboardRecordAsync}}\n\\index{DeleteLeaderboardRecordAsync@{DeleteLeaderboardRecordAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DeleteLeaderboardRecordAsync()}{DeleteLeaderboardRecordAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Delete\\+Leaderboard\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete a leaderboard record.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The id of the leaderboard with the record to be deleted.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a4c3aa998092d7fd8d4a5e57eac1adc7a}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_adab62219d9b6f091995738a8746b8bcb}\\label{interface_nakama_1_1_i_client_adab62219d9b6f091995738a8746b8bcb}} \n\\index{Nakama.IClient@{Nakama.IClient}!DeleteNotificationsAsync@{DeleteNotificationsAsync}}\n\\index{DeleteNotificationsAsync@{DeleteNotificationsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DeleteNotificationsAsync()}{DeleteNotificationsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Delete\\+Notifications\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one or more notifications by id.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The notification ids to remove.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aaca81a7fc8183e44c7f6e10071d9a456}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a359f19ae1aad413e47565b355380b63a}\\label{interface_nakama_1_1_i_client_a359f19ae1aad413e47565b355380b63a}} \n\\index{Nakama.IClient@{Nakama.IClient}!DeleteStorageObjectsAsync@{DeleteStorageObjectsAsync}}\n\\index{DeleteStorageObjectsAsync@{DeleteStorageObjectsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DeleteStorageObjectsAsync()}{DeleteStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Delete\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]}}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDelete one or more storage objects.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The ids of the objects to delete.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a745a2c98d488d19c2abad03aa914f97b}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a134eedfe28270dc3086b490fd16c5efb}\\label{interface_nakama_1_1_i_client_a134eedfe28270dc3086b490fd16c5efb}} \n\\index{Nakama.IClient@{Nakama.IClient}!DemoteGroupUsersAsync@{DemoteGroupUsersAsync}}\n\\index{DemoteGroupUsersAsync@{DemoteGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{DemoteGroupUsersAsync()}{DemoteGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Demote\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{user\\+Ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nDemote a set of users in a group to the next role down. \n\\begin{DoxyParams}{Parameters}\n{\\em group\\+Id} & The group to demote users in.\\\\\n\\hline\n{\\em user\\+Ids} & The users to demote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nMembers who are already at the lowest rank will be skipped.\n\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_acc21379975775bac5077abf0ef956fab}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a5a255470f06a9004673ba8fc6f8af682}\\label{interface_nakama_1_1_i_client_a5a255470f06a9004673ba8fc6f8af682}} \n\\index{Nakama.IClient@{Nakama.IClient}!EventAsync@{EventAsync}}\n\\index{EventAsync@{EventAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{EventAsync()}{EventAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Event\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{Dictionary$<$ string, string $>$}]{properties,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nSubmit an event for processing in the server\\textquotesingle{}s registered runtime custom events handler.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the event.\\\\\n\\hline\n{\\em properties} & The properties of the event.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a50215658d4619df72a664d635a0aefe6}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a291886d28a053ef9db0d231b1f74140e}\\label{interface_nakama_1_1_i_client_a291886d28a053ef9db0d231b1f74140e}} \n\\index{Nakama.IClient@{Nakama.IClient}!GetAccountAsync@{GetAccountAsync}}\n\\index{GetAccountAsync@{GetAccountAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetAccountAsync()}{GetAccountAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{IApi\\+Account}} $>$ Nakama.\\+IClient.\\+Get\\+Account\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the account object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a8333b61102e6af80cdaa17b8c79d9825}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a8ad3b6d4f866d3b4d8cd54cbeaf5a01e}\\label{interface_nakama_1_1_i_client_a8ad3b6d4f866d3b4d8cd54cbeaf5a01e}} \n\\index{Nakama.IClient@{Nakama.IClient}!GetSubscriptionAsync@{GetSubscriptionAsync}}\n\\index{GetSubscriptionAsync@{GetSubscriptionAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetSubscriptionAsync()}{GetSubscriptionAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}} $>$ Nakama.\\+IClient.\\+Get\\+Subscription\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{product\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet the subscription represented by the provided product id.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em product\\+Id} & The product id.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a6632bd7f63f6c739cc587bb6a5d88f31}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a8b4075bc49ee57670e94a56557be05d2}\\label{interface_nakama_1_1_i_client_a8b4075bc49ee57670e94a56557be05d2}} \n\\index{Nakama.IClient@{Nakama.IClient}!GetUsersAsync@{GetUsersAsync}}\n\\index{GetUsersAsync@{GetUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetUsersAsync()}{GetUsersAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{IApi\\+Users}} $>$ Nakama.\\+IClient.\\+Get\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null},  }\\item[{IEnumerable$<$ string $>$}]{facebook\\+Ids = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch one or more users by id, usernames, and Facebook ids.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The IDs of the users to retrieve.\\\\\n\\hline\n{\\em usernames} & The usernames of the users to retrieve.\\\\\n\\hline\n{\\em facebook\\+Ids} & The facebook IDs of the users to retrieve.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a collection of user objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae8a6ed442cf4d4fe757b8af4ccf0f697}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ad63c0cfb18480592c8eff4583cc16233}\\label{interface_nakama_1_1_i_client_ad63c0cfb18480592c8eff4583cc16233}} \n\\index{Nakama.IClient@{Nakama.IClient}!ImportFacebookFriendsAsync@{ImportFacebookFriendsAsync}}\n\\index{ImportFacebookFriendsAsync@{ImportFacebookFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ImportFacebookFriendsAsync()}{ImportFacebookFriendsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Import\\+Facebook\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{reset = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nImport Facebook friends and add them to the user\\textquotesingle{}s account.  \n\nThe server will import friends when the user authenticates with Facebook. This function can be used to be explicit with the import operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em reset} & If the Facebook friend import for the user should be reset.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae22e0fb5972e5a4d2b52aaa82045a271}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a8ff7dfd40f14d3161d7fc4426e078214}\\label{interface_nakama_1_1_i_client_a8ff7dfd40f14d3161d7fc4426e078214}} \n\\index{Nakama.IClient@{Nakama.IClient}!ImportSteamFriendsAsync@{ImportSteamFriendsAsync}}\n\\index{ImportSteamFriendsAsync@{ImportSteamFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ImportSteamFriendsAsync()}{ImportSteamFriendsAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Import\\+Steam\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{reset = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nImport Steam friends and add them to the user\\textquotesingle{}s account.  \n\nThe server will import friends when the user authenticates with Steam. This function can be used to be explicit with the import operation. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An access token from Steam.\\\\\n\\hline\n{\\em reset} & If the Steam friend import for the user should be reset.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aff3b742f37107b47f31d4a93020239d0}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a6662dc402c9867c647ea300eae380bc0}\\label{interface_nakama_1_1_i_client_a6662dc402c9867c647ea300eae380bc0}} \n\\index{Nakama.IClient@{Nakama.IClient}!JoinGroupAsync@{JoinGroupAsync}}\n\\index{JoinGroupAsync@{JoinGroupAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{JoinGroupAsync()}{JoinGroupAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Join\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nJoin a group if it has open membership or request to join it.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a9e10ec43011fa4aaf3ad1d389da1ea2b}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a8520e2e99a83f3cac309f2a0354c2e65}\\label{interface_nakama_1_1_i_client_a8520e2e99a83f3cac309f2a0354c2e65}} \n\\index{Nakama.IClient@{Nakama.IClient}!JoinTournamentAsync@{JoinTournamentAsync}}\n\\index{JoinTournamentAsync@{JoinTournamentAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{JoinTournamentAsync()}{JoinTournamentAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Join\\+Tournament\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nJoin a tournament by ID.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to join.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a5cc312ccc276515a2643ef173e398641}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ae1643a627d5b2733349b2a3eb8811829}\\label{interface_nakama_1_1_i_client_ae1643a627d5b2733349b2a3eb8811829}} \n\\index{Nakama.IClient@{Nakama.IClient}!KickGroupUsersAsync@{KickGroupUsersAsync}}\n\\index{KickGroupUsersAsync@{KickGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{KickGroupUsersAsync()}{KickGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Kick\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nKick one or more users from the group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em ids} & The IDs of the users to kick.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a8d40ee6b5c3a92ebcab8701ed7ff9505}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_abe13990afd23fbf8257ff448970e1bfa}\\label{interface_nakama_1_1_i_client_abe13990afd23fbf8257ff448970e1bfa}} \n\\index{Nakama.IClient@{Nakama.IClient}!LeaveGroupAsync@{LeaveGroupAsync}}\n\\index{LeaveGroupAsync@{LeaveGroupAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LeaveGroupAsync()}{LeaveGroupAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Leave\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLeave a group by ID.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to leave.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aff050ee2645b7b3a239a40c6ce357c24}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aed84d3ba843ee53c3fc62bfac3d56aef}\\label{interface_nakama_1_1_i_client_aed84d3ba843ee53c3fc62bfac3d56aef}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkAppleAsync@{LinkAppleAsync}}\n\\index{LinkAppleAsync@{LinkAppleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkAppleAsync()}{LinkAppleAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink an Apple ID to the social profiles on the current user\\textquotesingle{}s account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple to validate.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a9979bf574bdb33a716ac56b51eca6758}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ab18171e22bdc5d997ff5d87a206fbc18}\\label{interface_nakama_1_1_i_client_ab18171e22bdc5d997ff5d87a206fbc18}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkCustomAsync@{LinkCustomAsync}}\n\\index{LinkCustomAsync@{LinkCustomAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkCustomAsync()}{LinkCustomAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a custom ID to the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ac4845e6a960a43d8ead44c2cb2d2fb00}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_accadcf9970bbc108cae1eaa386b2ad0c}\\label{interface_nakama_1_1_i_client_accadcf9970bbc108cae1eaa386b2ad0c}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkDeviceAsync@{LinkDeviceAsync}}\n\\index{LinkDeviceAsync@{LinkDeviceAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkDeviceAsync()}{LinkDeviceAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a device ID to the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aad4baf992848d4029adcbb4ce964bb2e}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ae6bd9267c215b0df2246862d566c6d63}\\label{interface_nakama_1_1_i_client_ae6bd9267c215b0df2246862d566c6d63}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkEmailAsync@{LinkEmailAsync}}\n\\index{LinkEmailAsync@{LinkEmailAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkEmailAsync()}{LinkEmailAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink an email with password to the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aadee51567a81169984fd146111f237db}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a68926218392683fb7112bf26d7b1814c}\\label{interface_nakama_1_1_i_client_a68926218392683fb7112bf26d7b1814c}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkFacebookAsync@{LinkFacebookAsync}}\n\\index{LinkFacebookAsync@{LinkFacebookAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkFacebookAsync()}{LinkFacebookAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool?}]{import = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Facebook profile to a user account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em import} & If the Facebook friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ac81c5d3cf0fcf05f3c482ceec63c17e8}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a15277cc6c181d77784a87da9383df7e4}\\label{interface_nakama_1_1_i_client_a15277cc6c181d77784a87da9383df7e4}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkGameCenterAsync@{LinkGameCenterAsync}}\n\\index{LinkGameCenterAsync@{LinkGameCenterAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkGameCenterAsync()}{LinkGameCenterAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Game Center profile to a user account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a655ce991784045167e7b470b421788fa}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a3fa471a46116248041a080016ad181cf}\\label{interface_nakama_1_1_i_client_a3fa471a46116248041a080016ad181cf}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkGoogleAsync@{LinkGoogleAsync}}\n\\index{LinkGoogleAsync@{LinkGoogleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkGoogleAsync()}{LinkGoogleAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Google profile to a user account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a0f4fe2298df0fa8b4ac5a14dbbfce74b}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aaa180e86df389caf7cc42d82760aabf0}\\label{interface_nakama_1_1_i_client_aaa180e86df389caf7cc42d82760aabf0}} \n\\index{Nakama.IClient@{Nakama.IClient}!LinkSteamAsync@{LinkSteamAsync}}\n\\index{LinkSteamAsync@{LinkSteamAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{LinkSteamAsync()}{LinkSteamAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Link\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{bool}]{import,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLink a Steam profile to a user account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em import} & If the Steam friends should be imported.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a53f8adbc758568e7b70653cbfc33eeec}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ac7cad85806c3824a967959455d828440}\\label{interface_nakama_1_1_i_client_ac7cad85806c3824a967959455d828440}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListChannelMessagesAsync@{ListChannelMessagesAsync}}\n\\index{ListChannelMessagesAsync@{ListChannelMessagesAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListChannelMessagesAsync()}{ListChannelMessagesAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Channel\\+Messages\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{bool}]{forward = {\\ttfamily true},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList messages from a chat channel.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel} & The chat channel object.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a5915e1dd4090b1f58f9295361b58016b}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a0fd095e04016f75de9d589891a1518ac}\\label{interface_nakama_1_1_i_client_a0fd095e04016f75de9d589891a1518ac}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListChannelMessagesAsync@{ListChannelMessagesAsync}}\n\\index{ListChannelMessagesAsync@{ListChannelMessagesAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListChannelMessagesAsync()}{ListChannelMessagesAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Channel\\+Messages\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{channel\\+Id,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{bool}]{forward = {\\ttfamily true},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList messages from a chat channel.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em channel\\+Id} & A channel identifier.\\\\\n\\hline\n{\\em limit} & The number of chat messages to list.\\\\\n\\hline\n{\\em forward} & Fetch messages forward from the current cursor (or the start, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default).\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the messages history to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the channel message list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_afda758a691879a09e10e7689a871a781}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_af4b8829ce42c75274ab62e4692b748a8}\\label{interface_nakama_1_1_i_client_af4b8829ce42c75274ab62e4692b748a8}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListFriendsAsync@{ListFriendsAsync}}\n\\index{ListFriendsAsync@{ListFriendsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListFriendsAsync()}{ListFriendsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{IApi\\+Friend\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Friends\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int?}]{state = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList of friends of the current user.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by friendship state.\\\\\n\\hline\n{\\em limit} & The number of friends to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the friends list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the friend objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a1258302f25c2441cd419460a21aa3756}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a93b462ed1236ba5839cdb811b19524bc}\\label{interface_nakama_1_1_i_client_a93b462ed1236ba5839cdb811b19524bc}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListGroupsAsync@{ListGroupsAsync}}\n\\index{ListGroupsAsync@{ListGroupsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListGroupsAsync()}{ListGroupsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{IApi\\+Group\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{int?}]{members = {\\ttfamily null},  }\\item[{bool?}]{open = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList groups on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name filter to apply to the group list.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the groups to list.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag filter to apply to the group list.\\\\\n\\hline\n{\\em members} & The number of group members filter to apply to the group list.\\\\\n\\hline\n{\\em open} & The open/closed filter to apply to the group list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve group objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a052addd5b095f2c4d2b2d38dfc8e993f}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ac77e1bbf873d728d622b627943e64351}\\label{interface_nakama_1_1_i_client_ac77e1bbf873d728d622b627943e64351}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListGroupUsersAsync@{ListGroupUsersAsync}}\n\\index{ListGroupUsersAsync@{ListGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListGroupUsersAsync()}{ListGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{IApi\\+Group\\+User\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{int?}]{state = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all users part of the group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of groups to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the group listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group user objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a80306a00533b136b52cd6aff74db3e90}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a5fac82246b40a4df8311f51b3d565dae}\\label{interface_nakama_1_1_i_client_a5fac82246b40a4df8311f51b3d565dae}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListLeaderboardRecordsAroundOwnerAsync@{ListLeaderboardRecordsAroundOwnerAsync}}\n\\index{ListLeaderboardRecordsAroundOwnerAsync@{ListLeaderboardRecordsAroundOwnerAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListLeaderboardRecordsAroundOwnerAsync()}{ListLeaderboardRecordsAroundOwnerAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Leaderboard\\+Records\\+Around\\+Owner\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{string}]{owner\\+Id,  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList leaderboard records that belong to a user.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the user to list around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The limit of the listings.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aa00e1eb5a776bb9a554507eba56c8272}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a90b33da885f5fee1267420a0acbc1e87}\\label{interface_nakama_1_1_i_client_a90b33da885f5fee1267420a0acbc1e87}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListLeaderboardRecordsAsync@{ListLeaderboardRecordsAsync}}\n\\index{ListLeaderboardRecordsAsync@{ListLeaderboardRecordsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListLeaderboardRecordsAsync()}{ListLeaderboardRecordsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Leaderboard\\+Records\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{owner\\+Ids = {\\ttfamily null},  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList records from a leaderboard.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to list.\\\\\n\\hline\n{\\em owner\\+Ids} & Record owners to fetch with the list of records.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the leaderboard records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ab0157c7184c86a9e6cbaae2ae720adf1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_af52b743a4d334b23a43fad156f0eb54c}\\label{interface_nakama_1_1_i_client_af52b743a4d334b23a43fad156f0eb54c}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListMatchesAsync@{ListMatchesAsync}}\n\\index{ListMatchesAsync@{ListMatchesAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListMatchesAsync()}{ListMatchesAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{IApi\\+Match\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Matches\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{min,  }\\item[{int}]{max,  }\\item[{int}]{limit,  }\\item[{bool}]{authoritative,  }\\item[{string}]{label,  }\\item[{string}]{query,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nFetch a list of matches active on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em min} & The minimum number of match participants.\\\\\n\\hline\n{\\em max} & The maximum number of match participants.\\\\\n\\hline\n{\\em limit} & The number of matches to list.\\\\\n\\hline\n{\\em authoritative} & If authoritative matches should be included.\\\\\n\\hline\n{\\em label} & The label to filter the match list on.\\\\\n\\hline\n{\\em query} & A query for the matches to filter.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the match list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ad169be18d357b3b57067abf62e063310}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a9443bb244b7a51c6a493900822c654f1}\\label{interface_nakama_1_1_i_client_a9443bb244b7a51c6a493900822c654f1}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListNotificationsAsync@{ListNotificationsAsync}}\n\\index{ListNotificationsAsync@{ListNotificationsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListNotificationsAsync()}{ListNotificationsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{IApi\\+Notification\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Notifications\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cacheable\\+Cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList notifications for the user with an optional cursor.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of notifications to list.\\\\\n\\hline\n{\\em cacheable\\+Cursor} & A cursor for the current position in notifications to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve notifications objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_acde199dc46bdceabea904a44477cd284}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_afeec7a75562cfc1c9f51d35095580046}\\label{interface_nakama_1_1_i_client_afeec7a75562cfc1c9f51d35095580046}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListStorageObjectsAsync@{ListStorageObjectsAsync}}\n\\index{ListStorageObjectsAsync@{ListStorageObjectsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListStorageObjectsAsync()}{ListStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{collection,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList storage objects in a collection which have public read access.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em limit} & The number of objects to list. Maximum 100.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection. May be null.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a35c013a31537eea2ff7fe2239f5623e9}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a3e2cf89415aebbfdecb0f7015b37ba37}\\label{interface_nakama_1_1_i_client_a3e2cf89415aebbfdecb0f7015b37ba37}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListSubscriptionsAsync@{ListSubscriptionsAsync}}\n\\index{ListSubscriptionsAsync@{ListSubscriptionsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListSubscriptionsAsync()}{ListSubscriptionsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{IApi\\+Subscription\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Subscriptions\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{limit,  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList the user\\textquotesingle{}s subscriptions.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em limit} & The number of subscriptions to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of subscriptions.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription list.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a66425250e7fb827cc677da4732290329}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a0165ccd67746f2775a70387b9f5f7cfb}\\label{interface_nakama_1_1_i_client_a0165ccd67746f2775a70387b9f5f7cfb}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListTournamentRecordsAroundOwnerAsync@{ListTournamentRecordsAroundOwnerAsync}}\n\\index{ListTournamentRecordsAroundOwnerAsync@{ListTournamentRecordsAroundOwnerAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentRecordsAroundOwnerAsync()}{ListTournamentRecordsAroundOwnerAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Tournament\\+Records\\+Around\\+Owner\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{string}]{owner\\+Id,  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList tournament records around the owner.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Id} & The ID of the owner to pivot around.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae141eceb632e705999c2d8d0243ab99d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ac4a420dab57716222bbb8151700b1cdc}\\label{interface_nakama_1_1_i_client_ac4a420dab57716222bbb8151700b1cdc}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListTournamentRecordsAsync@{ListTournamentRecordsAsync}}\n\\index{ListTournamentRecordsAsync@{ListTournamentRecordsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentRecordsAsync()}{ListTournamentRecordsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Tournament\\+Records\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{owner\\+Ids = {\\ttfamily null},  }\\item[{long?}]{expiry = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList records from a tournament.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament.\\\\\n\\hline\n{\\em owner\\+Ids} & The IDs of the record owners to return in the result.\\\\\n\\hline\n{\\em expiry} & Expiry in seconds (since epoch) to begin fetching records from.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournament records.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament records.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aa994ad73bfce3f829e041505fb54e119}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a43e7575784efc55785124576651ac617}\\label{interface_nakama_1_1_i_client_a43e7575784efc55785124576651ac617}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListTournamentsAsync@{ListTournamentsAsync}}\n\\index{ListTournamentsAsync@{ListTournamentsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListTournamentsAsync()}{ListTournamentsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{IApi\\+Tournament\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Tournaments\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int}]{category\\+Start,  }\\item[{int}]{category\\+End,  }\\item[{int?}]{start\\+Time = {\\ttfamily null},  }\\item[{int?}]{end\\+Time = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList current or upcoming tournaments.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em category\\+Start} & The start of the category of tournaments to include.\\\\\n\\hline\n{\\em category\\+End} & The end of the category of tournaments to include.\\\\\n\\hline\n{\\em start\\+Time} & The start time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by start time.\\\\\n\\hline\n{\\em end\\+Time} & The end time of the tournaments. (UNIX timestamp, \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} retry\\+Configuration = null, Cancellation\\+Token canceller = default). If null, tournaments will not be filtered by end time.\\\\\n\\hline\n{\\em limit} & The number of tournaments to list.\\\\\n\\hline\n{\\em cursor} & An optional cursor for the next page of tournaments.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the list of tournament objects.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a4e64d250674e061e2304bdf2e4fe4342}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a20b9a6e164506988f758a00d0dd68efe}\\label{interface_nakama_1_1_i_client_a20b9a6e164506988f758a00d0dd68efe}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListUserGroupsAsync@{ListUserGroupsAsync}}\n\\index{ListUserGroupsAsync@{ListUserGroupsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListUserGroupsAsync()}{ListUserGroupsAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ Nakama.\\+IClient.\\+List\\+User\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{int?}]{state = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList of groups the current user is a member of.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_afb7774654804a171c8a602f3406466a1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aceddfd721720890ee6de3d4c67d699f6}\\label{interface_nakama_1_1_i_client_aceddfd721720890ee6de3d4c67d699f6}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListUserGroupsAsync@{ListUserGroupsAsync}}\n\\index{ListUserGroupsAsync@{ListUserGroupsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListUserGroupsAsync()}{ListUserGroupsAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}} $>$ Nakama.\\+IClient.\\+List\\+User\\+Groups\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{user\\+Id,  }\\item[{int?}]{state = {\\ttfamily null},  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList groups a user is a member of.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em user\\+Id} & The ID of the user whose groups to list.\\\\\n\\hline\n{\\em state} & Filter by group membership state.\\\\\n\\hline\n{\\em limit} & The number of records to list.\\\\\n\\hline\n{\\em cursor} & A cursor for the current position in the listing.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the group list object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a6dbbdc5225f9e64e576ad171003bbda8}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aeb5b5a9f8920ee2e287fc15e6dbae5d9}\\label{interface_nakama_1_1_i_client_aeb5b5a9f8920ee2e287fc15e6dbae5d9}} \n\\index{Nakama.IClient@{Nakama.IClient}!ListUsersStorageObjectsAsync@{ListUsersStorageObjectsAsync}}\n\\index{ListUsersStorageObjectsAsync@{ListUsersStorageObjectsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListUsersStorageObjectsAsync()}{ListUsersStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}} $>$ Nakama.\\+IClient.\\+List\\+Users\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{collection,  }\\item[{string}]{user\\+Id,  }\\item[{int}]{limit = {\\ttfamily 1},  }\\item[{string}]{cursor = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList storage objects in a collection which belong to a specific user and have public read access.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em collection} & The collection to list over.\\\\\n\\hline\n{\\em user\\+Id} & The user ID of the user to list objects for.\\\\\n\\hline\n{\\em limit} & The number of objects to list.\\\\\n\\hline\n{\\em cursor} & A cursor to paginate over the collection.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage object list.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a90c1f81c4e27cc664f16dcad793a6381}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a6f9bf7b5dc74dfab741e7aadfba89e4b}\\label{interface_nakama_1_1_i_client_a6f9bf7b5dc74dfab741e7aadfba89e4b}} \n\\index{Nakama.IClient@{Nakama.IClient}!PromoteGroupUsersAsync@{PromoteGroupUsersAsync}}\n\\index{PromoteGroupUsersAsync@{PromoteGroupUsersAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{PromoteGroupUsersAsync()}{PromoteGroupUsersAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Promote\\+Group\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{IEnumerable$<$ string $>$}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nPromote one or more users in the group.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to promote users into.\\\\\n\\hline\n{\\em ids} & The IDs of the users to promote.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a703f15655bec3592a25827f78715ecda}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a1b2f0ed3a7a73e8263d98036d53817fc}\\label{interface_nakama_1_1_i_client_a1b2f0ed3a7a73e8263d98036d53817fc}} \n\\index{Nakama.IClient@{Nakama.IClient}!ReadStorageObjectsAsync@{ReadStorageObjectsAsync}}\n\\index{ReadStorageObjectsAsync@{ReadStorageObjectsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ReadStorageObjectsAsync()}{ReadStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{IApi\\+Storage\\+Objects}} $>$ Nakama.\\+IClient.\\+Read\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}}\\mbox{[}$\\,$\\mbox{]}}]{ids,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRead one or more objects from the storage engine.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em ids} & The objects to read.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage batch object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a2dd9eb134b2aabf3df838aa0c15cb715}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a3b15daa0defb16913157e3fed94b1aab}\\label{interface_nakama_1_1_i_client_a3b15daa0defb16913157e3fed94b1aab}} \n\\index{Nakama.IClient@{Nakama.IClient}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+IClient.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae7903e1c260db27a9325f542410dffb1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a29b2534c256578fc1868d488e8f553f8}\\label{interface_nakama_1_1_i_client_a29b2534c256578fc1868d488e8f553f8}} \n\\index{Nakama.IClient@{Nakama.IClient}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+IClient.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{string}]{payload,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function with an input payload on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & The ID of the function to execute on the server.\\\\\n\\hline\n{\\em payload} & The payload to send with the function call.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC response.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a662403d6079acb66a0c8acb71e87b24d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a929523abb193fede9a6db74056d57ac4}\\label{interface_nakama_1_1_i_client_a929523abb193fede9a6db74056d57ac4}} \n\\index{Nakama.IClient@{Nakama.IClient}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+IClient.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{http\\+Key,  }\\item[{string}]{id,  }\\item[{string}]{payload = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nExecute a function on the server without a session.  \n\nThis function is usually used with server side code. DO NOT USE client side. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em http\\+Key} & The secure HTTP key used to authenticate.\\\\\n\\hline\n{\\em id} & The id of the function to execute on the server.\\\\\n\\hline\n{\\em payload} & A payload to send with the function call.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to resolve an RPC response.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ab40414406802388e487e366aa9c109a6}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ac0bf64fd0de7fe6a73a737b5ef514d93}\\label{interface_nakama_1_1_i_client_ac0bf64fd0de7fe6a73a737b5ef514d93}} \n\\index{Nakama.IClient@{Nakama.IClient}!SessionLogoutAsync@{SessionLogoutAsync}}\n\\index{SessionLogoutAsync@{SessionLogoutAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{SessionLogoutAsync()}{SessionLogoutAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Session\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session which invalidates the authorization and refresh token.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session to logout.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a3cf4591ab80d069ec55b8021bb51c730}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a6c53fa09b45cde7987ca6e3dc1f877bc}\\label{interface_nakama_1_1_i_client_a6c53fa09b45cde7987ca6e3dc1f877bc}} \n\\index{Nakama.IClient@{Nakama.IClient}!SessionLogoutAsync@{SessionLogoutAsync}}\n\\index{SessionLogoutAsync@{SessionLogoutAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{SessionLogoutAsync()}{SessionLogoutAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Session\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{auth\\+Token,  }\\item[{string}]{refresh\\+Token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session which optionally invalidates the authorization and/or refresh tokens.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em auth\\+Token} & The authorization token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em refresh\\+Token} & The refresh token to invalidate, may be {\\ttfamily null}.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a6e965270a90777b5aab3f3b4c7ba2374}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_af75a6a3aceaddf452fb714e08b0d3b0b}\\label{interface_nakama_1_1_i_client_af75a6a3aceaddf452fb714e08b0d3b0b}} \n\\index{Nakama.IClient@{Nakama.IClient}!SessionRefreshAsync@{SessionRefreshAsync}}\n\\index{SessionRefreshAsync@{SessionRefreshAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{SessionRefreshAsync()}{SessionRefreshAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} $>$ Nakama.\\+IClient.\\+Session\\+Refresh\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{Dictionary$<$ string, string $>$}]{vars = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRefresh the session unless the current refresh token has expired. If vars are specified they will replace what is currently stored inside the session token.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em vars} & Extra information which should be bundled inside the session token.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a54ddec21945530369fca30e9306efe5d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a4ba0c6637b9685eb0474352de1797a2e}\\label{interface_nakama_1_1_i_client_a4ba0c6637b9685eb0474352de1797a2e}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkAppleAsync@{UnlinkAppleAsync}}\n\\index{UnlinkAppleAsync@{UnlinkAppleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkAppleAsync()}{UnlinkAppleAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRemove the Apple ID from the social profiles on the current user\\textquotesingle{}s account.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & The ID token received from Apple.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a new session object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_adf62218ff4074ee7847260fb69f7a40e}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a2c4af0c1a411fff04f6f68427d9c82ae}\\label{interface_nakama_1_1_i_client_a2c4af0c1a411fff04f6f68427d9c82ae}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkCustomAsync@{UnlinkCustomAsync}}\n\\index{UnlinkCustomAsync@{UnlinkCustomAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkCustomAsync()}{UnlinkCustomAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Custom\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a custom ID from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A custom identifier usually obtained from an external authentication service.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_adb85bd4e511e508ef6858b103aa31523}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a4be577065a26f40b5c8fcf501b83c7fc}\\label{interface_nakama_1_1_i_client_a4be577065a26f40b5c8fcf501b83c7fc}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkDeviceAsync@{UnlinkDeviceAsync}}\n\\index{UnlinkDeviceAsync@{UnlinkDeviceAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkDeviceAsync()}{UnlinkDeviceAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Device\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a device ID from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & A device identifier usually obtained from a platform API.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a04f2596af7c5ffde9353981faed6443d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a94c94fa13db5528abe5fc6a13cb469f1}\\label{interface_nakama_1_1_i_client_a94c94fa13db5528abe5fc6a13cb469f1}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkEmailAsync@{UnlinkEmailAsync}}\n\\index{UnlinkEmailAsync@{UnlinkEmailAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkEmailAsync()}{UnlinkEmailAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Email\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{email,  }\\item[{string}]{password,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink an email with password from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em email} & The email address of the user.\\\\\n\\hline\n{\\em password} & The password for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a93428352ac3edb3e35d00afe0e108f5d}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a9209cbf097fc5d612df113dc1f7a380e}\\label{interface_nakama_1_1_i_client_a9209cbf097fc5d612df113dc1f7a380e}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkFacebookAsync@{UnlinkFacebookAsync}}\n\\index{UnlinkFacebookAsync@{UnlinkFacebookAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkFacebookAsync()}{UnlinkFacebookAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Facebook\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Facebook profile from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Facebook SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a116b79c31bc4bf94f0b037e6ecb33fc1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a8db620f585a3b1c6b33c83ffa959759c}\\label{interface_nakama_1_1_i_client_a8db620f585a3b1c6b33c83ffa959759c}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkGameCenterAsync@{UnlinkGameCenterAsync}}\n\\index{UnlinkGameCenterAsync@{UnlinkGameCenterAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkGameCenterAsync()}{UnlinkGameCenterAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Game\\+Center\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{bundle\\+Id,  }\\item[{string}]{player\\+Id,  }\\item[{string}]{public\\+Key\\+Url,  }\\item[{string}]{salt,  }\\item[{string}]{signature,  }\\item[{string}]{timestamp,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Game Center profile from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em bundle\\+Id} & The bundle ID of the Game Center application.\\\\\n\\hline\n{\\em player\\+Id} & The player ID of the user in Game Center.\\\\\n\\hline\n{\\em public\\+Key\\+Url} & The URL for the public encryption key.\\\\\n\\hline\n{\\em salt} & A random {\\ttfamily NSString} used to compute the hash and keep it randomized.\\\\\n\\hline\n{\\em signature} & The verification signature data generated.\\\\\n\\hline\n{\\em timestamp} & The date and time that the signature was created.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_adb1615cbce3978b43928c6dc1641fcd9}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aec2588fcb68ad3807af840f6886f79e7}\\label{interface_nakama_1_1_i_client_aec2588fcb68ad3807af840f6886f79e7}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkGoogleAsync@{UnlinkGoogleAsync}}\n\\index{UnlinkGoogleAsync@{UnlinkGoogleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkGoogleAsync()}{UnlinkGoogleAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Google profile from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An OAuth access token from the Google SDK.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ad30a4f27ec44259a72fb7ecd55b855cc}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a0b5ce7e1a9d3707e2a098ea531a26b5d}\\label{interface_nakama_1_1_i_client_a0b5ce7e1a9d3707e2a098ea531a26b5d}} \n\\index{Nakama.IClient@{Nakama.IClient}!UnlinkSteamAsync@{UnlinkSteamAsync}}\n\\index{UnlinkSteamAsync@{UnlinkSteamAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UnlinkSteamAsync()}{UnlinkSteamAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Unlink\\+Steam\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{token,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUnlink a Steam profile from the user account owned by the session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em token} & An authentication token from the Steam network.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aa7cf34d32c3bd2dd89224491dd03627a}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a981b2780f9f9bf2b8e2b4f423680013f}\\label{interface_nakama_1_1_i_client_a981b2780f9f9bf2b8e2b4f423680013f}} \n\\index{Nakama.IClient@{Nakama.IClient}!UpdateAccountAsync@{UpdateAccountAsync}}\n\\index{UpdateAccountAsync@{UpdateAccountAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UpdateAccountAsync()}{UpdateAccountAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Update\\+Account\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{username,  }\\item[{string}]{display\\+Name = {\\ttfamily null},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{string}]{location = {\\ttfamily null},  }\\item[{string}]{timezone = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate the current user\\textquotesingle{}s account on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em username} & The new username for the user.\\\\\n\\hline\n{\\em display\\+Name} & A new display name for the user.\\\\\n\\hline\n{\\em avatar\\+Url} & A new avatar url for the user.\\\\\n\\hline\n{\\em lang\\+Tag} & A new language tag in BCP-\\/47 format for the user.\\\\\n\\hline\n{\\em location} & A new location for the user.\\\\\n\\hline\n{\\em timezone} & New timezone information for the user.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a493aaa96074ed53faae99041c1ff71e7}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a1ab56488f06c34d4c8e7a184ef923176}\\label{interface_nakama_1_1_i_client_a1ab56488f06c34d4c8e7a184ef923176}} \n\\index{Nakama.IClient@{Nakama.IClient}!UpdateGroupAsync@{UpdateGroupAsync}}\n\\index{UpdateGroupAsync@{UpdateGroupAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UpdateGroupAsync()}{UpdateGroupAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+IClient.\\+Update\\+Group\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{group\\+Id,  }\\item[{string}]{name,  }\\item[{bool}]{open,  }\\item[{string}]{description = {\\ttfamily null},  }\\item[{string}]{avatar\\+Url = {\\ttfamily null},  }\\item[{string}]{lang\\+Tag = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate a group.  \n\nThe user must have the correct access permissions for the group. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em group\\+Id} & The ID of the group to update.\\\\\n\\hline\n{\\em name} & A new name for the group.\\\\\n\\hline\n{\\em open} & If the group should have open membership.\\\\\n\\hline\n{\\em description} & A new description for the group.\\\\\n\\hline\n{\\em avatar\\+Url} & A new avatar url for the group.\\\\\n\\hline\n{\\em lang\\+Tag} & A new language tag in BCP-\\/47 format for the group.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ae4721e57aa314b32152069e2644eb02b}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a3b4319cfed8f66406e01105fcbd46286}\\label{interface_nakama_1_1_i_client_a3b4319cfed8f66406e01105fcbd46286}} \n\\index{Nakama.IClient@{Nakama.IClient}!ValidatePurchaseAppleAsync@{ValidatePurchaseAppleAsync}}\n\\index{ValidatePurchaseAppleAsync@{ValidatePurchaseAppleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseAppleAsync()}{ValidatePurchaseAppleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+IClient.\\+Validate\\+Purchase\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Apple App Store.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a03a03e289c71ee9a21c6dc03241bd846}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a58ec876cf25e2c0a096fa02dac977985}\\label{interface_nakama_1_1_i_client_a58ec876cf25e2c0a096fa02dac977985}} \n\\index{Nakama.IClient@{Nakama.IClient}!ValidatePurchaseGoogleAsync@{ValidatePurchaseGoogleAsync}}\n\\index{ValidatePurchaseGoogleAsync@{ValidatePurchaseGoogleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseGoogleAsync()}{ValidatePurchaseGoogleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+IClient.\\+Validate\\+Purchase\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Google Play Store.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a08e6406e21fd5fc52ee905b586210276}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a04cd45c9b6e5cc2333f7299a55a182a3}\\label{interface_nakama_1_1_i_client_a04cd45c9b6e5cc2333f7299a55a182a3}} \n\\index{Nakama.IClient@{Nakama.IClient}!ValidatePurchaseHuaweiAsync@{ValidatePurchaseHuaweiAsync}}\n\\index{ValidatePurchaseHuaweiAsync@{ValidatePurchaseHuaweiAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ValidatePurchaseHuaweiAsync()}{ValidatePurchaseHuaweiAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}} $>$ Nakama.\\+IClient.\\+Validate\\+Purchase\\+Huawei\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{string}]{signature,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a purchase receipt against the Huawei App\\+Gallery.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The purchase receipt to be validated.\\\\\n\\hline\n{\\em signature} & The signature of the purchase receipt.\\\\\n\\hline\n{\\em persist} & Whether or not to track the receipt in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the validated list of purchase receipts.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a7d49b887e6d302f68917162a0567ad66}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_abc626bfa5a312f23033b1dcce16abe90}\\label{interface_nakama_1_1_i_client_abc626bfa5a312f23033b1dcce16abe90}} \n\\index{Nakama.IClient@{Nakama.IClient}!ValidateSubscriptionAppleAsync@{ValidateSubscriptionAppleAsync}}\n\\index{ValidateSubscriptionAppleAsync@{ValidateSubscriptionAppleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ValidateSubscriptionAppleAsync()}{ValidateSubscriptionAppleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ Nakama.\\+IClient.\\+Validate\\+Subscription\\+Apple\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate an Apple subscription receipt.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The receipt to validate.\\\\\n\\hline\n{\\em persist} & Whether or not to persist the receipt to \\mbox{\\hyperlink{namespace_nakama}{Nakama}}\\textquotesingle{}s database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription validation response. \n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a63b6bc07335627f58236ba0c9997336f}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_abdceffcc291e56bf4de8683fb6386fe9}\\label{interface_nakama_1_1_i_client_abdceffcc291e56bf4de8683fb6386fe9}} \n\\index{Nakama.IClient@{Nakama.IClient}!ValidateSubscriptionGoogleAsync@{ValidateSubscriptionGoogleAsync}}\n\\index{ValidateSubscriptionGoogleAsync@{ValidateSubscriptionGoogleAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ValidateSubscriptionGoogleAsync()}{ValidateSubscriptionGoogleAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}} $>$ Nakama.\\+IClient.\\+Validate\\+Subscription\\+Google\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{receipt,  }\\item[{bool}]{persist = {\\ttfamily true},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nValidate a Google subscription receipt.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em receipt} & The receipt to validate.\\\\\n\\hline\n{\\em persist} & Whether or not to persist the receipt to \\mbox{\\hyperlink{namespace_nakama}{Nakama}}\\textquotesingle{}s database.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the subscription validation response. \n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a30b942db8e51709901e60c6a5d26c5bb}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a75172b3237e2c1a0dd2df2d1e0a19ec1}\\label{interface_nakama_1_1_i_client_a75172b3237e2c1a0dd2df2d1e0a19ec1}} \n\\index{Nakama.IClient@{Nakama.IClient}!WriteLeaderboardRecordAsync@{WriteLeaderboardRecordAsync}}\n\\index{WriteLeaderboardRecordAsync@{WriteLeaderboardRecordAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{WriteLeaderboardRecordAsync()}{WriteLeaderboardRecordAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ Nakama.\\+IClient.\\+Write\\+Leaderboard\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{leaderboard\\+Id,  }\\item[{long}]{score,  }\\item[{long}]{sub\\+Score = {\\ttfamily 0L},  }\\item[{string}]{metadata = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}}}]{api\\+Operator = {\\ttfamily ApiOperator.NO\\+\\_\\+OVERRIDE},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite a record to a leaderboard.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session for the user.\\\\\n\\hline\n{\\em leaderboard\\+Id} & The ID of the leaderboard to write.\\\\\n\\hline\n{\\em score} & The score for the leaderboard record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the leaderboard record.\\\\\n\\hline\n{\\em metadata} & The metadata for the leaderboard record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the leaderboard. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the leaderboard record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a6b44990352ecbf4c847b29ac715014fb}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_adc8f34b5cacc6e61d0240d53c1383935}\\label{interface_nakama_1_1_i_client_adc8f34b5cacc6e61d0240d53c1383935}} \n\\index{Nakama.IClient@{Nakama.IClient}!WriteStorageObjectsAsync@{WriteStorageObjectsAsync}}\n\\index{WriteStorageObjectsAsync@{WriteStorageObjectsAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{WriteStorageObjectsAsync()}{WriteStorageObjectsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{IApi\\+Storage\\+Object\\+Acks}} $>$ Nakama.\\+IClient.\\+Write\\+Storage\\+Objects\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}}\\mbox{[}$\\,$\\mbox{]}}]{objects,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite objects to the storage engine.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em objects} & The objects to write.\\\\\n\\hline\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the storage write acknowledgements.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_ad2d4bb27d5340afb6be824a2bc2e7815}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a0e18257ebdd85c9a0d56c501e221e90a}\\label{interface_nakama_1_1_i_client_a0e18257ebdd85c9a0d56c501e221e90a}} \n\\index{Nakama.IClient@{Nakama.IClient}!WriteTournamentRecordAsync@{WriteTournamentRecordAsync}}\n\\index{WriteTournamentRecordAsync@{WriteTournamentRecordAsync}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{WriteTournamentRecordAsync()}{WriteTournamentRecordAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}} $>$ Nakama.\\+IClient.\\+Write\\+Tournament\\+Record\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{tournament\\+Id,  }\\item[{long}]{score,  }\\item[{long}]{sub\\+Score = {\\ttfamily 0L},  }\\item[{string}]{metadata = {\\ttfamily null},  }\\item[{\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}}}]{api\\+Operator = {\\ttfamily ApiOperator.NO\\+\\_\\+OVERRIDE},  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}}]{retry\\+Configuration = {\\ttfamily null},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nWrite a record to a tournament.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em tournament\\+Id} & The ID of the tournament to write.\\\\\n\\hline\n{\\em score} & The score of the tournament record.\\\\\n\\hline\n{\\em sub\\+Score} & The sub score for the tournament record.\\\\\n\\hline\n{\\em metadata} & The metadata for the tournament record.\\\\\n\\hline\n{\\em operator} & The operator for the record that can be used to override the one set in the tournament. \n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+Configuration} & The retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\\\\\n\\hline\n{\\em canceller} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the tournament record object written.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_af0b988b7a04b78b7aac805dc502ff52d}{Nakama.\\+Client}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a65ce1849bf8c639c0d11853be12f22f8}\\label{interface_nakama_1_1_i_client_a65ce1849bf8c639c0d11853be12f22f8}} \n\\index{Nakama.IClient@{Nakama.IClient}!AutoRefreshSession@{AutoRefreshSession}}\n\\index{AutoRefreshSession@{AutoRefreshSession}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AutoRefreshSession}{AutoRefreshSession}}\n{\\footnotesize\\ttfamily bool Nakama.\\+IClient.\\+Auto\\+Refresh\\+Session\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nTrue if the session should be refreshed with an active refresh token.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a2abea8492c53d4579c14eb4ae5327610}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ad86bc2c00a137d35243e977086a00ffa}\\label{interface_nakama_1_1_i_client_ad86bc2c00a137d35243e977086a00ffa}} \n\\index{Nakama.IClient@{Nakama.IClient}!GlobalRetryConfiguration@{GlobalRetryConfiguration}}\n\\index{GlobalRetryConfiguration@{GlobalRetryConfiguration}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GlobalRetryConfiguration}{GlobalRetryConfiguration}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}} Nakama.\\+IClient.\\+Global\\+Retry\\+Configuration\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe global retry configuration. See \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_a4e84dc06e439ead1dcdc918350b93ed8}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a93e9759631f1a3106dc4ec47477f3eb8}\\label{interface_nakama_1_1_i_client_a93e9759631f1a3106dc4ec47477f3eb8}} \n\\index{Nakama.IClient@{Nakama.IClient}!Host@{Host}}\n\\index{Host@{Host}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{Host}{Host}}\n{\\footnotesize\\ttfamily string Nakama.\\+IClient.\\+Host\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe host address of the server. Defaults to \\char`\\\"{}127.\\+0.\\+0.\\+1\\char`\\\"{}.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aacad034c2d21b970537423de0ba27e4f}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_ad5d7b98d99d381d0340e7d8e90a54d26}\\label{interface_nakama_1_1_i_client_ad5d7b98d99d381d0340e7d8e90a54d26}} \n\\index{Nakama.IClient@{Nakama.IClient}!Port@{Port}}\n\\index{Port@{Port}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{Port}{Port}}\n{\\footnotesize\\ttfamily int Nakama.\\+IClient.\\+Port\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe port number of the server. Defaults to 7350.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aa59309ff4ed7172795782cd69cb295d8}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a5ce30e2720c3b831e249bf19452eb340}\\label{interface_nakama_1_1_i_client_a5ce30e2720c3b831e249bf19452eb340}} \n\\index{Nakama.IClient@{Nakama.IClient}!Scheme@{Scheme}}\n\\index{Scheme@{Scheme}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{Scheme}{Scheme}}\n{\\footnotesize\\ttfamily string Nakama.\\+IClient.\\+Scheme\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe protocol scheme used to connect with the server. Must be either \\char`\\\"{}http\\char`\\\"{} or \\char`\\\"{}https\\char`\\\"{}.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_afaf274b5c7dc2b21931b7d6814f3d455}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_a6b13274c171e19e07f26ea5334f8ab23}\\label{interface_nakama_1_1_i_client_a6b13274c171e19e07f26ea5334f8ab23}} \n\\index{Nakama.IClient@{Nakama.IClient}!ServerKey@{ServerKey}}\n\\index{ServerKey@{ServerKey}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ServerKey}{ServerKey}}\n{\\footnotesize\\ttfamily string Nakama.\\+IClient.\\+Server\\+Key\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe key used to authenticate with the server without a session. Defaults to \\char`\\\"{}defaultkey\\char`\\\"{}.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_aa70b920781b70f74f0419d262043dbd1}{Nakama.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_client_aadcfb5308770d73098d9ba66534074af}\\label{interface_nakama_1_1_i_client_aadcfb5308770d73098d9ba66534074af}} \n\\index{Nakama.IClient@{Nakama.IClient}!Timeout@{Timeout}}\n\\index{Timeout@{Timeout}!Nakama.IClient@{Nakama.IClient}}\n\\doxysubsubsection{\\texorpdfstring{Timeout}{Timeout}}\n{\\footnotesize\\ttfamily int Nakama.\\+IClient.\\+Timeout\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nSet the timeout in seconds on requests sent to the server.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_client_afa11ac790793b5178c423364cc1a1cd2}{Nakama.\\+Client}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IClient.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_group_user_list_group_user.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_group_user_list_group_user}{}\\doxysection{Nakama.\\+IGroup\\+User\\+List\\+Group\\+User Interface Reference}\n\\label{interface_nakama_1_1_i_group_user_list_group_user}\\index{Nakama.IGroupUserListGroupUser@{Nakama.IGroupUserListGroupUser}}\n\n\nA single user-\\/role pair.   \n\n\n\n\nInherited by Nakama.\\+Group\\+User\\+List\\+Group\\+User.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_group_user_list_group_user_ab3c0a5153f49c9713449835993cf6bb9}\\label{interface_nakama_1_1_i_group_user_list_group_user_ab3c0a5153f49c9713449835993cf6bb9}} \nint {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Their relationship to the group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_group_user_list_group_user_aef07d68b38175190826739a236457bb1}\\label{interface_nakama_1_1_i_group_user_list_group_user_aef07d68b38175190826739a236457bb1}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} {\\bfseries User}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em User.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA single user-\\/role pair.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_http_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 72.463768\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 6.900000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 2 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.IHttpAdapter) cw\n(Nakama.HttpRequestAdapter) cw\n(Nakama.Tests.TransientExceptionHttpAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.IHttpAdapter) 0.500000 1.000000 box\n (Nakama.HttpRequestAdapter) 0.000000 0.000000 box\n (Nakama.Tests.TransientExceptionHttpAdapter) 1.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.500000 0.250000 out\nsolid\n0.000000 1.000000 1.000000 conn\nsolid\n0 0.000000 0.750000 in\nsolid\n0 1.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_http_adapter.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_http_adapter}{}\\doxysection{Nakama.\\+IHttp\\+Adapter Interface Reference}\n\\label{interface_nakama_1_1_i_http_adapter}\\index{Nakama.IHttpAdapter@{Nakama.IHttpAdapter}}\n\n\nAn adapter which implements the HTTP protocol.   \n\n\nInheritance diagram for Nakama.\\+IHttp\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_http_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask$<$ string $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter_af4eea04aef9ed0ccf2ee990bcb294b53}{Send\\+Async}} (string method, Uri uri, IDictionary$<$ string, string $>$ headers, byte\\mbox{[}$\\,$\\mbox{]} body, int timeout\\+Sec=3, Cancellation\\+Token? user\\+Cancel\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send a HTTP request.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_http_adapter_a276f20c0cdbc85177ace2cc336579cf8}\\label{interface_nakama_1_1_i_http_adapter_a276f20c0cdbc85177ace2cc336579cf8}} \nTransient\\+Exception\\+Delegate {\\bfseries Transient\\+Exception\\+Delegate}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter_ad0514214ba7fce3b8c0697d70874ff1e}{Logger}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the adapter.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which implements the HTTP protocol.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_http_adapter_af4eea04aef9ed0ccf2ee990bcb294b53}\\label{interface_nakama_1_1_i_http_adapter_af4eea04aef9ed0ccf2ee990bcb294b53}} \n\\index{Nakama.IHttpAdapter@{Nakama.IHttpAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Nakama.IHttpAdapter@{Nakama.IHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily Task$<$ string $>$ Nakama.\\+IHttp\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{method,  }\\item[{Uri}]{uri,  }\\item[{IDictionary$<$ string, string $>$}]{headers,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{body,  }\\item[{int}]{timeout\\+Sec = {\\ttfamily 3},  }\\item[{Cancellation\\+Token?}]{user\\+Cancel\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend a HTTP request.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_a7562e1777699f16911ed2d5e245eb5b7}{Nakama.\\+Http\\+Request\\+Adapter}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_http_adapter_ad0514214ba7fce3b8c0697d70874ff1e}\\label{interface_nakama_1_1_i_http_adapter_ad0514214ba7fce3b8c0697d70874ff1e}} \n\\index{Nakama.IHttpAdapter@{Nakama.IHttpAdapter}!Logger@{Logger}}\n\\index{Logger@{Logger}!Nakama.IHttpAdapter@{Nakama.IHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{Logger}{Logger}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}} Nakama.\\+IHttp\\+Adapter.\\+Logger\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe logger to use with the adapter.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_transient_exception_http_adapter_a13fdded7b12cc20e46b433fbe4e808f6}{Nakama.\\+Tests.\\+Transient\\+Exception\\+Http\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter_a7365d2d5c82d5d0d6b8ac64941a8e533}{Nakama.\\+Http\\+Request\\+Adapter}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IHttp\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_logger.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 225.988693\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.212500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.ILogger) cw\n(Nakama.Tests.StdoutLogger) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.ILogger) 0.000000 1.000000 box\n (Nakama.Tests.StdoutLogger) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_logger.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_logger}{}\\doxysection{Nakama.\\+ILogger Interface Reference}\n\\label{interface_nakama_1_1_i_logger}\\index{Nakama.ILogger@{Nakama.ILogger}}\n\n\nA simple logger to write log messages to an output sink.   \n\n\nInheritance diagram for Nakama.\\+ILogger\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_logger}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nvoid \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a7b8a076d052336b4bc965caba104d091}{Debug\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the DEBUG level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a7a32d0f6eadfce1dcdcd1884767978e8}{Error\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the ERROR level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_a04590700134fcc96228f9595c09cc901}{Info\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the INFO level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_nakama_1_1_i_logger_aea853b29e33993f4fbfe55ff9413e7c3}{Warn\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the WARN level.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA simple logger to write log messages to an output sink.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_logger_a7b8a076d052336b4bc965caba104d091}\\label{interface_nakama_1_1_i_logger_a7b8a076d052336b4bc965caba104d091}} \n\\index{Nakama.ILogger@{Nakama.ILogger}!DebugFormat@{DebugFormat}}\n\\index{DebugFormat@{DebugFormat}!Nakama.ILogger@{Nakama.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{DebugFormat()}{DebugFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+ILogger.\\+Debug\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the DEBUG level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ad0c8e568fb1c1fb0e4eafc56562a5f66}{Nakama.\\+Tests.\\+Stdout\\+Logger}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_logger_a7a32d0f6eadfce1dcdcd1884767978e8}\\label{interface_nakama_1_1_i_logger_a7a32d0f6eadfce1dcdcd1884767978e8}} \n\\index{Nakama.ILogger@{Nakama.ILogger}!ErrorFormat@{ErrorFormat}}\n\\index{ErrorFormat@{ErrorFormat}!Nakama.ILogger@{Nakama.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{ErrorFormat()}{ErrorFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+ILogger.\\+Error\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the ERROR level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ae240b447f299b3b8fe95a6ef51944aa9}{Nakama.\\+Tests.\\+Stdout\\+Logger}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_logger_a04590700134fcc96228f9595c09cc901}\\label{interface_nakama_1_1_i_logger_a04590700134fcc96228f9595c09cc901}} \n\\index{Nakama.ILogger@{Nakama.ILogger}!InfoFormat@{InfoFormat}}\n\\index{InfoFormat@{InfoFormat}!Nakama.ILogger@{Nakama.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{InfoFormat()}{InfoFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+ILogger.\\+Info\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the INFO level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_ac6813139553ee876d74d08f30b8630fb}{Nakama.\\+Tests.\\+Stdout\\+Logger}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_logger_aea853b29e33993f4fbfe55ff9413e7c3}\\label{interface_nakama_1_1_i_logger_aea853b29e33993f4fbfe55ff9413e7c3}} \n\\index{Nakama.ILogger@{Nakama.ILogger}!WarnFormat@{WarnFormat}}\n\\index{WarnFormat@{WarnFormat}!Nakama.ILogger@{Nakama.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{WarnFormat()}{WarnFormat()}}\n{\\footnotesize\\ttfamily void Nakama.\\+ILogger.\\+Warn\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the WARN level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger_a750b6801ba33ffde12ada265f433b1a8}{Nakama.\\+Tests.\\+Stdout\\+Logger}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/ILogger.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_match.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_match}{}\\doxysection{Nakama.\\+IMatch Interface Reference}\n\\label{interface_nakama_1_1_i_match}\\index{Nakama.IMatch@{Nakama.IMatch}}\n\n\nA multiplayer match.   \n\n\n\n\nInherited by Nakama.\\+Match.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_ae082ee8c9b89c975ba3a4ae8365c631b}\\label{interface_nakama_1_1_i_match_ae082ee8c9b89c975ba3a4ae8365c631b}} \nbool {\\bfseries Authoritative}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If this match has an authoritative handler on the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_a70ec08c29ae2f928e191fc13c5694ccb}\\label{interface_nakama_1_1_i_match_a70ec08c29ae2f928e191fc13c5694ccb}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique match identifier.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_ae26c0fcd9c1f2f8473125a5a64da5a91}\\label{interface_nakama_1_1_i_match_ae26c0fcd9c1f2f8473125a5a64da5a91}} \nstring {\\bfseries Label}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A label for the match which can be filtered on.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_a507c528b18eb5cb4c8efb6b86361961e}\\label{interface_nakama_1_1_i_match_a507c528b18eb5cb4c8efb6b86361961e}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Presences}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The presences already in the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_aafdd659e29dd31f2360657d2703d63e5}\\label{interface_nakama_1_1_i_match_aafdd659e29dd31f2360657d2703d63e5}} \nint {\\bfseries Size}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The number of users currently in the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_a007362b403742126106c65e023a9185f}\\label{interface_nakama_1_1_i_match_a007362b403742126106c65e023a9185f}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Self}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current user in this match. i.\\+e. Yourself.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA multiplayer match.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatch.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_match_presence_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_match_presence_event}{}\\doxysection{Nakama.\\+IMatch\\+Presence\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_match_presence_event}\\index{Nakama.IMatchPresenceEvent@{Nakama.IMatchPresenceEvent}}\n\n\nA batch of join and leave presences for a match.   \n\n\n\n\nInherited by Nakama.\\+Match\\+Presence\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_presence_event_a7105d09667d2a472acc060dc23b7be1d}\\label{interface_nakama_1_1_i_match_presence_event_a7105d09667d2a472acc060dc23b7be1d}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Joins}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who joined the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_presence_event_a5f98c541a38afdadd16143ef5c4e6e81}\\label{interface_nakama_1_1_i_match_presence_event_a5f98c541a38afdadd16143ef5c4e6e81}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Leaves}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who left the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_presence_event_a2d6558e1628576b6de1a8a596090104f}\\label{interface_nakama_1_1_i_match_presence_event_a2d6558e1628576b6de1a8a596090104f}} \nstring {\\bfseries Match\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique match identifier.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA batch of join and leave presences for a match.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatch\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_match_state.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_match_state}{}\\doxysection{Nakama.\\+IMatch\\+State Interface Reference}\n\\label{interface_nakama_1_1_i_match_state}\\index{Nakama.IMatchState@{Nakama.IMatchState}}\n\n\nSome game state update in a match.   \n\n\n\n\nInherited by Nakama.\\+Match\\+State.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_state_a2050d924ff200392b7a20e9d92ed8d73}\\label{interface_nakama_1_1_i_match_state_a2050d924ff200392b7a20e9d92ed8d73}} \nstring {\\bfseries Match\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique match identifier.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_nakama_1_1_i_match_state_adc672df3ed004ec960eb94389d850cca}{Op\\+Code}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The operation code for the state change.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_state_a381837d92c6e9af9f0d777f8afec5aae}\\label{interface_nakama_1_1_i_match_state_a381837d92c6e9af9f0d777f8afec5aae}} \nbyte\\mbox{[}$\\,$\\mbox{]} {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The byte contents of the state change.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_state_aea019216d3cf58b88b5511b0d6790bc3}\\label{interface_nakama_1_1_i_match_state_aea019216d3cf58b88b5511b0d6790bc3}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries User\\+Presence}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Information on the user who sent the state change.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nSome game state update in a match.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_match_state_adc672df3ed004ec960eb94389d850cca}\\label{interface_nakama_1_1_i_match_state_adc672df3ed004ec960eb94389d850cca}} \n\\index{Nakama.IMatchState@{Nakama.IMatchState}!OpCode@{OpCode}}\n\\index{OpCode@{OpCode}!Nakama.IMatchState@{Nakama.IMatchState}}\n\\doxysubsubsection{\\texorpdfstring{OpCode}{OpCode}}\n{\\footnotesize\\ttfamily long Nakama.\\+IMatch\\+State.\\+Op\\+Code\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe operation code for the state change.  \n\nThis value can be used to mark the type of the contents of the state. \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatch\\+State.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_matchmaker_matched.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_matchmaker_matched}{}\\doxysection{Nakama.\\+IMatchmaker\\+Matched Interface Reference}\n\\label{interface_nakama_1_1_i_matchmaker_matched}\\index{Nakama.IMatchmakerMatched@{Nakama.IMatchmakerMatched}}\n\n\nThe result of a successful matchmaker operation sent to the server.   \n\n\n\n\nInherited by Nakama.\\+Matchmaker\\+Matched.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched_a020c0a5d0df34669a87d2d133456b15e}{Match\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id used to join the match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_matched_a4521a2a0e267c0a5947d70b3fd1f67c7}\\label{interface_nakama_1_1_i_matchmaker_matched_a4521a2a0e267c0a5947d70b3fd1f67c7}} \nstring {\\bfseries Ticket}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ticket sent by the server when the user requested to matchmake for other players.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_matched_a39bbcf32c0c6aec47c7ea1b2d92f93f7}\\label{interface_nakama_1_1_i_matchmaker_matched_a39bbcf32c0c6aec47c7ea1b2d92f93f7}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The token used to join a match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_matched_a117f1d2bb525478f0eed417453877e10}\\label{interface_nakama_1_1_i_matchmaker_matched_a117f1d2bb525478f0eed417453877e10}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_user}{IMatchmaker\\+User}} $>$ {\\bfseries Users}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The other users matched with this user and the parameters they sent.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_matched_a5716c374d85fb7b2f2f7d41c0fefd848}\\label{interface_nakama_1_1_i_matchmaker_matched_a5716c374d85fb7b2f2f7d41c0fefd848}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_user}{IMatchmaker\\+User}} {\\bfseries Self}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current user who matched with opponents.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe result of a successful matchmaker operation sent to the server.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_matched_a020c0a5d0df34669a87d2d133456b15e}\\label{interface_nakama_1_1_i_matchmaker_matched_a020c0a5d0df34669a87d2d133456b15e}} \n\\index{Nakama.IMatchmakerMatched@{Nakama.IMatchmakerMatched}!MatchId@{MatchId}}\n\\index{MatchId@{MatchId}!Nakama.IMatchmakerMatched@{Nakama.IMatchmakerMatched}}\n\\doxysubsubsection{\\texorpdfstring{MatchId}{MatchId}}\n{\\footnotesize\\ttfamily string Nakama.\\+IMatchmaker\\+Matched.\\+Match\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe id used to join the match.  \n\nA match ID used to join the match. \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatchmaker\\+Matched.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_matchmaker_ticket.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_matchmaker_ticket}{}\\doxysection{Nakama.\\+IMatchmaker\\+Ticket Interface Reference}\n\\label{interface_nakama_1_1_i_matchmaker_ticket}\\index{Nakama.IMatchmakerTicket@{Nakama.IMatchmakerTicket}}\n\n\nThe matchmaker ticket received from the server.   \n\n\n\n\nInherited by Nakama.\\+Matchmaker\\+Ticket.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_ticket_a8f9d6e24b7a71bb40e18d374203b9eef}\\label{interface_nakama_1_1_i_matchmaker_ticket_a8f9d6e24b7a71bb40e18d374203b9eef}} \nstring {\\bfseries Ticket}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ticket generated by the matchmaker.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe matchmaker ticket received from the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatchmaker\\+Ticket.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_matchmaker_user.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_matchmaker_user}{}\\doxysection{Nakama.\\+IMatchmaker\\+User Interface Reference}\n\\label{interface_nakama_1_1_i_matchmaker_user}\\index{Nakama.IMatchmakerUser@{Nakama.IMatchmakerUser}}\n\n\nThe user with the parameters they sent to the server when asking for opponents.   \n\n\n\n\nInherited by Nakama.\\+Matchmaker\\+User.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_user_a4466b6db559bdc6432d15df937c39a96}\\label{interface_nakama_1_1_i_matchmaker_user_a4466b6db559bdc6432d15df937c39a96}} \nIDictionary$<$ string, double $>$ {\\bfseries Numeric\\+Properties}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The numeric properties which this user asked to matchmake with.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_user_a733ad4dc6253d6b01a3e3893b3b55d62}\\label{interface_nakama_1_1_i_matchmaker_user_a733ad4dc6253d6b01a3e3893b3b55d62}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Presence}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The presence of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_matchmaker_user_a89a88598a9affd0f7597b800816899fa}\\label{interface_nakama_1_1_i_matchmaker_user_a89a88598a9affd0f7597b800816899fa}} \nIDictionary$<$ string, string $>$ {\\bfseries String\\+Properties}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The string properties which this user asked to matchmake with.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nThe user with the parameters they sent to the server when asking for opponents.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IMatchmaker\\+Matched.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party}{}\\doxysection{Nakama.\\+IParty Interface Reference}\n\\label{interface_nakama_1_1_i_party}\\index{Nakama.IParty@{Nakama.IParty}}\n\n\nIncoming information about a party.   \n\n\n\n\nInherited by Nakama.\\+Party.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a3d156d302a3f421438e0dc35425c97bf}\\label{interface_nakama_1_1_i_party_a3d156d302a3f421438e0dc35425c97bf}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The unique party identifier.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a9e8a6732f73a4d6b73a082cc08d7202e}\\label{interface_nakama_1_1_i_party_a9e8a6732f73a4d6b73a082cc08d7202e}} \nbool {\\bfseries Open}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True, if the party is open to join.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a0d31a7df38955d4114f7eec2e0223869}\\label{interface_nakama_1_1_i_party_a0d31a7df38955d4114f7eec2e0223869}} \nint {\\bfseries Max\\+Size}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The maximum number of party members.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a7be0281272b44f71b4306592ff2470e2}\\label{interface_nakama_1_1_i_party_a7be0281272b44f71b4306592ff2470e2}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Self}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current user in this party. i.\\+e. Yourself.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a393481bb0a4026dc26adf8522e339991}\\label{interface_nakama_1_1_i_party_a393481bb0a4026dc26adf8522e339991}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Leader}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The current party leader.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_a9e44c485a4773c8b44056ec160ad1e7e}\\label{interface_nakama_1_1_i_party_a9e44c485a4773c8b44056ec160ad1e7e}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Presences}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em All members currently in the party.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nIncoming information about a party.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_close.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_close}{}\\doxysection{Nakama.\\+IParty\\+Close Interface Reference}\n\\label{interface_nakama_1_1_i_party_close}\\index{Nakama.IPartyClose@{Nakama.IPartyClose}}\n\n\nEnd a party, kicking all party members and closing it.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Close.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_close_a437b58653186c594f8e676967eace80b}\\label{interface_nakama_1_1_i_party_close_a437b58653186c594f8e676967eace80b}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party to close.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nEnd a party, kicking all party members and closing it.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Close.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_data.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_data}{}\\doxysection{Nakama.\\+IParty\\+Data Interface Reference}\n\\label{interface_nakama_1_1_i_party_data}\\index{Nakama.IPartyData@{Nakama.IPartyData}}\n\n\nIncoming party data delivered from the server.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Data.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_data_af879054b576df0b0756c151726214314}\\label{interface_nakama_1_1_i_party_data_af879054b576df0b0756c151726214314}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_data_a0f856779340e95f45c63bc5a6e9bc6f5}\\label{interface_nakama_1_1_i_party_data_a0f856779340e95f45c63bc5a6e9bc6f5}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Presence}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A reference to the user presence that sent this data, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_data_a85bc60d970922aea6a58c3662b6142e1}\\label{interface_nakama_1_1_i_party_data_a85bc60d970922aea6a58c3662b6142e1}} \nlong {\\bfseries Op\\+Code}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The operation code the message was sent with.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_data_ae5fba3ce723e573b0e87a328718b186e}\\label{interface_nakama_1_1_i_party_data_ae5fba3ce723e573b0e87a328718b186e}} \nbyte\\mbox{[}$\\,$\\mbox{]} {\\bfseries Data}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Data payload, if any.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nIncoming party data delivered from the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Data.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_join_request.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_join_request}{}\\doxysection{Nakama.\\+IParty\\+Join\\+Request Interface Reference}\n\\label{interface_nakama_1_1_i_party_join_request}\\index{Nakama.IPartyJoinRequest@{Nakama.IPartyJoinRequest}}\n\n\nIncoming notification for one or more new presences attempting to join the party.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Join\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_join_request_a6be31d8ce7c551aabced57f808c4483d}\\label{interface_nakama_1_1_i_party_join_request_a6be31d8ce7c551aabced57f808c4483d}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party to get a list of join requests for.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_join_request_aca309629a8fec83d7895d4f66565ae29}\\label{interface_nakama_1_1_i_party_join_request_aca309629a8fec83d7895d4f66565ae29}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Presences}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences attempting to join, or who have joined.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nIncoming notification for one or more new presences attempting to join the party.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Join\\+Request.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_leader.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_leader}{}\\doxysection{Nakama.\\+IParty\\+Leader Interface Reference}\n\\label{interface_nakama_1_1_i_party_leader}\\index{Nakama.IPartyLeader@{Nakama.IPartyLeader}}\n\n\nAnnouncement of a new party leader.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Leader.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_leader_a944e79a62b9e234a8d3207bca6be04a8}\\label{interface_nakama_1_1_i_party_leader_a944e79a62b9e234a8d3207bca6be04a8}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party to announce the new leader for.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_leader_ac2a714b4b180259071077b8e500307b7}\\label{interface_nakama_1_1_i_party_leader_ac2a714b4b180259071077b8e500307b7}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Presence}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The presence of the new party leader.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAnnouncement of a new party leader.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Leader.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_matchmaker_ticket.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_matchmaker_ticket}{}\\doxysection{Nakama.\\+IParty\\+Matchmaker\\+Ticket Interface Reference}\n\\label{interface_nakama_1_1_i_party_matchmaker_ticket}\\index{Nakama.IPartyMatchmakerTicket@{Nakama.IPartyMatchmakerTicket}}\n\n\nA response from starting a new party matchmaking process.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Matchmaker\\+Ticket.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_matchmaker_ticket_a1ef8dc7b33d43eff238c54f5f25fb12c}\\label{interface_nakama_1_1_i_party_matchmaker_ticket_a1ef8dc7b33d43eff238c54f5f25fb12c}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_matchmaker_ticket_a11b143c9e178fc5d9b1986071b9b95af}\\label{interface_nakama_1_1_i_party_matchmaker_ticket_a11b143c9e178fc5d9b1986071b9b95af}} \nstring {\\bfseries Ticket}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ticket that can be used to cancel matchmaking.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA response from starting a new party matchmaking process.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Matchmaker\\+Ticket.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_party_presence_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_party_presence_event}{}\\doxysection{Nakama.\\+IParty\\+Presence\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_party_presence_event}\\index{Nakama.IPartyPresenceEvent@{Nakama.IPartyPresenceEvent}}\n\n\nPresence update for a particular party.   \n\n\n\n\nInherited by Nakama.\\+Party\\+Presence\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_presence_event_a2935ce617eca766d6bed0592cd15da83}\\label{interface_nakama_1_1_i_party_presence_event_a2935ce617eca766d6bed0592cd15da83}} \nstring {\\bfseries Party\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_presence_event_a7b50a413e790ec2d0a71614a2f4f15ce}\\label{interface_nakama_1_1_i_party_presence_event_a7b50a413e790ec2d0a71614a2f4f15ce}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Joins}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user presences that have just joined the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_party_presence_event_a4ff05fb37ee002a68b07aa558f960447}\\label{interface_nakama_1_1_i_party_presence_event_a4ff05fb37ee002a68b07aa558f960447}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Leaves}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user presences that have just left the party.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nPresence update for a particular party.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IParty\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_protobuf_any.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_protobuf_any}{}\\doxysection{Nakama.\\+IProtobuf\\+Any Interface Reference}\n\\label{interface_nakama_1_1_i_protobuf_any}\\index{Nakama.IProtobufAny@{Nakama.IProtobufAny}}\n\n\n \n\n\n\n\nInherited by Nakama.\\+Protobuf\\+Any.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any_a0df5f3bec9c9eaa1f3ba456efc2e8578}{Type\\+Url}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any_a3977fc2037ad388995242595c1158699}{Value}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_protobuf_any_a0df5f3bec9c9eaa1f3ba456efc2e8578}\\label{interface_nakama_1_1_i_protobuf_any_a0df5f3bec9c9eaa1f3ba456efc2e8578}} \n\\index{Nakama.IProtobufAny@{Nakama.IProtobufAny}!TypeUrl@{TypeUrl}}\n\\index{TypeUrl@{TypeUrl}!Nakama.IProtobufAny@{Nakama.IProtobufAny}}\n\\doxysubsubsection{\\texorpdfstring{TypeUrl}{TypeUrl}}\n{\\footnotesize\\ttfamily string Nakama.\\+IProtobuf\\+Any.\\+Type\\+Url\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_protobuf_any_a3977fc2037ad388995242595c1158699}\\label{interface_nakama_1_1_i_protobuf_any_a3977fc2037ad388995242595c1158699}} \n\\index{Nakama.IProtobufAny@{Nakama.IProtobufAny}!Value@{Value}}\n\\index{Value@{Value}!Nakama.IProtobufAny@{Nakama.IProtobufAny}}\n\\doxysubsubsection{\\texorpdfstring{Value}{Value}}\n{\\footnotesize\\ttfamily string Nakama.\\+IProtobuf\\+Any.\\+Value\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_rpc_status.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_rpc_status}{}\\doxysection{Nakama.\\+IRpc\\+Status Interface Reference}\n\\label{interface_nakama_1_1_i_rpc_status}\\index{Nakama.IRpcStatus@{Nakama.IRpcStatus}}\n\n\n \n\n\n\n\nInherited by Nakama.\\+Rpc\\+Status.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nint \\mbox{\\hyperlink{interface_nakama_1_1_i_rpc_status_a04e9ad1b13fc6247f341b354ac13bf69}{Code}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any}{IProtobuf\\+Any}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_rpc_status_a0d06a965ab9ee4dc04346be0bc331471}{Details}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_rpc_status_accfc753caa1c6c051acfe8d6cd028487}{Message}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_rpc_status_a04e9ad1b13fc6247f341b354ac13bf69}\\label{interface_nakama_1_1_i_rpc_status_a04e9ad1b13fc6247f341b354ac13bf69}} \n\\index{Nakama.IRpcStatus@{Nakama.IRpcStatus}!Code@{Code}}\n\\index{Code@{Code}!Nakama.IRpcStatus@{Nakama.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Code}{Code}}\n{\\footnotesize\\ttfamily int Nakama.\\+IRpc\\+Status.\\+Code\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_rpc_status_a0d06a965ab9ee4dc04346be0bc331471}\\label{interface_nakama_1_1_i_rpc_status_a0d06a965ab9ee4dc04346be0bc331471}} \n\\index{Nakama.IRpcStatus@{Nakama.IRpcStatus}!Details@{Details}}\n\\index{Details@{Details}!Nakama.IRpcStatus@{Nakama.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Details}{Details}}\n{\\footnotesize\\ttfamily IEnumerable$<$\\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any}{IProtobuf\\+Any}}$>$ Nakama.\\+IRpc\\+Status.\\+Details\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_rpc_status_accfc753caa1c6c051acfe8d6cd028487}\\label{interface_nakama_1_1_i_rpc_status_accfc753caa1c6c051acfe8d6cd028487}} \n\\index{Nakama.IRpcStatus@{Nakama.IRpcStatus}!Message@{Message}}\n\\index{Message@{Message}!Nakama.IRpcStatus@{Nakama.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Message}{Message}}\n{\\footnotesize\\ttfamily string Nakama.\\+IRpc\\+Status.\\+Message\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_session.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 344.827576\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.450000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.ISession) cw\n(Nakama.Session) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.ISession) 0.000000 1.000000 box\n (Nakama.Session) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_session.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_session}{}\\doxysection{Nakama.\\+ISession Interface Reference}\n\\label{interface_nakama_1_1_i_session}\\index{Nakama.ISession@{Nakama.ISession}}\n\n\nA session authenticated for a user with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.   \n\n\nInheritance diagram for Nakama.\\+ISession\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_session}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_session_aea82fdba74d6b20eb203b4fc2ccd19e6}{Has\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check the session has expired against the offset time.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a8c7f2700402ab995544a4ff852ad5f35}{Has\\+Refresh\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check if the refresh token has expired against the offset time.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a49d091792a2145d7dbc72cbf36a60d91}{Auth\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The authorization token used to construct this session.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a37d250a03d534d84538f4aa9473427bd}{Created}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the user account for this session was just created.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a0b12e1f2b4c2095ec96bc3c63e4177d7}{Create\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session was created.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_nakama_1_1_i_session_ae66907a1582b6c57eb96358cc27c93fc}{Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session will expire.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_session_abe374a4f8e250ffb5207740ee935e791}{Is\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the session has expired.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a34a46ea21fd6d69cab5130eda5dee813}{Is\\+Refresh\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the refresh token has expired.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a8a56822b1939c90ba048c64a5522a83f}{Refresh\\+Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when the refresh token will expire.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_session_add730c3a5733264132cc63f39eb53b31}{Refresh\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token that can be used for session token renewal.  \\end{DoxyCompactList}\\item \nIDictionary$<$ string, string $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a35d8154eb7deff8e2bf953b23561bf19}{Vars}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Any custom properties associated with this session.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_session_a29cddbd0cb5b8ec5cbffa1ec028e4ee5}{Username}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username of the user who owns this session.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_nakama_1_1_i_session_aa830ae1045ddd2590e36f8c4feef7c9d}{User\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the user who owns this session.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA session authenticated for a user with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_aea82fdba74d6b20eb203b4fc2ccd19e6}\\label{interface_nakama_1_1_i_session_aea82fdba74d6b20eb203b4fc2ccd19e6}} \n\\index{Nakama.ISession@{Nakama.ISession}!HasExpired@{HasExpired}}\n\\index{HasExpired@{HasExpired}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{HasExpired()}{HasExpired()}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISession.\\+Has\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck the session has expired against the offset time.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a32aa5055ec8b4629d48574c14ca52929}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a8c7f2700402ab995544a4ff852ad5f35}\\label{interface_nakama_1_1_i_session_a8c7f2700402ab995544a4ff852ad5f35}} \n\\index{Nakama.ISession@{Nakama.ISession}!HasRefreshExpired@{HasRefreshExpired}}\n\\index{HasRefreshExpired@{HasRefreshExpired}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{HasRefreshExpired()}{HasRefreshExpired()}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISession.\\+Has\\+Refresh\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck if the refresh token has expired against the offset time.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a292f6d27e68f068d5b71a5e998f93adc}{Nakama.\\+Session}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a49d091792a2145d7dbc72cbf36a60d91}\\label{interface_nakama_1_1_i_session_a49d091792a2145d7dbc72cbf36a60d91}} \n\\index{Nakama.ISession@{Nakama.ISession}!AuthToken@{AuthToken}}\n\\index{AuthToken@{AuthToken}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{AuthToken}{AuthToken}}\n{\\footnotesize\\ttfamily string Nakama.\\+ISession.\\+Auth\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe authorization token used to construct this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a6109a78f8514b76f1a0977937dcaaaaf}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a37d250a03d534d84538f4aa9473427bd}\\label{interface_nakama_1_1_i_session_a37d250a03d534d84538f4aa9473427bd}} \n\\index{Nakama.ISession@{Nakama.ISession}!Created@{Created}}\n\\index{Created@{Created}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{Created}{Created}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISession.\\+Created\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the user account for this session was just created.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a07dd0bf598118762c5d4ac81f1f234fb}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a0b12e1f2b4c2095ec96bc3c63e4177d7}\\label{interface_nakama_1_1_i_session_a0b12e1f2b4c2095ec96bc3c63e4177d7}} \n\\index{Nakama.ISession@{Nakama.ISession}!CreateTime@{CreateTime}}\n\\index{CreateTime@{CreateTime}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{CreateTime}{CreateTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+ISession.\\+Create\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session was created.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_ad29e88275b3bb763a8153944e0bb9912}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_ae66907a1582b6c57eb96358cc27c93fc}\\label{interface_nakama_1_1_i_session_ae66907a1582b6c57eb96358cc27c93fc}} \n\\index{Nakama.ISession@{Nakama.ISession}!ExpireTime@{ExpireTime}}\n\\index{ExpireTime@{ExpireTime}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{ExpireTime}{ExpireTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+ISession.\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session will expire.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_acb53fd22e6b8a815c5cddb2686b2df91}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_abe374a4f8e250ffb5207740ee935e791}\\label{interface_nakama_1_1_i_session_abe374a4f8e250ffb5207740ee935e791}} \n\\index{Nakama.ISession@{Nakama.ISession}!IsExpired@{IsExpired}}\n\\index{IsExpired@{IsExpired}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{IsExpired}{IsExpired}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISession.\\+Is\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the session has expired.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a2fc70f9f9afb4440faa5936c0f4f1129}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a34a46ea21fd6d69cab5130eda5dee813}\\label{interface_nakama_1_1_i_session_a34a46ea21fd6d69cab5130eda5dee813}} \n\\index{Nakama.ISession@{Nakama.ISession}!IsRefreshExpired@{IsRefreshExpired}}\n\\index{IsRefreshExpired@{IsRefreshExpired}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{IsRefreshExpired}{IsRefreshExpired}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISession.\\+Is\\+Refresh\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the refresh token has expired.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a8b0cbb6a8f2c7f8a6bb41a77a05739ac}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a8a56822b1939c90ba048c64a5522a83f}\\label{interface_nakama_1_1_i_session_a8a56822b1939c90ba048c64a5522a83f}} \n\\index{Nakama.ISession@{Nakama.ISession}!RefreshExpireTime@{RefreshExpireTime}}\n\\index{RefreshExpireTime@{RefreshExpireTime}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{RefreshExpireTime}{RefreshExpireTime}}\n{\\footnotesize\\ttfamily long Nakama.\\+ISession.\\+Refresh\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when the refresh token will expire.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_aa220b017e0bb05a9e55f437268338002}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_add730c3a5733264132cc63f39eb53b31}\\label{interface_nakama_1_1_i_session_add730c3a5733264132cc63f39eb53b31}} \n\\index{Nakama.ISession@{Nakama.ISession}!RefreshToken@{RefreshToken}}\n\\index{RefreshToken@{RefreshToken}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{RefreshToken}{RefreshToken}}\n{\\footnotesize\\ttfamily string Nakama.\\+ISession.\\+Refresh\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nRefresh token that can be used for session token renewal.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a3b756ff336a724af7cb65b2711ffd8d0}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_aa830ae1045ddd2590e36f8c4feef7c9d}\\label{interface_nakama_1_1_i_session_aa830ae1045ddd2590e36f8c4feef7c9d}} \n\\index{Nakama.ISession@{Nakama.ISession}!UserId@{UserId}}\n\\index{UserId@{UserId}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{UserId}{UserId}}\n{\\footnotesize\\ttfamily string Nakama.\\+ISession.\\+User\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe ID of the user who owns this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_abb1e6deb54c15459678f13a8b0feaa1f}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a29cddbd0cb5b8ec5cbffa1ec028e4ee5}\\label{interface_nakama_1_1_i_session_a29cddbd0cb5b8ec5cbffa1ec028e4ee5}} \n\\index{Nakama.ISession@{Nakama.ISession}!Username@{Username}}\n\\index{Username@{Username}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{Username}{Username}}\n{\\footnotesize\\ttfamily string Nakama.\\+ISession.\\+Username\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe username of the user who owns this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_aaa6a5d93c2578c8c83aafdafc8ac724e}{Nakama.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_session_a35d8154eb7deff8e2bf953b23561bf19}\\label{interface_nakama_1_1_i_session_a35d8154eb7deff8e2bf953b23561bf19}} \n\\index{Nakama.ISession@{Nakama.ISession}!Vars@{Vars}}\n\\index{Vars@{Vars}!Nakama.ISession@{Nakama.ISession}}\n\\doxysubsubsection{\\texorpdfstring{Vars}{Vars}}\n{\\footnotesize\\ttfamily IDictionary$<$string, string$>$ Nakama.\\+ISession.\\+Vars\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nAny custom properties associated with this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_session_a3c15d4dd38f96f5920516e9b0bd599d7}{Nakama.\\+Session}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/ISession.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_socket.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 363.636353\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.375000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.ISocket) cw\n(Nakama.Socket) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.ISocket) 0.000000 1.000000 box\n (Nakama.Socket) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_socket.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_socket}{}\\doxysection{Nakama.\\+ISocket Interface Reference}\n\\label{interface_nakama_1_1_i_socket}\\index{Nakama.ISocket@{Nakama.ISocket}}\n\n\nA socket to interact with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.   \n\n\nInheritance diagram for Nakama.\\+ISocket\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_socket}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1bde1efda48cb1aac4d0e049dbe05e51}{Accept\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} presence)\n\\begin{DoxyCompactList}\\small\\item\\em Accept a party member\\textquotesingle{}s request to join the party.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a162c3e3aae5243cd0d8aa39b588f6d96}{Add\\+Matchmaker\\+Async}} (string query=\\char`\\\"{}$\\ast$\\char`\\\"{}, int min\\+Count=2, int max\\+Count=8, Dictionary$<$ string, string $>$ string\\+Properties=null, Dictionary$<$ string, double $>$ numeric\\+Properties=null, int? count\\+Multiple=null)\n\\begin{DoxyCompactList}\\small\\item\\em Join the matchmaker pool and search for opponents on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a4309cafc8d3b17ddfdbeb3196bad98d5}{Add\\+Matchmaker\\+Party\\+Async}} (string party\\+Id, string query, int min\\+Count, int max\\+Count, Dictionary$<$ string, string $>$ string\\+Properties=null, Dictionary$<$ string, double $>$ numeric\\+Properties=null, int? count\\+Multiple=null)\n\\begin{DoxyCompactList}\\small\\item\\em Begin matchmaking as a party.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1e0dfa45e55ac98a90bd61ba68b3739c}{Close\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em End a party, kicking all party members and closing it.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a47d4805e5bc797be4640b9b40fd0a1ff}{Close\\+Async}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Close the socket connection to the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_afce0421b802a0610d5ba0df073c76118}{Connect\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}} session, bool appear\\+Online=false, int connect\\+Timeout=\\mbox{\\hyperlink{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}{Socket.\\+Default\\+Connect\\+Timeout}}, string lang\\+Tag=\\char`\\\"{}en\\char`\\\"{})\n\\begin{DoxyCompactList}\\small\\item\\em Connect to the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a82169726f5414f591824413d3a38f49c}{Create\\+Match\\+Async}} (string match\\+Name=null)\n\\begin{DoxyCompactList}\\small\\item\\em Create a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a8dc33b819637084a48f2dc72811e64c3}{Create\\+Party\\+Async}} (bool open, int max\\+Size)\n\\begin{DoxyCompactList}\\small\\item\\em Create a party.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a35fcf5e7221f3f4fb99629c7f7ffe2cf}{Follow\\+Users\\+Async}} (IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$ users)\n\\begin{DoxyCompactList}\\small\\item\\em Subscribe to one or more users for their status updates.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aa1fc00a1c5e65035102d69c0da9c9bcf}{Follow\\+Users\\+Async}} (IEnumerable$<$ string $>$ user\\+IDs, IEnumerable$<$ string $>$ usernames=null)\n\\begin{DoxyCompactList}\\small\\item\\em Subscribe to one or more users for their status updates.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae30f0d0d5f72817bc5a477c4c105b950}{Join\\+Chat\\+Async}} (string target, \\mbox{\\hyperlink{namespace_nakama_addd7f097ac4c449d75e44da62657f307}{Channel\\+Type}} type, bool persistence=false, bool hidden=false)\n\\begin{DoxyCompactList}\\small\\item\\em Join a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a7004ef370a75ed96cee268191ef82670}{Join\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Join a party.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a459b0786a266bd8599b9435e5f45ea34}{Join\\+Match\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}} matched)\n\\begin{DoxyCompactList}\\small\\item\\em Join a multiplayer match with the matchmaker matched object.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ac6fe282b44ef6bed9179fe5766de5b27}{Join\\+Match\\+Async}} (string match\\+Id, IDictionary$<$ string, string $>$ metadata=null)\n\\begin{DoxyCompactList}\\small\\item\\em Join a multiplayer match by ID.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a647667ebb59e491e9462417bf96f6f41}{Leave\\+Chat\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a9ec279ff4873da0b9c9a90b9cfd0eada}{Leave\\+Chat\\+Async}} (string channel\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a094fbace93957878a94815d38967aaf3}{Leave\\+Match\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} match)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_af7bc9c33420ac5c873f68d92058b1a2d}{Leave\\+Match\\+Async}} (string match\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a9f157fc83e6dfeb5d32c82f0d71c603b}{Leave\\+Party\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the party.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a3290abc231fbc13d10a279e9df4e3ef4}{List\\+Party\\+Join\\+Requests\\+Async}} (string party\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Request a list of pending join requests for a party.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a747dddd036256e29cdb5a0f9cbfffe1e}{Promote\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} party\\+Member)\n\\begin{DoxyCompactList}\\small\\item\\em Promote a new party leader.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a2e0d2258668b6a23ab8ef898a859b607}{Remove\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string message\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Remove a chat message from a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a72b9923abc413441524248fb3dbaa6d2}{Remove\\+Chat\\+Message\\+Async}} (string channel\\+Id, string message\\+Id)\n\\begin{DoxyCompactList}\\small\\item\\em Remove a chat message from a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a1c4a81177c160384ef79eb0c4ae59b47}{Remove\\+Matchmaker\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the matchmaker pool with the ticket.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_acda6e90c3bf82f29c849404a53583bae}{Remove\\+Matchmaker\\+Async}} (string ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Leave the matchmaker pool with the ticket contents.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ac07a04f376786f2d74404b755b0d2d3c}{Remove\\+Matchmaker\\+Party\\+Async}} (string party\\+Id, string ticket)\n\\begin{DoxyCompactList}\\small\\item\\em Cancel a party matchmaking process using a ticket.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aedd8b717ab06cb2e1a293cc65eaef503}{Remove\\+Party\\+Member\\+Async}} (string party\\+Id, \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} presence)\n\\begin{DoxyCompactList}\\small\\item\\em Kick a party member, or decline a request to join.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a5d5e0936be90aac974a7beb908c086c6}{Rpc\\+Async}} (string func\\+Id, string payload=null)\n\\begin{DoxyCompactList}\\small\\item\\em Execute an RPC function to the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a862ba5aa777eebba3d86aa1c882e9c0a}{Rpc\\+Async}} (string func\\+Id, Array\\+Segment$<$ byte $>$ payload)\n\\begin{DoxyCompactList}\\small\\item\\em Execute an RPC function to the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aea679f2d9b9623d527cf6d5b58ecd5ef}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, string state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a035e541530d517125c5770d68765cd83}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, Array\\+Segment$<$ byte $>$ state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae594151407277c8c4689bfc4587cc7fb}{Send\\+Match\\+State\\+Async}} (string match\\+Id, long op\\+Code, byte\\mbox{[}$\\,$\\mbox{]} state, IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ presences=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send input to a multiplayer match on the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ae90675f58de4722900b1b1b139485120}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, Array\\+Segment$<$ byte $>$ data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a20ec2fbcae378c8d46c6309dc87c41a9}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, string data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_af59ab771e89bb0dce237df3e316f1e63}{Send\\+Party\\+Data\\+Async}} (string party\\+Id, long op\\+Code, byte\\mbox{[}$\\,$\\mbox{]} data)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a89c6778b3357f5c3d305b291847cb44a}{Unfollow\\+Users\\+Async}} (IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$ users)\n\\begin{DoxyCompactList}\\small\\item\\em Unfollow one or more users from their status updates.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a8266f3c4803246a46e4066703ae62d37}{Unfollow\\+Users\\+Async}} (IEnumerable$<$ string $>$ user\\+IDs)\n\\begin{DoxyCompactList}\\small\\item\\em Unfollow one or more users from their status updates.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aceed2d36c564cb6eb71d060a07c9c041}{Update\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string message\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Update a chat message on a chat channel in the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_abda0b03723050cdcba1c765f501f1ce0}{Update\\+Chat\\+Message\\+Async}} (string channel\\+Id, string message\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Update a chat message on a chat channel in the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aaf666992ffd841ac9486a9433aab6614}{Update\\+Status\\+Async}} (string status)\n\\begin{DoxyCompactList}\\small\\item\\em Update the status for the current user online.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_aabcd26e73944cfdb51a1c3585c9348db}{Write\\+Chat\\+Message\\+Async}} (\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} channel, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Send a chat message to a chat channel on the server.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_a7f6f7d4e31a11b3a2cf9284b86568210}{Write\\+Chat\\+Message\\+Async}} (string channel\\+Id, string content)\n\\begin{DoxyCompactList}\\small\\item\\em Send a chat message to a chat channel on the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_ad2e3682e09ff2df296a9e26367fa9943}{Is\\+Connected}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connected.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adbde619842d6576575adaa0ee0947140}{Is\\+Connecting}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connecting.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_afe4d8fe65118a41d40732a82908ab483}\\label{interface_nakama_1_1_i_socket_afe4d8fe65118a41d40732a82908ab483}} \nAction {\\bfseries Closed}\n\\begin{DoxyCompactList}\\small\\item\\em Received when a socket is closed.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a66bcbfecb40518837510e12cd48b7acd}\\label{interface_nakama_1_1_i_socket_a66bcbfecb40518837510e12cd48b7acd}} \nAction {\\bfseries Connected}\n\\begin{DoxyCompactList}\\small\\item\\em Received when a socket is connected.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a0cc3f5be403f1189d4e72c51b96d9680}\\label{interface_nakama_1_1_i_socket_a0cc3f5be403f1189d4e72c51b96d9680}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}} $>$ {\\bfseries Received\\+Channel\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Received a chat channel message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a515084ae8f6466b60570292eadf4c700}\\label{interface_nakama_1_1_i_socket_a515084ae8f6466b60570292eadf4c700}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_presence_event}{IChannel\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Channel\\+Presence}\n\\begin{DoxyCompactList}\\small\\item\\em Received a presence change for joins and leaves with users in a chat channel.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a8318c9b7e2709e8306d00bc2a0d03e86}\\label{interface_nakama_1_1_i_socket_a8318c9b7e2709e8306d00bc2a0d03e86}} \nAction$<$ Exception $>$ {\\bfseries Received\\+Error}\n\\begin{DoxyCompactList}\\small\\item\\em Received when an error occurs on the socket.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aee6beff734538a19c915d37fcf703834}\\label{interface_nakama_1_1_i_socket_aee6beff734538a19c915d37fcf703834}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}} $>$ {\\bfseries Received\\+Matchmaker\\+Matched}\n\\begin{DoxyCompactList}\\small\\item\\em Received a matchmaker matched message.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a17b98d2b0b33fcf3e0d956d05fddcdf2}\\label{interface_nakama_1_1_i_socket_a17b98d2b0b33fcf3e0d956d05fddcdf2}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match_state}{IMatch\\+State}} $>$ {\\bfseries Received\\+Match\\+State}\n\\begin{DoxyCompactList}\\small\\item\\em Received a message from a multiplayer match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ac02519653c675729d70dbf70ed84d57b}\\label{interface_nakama_1_1_i_socket_ac02519653c675729d70dbf70ed84d57b}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match_presence_event}{IMatch\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Match\\+Presence}\n\\begin{DoxyCompactList}\\small\\item\\em Received a presence change for joins and leaves of users in a multiplayer match.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a21c8dec048d4d59faef0f5177d5dd57c}\\label{interface_nakama_1_1_i_socket_a21c8dec048d4d59faef0f5177d5dd57c}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification}{IApi\\+Notification}} $>$ {\\bfseries Received\\+Notification}\n\\begin{DoxyCompactList}\\small\\item\\em Received a notification for the current user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aef9916951402f7727f07f6964412738c}\\label{interface_nakama_1_1_i_socket_aef9916951402f7727f07f6964412738c}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ {\\bfseries Received\\+Party}\n\\begin{DoxyCompactList}\\small\\item\\em Received a party event. This will occur when the current user\\textquotesingle{}s invitation request is accepted by the party leader of a closed party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a689062bafabff8c4ef43eb778e28ccc3}\\label{interface_nakama_1_1_i_socket_a689062bafabff8c4ef43eb778e28ccc3}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_close}{IParty\\+Close}} $>$ {\\bfseries Received\\+Party\\+Close}\n\\begin{DoxyCompactList}\\small\\item\\em Received a party close event.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aa857c8d6d11304b468fd20f8201dcc2a}\\label{interface_nakama_1_1_i_socket_aa857c8d6d11304b468fd20f8201dcc2a}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_data}{IParty\\+Data}} $>$ {\\bfseries Received\\+Party\\+Data}\n\\begin{DoxyCompactList}\\small\\item\\em Received custom party data.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ae8b2267febd5ee639429aa65fcc774e3}\\label{interface_nakama_1_1_i_socket_ae8b2267febd5ee639429aa65fcc774e3}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ {\\bfseries Received\\+Party\\+Join\\+Request}\n\\begin{DoxyCompactList}\\small\\item\\em Received a request to join the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a8ac582863e0349af106020bddea8aca3}\\label{interface_nakama_1_1_i_socket_a8ac582863e0349af106020bddea8aca3}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_leader}{IParty\\+Leader}} $>$ {\\bfseries Received\\+Party\\+Leader}\n\\begin{DoxyCompactList}\\small\\item\\em Received a change in the party leader.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a6537de9e92b9e3073d425178c88fbfe7}\\label{interface_nakama_1_1_i_socket_a6537de9e92b9e3073d425178c88fbfe7}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ {\\bfseries Received\\+Party\\+Matchmaker\\+Ticket}\n\\begin{DoxyCompactList}\\small\\item\\em Received a new matchmaker ticket for the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a826e3c85c992db9c009ad30a31280f5d}\\label{interface_nakama_1_1_i_socket_a826e3c85c992db9c009ad30a31280f5d}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_presence_event}{IParty\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Party\\+Presence}\n\\begin{DoxyCompactList}\\small\\item\\em Received a new presence event in the party.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a8ffa8e010664063ab88ffd2b5db472ce}\\label{interface_nakama_1_1_i_socket_a8ffa8e010664063ab88ffd2b5db472ce}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event}{IStatus\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Status\\+Presence}\n\\begin{DoxyCompactList}\\small\\item\\em Received a presence change for when a user updated their online status.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_af79cb677935c51a7271a9cb95f84353a}\\label{interface_nakama_1_1_i_socket_af79cb677935c51a7271a9cb95f84353a}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_presence_event}{IStream\\+Presence\\+Event}} $>$ {\\bfseries Received\\+Stream\\+Presence}\n\\begin{DoxyCompactList}\\small\\item\\em Received a presence change for joins and leaves on a realtime stream.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ac38386b65fb4b5a4a0cd96a22e20cefb}\\label{interface_nakama_1_1_i_socket_ac38386b65fb4b5a4a0cd96a22e20cefb}} \nAction$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_state}{IStream\\+State}} $>$ {\\bfseries Received\\+Stream\\+State}\n\\begin{DoxyCompactList}\\small\\item\\em Received a message from a realtime stream.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA socket to interact with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a1bde1efda48cb1aac4d0e049dbe05e51}\\label{interface_nakama_1_1_i_socket_a1bde1efda48cb1aac4d0e049dbe05e51}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!AcceptPartyMemberAsync@{AcceptPartyMemberAsync}}\n\\index{AcceptPartyMemberAsync@{AcceptPartyMemberAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{AcceptPartyMemberAsync()}{AcceptPartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Accept\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{presence }\\end{DoxyParamCaption})}\n\n\n\nAccept a party member\\textquotesingle{}s request to join the party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The party ID to accept the join request for.\\\\\n\\hline\n{\\em presence} & The presence to accept as a party member. \\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_ae9fa18dcb3d306d29c7dc97a8e64687a}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a162c3e3aae5243cd0d8aa39b588f6d96}\\label{interface_nakama_1_1_i_socket_a162c3e3aae5243cd0d8aa39b588f6d96}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!AddMatchmakerAsync@{AddMatchmakerAsync}}\n\\index{AddMatchmakerAsync@{AddMatchmakerAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{AddMatchmakerAsync()}{AddMatchmakerAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}} $>$ Nakama.\\+ISocket.\\+Add\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{query = {\\ttfamily \\char`\\\"{}$\\ast$\\char`\\\"{}},  }\\item[{int}]{min\\+Count = {\\ttfamily 2},  }\\item[{int}]{max\\+Count = {\\ttfamily 8},  }\\item[{Dictionary$<$ string, string $>$}]{string\\+Properties = {\\ttfamily null},  }\\item[{Dictionary$<$ string, double $>$}]{numeric\\+Properties = {\\ttfamily null},  }\\item[{int?}]{count\\+Multiple = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nJoin the matchmaker pool and search for opponents on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em query} & The matchmaker query to search for opponents.\\\\\n\\hline\n{\\em min\\+Count} & The minimum number of players to compete against in a match.\\\\\n\\hline\n{\\em max\\+Count} & The maximum number of players to compete against in a match.\\\\\n\\hline\n{\\em string\\+Properties} & A set of key/value properties to provide to searches.\\\\\n\\hline\n{\\em numeric\\+Properties} & A set of key/value numeric properties to provide to searches.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a matchmaker ticket object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_aed1cb5c5784d1fd08bf5e63ab270a848}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a4309cafc8d3b17ddfdbeb3196bad98d5}\\label{interface_nakama_1_1_i_socket_a4309cafc8d3b17ddfdbeb3196bad98d5}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!AddMatchmakerPartyAsync@{AddMatchmakerPartyAsync}}\n\\index{AddMatchmakerPartyAsync@{AddMatchmakerPartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{AddMatchmakerPartyAsync()}{AddMatchmakerPartyAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}} $>$ Nakama.\\+ISocket.\\+Add\\+Matchmaker\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{string}]{query,  }\\item[{int}]{min\\+Count,  }\\item[{int}]{max\\+Count,  }\\item[{Dictionary$<$ string, string $>$}]{string\\+Properties = {\\ttfamily null},  }\\item[{Dictionary$<$ string, double $>$}]{numeric\\+Properties = {\\ttfamily null},  }\\item[{int?}]{count\\+Multiple = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nBegin matchmaking as a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em query} & Filter query used to identify suitable users.\\\\\n\\hline\n{\\em min\\+Count} & Minimum total user count to match together.\\\\\n\\hline\n{\\em max\\+Count} & Maximum total user count to match together.\\\\\n\\hline\n{\\em string\\+Properties} & String properties.\\\\\n\\hline\n{\\em numeric\\+Properties} & Numeric properties.\\\\\n\\hline\n{\\em count\\+Multiple} & An optional integer to force the matchmaker to match in multiples of.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a party matchmaker ticket object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a5ed1f27ccf52792a55363ce3273e22de}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a47d4805e5bc797be4640b9b40fd0a1ff}\\label{interface_nakama_1_1_i_socket_a47d4805e5bc797be4640b9b40fd0a1ff}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!CloseAsync@{CloseAsync}}\n\\index{CloseAsync@{CloseAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{CloseAsync()}{CloseAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Close\\+Async (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nClose the socket connection to the server.  \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a5d033f1ff9973aa3e53a5675c91d108e}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a1e0dfa45e55ac98a90bd61ba68b3739c}\\label{interface_nakama_1_1_i_socket_a1e0dfa45e55ac98a90bd61ba68b3739c}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!ClosePartyAsync@{ClosePartyAsync}}\n\\index{ClosePartyAsync@{ClosePartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{ClosePartyAsync()}{ClosePartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Close\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nEnd a party, kicking all party members and closing it.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & The ID of the party.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a56e29efdc1831754a70b889a08588237}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_afce0421b802a0610d5ba0df073c76118}\\label{interface_nakama_1_1_i_socket_afce0421b802a0610d5ba0df073c76118}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}}]{session,  }\\item[{bool}]{appear\\+Online = {\\ttfamily false},  }\\item[{int}]{connect\\+Timeout = {\\ttfamily \\mbox{\\hyperlink{class_nakama_1_1_socket_ae902438fa7e36bfa60a9c7c062218216}{Socket.\\+Default\\+Connect\\+Timeout}}},  }\\item[{string}]{lang\\+Tag = {\\ttfamily \\char`\\\"{}en\\char`\\\"{}} }\\end{DoxyParamCaption})}\n\n\n\nConnect to the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em appear\\+Online} & If the user who appear online to other users.\\\\\n\\hline\n{\\em connect\\+Timeout} & The time allowed for the socket connection to be established.\\\\\n\\hline\n{\\em lang\\+Tag} & The language tag of the user on the connected socket.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a11620a9e6706ddaf48d260d56c7cdcaa}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a82169726f5414f591824413d3a38f49c}\\label{interface_nakama_1_1_i_socket_a82169726f5414f591824413d3a38f49c}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!CreateMatchAsync@{CreateMatchAsync}}\n\\index{CreateMatchAsync@{CreateMatchAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{CreateMatchAsync()}{CreateMatchAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+ISocket.\\+Create\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Name = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nCreate a multiplayer match on the server.  \n\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a62f9170d0c155670b7fb57d7de9884a6}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a8dc33b819637084a48f2dc72811e64c3}\\label{interface_nakama_1_1_i_socket_a8dc33b819637084a48f2dc72811e64c3}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!CreatePartyAsync@{CreatePartyAsync}}\n\\index{CreatePartyAsync@{CreatePartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{CreatePartyAsync()}{CreatePartyAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}} $>$ Nakama.\\+ISocket.\\+Create\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{bool}]{open,  }\\item[{int}]{max\\+Size }\\end{DoxyParamCaption})}\n\n\n\nCreate a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em open} & Whether or not the party will require join requests to be approved by the party leader.\\\\\n\\hline\n{\\em max\\+Size} & Maximum number of party members.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_af228c737dc62ab9bf084706413e8e9be}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a35fcf5e7221f3f4fb99629c7f7ffe2cf}\\label{interface_nakama_1_1_i_socket_a35fcf5e7221f3f4fb99629c7f7ffe2cf}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!FollowUsersAsync@{FollowUsersAsync}}\n\\index{FollowUsersAsync@{FollowUsersAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{FollowUsersAsync()}{FollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ Nakama.\\+ISocket.\\+Follow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$}]{users }\\end{DoxyParamCaption})}\n\n\n\nSubscribe to one or more users for their status updates.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_ad6180b6f74a9adfdbc53b1c19c63efa5}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aa1fc00a1c5e65035102d69c0da9c9bcf}\\label{interface_nakama_1_1_i_socket_aa1fc00a1c5e65035102d69c0da9c9bcf}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!FollowUsersAsync@{FollowUsersAsync}}\n\\index{FollowUsersAsync@{FollowUsersAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{FollowUsersAsync()}{FollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}} $>$ Nakama.\\+ISocket.\\+Follow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ string $>$}]{user\\+IDs,  }\\item[{IEnumerable$<$ string $>$}]{usernames = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSubscribe to one or more users for their status updates.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of users.\\\\\n\\hline\n{\\em usernames} & The usernames of the users.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the current statuses for the users.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a1f567b12eb7a0d498edb3bcea9518338}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ae30f0d0d5f72817bc5a477c4c105b950}\\label{interface_nakama_1_1_i_socket_ae30f0d0d5f72817bc5a477c4c105b950}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!JoinChatAsync@{JoinChatAsync}}\n\\index{JoinChatAsync@{JoinChatAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{JoinChatAsync()}{JoinChatAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}} $>$ Nakama.\\+ISocket.\\+Join\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{target,  }\\item[{\\mbox{\\hyperlink{namespace_nakama_addd7f097ac4c449d75e44da62657f307}{Channel\\+Type}}}]{type,  }\\item[{bool}]{persistence = {\\ttfamily false},  }\\item[{bool}]{hidden = {\\ttfamily false} }\\end{DoxyParamCaption})}\n\n\n\nJoin a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em target} & The target channel to join.\\\\\n\\hline\n{\\em type} & The type of channel to join.\\\\\n\\hline\n{\\em persistence} & If chat messages should be stored.\\\\\n\\hline\n{\\em hidden} & If the current user should be hidden on the channel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a chat channel object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_ad20754e8420f8adbf838a2c57b4f6fd4}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a459b0786a266bd8599b9435e5f45ea34}\\label{interface_nakama_1_1_i_socket_a459b0786a266bd8599b9435e5f45ea34}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!JoinMatchAsync@{JoinMatchAsync}}\n\\index{JoinMatchAsync@{JoinMatchAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{JoinMatchAsync()}{JoinMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+ISocket.\\+Join\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}}}]{matched }\\end{DoxyParamCaption})}\n\n\n\nJoin a multiplayer match with the matchmaker matched object.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em matched} & A matchmaker matched object.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a2fe4966a0ad40291bafe2d4b3fc69c80}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ac6fe282b44ef6bed9179fe5766de5b27}\\label{interface_nakama_1_1_i_socket_ac6fe282b44ef6bed9179fe5766de5b27}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!JoinMatchAsync@{JoinMatchAsync}}\n\\index{JoinMatchAsync@{JoinMatchAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{JoinMatchAsync()}{JoinMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}} $>$ Nakama.\\+ISocket.\\+Join\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{IDictionary$<$ string, string $>$}]{metadata = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nJoin a multiplayer match by ID.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match to attempt to join.\\\\\n\\hline\n{\\em metadata} & An optional set of key-\\/value metadata pairs to be passed to the match handler.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a multiplayer match.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a6d9068f06c70a089a1bd4c25b61802cb}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a7004ef370a75ed96cee268191ef82670}\\label{interface_nakama_1_1_i_socket_a7004ef370a75ed96cee268191ef82670}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!JoinPartyAsync@{JoinPartyAsync}}\n\\index{JoinPartyAsync@{JoinPartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{JoinPartyAsync()}{JoinPartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Join\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nJoin a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a57b7ff03c3588dcd4ff1f255f013d519}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a647667ebb59e491e9462417bf96f6f41}\\label{interface_nakama_1_1_i_socket_a647667ebb59e491e9462417bf96f6f41}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!LeaveChatAsync@{LeaveChatAsync}}\n\\index{LeaveChatAsync@{LeaveChatAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveChatAsync()}{LeaveChatAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Leave\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel }\\end{DoxyParamCaption})}\n\n\n\nLeave a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a2e174430fb895e329fab4c6bde3b93a7}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a9ec279ff4873da0b9c9a90b9cfd0eada}\\label{interface_nakama_1_1_i_socket_a9ec279ff4873da0b9c9a90b9cfd0eada}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!LeaveChatAsync@{LeaveChatAsync}}\n\\index{LeaveChatAsync@{LeaveChatAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveChatAsync()}{LeaveChatAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Leave\\+Chat\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a8350140a21c191ea84617135fef4082e}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a094fbace93957878a94815d38967aaf3}\\label{interface_nakama_1_1_i_socket_a094fbace93957878a94815d38967aaf3}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!LeaveMatchAsync@{LeaveMatchAsync}}\n\\index{LeaveMatchAsync@{LeaveMatchAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveMatchAsync()}{LeaveMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Leave\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}}}]{match }\\end{DoxyParamCaption})}\n\n\n\nLeave a multiplayer match on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_abcd300eb623ef096f446bfb11b6de0dd}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_af7bc9c33420ac5c873f68d92058b1a2d}\\label{interface_nakama_1_1_i_socket_af7bc9c33420ac5c873f68d92058b1a2d}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!LeaveMatchAsync@{LeaveMatchAsync}}\n\\index{LeaveMatchAsync@{LeaveMatchAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{LeaveMatchAsync()}{LeaveMatchAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Leave\\+Match\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave a multiplayer match on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The multiplayer match to leave.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_acc15b0880cb30f2c5afc3318c76a4db6}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a9f157fc83e6dfeb5d32c82f0d71c603b}\\label{interface_nakama_1_1_i_socket_a9f157fc83e6dfeb5d32c82f0d71c603b}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!LeavePartyAsync@{LeavePartyAsync}}\n\\index{LeavePartyAsync@{LeavePartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{LeavePartyAsync()}{LeavePartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Leave\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nLeave the party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task to represent the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a261e11e3f7828ec4854957c766c036cb}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a3290abc231fbc13d10a279e9df4e3ef4}\\label{interface_nakama_1_1_i_socket_a3290abc231fbc13d10a279e9df4e3ef4}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!ListPartyJoinRequestsAsync@{ListPartyJoinRequestsAsync}}\n\\index{ListPartyJoinRequestsAsync@{ListPartyJoinRequestsAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{ListPartyJoinRequestsAsync()}{ListPartyJoinRequestsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}} $>$ Nakama.\\+ISocket.\\+List\\+Party\\+Join\\+Requests\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRequest a list of pending join requests for a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of all party join requests.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_ab0ae67833a8133ef069312fcdaecbe48}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a747dddd036256e29cdb5a0f9cbfffe1e}\\label{interface_nakama_1_1_i_socket_a747dddd036256e29cdb5a0f9cbfffe1e}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!PromotePartyMemberAsync@{PromotePartyMemberAsync}}\n\\index{PromotePartyMemberAsync@{PromotePartyMemberAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{PromotePartyMemberAsync()}{PromotePartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Promote\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{party\\+Member }\\end{DoxyParamCaption})}\n\n\n\nPromote a new party leader.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em party\\+Member} & The presence of an existing party member to promote as the new leader.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an announcement of a new party leader.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_add01eba7310dbba3a01ecbefb132ade0}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a2e0d2258668b6a23ab8ef898a859b607}\\label{interface_nakama_1_1_i_socket_a2e0d2258668b6a23ab8ef898a859b607}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemoveChatMessageAsync@{RemoveChatMessageAsync}}\n\\index{RemoveChatMessageAsync@{RemoveChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveChatMessageAsync()}{RemoveChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Remove\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{message\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRemove a chat message from a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_aa167fc7e9cae1b65a7f0585431fc3daf}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a72b9923abc413441524248fb3dbaa6d2}\\label{interface_nakama_1_1_i_socket_a72b9923abc413441524248fb3dbaa6d2}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemoveChatMessageAsync@{RemoveChatMessageAsync}}\n\\index{RemoveChatMessageAsync@{RemoveChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveChatMessageAsync()}{RemoveChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Remove\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{message\\+Id }\\end{DoxyParamCaption})}\n\n\n\nRemove a chat message from a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to remove.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the chat message to remove.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the removed message.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a34eef836c0c7f1707c5ffdd9a07f248e}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a1c4a81177c160384ef79eb0c4ae59b47}\\label{interface_nakama_1_1_i_socket_a1c4a81177c160384ef79eb0c4ae59b47}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemoveMatchmakerAsync@{RemoveMatchmakerAsync}}\n\\index{RemoveMatchmakerAsync@{RemoveMatchmakerAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerAsync()}{RemoveMatchmakerAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Remove\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}}}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nLeave the matchmaker pool with the ticket.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_aa49d9456a9a1ab735f7f5f1106f56827}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_acda6e90c3bf82f29c849404a53583bae}\\label{interface_nakama_1_1_i_socket_acda6e90c3bf82f29c849404a53583bae}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemoveMatchmakerAsync@{RemoveMatchmakerAsync}}\n\\index{RemoveMatchmakerAsync@{RemoveMatchmakerAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerAsync()}{RemoveMatchmakerAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Remove\\+Matchmaker\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nLeave the matchmaker pool with the ticket contents.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em ticket} & The contents of the ticket returned by the matchmaker on join.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a8afad86c4eedab3e40b5f7069b170f72}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ac07a04f376786f2d74404b755b0d2d3c}\\label{interface_nakama_1_1_i_socket_ac07a04f376786f2d74404b755b0d2d3c}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemoveMatchmakerPartyAsync@{RemoveMatchmakerPartyAsync}}\n\\index{RemoveMatchmakerPartyAsync@{RemoveMatchmakerPartyAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemoveMatchmakerPartyAsync()}{RemoveMatchmakerPartyAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Remove\\+Matchmaker\\+Party\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{string}]{ticket }\\end{DoxyParamCaption})}\n\n\n\nCancel a party matchmaking process using a ticket.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID.\\\\\n\\hline\n{\\em ticket} & The ticket to cancel.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a7047d31f96d51a71879219df0d510dd3}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aedd8b717ab06cb2e1a293cc65eaef503}\\label{interface_nakama_1_1_i_socket_aedd8b717ab06cb2e1a293cc65eaef503}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RemovePartyMemberAsync@{RemovePartyMemberAsync}}\n\\index{RemovePartyMemberAsync@{RemovePartyMemberAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RemovePartyMemberAsync()}{RemovePartyMemberAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Remove\\+Party\\+Member\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}}]{presence }\\end{DoxyParamCaption})}\n\n\n\nKick a party member, or decline a request to join.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to remove/reject from.\\\\\n\\hline\n{\\em presence} & The presence to remove or reject.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a35dcc5e4b9135bffd54793b42fb9b4e1}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a862ba5aa777eebba3d86aa1c882e9c0a}\\label{interface_nakama_1_1_i_socket_a862ba5aa777eebba3d86aa1c882e9c0a}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+ISocket.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{func\\+Id,  }\\item[{Array\\+Segment$<$ byte $>$}]{payload }\\end{DoxyParamCaption})}\n\n\n\nExecute an RPC function to the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload sent to the server from the byte buffer.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a30717efa7340511c87fc7e4babe99f80}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a5d5e0936be90aac974a7beb908c086c6}\\label{interface_nakama_1_1_i_socket_a5d5e0936be90aac974a7beb908c086c6}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!RpcAsync@{RpcAsync}}\n\\index{RpcAsync@{RpcAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{RpcAsync()}{RpcAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}} $>$ Nakama.\\+ISocket.\\+Rpc\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{func\\+Id,  }\\item[{string}]{payload = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nExecute an RPC function to the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em func\\+Id} & The ID of the function to execute.\\\\\n\\hline\n{\\em payload} & An (optional) payload to send to the server.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the RPC function response object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a01a6c34d95185413168cf645e7e8943f}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a035e541530d517125c5770d68765cd83}\\label{interface_nakama_1_1_i_socket_a035e541530d517125c5770d68765cd83}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{Array\\+Segment$<$ byte $>$}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match.\\\\\n\\hline\n{\\em op\\+Code} & An operation code for the input.\\\\\n\\hline\n{\\em state} & The input data to send from the byte buffer.\\\\\n\\hline\n{\\em presences} & The presences in the match who should receive the input.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a4b674ce28156f9bec04915fefca0286a}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ae594151407277c8c4689bfc4587cc7fb}\\label{interface_nakama_1_1_i_socket_ae594151407277c8c4689bfc4587cc7fb}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server.  \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match.\\\\\n\\hline\n{\\em op\\+Code} & An operation code for the input.\\\\\n\\hline\n{\\em state} & The input data to send.\\\\\n\\hline\n{\\em presences} & The presences in the match who should receive the input.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_af98298e1a187ca977c9dcf63c738dc2c}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aea679f2d9b9623d527cf6d5b58ecd5ef}\\label{interface_nakama_1_1_i_socket_aea679f2d9b9623d527cf6d5b58ecd5ef}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendMatchStateAsync@{SendMatchStateAsync}}\n\\index{SendMatchStateAsync@{SendMatchStateAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendMatchStateAsync()}{SendMatchStateAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Match\\+State\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{match\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{string}]{state,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$}]{presences = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend input to a multiplayer match on the server.  \n\n/// \n\nWhen no presences are supplied the new match state will be sent to all presences. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em match\\+Id} & The ID of the match.\\\\\n\\hline\n{\\em op\\+Code} & An operation code for the input.\\\\\n\\hline\n{\\em state} & The input data to send.\\\\\n\\hline\n{\\em presences} & The presences in the match who should receive the input.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a3e990dd6a05b4949d2800a6c8c91b935}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ae90675f58de4722900b1b1b139485120}\\label{interface_nakama_1_1_i_socket_ae90675f58de4722900b1b1b139485120}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{Array\\+Segment$<$ byte $>$}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & The input data to send from the byte buffer, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a8b3b14eceedee8d96186d5bf234d820c}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_af59ab771e89bb0dce237df3e316f1e63}\\label{interface_nakama_1_1_i_socket_af59ab771e89bb0dce237df3e316f1e63}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a2208d5d13196fbf4f40e3131eb224d47}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a20ec2fbcae378c8d46c6309dc87c41a9}\\label{interface_nakama_1_1_i_socket_a20ec2fbcae378c8d46c6309dc87c41a9}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!SendPartyDataAsync@{SendPartyDataAsync}}\n\\index{SendPartyDataAsync@{SendPartyDataAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{SendPartyDataAsync()}{SendPartyDataAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Send\\+Party\\+Data\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{party\\+Id,  }\\item[{long}]{op\\+Code,  }\\item[{string}]{data }\\end{DoxyParamCaption})}\n\n\n\nSend data to a party.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em party\\+Id} & Party ID to send to.\\\\\n\\hline\n{\\em op\\+Code} & Op code value.\\\\\n\\hline\n{\\em data} & Data payload, if any.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_aaade8d235e868a54af041e54b216af9d}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a89c6778b3357f5c3d305b291847cb44a}\\label{interface_nakama_1_1_i_socket_a89c6778b3357f5c3d305b291847cb44a}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!UnfollowUsersAsync@{UnfollowUsersAsync}}\n\\index{UnfollowUsersAsync@{UnfollowUsersAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{UnfollowUsersAsync()}{UnfollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Unfollow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}} $>$}]{users }\\end{DoxyParamCaption})}\n\n\n\nUnfollow one or more users from their status updates.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em users} & The users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a69d7b68ed48c79402440a90101981eec}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a8266f3c4803246a46e4066703ae62d37}\\label{interface_nakama_1_1_i_socket_a8266f3c4803246a46e4066703ae62d37}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!UnfollowUsersAsync@{UnfollowUsersAsync}}\n\\index{UnfollowUsersAsync@{UnfollowUsersAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{UnfollowUsersAsync()}{UnfollowUsersAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Unfollow\\+Users\\+Async (\\begin{DoxyParamCaption}\\item[{IEnumerable$<$ string $>$}]{user\\+IDs }\\end{DoxyParamCaption})}\n\n\n\nUnfollow one or more users from their status updates.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em user\\+IDs} & The IDs of the users to unfollow.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a3834aed45938e02964a4f29adcb51986}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aceed2d36c564cb6eb71d060a07c9c041}\\label{interface_nakama_1_1_i_socket_aceed2d36c564cb6eb71d060a07c9c041}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!UpdateChatMessageAsync@{UpdateChatMessageAsync}}\n\\index{UpdateChatMessageAsync@{UpdateChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateChatMessageAsync()}{UpdateChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Update\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{message\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nUpdate a chat message on a chat channel in the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a3c3fbea58ee3a2f6e3d3885ca79ded9b}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_abda0b03723050cdcba1c765f501f1ce0}\\label{interface_nakama_1_1_i_socket_abda0b03723050cdcba1c765f501f1ce0}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!UpdateChatMessageAsync@{UpdateChatMessageAsync}}\n\\index{UpdateChatMessageAsync@{UpdateChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateChatMessageAsync()}{UpdateChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Update\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{message\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nUpdate a chat message on a chat channel in the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel with the message to update.\\\\\n\\hline\n{\\em message\\+Id} & The ID of the message to update.\\\\\n\\hline\n{\\em content} & The new contents of the chat message.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to an acknowledgement of the updated message.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_adcc67413fe0ddd3aa5125290680151cf}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aaf666992ffd841ac9486a9433aab6614}\\label{interface_nakama_1_1_i_socket_aaf666992ffd841ac9486a9433aab6614}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!UpdateStatusAsync@{UpdateStatusAsync}}\n\\index{UpdateStatusAsync@{UpdateStatusAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{UpdateStatusAsync()}{UpdateStatusAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket.\\+Update\\+Status\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{status }\\end{DoxyParamCaption})}\n\n\n\nUpdate the status for the current user online.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em status} & The new status for the user.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a869d3761f21ba7a2578f005a6690f707}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_aabcd26e73944cfdb51a1c3585c9348db}\\label{interface_nakama_1_1_i_socket_aabcd26e73944cfdb51a1c3585c9348db}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!WriteChatMessageAsync@{WriteChatMessageAsync}}\n\\index{WriteChatMessageAsync@{WriteChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{WriteChatMessageAsync()}{WriteChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Write\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}}]{channel,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nSend a chat message to a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel} & The chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a6cb398d1815a5a14d0e98dbe726a45dc}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_a7f6f7d4e31a11b3a2cf9284b86568210}\\label{interface_nakama_1_1_i_socket_a7f6f7d4e31a11b3a2cf9284b86568210}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!WriteChatMessageAsync@{WriteChatMessageAsync}}\n\\index{WriteChatMessageAsync@{WriteChatMessageAsync}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{WriteChatMessageAsync()}{WriteChatMessageAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}} $>$ Nakama.\\+ISocket.\\+Write\\+Chat\\+Message\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{channel\\+Id,  }\\item[{string}]{content }\\end{DoxyParamCaption})}\n\n\n\nSend a chat message to a chat channel on the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em channel\\+Id} & The ID of the chat channel to send onto.\\\\\n\\hline\n{\\em content} & The contents of the message to send.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the acknowledgement of the chat message write.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a36c7765ff46d9f1fa8d3d9114311d772}{Nakama.\\+Socket}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_ad2e3682e09ff2df296a9e26367fa9943}\\label{interface_nakama_1_1_i_socket_ad2e3682e09ff2df296a9e26367fa9943}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!IsConnected@{IsConnected}}\n\\index{IsConnected@{IsConnected}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{IsConnected}{IsConnected}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISocket.\\+Is\\+Connected\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connected.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a3487edbd9dd5dfa7f5a47c485c506639}{Nakama.\\+Socket}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adbde619842d6576575adaa0ee0947140}\\label{interface_nakama_1_1_i_socket_adbde619842d6576575adaa0ee0947140}} \n\\index{Nakama.ISocket@{Nakama.ISocket}!IsConnecting@{IsConnecting}}\n\\index{IsConnecting@{IsConnecting}!Nakama.ISocket@{Nakama.ISocket}}\n\\doxysubsubsection{\\texorpdfstring{IsConnecting}{IsConnecting}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISocket.\\+Is\\+Connecting\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connecting.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_socket_a1319b640499d302aa32dc6d4b6373195}{Nakama.\\+Socket}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/ISocket.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_socket_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 96.153847\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 5.200000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 2 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.ISocketAdapter) cw\n(Nakama.WebSocketAdapter) cw\n(Nakama.WebSocketStdlibAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.ISocketAdapter) 0.500000 1.000000 box\n (Nakama.WebSocketAdapter) 0.000000 0.000000 box\n (Nakama.WebSocketStdlibAdapter) 1.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.500000 0.250000 out\nsolid\n0.000000 1.000000 1.000000 conn\nsolid\n0 0.000000 0.750000 in\nsolid\n0 1.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_socket_adapter.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_socket_adapter}{}\\doxysection{Nakama.\\+ISocket\\+Adapter Interface Reference}\n\\label{interface_nakama_1_1_i_socket_adapter}\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\n\nAn adapter which implements a socket with a protocol supported by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.   \n\n\nInheritance diagram for Nakama.\\+ISocket\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_i_socket_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ac4fdf85f7e31f3ef6fb573656081130e}{Close\\+Async}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Close the socket with an asynchronous operation.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a98391b86100741424b89284cd2db8e06}{Connect\\+Async}} (Uri uri, int timeout)\n\\begin{DoxyCompactList}\\small\\item\\em Connect to the server with an asynchronous operation.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ab814436b863363b8f8991c01336d77e4}{Send\\+Async}} (Array\\+Segment$<$ byte $>$ buffer, bool reliable=true, Cancellation\\+Token canceller=default)\n\\begin{DoxyCompactList}\\small\\item\\em Send data to the server with an asynchronous operation.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_ae42c16c31ecc0e7db8ad53b427cc7fb2}{Is\\+Connected}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connected.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter_a9ef33b94d5bc9e6a343f21b1b01229a2}{Is\\+Connecting}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the socket is connecting.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a130b25217829edc3307fb83d665eacea}\\label{interface_nakama_1_1_i_socket_adapter_a130b25217829edc3307fb83d665eacea}} \nAction {\\bfseries Connected}\n\\begin{DoxyCompactList}\\small\\item\\em An event dispatched when the socket is connected.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a711266e5d8ab7fe8ca6feb1c70a79679}\\label{interface_nakama_1_1_i_socket_adapter_a711266e5d8ab7fe8ca6feb1c70a79679}} \nAction {\\bfseries Closed}\n\\begin{DoxyCompactList}\\small\\item\\em An event dispatched when the socket is disconnected.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a60e05f18eda93116edb329193b7c20a6}\\label{interface_nakama_1_1_i_socket_adapter_a60e05f18eda93116edb329193b7c20a6}} \nAction$<$ Exception $>$ {\\bfseries Received\\+Error}\n\\begin{DoxyCompactList}\\small\\item\\em An event dispatched when the socket has an error when connected.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a0c9baa386c7cba1edc6bf1d6765fc008}\\label{interface_nakama_1_1_i_socket_adapter_a0c9baa386c7cba1edc6bf1d6765fc008}} \nAction$<$ Array\\+Segment$<$ byte $>$ $>$ {\\bfseries Received}\n\\begin{DoxyCompactList}\\small\\item\\em An event dispatched when the socket receives a message.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which implements a socket with a protocol supported by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_ac4fdf85f7e31f3ef6fb573656081130e}\\label{interface_nakama_1_1_i_socket_adapter_ac4fdf85f7e31f3ef6fb573656081130e}} \n\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}!CloseAsync@{CloseAsync}}\n\\index{CloseAsync@{CloseAsync}!Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{CloseAsync()}{CloseAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket\\+Adapter.\\+Close\\+Async (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nClose the socket with an asynchronous operation.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_af03fe39fb508d2ac716d63b0a7e2c71d}{Nakama.\\+Web\\+Socket\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a6daea5ed11c76e33e915880c91272d45}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a98391b86100741424b89284cd2db8e06}\\label{interface_nakama_1_1_i_socket_adapter_a98391b86100741424b89284cd2db8e06}} \n\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket\\+Adapter.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{int}]{timeout }\\end{DoxyParamCaption})}\n\n\n\nConnect to the server with an asynchronous operation.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The URI of the server.\\\\\n\\hline\n{\\em timeout} & The timeout for the connect attempt on the socket.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_a3097564c6c6ff6ff8945d0def0d4c1e0}{Nakama.\\+Web\\+Socket\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_ae94a4c3b78f1d523257950553bea085a}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_ab814436b863363b8f8991c01336d77e4}\\label{interface_nakama_1_1_i_socket_adapter_ab814436b863363b8f8991c01336d77e4}} \n\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+ISocket\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{buffer,  }\\item[{bool}]{reliable = {\\ttfamily true},  }\\item[{Cancellation\\+Token}]{canceller = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nSend data to the server with an asynchronous operation.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em buffer} & The buffer with the message to send.\\\\\n\\hline\n{\\em reliable} & If the message should be sent reliably (will be ignored by some protocols).\\\\\n\\hline\n{\\em canceller} & A cancellation token used to propagate when the operation should be canceled.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_ad3a05cb8ff2ece38c4b40b36b96710e4}{Nakama.\\+Web\\+Socket\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a3c809f05d8a713f2e04882e40306c64f}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_ae42c16c31ecc0e7db8ad53b427cc7fb2}\\label{interface_nakama_1_1_i_socket_adapter_ae42c16c31ecc0e7db8ad53b427cc7fb2}} \n\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}!IsConnected@{IsConnected}}\n\\index{IsConnected@{IsConnected}!Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnected}{IsConnected}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISocket\\+Adapter.\\+Is\\+Connected\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connected.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_af4d122fde2ef8ca67f3a05533f2b23d3}{Nakama.\\+Web\\+Socket\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_a7ab428776e53ddbac27832f238ab1ced}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_socket_adapter_a9ef33b94d5bc9e6a343f21b1b01229a2}\\label{interface_nakama_1_1_i_socket_adapter_a9ef33b94d5bc9e6a343f21b1b01229a2}} \n\\index{Nakama.ISocketAdapter@{Nakama.ISocketAdapter}!IsConnecting@{IsConnecting}}\n\\index{IsConnecting@{IsConnecting}!Nakama.ISocketAdapter@{Nakama.ISocketAdapter}}\n\\doxysubsubsection{\\texorpdfstring{IsConnecting}{IsConnecting}}\n{\\footnotesize\\ttfamily bool Nakama.\\+ISocket\\+Adapter.\\+Is\\+Connecting\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the socket is connecting.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter_a57bbc818963586e72fc39f7dbbe28ad8}{Nakama.\\+Web\\+Socket\\+Adapter}}, and \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter_ac7cf95d952a33d4ab00c5ef610a8de74}{Nakama.\\+Web\\+Socket\\+Stdlib\\+Adapter}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/ISocket\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_status.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_status}{}\\doxysection{Nakama.\\+IStatus Interface Reference}\n\\label{interface_nakama_1_1_i_status}\\index{Nakama.IStatus@{Nakama.IStatus}}\n\n\nReceive status updates for users.   \n\n\n\n\nInherited by Nakama.\\+Status.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_status_a3257d37a09f2d48bfdce7d40234369ae}\\label{interface_nakama_1_1_i_status_a3257d37a09f2d48bfdce7d40234369ae}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Presences}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The status events for the users followed.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nReceive status updates for users.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IStatus.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_status_presence_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_status_presence_event}{}\\doxysection{Nakama.\\+IStatus\\+Presence\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_status_presence_event}\\index{Nakama.IStatusPresenceEvent@{Nakama.IStatusPresenceEvent}}\n\n\nA status update event about other users who\\textquotesingle{}ve come online or gone offline.   \n\n\n\n\nInherited by Nakama.\\+Status\\+Presence\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event_ab55b13ffb490c5f503df00289ec79f95}{Leaves}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who left the server.  \\end{DoxyCompactList}\\item \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event_af42429c8328a1f1c00bad3442a8067bb}{Joins}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who joined the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA status update event about other users who\\textquotesingle{}ve come online or gone offline.  \n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_i_status_presence_event_af42429c8328a1f1c00bad3442a8067bb}\\label{interface_nakama_1_1_i_status_presence_event_af42429c8328a1f1c00bad3442a8067bb}} \n\\index{Nakama.IStatusPresenceEvent@{Nakama.IStatusPresenceEvent}!Joins@{Joins}}\n\\index{Joins@{Joins}!Nakama.IStatusPresenceEvent@{Nakama.IStatusPresenceEvent}}\n\\doxysubsubsection{\\texorpdfstring{Joins}{Joins}}\n{\\footnotesize\\ttfamily IEnumerable$<$\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}$>$ Nakama.\\+IStatus\\+Presence\\+Event.\\+Joins\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nPresences of users who joined the server.  \n\nThis join information is in response to a subscription made to be notified when a user comes online. \\mbox{\\Hypertarget{interface_nakama_1_1_i_status_presence_event_ab55b13ffb490c5f503df00289ec79f95}\\label{interface_nakama_1_1_i_status_presence_event_ab55b13ffb490c5f503df00289ec79f95}} \n\\index{Nakama.IStatusPresenceEvent@{Nakama.IStatusPresenceEvent}!Leaves@{Leaves}}\n\\index{Leaves@{Leaves}!Nakama.IStatusPresenceEvent@{Nakama.IStatusPresenceEvent}}\n\\doxysubsubsection{\\texorpdfstring{Leaves}{Leaves}}\n{\\footnotesize\\ttfamily IEnumerable$<$\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}$>$ Nakama.\\+IStatus\\+Presence\\+Event.\\+Leaves\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nPresences of users who left the server.  \n\nThis leave information is in response to a subscription made to be notified when a user goes offline. \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IStatus\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_stream.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_stream}{}\\doxysection{Nakama.\\+IStream Interface Reference}\n\\label{interface_nakama_1_1_i_stream}\\index{Nakama.IStream@{Nakama.IStream}}\n\n\nA realtime socket stream on the server.   \n\n\n\n\nInherited by Nakama.\\+Stream.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_a29cd5eb4946ed2cfa9e97c0800d16777}\\label{interface_nakama_1_1_i_stream_a29cd5eb4946ed2cfa9e97c0800d16777}} \nstring {\\bfseries Descriptor}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The descriptor of the stream. Used with direct chat messages and contains a second user id.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_a567053cfb9743496a86b53fb80a742ad}\\label{interface_nakama_1_1_i_stream_a567053cfb9743496a86b53fb80a742ad}} \nstring {\\bfseries Label}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Identifies streams which have a context across users like a chat channel room.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_a2910dac84da42be3dee534ca49546b3d}\\label{interface_nakama_1_1_i_stream_a2910dac84da42be3dee534ca49546b3d}} \nint {\\bfseries Mode}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The mode of the stream.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_a914a568af0a74e4551835d923ae33989}\\label{interface_nakama_1_1_i_stream_a914a568af0a74e4551835d923ae33989}} \nstring {\\bfseries Subject}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The subject of the stream. This is usually a user id.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA realtime socket stream on the server.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IStream\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_stream_presence_event.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_stream_presence_event}{}\\doxysection{Nakama.\\+IStream\\+Presence\\+Event Interface Reference}\n\\label{interface_nakama_1_1_i_stream_presence_event}\\index{Nakama.IStreamPresenceEvent@{Nakama.IStreamPresenceEvent}}\n\n\nA batch of joins and leaves on the low level stream.   \n\n\n\n\nInherited by Nakama.\\+Stream\\+Presence\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_presence_event_ae4ac7fee586952580142c0ed6a1c3bff}\\label{interface_nakama_1_1_i_stream_presence_event_ae4ac7fee586952580142c0ed6a1c3bff}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Leaves}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who joined the stream.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_presence_event_a348ece2fffc76212d47fd885fb80c7cb}\\label{interface_nakama_1_1_i_stream_presence_event_a348ece2fffc76212d47fd885fb80c7cb}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} $>$ {\\bfseries Joins}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Presences of users who left the stream.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_presence_event_abe21bc088dad6602243133ddedfd903c}\\label{interface_nakama_1_1_i_stream_presence_event_abe21bc088dad6602243133ddedfd903c}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_stream}{IStream}} {\\bfseries Stream}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The identifier for the stream.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA batch of joins and leaves on the low level stream.  \n\nStreams are built on to provide abstractions for matches, chat channels, etc. In most cases you\\textquotesingle{}ll never need to interact with the low level stream itself. \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IStream\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_stream_state.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_stream_state}{}\\doxysection{Nakama.\\+IStream\\+State Interface Reference}\n\\label{interface_nakama_1_1_i_stream_state}\\index{Nakama.IStreamState@{Nakama.IStreamState}}\n\n\nA state change received from a stream.   \n\n\n\n\nInherited by Nakama.\\+Stream\\+State.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_state_ac0bbd6199f882e10f65a40298931b4d6}\\label{interface_nakama_1_1_i_stream_state_ac0bbd6199f882e10f65a40298931b4d6}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}} {\\bfseries Sender}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user who sent the state change. May be {\\ttfamily null}.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_state_afc9a621f6766d2606cdefb6eae14c3f4}\\label{interface_nakama_1_1_i_stream_state_afc9a621f6766d2606cdefb6eae14c3f4}} \nstring {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The contents of the state change.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_stream_state_ad887e1bad3acb664c55caeb8bb182bda}\\label{interface_nakama_1_1_i_stream_state_ad887e1bad3acb664c55caeb8bb182bda}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_stream}{IStream}} {\\bfseries Stream}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The identifier for the stream.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA state change received from a stream.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IStream\\+Presence\\+Event.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_user_group_list_user_group.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_user_group_list_user_group}{}\\doxysection{Nakama.\\+IUser\\+Group\\+List\\+User\\+Group Interface Reference}\n\\label{interface_nakama_1_1_i_user_group_list_user_group}\\index{Nakama.IUserGroupListUserGroup@{Nakama.IUserGroupListUserGroup}}\n\n\nA single group-\\/role pair.   \n\n\n\n\nInherited by Nakama.\\+User\\+Group\\+List\\+User\\+Group.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_group_list_user_group_ac6160edc6cb94e7c14c4014a032ba647}\\label{interface_nakama_1_1_i_user_group_list_user_group_ac6160edc6cb94e7c14c4014a032ba647}} \n\\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}} {\\bfseries Group}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Group.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_group_list_user_group_a15e89f8a93457a5d7d2c8ac93f97ed9f}\\label{interface_nakama_1_1_i_user_group_list_user_group_a15e89f8a93457a5d7d2c8ac93f97ed9f}} \nint {\\bfseries State}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The user\\textquotesingle{}s relationship to the group.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA single group-\\/role pair.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_user_presence.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_user_presence}{}\\doxysection{Nakama.\\+IUser\\+Presence Interface Reference}\n\\label{interface_nakama_1_1_i_user_presence}\\index{Nakama.IUserPresence@{Nakama.IUserPresence}}\n\n\nAn object which represents a connected user in the server.   \n\n\n\n\nInherited by Nakama.\\+User\\+Presence.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_presence_a1c44578acc447b46fe8baf2341a80830}\\label{interface_nakama_1_1_i_user_presence_a1c44578acc447b46fe8baf2341a80830}} \nbool {\\bfseries Persistence}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If this presence generates stored events like persistent chat messages or notifications.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_presence_a2456c3637f0883d30490386ab59957af}\\label{interface_nakama_1_1_i_user_presence_a2456c3637f0883d30490386ab59957af}} \nstring {\\bfseries Session\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The session id of the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_presence_af88838cb8175fab5d0ea73ff772a4954}\\label{interface_nakama_1_1_i_user_presence_af88838cb8175fab5d0ea73ff772a4954}} \nstring {\\bfseries Status}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The status of the user with the presence on the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_presence_a43bdab47959724045eaaec39a4a40e0f}\\label{interface_nakama_1_1_i_user_presence_a43bdab47959724045eaaec39a4a40e0f}} \nstring {\\bfseries Username}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The username for the user.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_user_presence_a5fb27d3f3743bb43d5aa514a8267672a}\\label{interface_nakama_1_1_i_user_presence_a5fb27d3f3743bb43d5aa514a8267672a}} \nstring {\\bfseries User\\+Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The id of the user.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn object which represents a connected user in the server.  \n\nThe server allows the same user to be connected with multiple sessions. To uniquely identify them a tuple of {\\ttfamily \\{ node\\+\\_\\+id, user\\+\\_\\+id, session\\+\\_\\+id \\}} is used which is exposed as this object. \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/IUser\\+Presence.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}{}\\doxysection{Nakama.\\+IWrite\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write Interface Reference}\n\\label{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}\\index{Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite@{Nakama.IWriteLeaderboardRecordRequestLeaderboardRecordWrite}}\n\n\nRecord values to write.   \n\n\n\n\nInherited by Nakama.\\+Write\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_ab275bbe8a45da634d8842df6011e7edc}\\label{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_ab275bbe8a45da634d8842df6011e7edc}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional record metadata.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a91a753c536f1611d04ab3e8b9c9b88ac}\\label{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a91a753c536f1611d04ab3e8b9c9b88ac}} \n\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} {\\bfseries Operator}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Operator override.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a6333b5c9d267c1275cc284bfcd07f3a0}\\label{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a6333b5c9d267c1275cc284bfcd07f3a0}} \nstring {\\bfseries Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The score value to submit.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a9d2f49fe634454482c21767879427954}\\label{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write_a9d2f49fe634454482c21767879427954}} \nstring {\\bfseries Subscore}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em An optional secondary value.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRecord values to write.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write.tex",
    "content": "\\hypertarget{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}{}\\doxysection{Nakama.\\+IWrite\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write Interface Reference}\n\\label{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}\\index{Nakama.IWriteTournamentRecordRequestTournamentRecordWrite@{Nakama.IWriteTournamentRecordRequestTournamentRecordWrite}}\n\n\nRecord values to write.   \n\n\n\n\nInherited by Nakama.\\+Write\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_a7d6164dae5175699d8a2ee35e644e54c}\\label{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_a7d6164dae5175699d8a2ee35e644e54c}} \nstring {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A JSON object of additional properties (optional).  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_adac6bd7cb6c2cb8487fb33dafb68cac8}\\label{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_adac6bd7cb6c2cb8487fb33dafb68cac8}} \n\\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} {\\bfseries Operator}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Operator override.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_ad3a1c0719749e609006577a7577729b1}\\label{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_ad3a1c0719749e609006577a7577729b1}} \nstring {\\bfseries Score}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The score value to submit.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_a3c85729254f628d830601afe34c22b69}\\label{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write_a3c85729254f628d830601afe34c22b69}} \nstring {\\bfseries Subscore}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em An optional secondary value.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nRecord values to write.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 168.067230\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.975000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.IBufferPool) cw\n(Nakama.Ninja.WebSockets.BufferPool) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.IBufferPool) 0.000000 1.000000 box\n (Nakama.Ninja.WebSockets.BufferPool) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool.tex",
    "content": "\\hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool Interface Reference}\n\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}\\index{Nakama.Ninja.WebSockets.IBufferPool@{Nakama.Ninja.WebSockets.IBufferPool}}\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nMemory\\+Stream \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool_aba30a1520b1f1733d019704827fbcef2}{Get\\+Buffer}} ()\n\\begin{DoxyCompactList}\\small\\item\\em Gets a Memory\\+Stream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool_aba30a1520b1f1733d019704827fbcef2}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool_aba30a1520b1f1733d019704827fbcef2}} \n\\index{Nakama.Ninja.WebSockets.IBufferPool@{Nakama.Ninja.WebSockets.IBufferPool}!GetBuffer@{GetBuffer}}\n\\index{GetBuffer@{GetBuffer}!Nakama.Ninja.WebSockets.IBufferPool@{Nakama.Ninja.WebSockets.IBufferPool}}\n\\doxysubsubsection{\\texorpdfstring{GetBuffer()}{GetBuffer()}}\n{\\footnotesize\\ttfamily Memory\\+Stream Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IBuffer\\+Pool.\\+Get\\+Buffer (\\begin{DoxyParamCaption}{ }\\end{DoxyParamCaption})}\n\n\n\nGets a Memory\\+Stream built from a buffer plucked from a thread safe pool The pool grows automatically. Closing the memory stream clears the buffer and returns it to the pool  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_a3eacbad8a136b33a3c2e859c0cf6fe67}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Buffer\\+Pool}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/IBuffer\\+Pool.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 141.342758\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.537500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.IPingPongManager) cw\n(Nakama.Ninja.WebSockets.PingPongManager) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.IPingPongManager) 0.000000 1.000000 box\n (Nakama.Ninja.WebSockets.PingPongManager) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager.tex",
    "content": "\\hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager Interface Reference}\n\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}\\index{Nakama.Ninja.WebSockets.IPingPongManager@{Nakama.Ninja.WebSockets.IPingPongManager}}\n\n\nPing Pong Manager used to facilitate ping pong Web\\+Socket messages   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a9e454afd70ec36b728aad46d32282941}{Send\\+Ping}} (Array\\+Segment$<$ byte $>$ payload, Cancellation\\+Token cancellation)\n\\begin{DoxyCompactList}\\small\\item\\em Sends a ping frame  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Events}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a745f1289cfea320742116e665442b4b8}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a745f1289cfea320742116e665442b4b8}} \nEvent\\+Handler$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}} $>$ {\\bfseries Pong}\n\\begin{DoxyCompactList}\\small\\item\\em Raised when a Pong frame is received  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nPing Pong Manager used to facilitate ping pong Web\\+Socket messages  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a9e454afd70ec36b728aad46d32282941}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager_a9e454afd70ec36b728aad46d32282941}} \n\\index{Nakama.Ninja.WebSockets.IPingPongManager@{Nakama.Ninja.WebSockets.IPingPongManager}!SendPing@{SendPing}}\n\\index{SendPing@{SendPing}!Nakama.Ninja.WebSockets.IPingPongManager@{Nakama.Ninja.WebSockets.IPingPongManager}}\n\\doxysubsubsection{\\texorpdfstring{SendPing()}{SendPing()}}\n{\\footnotesize\\ttfamily Task Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IPing\\+Pong\\+Manager.\\+Send\\+Ping (\\begin{DoxyParamCaption}\\item[{Array\\+Segment$<$ byte $>$}]{payload,  }\\item[{Cancellation\\+Token}]{cancellation }\\end{DoxyParamCaption})}\n\n\n\nSends a ping frame  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em payload} & The payload (must be 125 bytes of less)\\\\\n\\hline\n{\\em cancellation} & The cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager_ad8ad09c265a7ade2143b855911c1f1cf}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Ping\\+Pong\\+Manager}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/IPing\\+Pong\\+Manager.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 126.182968\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 3.962500 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.IWebSocketClientFactory) cw\n(Nakama.Ninja.WebSockets.WebSocketClientFactory) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.IWebSocketClientFactory) 0.000000 1.000000 box\n (Nakama.Ninja.WebSockets.WebSocketClientFactory) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory.tex",
    "content": "\\hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory Interface Reference}\n\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}\\index{Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}}\n\n\nWeb socket client factory used to open web socket client connections   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_a09487c4902848a49ab288c6349135075}{Connect\\+Async}} (Uri uri, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with default options  \\end{DoxyCompactList}\\item \nTask$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_aa6292760fcc97b83660588a66d427f68}{Connect\\+Async}} (Uri uri, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with options specified  \\end{DoxyCompactList}\\item \nTask$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_af8ed478fd433a7261c2ed1010e19592d}{Connect\\+Async}} (System.\\+IO.\\+Stream response\\+Stream, string sec\\+Web\\+Socket\\+Key, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Connect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/\\+IP and this function will allow you to do that  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWeb socket client factory used to open web socket client connections  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_af8ed478fd433a7261c2ed1010e19592d}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_af8ed478fd433a7261c2ed1010e19592d}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/3]}}\n{\\footnotesize\\ttfamily Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{System.\\+IO.\\+Stream}]{response\\+Stream,  }\\item[{string}]{sec\\+Web\\+Socket\\+Key,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with a stream that has already been opened and HTTP websocket upgrade request sent This function will check the handshake response from the server and proceed if successful Use this function if you have specific requirements to open a conenction like using special http headers and cookies You will have to build your own HTTP websocket upgrade request You may not even choose to use TCP/\\+IP and this function will allow you to do that  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em response\\+Stream} & The full duplex response stream from the server\\\\\n\\hline\n{\\em sec\\+Web\\+Socket\\+Key} & The sec\\+Web\\+Socket\\+Key you used in the handshake request\\\\\n\\hline\n{\\em options} & The Web\\+Socket client options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\n\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ada652ae0129477188e577b13ee36bd04}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_a09487c4902848a49ab288c6349135075}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_a09487c4902848a49ab288c6349135075}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/3]}}\n{\\footnotesize\\ttfamily Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with default options  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The Web\\+Socket uri to connect to (e.\\+g. ws\\+://example.com or wss\\+://example.com for SSL)\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket instance\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_ac2b906812572c082e8d283ea7edca1d1}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_aa6292760fcc97b83660588a66d427f68}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory_aa6292760fcc97b83660588a66d427f68}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}!ConnectAsync@{ConnectAsync}}\n\\index{ConnectAsync@{ConnectAsync}!Nakama.Ninja.WebSockets.IWebSocketClientFactory@{Nakama.Ninja.WebSockets.IWebSocketClientFactory}}\n\\doxysubsubsection{\\texorpdfstring{ConnectAsync()}{ConnectAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [3/3]}}\n{\\footnotesize\\ttfamily Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Client\\+Factory.\\+Connect\\+Async (\\begin{DoxyParamCaption}\\item[{Uri}]{uri,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nConnect with options specified  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em uri} & The Web\\+Socket uri to connect to (e.\\+g. ws\\+://example.com or wss\\+://example.com for SSL)\\\\\n\\hline\n{\\em options} & The Web\\+Socket client options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket instance\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory_a08071ad49b700843123a9eee3593338a}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Client\\+Factory}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/IWeb\\+Socket\\+Client\\+Factory.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 123.456787\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 4.050000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Nakama.Ninja.WebSockets.IWebSocketServerFactory) cw\n(Nakama.Ninja.WebSockets.WebSocketServerFactory) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Nakama.Ninja.WebSockets.IWebSocketServerFactory) 0.000000 1.000000 box\n (Nakama.Ninja.WebSockets.WebSocketServerFactory) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory.tex",
    "content": "\\hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory Interface Reference}\n\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}\\index{Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}}\n\n\nWeb socket server factory used to open web socket server connections   \n\n\nInheritance diagram for Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a317ffba9297f7d6ed0dc899ad1143fc6}{Read\\+Http\\+Header\\+From\\+Stream\\+Async}} (System.\\+IO.\\+Stream stream, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Reads a http header information from a stream and decodes the parts relating to the Web\\+Socket protocot upgrade  \\end{DoxyCompactList}\\item \nTask$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a324539f6e78653fdc0dc5808a32382f9}{Accept\\+Web\\+Socket\\+Async}} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} context, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Accept web socket with default options Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \\end{DoxyCompactList}\\item \nTask$<$ Web\\+Socket $>$ \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a8606821c9e7ab2e7e314406740c93669}{Accept\\+Web\\+Socket\\+Async}} (\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} context, \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}} options, Cancellation\\+Token token=default(Cancellation\\+Token))\n\\begin{DoxyCompactList}\\small\\item\\em Accept web socket with options specified Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nWeb socket server factory used to open web socket server connections  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a324539f6e78653fdc0dc5808a32382f9}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a324539f6e78653fdc0dc5808a32382f9}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}!AcceptWebSocketAsync@{AcceptWebSocketAsync}}\n\\index{AcceptWebSocketAsync@{AcceptWebSocketAsync}!Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{AcceptWebSocketAsync()}{AcceptWebSocketAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory.\\+Accept\\+Web\\+Socket\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}}]{context,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nAccept web socket with default options Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em context} & The http context used to initiate this web socket request\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a047b8446ad6f83559eed6d9203efaf4d}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a8606821c9e7ab2e7e314406740c93669}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a8606821c9e7ab2e7e314406740c93669}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}!AcceptWebSocketAsync@{AcceptWebSocketAsync}}\n\\index{AcceptWebSocketAsync@{AcceptWebSocketAsync}!Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{AcceptWebSocketAsync()}{AcceptWebSocketAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ Web\\+Socket $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory.\\+Accept\\+Web\\+Socket\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}}]{context,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}}}]{options,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nAccept web socket with options specified Call Read\\+Http\\+Header\\+From\\+Stream\\+Async first to get \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em context} & The http context used to initiate this web socket request\\\\\n\\hline\n{\\em options} & The web socket options\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA connected web socket\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_a6f531a90110af6ae8015aebf690cf27f}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory}}.\n\n\\mbox{\\Hypertarget{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a317ffba9297f7d6ed0dc899ad1143fc6}\\label{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory_a317ffba9297f7d6ed0dc899ad1143fc6}} \n\\index{Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}!ReadHttpHeaderFromStreamAsync@{ReadHttpHeaderFromStreamAsync}}\n\\index{ReadHttpHeaderFromStreamAsync@{ReadHttpHeaderFromStreamAsync}!Nakama.Ninja.WebSockets.IWebSocketServerFactory@{Nakama.Ninja.WebSockets.IWebSocketServerFactory}}\n\\doxysubsubsection{\\texorpdfstring{ReadHttpHeaderFromStreamAsync()}{ReadHttpHeaderFromStreamAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}} $>$ Nakama.\\+Ninja.\\+Web\\+Sockets.\\+IWeb\\+Socket\\+Server\\+Factory.\\+Read\\+Http\\+Header\\+From\\+Stream\\+Async (\\begin{DoxyParamCaption}\\item[{System.\\+IO.\\+Stream}]{stream,  }\\item[{Cancellation\\+Token}]{token = {\\ttfamily default(CancellationToken)} }\\end{DoxyParamCaption})}\n\n\n\nReads a http header information from a stream and decodes the parts relating to the Web\\+Socket protocot upgrade  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em stream} & The network stream\\\\\n\\hline\n{\\em token} & The optional cancellation token\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nHttp data read from the stream\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory_ade4d2f2f4962ed47fc4419dff1cc76c4}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Web\\+Socket\\+Server\\+Factory}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama/\\+Ninja.\\+Web\\+Sockets/IWeb\\+Socket\\+Server\\+Factory.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_tests_1_1_i_nested_test_object.tex",
    "content": "\\hypertarget{interface_nakama_1_1_tests_1_1_i_nested_test_object}{}\\doxysection{Nakama.\\+Tests.\\+INested\\+Test\\+Object Interface Reference}\n\\label{interface_nakama_1_1_tests_1_1_i_nested_test_object}\\index{Nakama.Tests.INestedTestObject@{Nakama.Tests.INestedTestObject}}\n\n\nInherited by Nakama.\\+Tests.\\+Nested\\+Test\\+Object.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_tests_1_1_i_nested_test_object_ac5f8d5026d12119e0e58921f29bd69b5}\\label{interface_nakama_1_1_tests_1_1_i_nested_test_object_ac5f8d5026d12119e0e58921f29bd69b5}} \nstring {\\bfseries Another\\+Val}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Tiny\\+Json\\+Parser\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_nakama_1_1_tests_1_1_i_test_object.tex",
    "content": "\\hypertarget{interface_nakama_1_1_tests_1_1_i_test_object}{}\\doxysection{Nakama.\\+Tests.\\+ITest\\+Object Interface Reference}\n\\label{interface_nakama_1_1_tests_1_1_i_test_object}\\index{Nakama.Tests.ITestObject@{Nakama.Tests.ITestObject}}\n\n\nInherited by Nakama.\\+Tests.\\+Test\\+Object.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_tests_1_1_i_test_object_ab4b2e4eea1c7166b0094763a230e58f7}\\label{interface_nakama_1_1_tests_1_1_i_test_object_ab4b2e4eea1c7166b0094763a230e58f7}} \nstring {\\bfseries Some\\+Val}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \n\\mbox{\\Hypertarget{interface_nakama_1_1_tests_1_1_i_test_object_ab73cd3fdde82e006290dbb649f9940cb}\\label{interface_nakama_1_1_tests_1_1_i_test_object_ab73cd3fdde82e006290dbb649f9940cb}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_nakama_1_1_tests_1_1_i_nested_test_object}{INested\\+Test\\+Object}} $>$ {\\bfseries Nested}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nNakama.\\+Tests/Tiny\\+Json\\+Parser\\+Test.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_authenticate_logout_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_authenticate_logout_request}{}\\doxysection{Satori.\\+IApi\\+Authenticate\\+Logout\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_authenticate_logout_request}\\index{Satori.IApiAuthenticateLogoutRequest@{Satori.IApiAuthenticateLogoutRequest}}\n\n\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.   \n\n\n\n\nInherited by Satori.\\+Api\\+Authenticate\\+Logout\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_authenticate_logout_request_aee4106debdd1d7d7f57a6987c5f4dd65}\\label{interface_satori_1_1_i_api_authenticate_logout_request_aee4106debdd1d7d7f57a6987c5f4dd65}} \nstring {\\bfseries Refresh\\+Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token to invalidate.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_authenticate_logout_request_ae2c9246a90730e17f92b059af8010972}\\label{interface_satori_1_1_i_api_authenticate_logout_request_ae2c9246a90730e17f92b059af8010972}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_session}{Session}} token to log out.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_authenticate_refresh_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_authenticate_refresh_request}{}\\doxysection{Satori.\\+IApi\\+Authenticate\\+Refresh\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_authenticate_refresh_request}\\index{Satori.IApiAuthenticateRefreshRequest@{Satori.IApiAuthenticateRefreshRequest}}\n\n\nAuthenticate against the server with a refresh token.   \n\n\n\n\nInherited by Satori.\\+Api\\+Authenticate\\+Refresh\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_authenticate_refresh_request_a0b2eee0a2a242a6bec78540bf2e75ee1}\\label{interface_satori_1_1_i_api_authenticate_refresh_request_a0b2eee0a2a242a6bec78540bf2e75ee1}} \nstring {\\bfseries Refresh\\+Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAuthenticate against the server with a refresh token.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_authenticate_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_authenticate_request}{}\\doxysection{Satori.\\+IApi\\+Authenticate\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_authenticate_request}\\index{Satori.IApiAuthenticateRequest@{Satori.IApiAuthenticateRequest}}\n\n\nAuthentication request   \n\n\n\n\nInherited by Satori.\\+Api\\+Authenticate\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_authenticate_request_a621355fbfbcdf7b7d152523556dfb37c}\\label{interface_satori_1_1_i_api_authenticate_request_a621355fbfbcdf7b7d152523556dfb37c}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Identity ID. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAuthentication request  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_event.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_event}{}\\doxysection{Satori.\\+IApi\\+Event Interface Reference}\n\\label{interface_satori_1_1_i_api_event}\\index{Satori.IApiEvent@{Satori.IApiEvent}}\n\n\nA single event. Usually, but not necessarily, part of a batch.   \n\n\n\n\nInherited by Satori.\\+Api\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_a537b01b519f36d486b4655ff42fa6629}\\label{interface_satori_1_1_i_api_event_a537b01b519f36d486b4655ff42fa6629}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional event ID assigned by the client, used to de-\\/duplicate in retransmission scenarios. If not supplied the server will assign a randomly generated unique event identifier.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_a1b47db5d48ed22f63f2ff6ab350fd0e3}\\label{interface_satori_1_1_i_api_event_a1b47db5d48ed22f63f2ff6ab350fd0e3}} \nIDictionary$<$ string, string $>$ {\\bfseries Metadata}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} metadata, if any.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_a4b2fa7f9c7c340f105a81ba0a03aa470}\\label{interface_satori_1_1_i_api_event_a4b2fa7f9c7c340f105a81ba0a03aa470}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} name.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_a7527df758659398ccff9b5b31004508d}\\label{interface_satori_1_1_i_api_event_a7527df758659398ccff9b5b31004508d}} \nstring {\\bfseries Timestamp}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The time when the event was triggered on the producer side.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_af13d42f7e1c03c273dcc73a6fda9e0ac}\\label{interface_satori_1_1_i_api_event_af13d42f7e1c03c273dcc73a6fda9e0ac}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional value.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA single event. Usually, but not necessarily, part of a batch.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_event_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_event_request}{}\\doxysection{Satori.\\+IApi\\+Event\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_event_request}\\index{Satori.IApiEventRequest@{Satori.IApiEventRequest}}\n\n\nPublish an event to the server   \n\n\n\n\nInherited by Satori.\\+Api\\+Event\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_event_request_af1c18be64659dfbfffca8330790eb2b2}\\label{interface_satori_1_1_i_api_event_request_af1c18be64659dfbfffca8330790eb2b2}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_event}{IApi\\+Event}} $>$ {\\bfseries Events}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Some number of events produced by a client.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nPublish an event to the server  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_experiment.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_experiment}{}\\doxysection{Satori.\\+IApi\\+Experiment Interface Reference}\n\\label{interface_satori_1_1_i_api_experiment}\\index{Satori.IApiExperiment@{Satori.IApiExperiment}}\n\n\nAn experiment that this user is partaking.   \n\n\n\n\nInherited by Satori.\\+Api\\+Experiment.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_experiment_aee15cc75bedee0f402e89df385f6220b}\\label{interface_satori_1_1_i_api_experiment_aee15cc75bedee0f402e89df385f6220b}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Experiment name  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_experiment_a29ce15f706290de5a464a798d858bba9}\\label{interface_satori_1_1_i_api_experiment_a29ce15f706290de5a464a798d858bba9}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Value associated with this Experiment.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn experiment that this user is partaking.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_experiment_list.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_experiment_list}{}\\doxysection{Satori.\\+IApi\\+Experiment\\+List Interface Reference}\n\\label{interface_satori_1_1_i_api_experiment_list}\\index{Satori.IApiExperimentList@{Satori.IApiExperimentList}}\n\n\nAll experiments that this identity is involved with.   \n\n\n\n\nInherited by Satori.\\+Api\\+Experiment\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_experiment_list_a74b50ffe8aa6d967ebe4a64013fcccb2}\\label{interface_satori_1_1_i_api_experiment_list_a74b50ffe8aa6d967ebe4a64013fcccb2}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment}{IApi\\+Experiment}} $>$ {\\bfseries Experiments}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em All experiments for this identity.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAll experiments that this identity is involved with.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_flag.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_flag}{}\\doxysection{Satori.\\+IApi\\+Flag Interface Reference}\n\\label{interface_satori_1_1_i_api_flag}\\index{Satori.IApiFlag@{Satori.IApiFlag}}\n\n\nFeature flag available to the identity.   \n\n\n\n\nInherited by Satori.\\+Api\\+Flag.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_flag_adc9b5734b16018f4cb1b63e9a2417a52}\\label{interface_satori_1_1_i_api_flag_adc9b5734b16018f4cb1b63e9a2417a52}} \nbool {\\bfseries Condition\\+Changed}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Whether the value for this flag has conditionally changed from the default state.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_flag_a720b008e956c83da6476e42352d1ff04}\\label{interface_satori_1_1_i_api_flag_a720b008e956c83da6476e42352d1ff04}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Flag name  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_flag_ac894c7c9c57e10da5ef7126da06613c3}\\label{interface_satori_1_1_i_api_flag_ac894c7c9c57e10da5ef7126da06613c3}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Value associated with this flag.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nFeature flag available to the identity.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_flag_list.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_flag_list}{}\\doxysection{Satori.\\+IApi\\+Flag\\+List Interface Reference}\n\\label{interface_satori_1_1_i_api_flag_list}\\index{Satori.IApiFlagList@{Satori.IApiFlagList}}\n\n\nAll flags available to the identity   \n\n\n\n\nInherited by Satori.\\+Api\\+Flag\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_flag_list_ac39dd9af26b64687d5b343a35cf78774}\\label{interface_satori_1_1_i_api_flag_list_ac39dd9af26b64687d5b343a35cf78774}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ {\\bfseries Flags}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em All flags  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAll flags available to the identity  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_identify_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_identify_request}{}\\doxysection{Satori.\\+IApi\\+Identify\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_identify_request}\\index{Satori.IApiIdentifyRequest@{Satori.IApiIdentifyRequest}}\n\n\nEnrich/replace the current session with a new ID.   \n\n\n\n\nInherited by Satori.\\+Api\\+Identify\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_identify_request_ab638ed30cc498f2f6f4b3d28c83f946f}\\label{interface_satori_1_1_i_api_identify_request_ab638ed30cc498f2f6f4b3d28c83f946f}} \nIDictionary$<$ string, string $>$ {\\bfseries Custom}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional custom properties to update with this call. If not set, properties are left as they are on the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_identify_request_aeb9b2478d0e634b95258e53a6d9d984d}\\label{interface_satori_1_1_i_api_identify_request_aeb9b2478d0e634b95258e53a6d9d984d}} \nIDictionary$<$ string, string $>$ {\\bfseries Default}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Optional default properties to update with this call. If not set, properties are left as they are on the server.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_identify_request_aa7bde5d54dc7491e84eac7ab1b6d8603}\\label{interface_satori_1_1_i_api_identify_request_aa7bde5d54dc7491e84eac7ab1b6d8603}} \nstring {\\bfseries Id}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Identity ID to enrich the current session and return a new session. Old session will no longer be usable.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nEnrich/replace the current session with a new ID.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_live_event.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_live_event}{}\\doxysection{Satori.\\+IApi\\+Live\\+Event Interface Reference}\n\\label{interface_satori_1_1_i_api_live_event}\\index{Satori.IApiLiveEvent@{Satori.IApiLiveEvent}}\n\n\nA single live event.   \n\n\n\n\nInherited by Satori.\\+Api\\+Live\\+Event.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_a0f16280e4d7c437c0e62ebbfc4c69ae5}\\label{interface_satori_1_1_i_api_live_event_a0f16280e4d7c437c0e62ebbfc4c69ae5}} \nstring {\\bfseries Active\\+End\\+Time\\+Sec}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em End time of current event run.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_acc71a5d9c876dac31a2c911b58cd1f50}\\label{interface_satori_1_1_i_api_live_event_acc71a5d9c876dac31a2c911b58cd1f50}} \nstring {\\bfseries Active\\+Start\\+Time\\+Sec}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Start time of current event run.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_ab84d4936ea17baa4c9c29bbffcac62b8}\\label{interface_satori_1_1_i_api_live_event_ab84d4936ea17baa4c9c29bbffcac62b8}} \nstring {\\bfseries Description}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Description.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_aeb624601388adea811e1d031f5480b32}\\label{interface_satori_1_1_i_api_live_event_aeb624601388adea811e1d031f5480b32}} \nstring {\\bfseries Name}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Name.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_a9fd40cb03ac4ddadffa08a3ef4a02883}\\label{interface_satori_1_1_i_api_live_event_a9fd40cb03ac4ddadffa08a3ef4a02883}} \nstring {\\bfseries Value}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} data, always JSON.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA single live event.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_live_event_list.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_live_event_list}{}\\doxysection{Satori.\\+IApi\\+Live\\+Event\\+List Interface Reference}\n\\label{interface_satori_1_1_i_api_live_event_list}\\index{Satori.IApiLiveEventList@{Satori.IApiLiveEventList}}\n\n\nList of Live events.   \n\n\n\n\nInherited by Satori.\\+Api\\+Live\\+Event\\+List.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_live_event_list_adb3c714a86f30d8109d893cc5f7d30d5}\\label{interface_satori_1_1_i_api_live_event_list_adb3c714a86f30d8109d893cc5f7d30d5}} \nIEnumerable$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event}{IApi\\+Live\\+Event}} $>$ {\\bfseries Live\\+Events}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Live events.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nList of Live events.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_properties.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_properties}{}\\doxysection{Satori.\\+IApi\\+Properties Interface Reference}\n\\label{interface_satori_1_1_i_api_properties}\\index{Satori.IApiProperties@{Satori.IApiProperties}}\n\n\nProperties associated with an identity.   \n\n\n\n\nInherited by Satori.\\+Api\\+Properties.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_properties_a20ba9e0ce43f8b2d7470ee950447bbc4}\\label{interface_satori_1_1_i_api_properties_a20ba9e0ce43f8b2d7470ee950447bbc4}} \nIDictionary$<$ string, string $>$ {\\bfseries Computed}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} computed properties.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_properties_a60fb2a569fccc8417d5fba8e7d6422ff}\\label{interface_satori_1_1_i_api_properties_a60fb2a569fccc8417d5fba8e7d6422ff}} \nIDictionary$<$ string, string $>$ {\\bfseries Custom}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} custom properties.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_properties_afdbb89737406420da72cfb63abaef97b}\\label{interface_satori_1_1_i_api_properties_afdbb89737406420da72cfb63abaef97b}} \nIDictionary$<$ string, string $>$ {\\bfseries Default}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} default properties.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nProperties associated with an identity.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_session.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_session}{}\\doxysection{Satori.\\+IApi\\+Session Interface Reference}\n\\label{interface_satori_1_1_i_api_session}\\index{Satori.IApiSession@{Satori.IApiSession}}\n\n\nA session.   \n\n\n\n\nInherited by Satori.\\+Api\\+Session.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_session_ae67e8ae316be2d695873dfd0effdb4aa}\\label{interface_satori_1_1_i_api_session_ae67e8ae316be2d695873dfd0effdb4aa}} \n\\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}} {\\bfseries Properties}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Properties associated with this identity.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_session_acebbc9ff85f8ba05226c2154267abd91}\\label{interface_satori_1_1_i_api_session_acebbc9ff85f8ba05226c2154267abd91}} \nstring {\\bfseries Refresh\\+Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_session_aebf02f36da2a04667898b58af958bb97}\\label{interface_satori_1_1_i_api_session_aebf02f36da2a04667898b58af958bb97}} \nstring {\\bfseries Token}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Token credential.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA session.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_api_update_properties_request.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_api_update_properties_request}{}\\doxysection{Satori.\\+IApi\\+Update\\+Properties\\+Request Interface Reference}\n\\label{interface_satori_1_1_i_api_update_properties_request}\\index{Satori.IApiUpdatePropertiesRequest@{Satori.IApiUpdatePropertiesRequest}}\n\n\nUpdate Properties associated with this identity.   \n\n\n\n\nInherited by Satori.\\+Api\\+Update\\+Properties\\+Request.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_update_properties_request_a5399ceb028dcb356b5797484647e92fd}\\label{interface_satori_1_1_i_api_update_properties_request_a5399ceb028dcb356b5797484647e92fd}} \nIDictionary$<$ string, string $>$ {\\bfseries Custom}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} custom properties.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{interface_satori_1_1_i_api_update_properties_request_af6cc3da67dbe5ec4948d8a5511adb87e}\\label{interface_satori_1_1_i_api_update_properties_request_af6cc3da67dbe5ec4948d8a5511adb87e}} \nIDictionary$<$ string, string $>$ {\\bfseries Default}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} default properties.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nUpdate Properties associated with this identity.  \n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_client.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 434.782623\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.150000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.IClient) cw\n(Satori.Client) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.IClient) 0.000000 1.000000 box\n (Satori.Client) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_client.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_client}{}\\doxysection{Satori.\\+IClient Interface Reference}\n\\label{interface_satori_1_1_i_client}\\index{Satori.IClient@{Satori.IClient}}\n\n\nA client for the API in \\mbox{\\hyperlink{namespace_satori}{Satori}} server.   \n\n\nInheritance diagram for Satori.\\+IClient\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_satori_1_1_i_client}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a563a7848fc6cfb9f7b5bd71a1351ab80}{Authenticate\\+Async}} (string id, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate against the server.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_satori_1_1_i_client_a827092f8b15b38c4a86ca88907338908}{Authenticate\\+Logout\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_satori_1_1_i_client_a517f15b484c813732bde081b5d8a1bf5}{Event\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} @event, Cancellation\\+Token? cancellation\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send an event for this session.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_satori_1_1_i_client_a89b11b74d66d79a2807489140af1e307}{Events\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} $>$ events, Cancellation\\+Token? cancellation\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send a batch of events for this session.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{IApi\\+Experiment\\+List}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a0b141b22c449ade3548442ec562679df}{Get\\+Experiments\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get all experiments data.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a6b03ae171a637d4938c2e9cacbf9ee28}{Get\\+Flag\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string name, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single flag for this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a486e38938074ed725715c81e64166f60}{Get\\+Flag\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string name, string default\\+Value, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single flag for this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_ae943709079ce5f690d5478addcd50f86}{Get\\+Flag\\+Default\\+Async}} (string api\\+Key, string name, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single default flag for this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a6548048f5d846c0af46a665cc1f53193}{Get\\+Flag\\+Default\\+Async}} (string api\\+Key, string name, string default\\+Value, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Get a single default flag for this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_aeb95e0c8049682e9a55d55422229c1ea}{Get\\+Flags\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all available flags for this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a81548d70c2bd082078aed71a8e3f4094}{Get\\+Flags\\+Default\\+Async}} (string api\\+Key, IEnumerable$<$ string $>$ names, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List all available default flags.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{IApi\\+Live\\+Event\\+List}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a49fd5e2b4a7106087c18e3e0a4699240}{Get\\+Live\\+Events\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, IEnumerable$<$ string $>$ names=null, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List available live events.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_aeab7bbd37f9f5650803284d5f4302b50}{Identify\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, string id, Dictionary$<$ string, string $>$ default\\+Properties, Dictionary$<$ string, string $>$ custom\\+Properties, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Identify a session with a new ID.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_ae3b5ed8835db318bac9e9358c9ca9d62}{List\\+Properties\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em List properties associated with this identity.  \\end{DoxyCompactList}\\item \nTask$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_client_a75b8b2a0675d4e42244ae66ac60e903f}{Session\\+Refresh\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Refresh a user\\textquotesingle{}s session using a refresh token retrieved from a previous authentication request.  \\end{DoxyCompactList}\\item \nTask \\mbox{\\hyperlink{interface_satori_1_1_i_client_aea9d790170b8366f8632f0ff1fdfb494}{Update\\+Properties\\+Async}} (\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} session, Dictionary$<$ string, string $>$ default\\+Properties, Dictionary$<$ string, string $>$ custom\\+Properties, Cancellation\\+Token? cancellation\\+Token=default)\n\\begin{DoxyCompactList}\\small\\item\\em Update properties associated with this identity.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_satori_1_1_i_client_a92cededba8674818db5107bca319ed39}{Auto\\+Refresh\\+Session}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em True if the session should be refreshed with an active refresh token.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA client for the API in \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a563a7848fc6cfb9f7b5bd71a1351ab80}\\label{interface_satori_1_1_i_client_a563a7848fc6cfb9f7b5bd71a1351ab80}} \n\\index{Satori.IClient@{Satori.IClient}!AuthenticateAsync@{AuthenticateAsync}}\n\\index{AuthenticateAsync@{AuthenticateAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateAsync()}{AuthenticateAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+IClient.\\+Authenticate\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{id,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nAuthenticate against the server.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em id} & An optional user id.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_ab2b3b14e99032adee70760833acbac58}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a827092f8b15b38c4a86ca88907338908}\\label{interface_satori_1_1_i_client_a827092f8b15b38c4a86ca88907338908}} \n\\index{Satori.IClient@{Satori.IClient}!AuthenticateLogoutAsync@{AuthenticateLogoutAsync}}\n\\index{AuthenticateLogoutAsync@{AuthenticateLogoutAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AuthenticateLogoutAsync()}{AuthenticateLogoutAsync()}}\n{\\footnotesize\\ttfamily Task Satori.\\+IClient.\\+Authenticate\\+Logout\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nLog out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which represents the asynchronous operation.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a19a54b27abb6adb73f1094cb69445986}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a517f15b484c813732bde081b5d8a1bf5}\\label{interface_satori_1_1_i_client_a517f15b484c813732bde081b5d8a1bf5}} \n\\index{Satori.IClient@{Satori.IClient}!EventAsync@{EventAsync}}\n\\index{EventAsync@{EventAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{EventAsync()}{EventAsync()}}\n{\\footnotesize\\ttfamily Task Satori.\\+IClient.\\+Event\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{\\mbox{\\hyperlink{class_satori_1_1_event}{Event}} @}]{event,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend an event for this session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em event} & The event to send.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a3515d87f03d73b2923c45454b4e6c35b}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a89b11b74d66d79a2807489140af1e307}\\label{interface_satori_1_1_i_client_a89b11b74d66d79a2807489140af1e307}} \n\\index{Satori.IClient@{Satori.IClient}!EventsAsync@{EventsAsync}}\n\\index{EventsAsync@{EventsAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{EventsAsync()}{EventsAsync()}}\n{\\footnotesize\\ttfamily Task Satori.\\+IClient.\\+Events\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ \\mbox{\\hyperlink{class_satori_1_1_event}{Event}} $>$}]{events,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend a batch of events for this session.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em events} & The batch of events which will be sent.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a168e519dc7621109d2726986e3928139}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a0b141b22c449ade3548442ec562679df}\\label{interface_satori_1_1_i_client_a0b141b22c449ade3548442ec562679df}} \n\\index{Satori.IClient@{Satori.IClient}!GetExperimentsAsync@{GetExperimentsAsync}}\n\\index{GetExperimentsAsync@{GetExperimentsAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetExperimentsAsync()}{GetExperimentsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{IApi\\+Experiment\\+List}} $>$ Satori.\\+IClient.\\+Get\\+Experiments\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet all experiments data.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Experiment names; if empty string all experiments are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all experiments that this identity is involved with.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_aeae7a12032aa553fbbfdc856f3886c83}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a6b03ae171a637d4938c2e9cacbf9ee28}\\label{interface_satori_1_1_i_client_a6b03ae171a637d4938c2e9cacbf9ee28}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagAsync@{GetFlagAsync}}\n\\index{GetFlagAsync@{GetFlagAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagAsync()}{GetFlagAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+IClient.\\+Get\\+Flag\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single flag for this identity.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single feature flag.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a049d78069eb7828f88863e8776040615}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a486e38938074ed725715c81e64166f60}\\label{interface_satori_1_1_i_client_a486e38938074ed725715c81e64166f60}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagAsync@{GetFlagAsync}}\n\\index{GetFlagAsync@{GetFlagAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagAsync()}{GetFlagAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+IClient.\\+Get\\+Flag\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{name,  }\\item[{string}]{default\\+Value,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single flag for this identity.  \n\nUnlike {\\ttfamily Get\\+Flags(\\+ISession,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unavailable. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em default\\+Value} & The default value if the server is unreachable.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single feature flag.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a2b05b22f9f9071f6c26614a13997c536}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_ae943709079ce5f690d5478addcd50f86}\\label{interface_satori_1_1_i_client_ae943709079ce5f690d5478addcd50f86}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagDefaultAsync@{GetFlagDefaultAsync}}\n\\index{GetFlagDefaultAsync@{GetFlagDefaultAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagDefaultAsync()}{GetFlagDefaultAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [1/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+IClient.\\+Get\\+Flag\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{string}]{name,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single default flag for this identity.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single default feature flag.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a49603b64cf61100806d934110f8ea352}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a6548048f5d846c0af46a665cc1f53193}\\label{interface_satori_1_1_i_client_a6548048f5d846c0af46a665cc1f53193}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagDefaultAsync@{GetFlagDefaultAsync}}\n\\index{GetFlagDefaultAsync@{GetFlagDefaultAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagDefaultAsync()}{GetFlagDefaultAsync()}\\hspace{0.1cm}{\\footnotesize\\ttfamily [2/2]}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}} $>$ Satori.\\+IClient.\\+Get\\+Flag\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{string}]{name,  }\\item[{string}]{default\\+Value,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nGet a single default flag for this identity.  \n\nUnlike {\\ttfamily Get\\+Flag\\+Default\\+Async(string,string,\\+Cancellation\\+Token)} this method will return the default value specified and will not raise an exception if the network is unreachable. \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em name} & The name of the flag.\\\\\n\\hline\n{\\em default\\+Value} & The default value if the server is unreachable.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a single default feature flag.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a2a555f48f48e5c070db9c115d92a8805}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_aeb95e0c8049682e9a55d55422229c1ea}\\label{interface_satori_1_1_i_client_aeb95e0c8049682e9a55d55422229c1ea}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagsAsync@{GetFlagsAsync}}\n\\index{GetFlagsAsync@{GetFlagsAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagsAsync()}{GetFlagsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ Satori.\\+IClient.\\+Get\\+Flags\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all available flags for this identity.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all flags available to this identity.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a477cea4ad8662115d4221e4e7b9c203c}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a81548d70c2bd082078aed71a8e3f4094}\\label{interface_satori_1_1_i_client_a81548d70c2bd082078aed71a8e3f4094}} \n\\index{Satori.IClient@{Satori.IClient}!GetFlagsDefaultAsync@{GetFlagsDefaultAsync}}\n\\index{GetFlagsDefaultAsync@{GetFlagsDefaultAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetFlagsDefaultAsync()}{GetFlagsDefaultAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}} $>$ Satori.\\+IClient.\\+Get\\+Flags\\+Default\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{api\\+Key,  }\\item[{IEnumerable$<$ string $>$}]{names,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList all available default flags.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em api\\+Key} & The API key configured on the server.\\\\\n\\hline\n{\\em names} & Flag names, if empty string all flags are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to all available default flags.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a84d87516c745950e3f35ea3810283f06}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a49fd5e2b4a7106087c18e3e0a4699240}\\label{interface_satori_1_1_i_client_a49fd5e2b4a7106087c18e3e0a4699240}} \n\\index{Satori.IClient@{Satori.IClient}!GetLiveEventsAsync@{GetLiveEventsAsync}}\n\\index{GetLiveEventsAsync@{GetLiveEventsAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{GetLiveEventsAsync()}{GetLiveEventsAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{IApi\\+Live\\+Event\\+List}} $>$ Satori.\\+IClient.\\+Get\\+Live\\+Events\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{IEnumerable$<$ string $>$}]{names = {\\ttfamily null},  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList available live events.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em names} & Live event names, if null or empty, all live events are returned.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a454f2b97226548687442d05a3a6465b0}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_aeab7bbd37f9f5650803284d5f4302b50}\\label{interface_satori_1_1_i_client_aeab7bbd37f9f5650803284d5f4302b50}} \n\\index{Satori.IClient@{Satori.IClient}!IdentifyAsync@{IdentifyAsync}}\n\\index{IdentifyAsync@{IdentifyAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{IdentifyAsync()}{IdentifyAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+IClient.\\+Identify\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{string}]{id,  }\\item[{Dictionary$<$ string, string $>$}]{default\\+Properties,  }\\item[{Dictionary$<$ string, string $>$}]{custom\\+Properties,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nIdentify a session with a new ID.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em id} & Identity ID to enrich the current session and return a new session. The old session will no longer be usable. Must be between eight and 128 characters (inclusive). Must be an alphanumeric string with only underscores and hyphens allowed. \\\\\n\\hline\n{\\em default\\+Properties} & The default properties.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom event properties.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the new session for the user.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a2bcd0f294df315ca5e46dfa7448c02f8}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_ae3b5ed8835db318bac9e9358c9ca9d62}\\label{interface_satori_1_1_i_client_ae3b5ed8835db318bac9e9358c9ca9d62}} \n\\index{Satori.IClient@{Satori.IClient}!ListPropertiesAsync@{ListPropertiesAsync}}\n\\index{ListPropertiesAsync@{ListPropertiesAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{ListPropertiesAsync()}{ListPropertiesAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}} $>$ Satori.\\+IClient.\\+List\\+Properties\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nList properties associated with this identity.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a list of live events.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_aef13463487b3c09d7c9a347cbe8c5cd1}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a75b8b2a0675d4e42244ae66ac60e903f}\\label{interface_satori_1_1_i_client_a75b8b2a0675d4e42244ae66ac60e903f}} \n\\index{Satori.IClient@{Satori.IClient}!SessionRefreshAsync@{SessionRefreshAsync}}\n\\index{SessionRefreshAsync@{SessionRefreshAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{SessionRefreshAsync()}{SessionRefreshAsync()}}\n{\\footnotesize\\ttfamily Task$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}} $>$ Satori.\\+IClient.\\+Session\\+Refresh\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nRefresh a user\\textquotesingle{}s session using a refresh token retrieved from a previous authentication request.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to a user session.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a05e0853fc71cc8520f38acd27951daf9}{Satori.\\+Client}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_aea9d790170b8366f8632f0ff1fdfb494}\\label{interface_satori_1_1_i_client_aea9d790170b8366f8632f0ff1fdfb494}} \n\\index{Satori.IClient@{Satori.IClient}!UpdatePropertiesAsync@{UpdatePropertiesAsync}}\n\\index{UpdatePropertiesAsync@{UpdatePropertiesAsync}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{UpdatePropertiesAsync()}{UpdatePropertiesAsync()}}\n{\\footnotesize\\ttfamily Task Satori.\\+IClient.\\+Update\\+Properties\\+Async (\\begin{DoxyParamCaption}\\item[{\\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}}]{session,  }\\item[{Dictionary$<$ string, string $>$}]{default\\+Properties,  }\\item[{Dictionary$<$ string, string $>$}]{custom\\+Properties,  }\\item[{Cancellation\\+Token?}]{cancellation\\+Token = {\\ttfamily default} }\\end{DoxyParamCaption})}\n\n\n\nUpdate properties associated with this identity.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em session} & The session of the user.\\\\\n\\hline\n{\\em default\\+Properties} & The default properties to update.\\\\\n\\hline\n{\\em custom\\+Properties} & The custom properties to update.\\\\\n\\hline\n{\\em cancellation\\+Token} & The Cancellation\\+Token that can be used to cancel the request while mid-\\/flight.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task object.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a78fc439169d96ec41b3cd3631e31d43d}{Satori.\\+Client}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_client_a92cededba8674818db5107bca319ed39}\\label{interface_satori_1_1_i_client_a92cededba8674818db5107bca319ed39}} \n\\index{Satori.IClient@{Satori.IClient}!AutoRefreshSession@{AutoRefreshSession}}\n\\index{AutoRefreshSession@{AutoRefreshSession}!Satori.IClient@{Satori.IClient}}\n\\doxysubsubsection{\\texorpdfstring{AutoRefreshSession}{AutoRefreshSession}}\n{\\footnotesize\\ttfamily bool Satori.\\+IClient.\\+Auto\\+Refresh\\+Session\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nTrue if the session should be refreshed with an active refresh token.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_client_a1fc4e5a73077533d8671e64686528d1a}{Satori.\\+Client}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/IClient.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_http_adapter.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 238.095245\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 2.100000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.IHttpAdapter) cw\n(Satori.HttpRequestAdapter) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.IHttpAdapter) 0.000000 1.000000 box\n (Satori.HttpRequestAdapter) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_http_adapter.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_http_adapter}{}\\doxysection{Satori.\\+IHttp\\+Adapter Interface Reference}\n\\label{interface_satori_1_1_i_http_adapter}\\index{Satori.IHttpAdapter@{Satori.IHttpAdapter}}\n\n\nAn adapter which implements the HTTP protocol.   \n\n\nInheritance diagram for Satori.\\+IHttp\\+Adapter\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_satori_1_1_i_http_adapter}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nTask$<$ string $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a5a8263afb745168a52c3e9a778b36344}{Send\\+Async}} (string method, Uri uri, IDictionary$<$ string, string $>$ headers, byte\\mbox{[}$\\,$\\mbox{]} body, int timeout\\+Sec=3, Cancellation\\+Token? user\\+Cancel\\+Token=null)\n\\begin{DoxyCompactList}\\small\\item\\em Send a HTTP request.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nTransient\\+Exception\\+Delegate \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a4a1fd5b9edeccda3485b62d94f22578f}{Transient\\+Exception\\+Delegate}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em A delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.\\+e., is \\textquotesingle{}transient\\textquotesingle{}).  \\end{DoxyCompactList}\\item \n\\mbox{\\hyperlink{interface_satori_1_1_i_logger}{ILogger}} \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter_a60f7f315f6269aa15eea61fa0155dc0b}{Logger}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get, set\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The logger to use with the adapter.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nAn adapter which implements the HTTP protocol.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_http_adapter_a5a8263afb745168a52c3e9a778b36344}\\label{interface_satori_1_1_i_http_adapter_a5a8263afb745168a52c3e9a778b36344}} \n\\index{Satori.IHttpAdapter@{Satori.IHttpAdapter}!SendAsync@{SendAsync}}\n\\index{SendAsync@{SendAsync}!Satori.IHttpAdapter@{Satori.IHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{SendAsync()}{SendAsync()}}\n{\\footnotesize\\ttfamily Task$<$ string $>$ Satori.\\+IHttp\\+Adapter.\\+Send\\+Async (\\begin{DoxyParamCaption}\\item[{string}]{method,  }\\item[{Uri}]{uri,  }\\item[{IDictionary$<$ string, string $>$}]{headers,  }\\item[{byte\\mbox{[}$\\,$\\mbox{]}}]{body,  }\\item[{int}]{timeout\\+Sec = {\\ttfamily 3},  }\\item[{Cancellation\\+Token?}]{user\\+Cancel\\+Token = {\\ttfamily null} }\\end{DoxyParamCaption})}\n\n\n\nSend a HTTP request.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em method} & HTTP method to use for this request.\\\\\n\\hline\n{\\em uri} & The fully qualified URI to use.\\\\\n\\hline\n{\\em headers} & Request headers to set.\\\\\n\\hline\n{\\em body} & Request content body to set.\\\\\n\\hline\n{\\em timeout\\+Sec} & Request timeout.\\\\\n\\hline\n{\\em user\\+Cancel\\+Token} & A user-\\/generated token that can be used to cancel the request.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nA task which resolves to the contents of the response.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a68c34ab8213a4658b431c1d28646dc9a}{Satori.\\+Http\\+Request\\+Adapter}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_http_adapter_a60f7f315f6269aa15eea61fa0155dc0b}\\label{interface_satori_1_1_i_http_adapter_a60f7f315f6269aa15eea61fa0155dc0b}} \n\\index{Satori.IHttpAdapter@{Satori.IHttpAdapter}!Logger@{Logger}}\n\\index{Logger@{Logger}!Satori.IHttpAdapter@{Satori.IHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{Logger}{Logger}}\n{\\footnotesize\\ttfamily \\mbox{\\hyperlink{interface_satori_1_1_i_logger}{ILogger}} Satori.\\+IHttp\\+Adapter.\\+Logger\\hspace{0.3cm}{\\ttfamily [get]}, {\\ttfamily [set]}}\n\n\n\nThe logger to use with the adapter.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a6736d4ab9046b2b991c1a0e7260f8def}{Satori.\\+Http\\+Request\\+Adapter}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_http_adapter_a4a1fd5b9edeccda3485b62d94f22578f}\\label{interface_satori_1_1_i_http_adapter_a4a1fd5b9edeccda3485b62d94f22578f}} \n\\index{Satori.IHttpAdapter@{Satori.IHttpAdapter}!TransientExceptionDelegate@{TransientExceptionDelegate}}\n\\index{TransientExceptionDelegate@{TransientExceptionDelegate}!Satori.IHttpAdapter@{Satori.IHttpAdapter}}\n\\doxysubsubsection{\\texorpdfstring{TransientExceptionDelegate}{TransientExceptionDelegate}}\n{\\footnotesize\\ttfamily Transient\\+Exception\\+Delegate Satori.\\+IHttp\\+Adapter.\\+Transient\\+Exception\\+Delegate\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nA delegate used to determine whether or not an error from the server is due to a temporary bad state on the server (i.\\+e., is \\textquotesingle{}transient\\textquotesingle{}).  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter_a546f98fc502df23332f3cfce7101d1e3}{Satori.\\+Http\\+Request\\+Adapter}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/IHttp\\+Adapter.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_logger.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_logger}{}\\doxysection{Satori.\\+ILogger Interface Reference}\n\\label{interface_satori_1_1_i_logger}\\index{Satori.ILogger@{Satori.ILogger}}\n\n\nA simple logger to write log messages to an output sink.   \n\n\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nvoid \\mbox{\\hyperlink{interface_satori_1_1_i_logger_acb889cdb5e1738367ac3d0f3690fa190}{Debug\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the DEBUG level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_satori_1_1_i_logger_a85c6046abce4142fdb6efedeafe7b8cd}{Error\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the ERROR level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_satori_1_1_i_logger_a1d6e3a04dff701d98e397844555c35eb}{Info\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the INFO level.  \\end{DoxyCompactList}\\item \nvoid \\mbox{\\hyperlink{interface_satori_1_1_i_logger_a30adb5d4ad5400e125795f35eff17591}{Warn\\+Format}} (string format, params object\\mbox{[}$\\,$\\mbox{]} args)\n\\begin{DoxyCompactList}\\small\\item\\em Logs a formatted string with the WARN level.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA simple logger to write log messages to an output sink.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_logger_acb889cdb5e1738367ac3d0f3690fa190}\\label{interface_satori_1_1_i_logger_acb889cdb5e1738367ac3d0f3690fa190}} \n\\index{Satori.ILogger@{Satori.ILogger}!DebugFormat@{DebugFormat}}\n\\index{DebugFormat@{DebugFormat}!Satori.ILogger@{Satori.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{DebugFormat()}{DebugFormat()}}\n{\\footnotesize\\ttfamily void Satori.\\+ILogger.\\+Debug\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the DEBUG level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_logger_a85c6046abce4142fdb6efedeafe7b8cd}\\label{interface_satori_1_1_i_logger_a85c6046abce4142fdb6efedeafe7b8cd}} \n\\index{Satori.ILogger@{Satori.ILogger}!ErrorFormat@{ErrorFormat}}\n\\index{ErrorFormat@{ErrorFormat}!Satori.ILogger@{Satori.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{ErrorFormat()}{ErrorFormat()}}\n{\\footnotesize\\ttfamily void Satori.\\+ILogger.\\+Error\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the ERROR level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_logger_a1d6e3a04dff701d98e397844555c35eb}\\label{interface_satori_1_1_i_logger_a1d6e3a04dff701d98e397844555c35eb}} \n\\index{Satori.ILogger@{Satori.ILogger}!InfoFormat@{InfoFormat}}\n\\index{InfoFormat@{InfoFormat}!Satori.ILogger@{Satori.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{InfoFormat()}{InfoFormat()}}\n{\\footnotesize\\ttfamily void Satori.\\+ILogger.\\+Info\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the INFO level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_logger_a30adb5d4ad5400e125795f35eff17591}\\label{interface_satori_1_1_i_logger_a30adb5d4ad5400e125795f35eff17591}} \n\\index{Satori.ILogger@{Satori.ILogger}!WarnFormat@{WarnFormat}}\n\\index{WarnFormat@{WarnFormat}!Satori.ILogger@{Satori.ILogger}}\n\\doxysubsubsection{\\texorpdfstring{WarnFormat()}{WarnFormat()}}\n{\\footnotesize\\ttfamily void Satori.\\+ILogger.\\+Warn\\+Format (\\begin{DoxyParamCaption}\\item[{string}]{format,  }\\item[{params object\\mbox{[}$\\,$\\mbox{]}}]{args }\\end{DoxyParamCaption})}\n\n\n\nLogs a formatted string with the WARN level.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em format} & A string with zero or more format items.\\\\\n\\hline\n{\\em args} & An object array with zero or more objects to format.\\\\\n\\hline\n\\end{DoxyParams}\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/ILogger.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_protobuf_any.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_protobuf_any}{}\\doxysection{Satori.\\+IProtobuf\\+Any Interface Reference}\n\\label{interface_satori_1_1_i_protobuf_any}\\index{Satori.IProtobufAny@{Satori.IProtobufAny}}\n\n\n \n\n\n\n\nInherited by Satori.\\+Protobuf\\+Any.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_satori_1_1_i_protobuf_any_a43acc74cdc796aeee56a0930fa2f3b5d}{type}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_protobuf_any_a43acc74cdc796aeee56a0930fa2f3b5d}\\label{interface_satori_1_1_i_protobuf_any_a43acc74cdc796aeee56a0930fa2f3b5d}} \n\\index{Satori.IProtobufAny@{Satori.IProtobufAny}!type@{type}}\n\\index{type@{type}!Satori.IProtobufAny@{Satori.IProtobufAny}}\n\\doxysubsubsection{\\texorpdfstring{type}{type}}\n{\\footnotesize\\ttfamily string Satori.\\+IProtobuf\\+Any.\\+type\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_rpc_status.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_rpc_status}{}\\doxysection{Satori.\\+IRpc\\+Status Interface Reference}\n\\label{interface_satori_1_1_i_rpc_status}\\index{Satori.IRpcStatus@{Satori.IRpcStatus}}\n\n\n \n\n\n\n\nInherited by Satori.\\+Rpc\\+Status.\n\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nint \\mbox{\\hyperlink{interface_satori_1_1_i_rpc_status_a71366bd7cbdf47d676e2fd6fecf9daff}{Code}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nIEnumerable$<$ \\mbox{\\hyperlink{interface_satori_1_1_i_protobuf_any}{IProtobuf\\+Any}} $>$ \\mbox{\\hyperlink{interface_satori_1_1_i_rpc_status_ab1f9e4bbdb97b5f4483a103b209eaee9}{Details}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\item \nstring \\mbox{\\hyperlink{interface_satori_1_1_i_rpc_status_abfc3946bb2273c5e2e44f123ac308a96}{Message}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\n\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_rpc_status_a71366bd7cbdf47d676e2fd6fecf9daff}\\label{interface_satori_1_1_i_rpc_status_a71366bd7cbdf47d676e2fd6fecf9daff}} \n\\index{Satori.IRpcStatus@{Satori.IRpcStatus}!Code@{Code}}\n\\index{Code@{Code}!Satori.IRpcStatus@{Satori.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Code}{Code}}\n{\\footnotesize\\ttfamily int Satori.\\+IRpc\\+Status.\\+Code\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_rpc_status_ab1f9e4bbdb97b5f4483a103b209eaee9}\\label{interface_satori_1_1_i_rpc_status_ab1f9e4bbdb97b5f4483a103b209eaee9}} \n\\index{Satori.IRpcStatus@{Satori.IRpcStatus}!Details@{Details}}\n\\index{Details@{Details}!Satori.IRpcStatus@{Satori.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Details}{Details}}\n{\\footnotesize\\ttfamily IEnumerable$<$\\mbox{\\hyperlink{interface_satori_1_1_i_protobuf_any}{IProtobuf\\+Any}}$>$ Satori.\\+IRpc\\+Status.\\+Details\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_rpc_status_abfc3946bb2273c5e2e44f123ac308a96}\\label{interface_satori_1_1_i_rpc_status_abfc3946bb2273c5e2e44f123ac308a96}} \n\\index{Satori.IRpcStatus@{Satori.IRpcStatus}!Message@{Message}}\n\\index{Message@{Message}!Satori.IRpcStatus@{Satori.IRpcStatus}}\n\\doxysubsubsection{\\texorpdfstring{Message}{Message}}\n{\\footnotesize\\ttfamily string Satori.\\+IRpc\\+Status.\\+Message\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\n\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/Api\\+Client.\\+gen.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_session.eps",
    "content": "%!PS-Adobe-2.0 EPSF-2.0\n%%Title: ClassName\n%%Creator: Doxygen\n%%CreationDate: Time\n%%For: \n%Magnification: 1.00\n%%Orientation: Portrait\n%%BoundingBox: 0 0 500 384.615387\n%%Pages: 0\n%%BeginSetup\n%%EndSetup\n%%EndComments\n\n% ----- variables -----\n\n/boxwidth 0 def\n/boxheight 40 def\n/fontheight 24 def\n/marginwidth 10 def\n/distx 20 def\n/disty 40 def\n/boundaspect 1.300000 def  % aspect ratio of the BoundingBox (width/height)\n/boundx 500 def\n/boundy boundx boundaspect div def\n/xspacing 0 def\n/yspacing 0 def\n/rows 2 def\n/cols 1 def\n/scalefactor 0 def\n/boxfont /Times-Roman findfont fontheight scalefont def\n\n% ----- procedures -----\n\n/dotted { [1 4] 0 setdash } def\n/dashed { [5] 0 setdash } def\n/solid  { [] 0 setdash } def\n\n/max % result = MAX(arg1,arg2)\n{\n  /a exch def\n  /b exch def\n  a b gt {a} {b} ifelse\n} def\n\n/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2)\n{\n  0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max\n} def\n\n/cw % boxwidth = MAX(boxwidth, stringwidth(arg1))\n{\n  /str exch def\n  /boxwidth boxwidth str stringwidth pop max def\n} def\n\n/box % draws a box with text 'arg1' at grid pos (arg2,arg3)\n{ gsave\n  2 setlinewidth\n  newpath\n  exch xspacing mul xoffset add\n  exch yspacing mul\n  moveto\n  boxwidth 0 rlineto \n  0 boxheight rlineto \n  boxwidth neg 0 rlineto \n  0 boxheight neg rlineto \n  closepath\n  dup stringwidth pop neg boxwidth add 2 div\n  boxheight fontheight 2 div sub 2 div\n  rmoveto show stroke\n  grestore\n} def  \n\n/mark\n{ newpath\n  exch xspacing mul xoffset add boxwidth add\n  exch yspacing mul\n  moveto\n  0 boxheight 4 div rlineto\n  boxheight neg 4 div boxheight neg 4 div rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/arrow\n{ newpath\n  moveto\n  3 -8 rlineto\n  -6 0 rlineto\n  3 8 rlineto\n  closepath\n  eofill\n  stroke\n} def\n\n/out % draws an output connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight add\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto \n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/in % draws an input connector for the block at (arg1,arg2)\n{\n  newpath\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul disty 2 div sub\n  /y exch def\n  /x exch def\n  x y moveto\n  0 disty 2 div rlineto\n  stroke\n  1 eq { x y disty 2 div add arrow } if\n} def\n\n/hedge\n{\n  exch xspacing mul xoffset add boxwidth 2 div add\n  exch yspacing mul boxheight 2 div sub\n  /y exch def\n  /x exch def\n  newpath\n  x y moveto\n  boxwidth 2 div distx add 0 rlineto\n  stroke\n  1 eq\n  { newpath x boxwidth 2 div distx add add y moveto\n    -8 3 rlineto\n    0 -6 rlineto\n    8 3 rlineto\n    closepath\n    eofill\n    stroke\n  } if\n} def\n\n/vedge\n{\n  /ye exch def\n  /ys exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add dup\n  ys yspacing mul boxheight 2 div sub\n  moveto\n  ye yspacing mul boxheight 2 div sub\n  lineto\n  stroke\n} def\n\n/conn % connections the blocks from col 'arg1' to 'arg2' of row 'arg3'\n{\n  /ys exch def\n  /xe exch def\n  /xs exch def\n  newpath\n  xs xspacing mul xoffset add boxwidth 2 div add\n  ys yspacing mul disty 2 div sub\n  moveto\n  xspacing xe xs sub mul 0\n  rlineto\n  stroke\n} def\n\n% ----- main ------\n\nboxfont setfont\n1 boundaspect scale\n(Satori.ISession) cw\n(Satori.Session) cw\n/boxwidth boxwidth marginwidth 2 mul add def\n/xspacing boxwidth distx add def\n/yspacing boxheight disty add def\n/scalefactor \n  boxwidth cols mul distx cols 1 sub mul add\n  boxheight rows mul disty rows 1 sub mul add boundaspect mul \n  max def\nboundx scalefactor div boundy scalefactor div scale\n\n% ----- classes -----\n\n (Satori.ISession) 0.000000 1.000000 box\n (Satori.Session) 0.000000 0.000000 box\n\n% ----- relations -----\n\nsolid\n1 0.000000 0.250000 out\nsolid\n0 0.000000 0.750000 in\n"
  },
  {
    "path": "docs/latex/interface_satori_1_1_i_session.tex",
    "content": "\\hypertarget{interface_satori_1_1_i_session}{}\\doxysection{Satori.\\+ISession Interface Reference}\n\\label{interface_satori_1_1_i_session}\\index{Satori.ISession@{Satori.ISession}}\n\n\nA session authenticated for a user with \\mbox{\\hyperlink{namespace_satori}{Satori}} server.   \n\n\nInheritance diagram for Satori.\\+ISession\\+:\\begin{figure}[H]\n\\begin{center}\n\\leavevmode\n\\includegraphics[height=2.000000cm]{interface_satori_1_1_i_session}\n\\end{center}\n\\end{figure}\n\\doxysubsection*{Public Member Functions}\n\\begin{DoxyCompactItemize}\n\\item \nbool \\mbox{\\hyperlink{interface_satori_1_1_i_session_aabe1a8aae689ca7d1eaca3537ffa55f5}{Has\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check the session has expired against the offset time.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_satori_1_1_i_session_aa690bf2fd9e3cebdc597a17ad95eb8ac}{Has\\+Refresh\\+Expired}} (Date\\+Time offset)\n\\begin{DoxyCompactList}\\small\\item\\em Check if the refresh token has expired against the offset time.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Properties}\n\\begin{DoxyCompactItemize}\n\\item \nstring \\mbox{\\hyperlink{interface_satori_1_1_i_session_a3a090ee3fe0d7a6f01d45f185ec8f3ba}{Auth\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The authorization token used to construct this session.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_satori_1_1_i_session_a2ac53e0aab134b3df05bd46f29d5e34f}{Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when this session will expire.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_satori_1_1_i_session_a8fe379446411cfdff5e11cabc83eed9d}{Is\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the session has expired.  \\end{DoxyCompactList}\\item \nbool \\mbox{\\hyperlink{interface_satori_1_1_i_session_a35ce1adb322ea67137bce06d711c9779}{Is\\+Refresh\\+Expired}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em If the refresh token has expired.  \\end{DoxyCompactList}\\item \nlong \\mbox{\\hyperlink{interface_satori_1_1_i_session_a4303314d30ab93e5297842327ef97571}{Refresh\\+Expire\\+Time}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The UNIX timestamp when the refresh token will expire.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_satori_1_1_i_session_abfc2880c5080481f9ea718e18c2845cf}{Refresh\\+Token}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em Refresh token that can be used for session token renewal.  \\end{DoxyCompactList}\\item \nstring \\mbox{\\hyperlink{interface_satori_1_1_i_session_ad2cf0bf88e2f23a3f3fdff64502a799e}{Identity\\+Id}}\\hspace{0.3cm}{\\ttfamily  \\mbox{[}get\\mbox{]}}\n\\begin{DoxyCompactList}\\small\\item\\em The ID of the user who owns this session.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nA session authenticated for a user with \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  \n\n\\doxysubsection{Member Function Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_aabe1a8aae689ca7d1eaca3537ffa55f5}\\label{interface_satori_1_1_i_session_aabe1a8aae689ca7d1eaca3537ffa55f5}} \n\\index{Satori.ISession@{Satori.ISession}!HasExpired@{HasExpired}}\n\\index{HasExpired@{HasExpired}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{HasExpired()}{HasExpired()}}\n{\\footnotesize\\ttfamily bool Satori.\\+ISession.\\+Has\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck the session has expired against the offset time.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this session.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf the session has expired.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_ac0337cc38b9a04e5d812a8b87720e407}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_aa690bf2fd9e3cebdc597a17ad95eb8ac}\\label{interface_satori_1_1_i_session_aa690bf2fd9e3cebdc597a17ad95eb8ac}} \n\\index{Satori.ISession@{Satori.ISession}!HasRefreshExpired@{HasRefreshExpired}}\n\\index{HasRefreshExpired@{HasRefreshExpired}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{HasRefreshExpired()}{HasRefreshExpired()}}\n{\\footnotesize\\ttfamily bool Satori.\\+ISession.\\+Has\\+Refresh\\+Expired (\\begin{DoxyParamCaption}\\item[{Date\\+Time}]{offset }\\end{DoxyParamCaption})}\n\n\n\nCheck if the refresh token has expired against the offset time.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em offset} & The datetime to compare against this refresh token.\\\\\n\\hline\n\\end{DoxyParams}\n\\begin{DoxyReturn}{Returns}\nIf refresh token has expired.\n\\end{DoxyReturn}\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_a4a4cc7d98de34718e385241eaa9984fe}{Satori.\\+Session}}.\n\n\n\n\\doxysubsection{Property Documentation}\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_a3a090ee3fe0d7a6f01d45f185ec8f3ba}\\label{interface_satori_1_1_i_session_a3a090ee3fe0d7a6f01d45f185ec8f3ba}} \n\\index{Satori.ISession@{Satori.ISession}!AuthToken@{AuthToken}}\n\\index{AuthToken@{AuthToken}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{AuthToken}{AuthToken}}\n{\\footnotesize\\ttfamily string Satori.\\+ISession.\\+Auth\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe authorization token used to construct this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_afdc7cdcad28bc4c95c1b6244f9b208bf}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_a2ac53e0aab134b3df05bd46f29d5e34f}\\label{interface_satori_1_1_i_session_a2ac53e0aab134b3df05bd46f29d5e34f}} \n\\index{Satori.ISession@{Satori.ISession}!ExpireTime@{ExpireTime}}\n\\index{ExpireTime@{ExpireTime}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{ExpireTime}{ExpireTime}}\n{\\footnotesize\\ttfamily long Satori.\\+ISession.\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when this session will expire.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_afe0f9228873dbd047a024b16e45d368e}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_ad2cf0bf88e2f23a3f3fdff64502a799e}\\label{interface_satori_1_1_i_session_ad2cf0bf88e2f23a3f3fdff64502a799e}} \n\\index{Satori.ISession@{Satori.ISession}!IdentityId@{IdentityId}}\n\\index{IdentityId@{IdentityId}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{IdentityId}{IdentityId}}\n{\\footnotesize\\ttfamily string Satori.\\+ISession.\\+Identity\\+Id\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe ID of the user who owns this session.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_a17977d09db716a100515246046689acb}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_a8fe379446411cfdff5e11cabc83eed9d}\\label{interface_satori_1_1_i_session_a8fe379446411cfdff5e11cabc83eed9d}} \n\\index{Satori.ISession@{Satori.ISession}!IsExpired@{IsExpired}}\n\\index{IsExpired@{IsExpired}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{IsExpired}{IsExpired}}\n{\\footnotesize\\ttfamily bool Satori.\\+ISession.\\+Is\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the session has expired.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_aa933c455425edfd02a68c52e2ea52135}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_a35ce1adb322ea67137bce06d711c9779}\\label{interface_satori_1_1_i_session_a35ce1adb322ea67137bce06d711c9779}} \n\\index{Satori.ISession@{Satori.ISession}!IsRefreshExpired@{IsRefreshExpired}}\n\\index{IsRefreshExpired@{IsRefreshExpired}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{IsRefreshExpired}{IsRefreshExpired}}\n{\\footnotesize\\ttfamily bool Satori.\\+ISession.\\+Is\\+Refresh\\+Expired\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nIf the refresh token has expired.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_a6467393cfe6d024d0a3526f0ee29eec9}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_a4303314d30ab93e5297842327ef97571}\\label{interface_satori_1_1_i_session_a4303314d30ab93e5297842327ef97571}} \n\\index{Satori.ISession@{Satori.ISession}!RefreshExpireTime@{RefreshExpireTime}}\n\\index{RefreshExpireTime@{RefreshExpireTime}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{RefreshExpireTime}{RefreshExpireTime}}\n{\\footnotesize\\ttfamily long Satori.\\+ISession.\\+Refresh\\+Expire\\+Time\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nThe UNIX timestamp when the refresh token will expire.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_aa3ff3bfb4404d71172a2fcb323632f9e}{Satori.\\+Session}}.\n\n\\mbox{\\Hypertarget{interface_satori_1_1_i_session_abfc2880c5080481f9ea718e18c2845cf}\\label{interface_satori_1_1_i_session_abfc2880c5080481f9ea718e18c2845cf}} \n\\index{Satori.ISession@{Satori.ISession}!RefreshToken@{RefreshToken}}\n\\index{RefreshToken@{RefreshToken}!Satori.ISession@{Satori.ISession}}\n\\doxysubsubsection{\\texorpdfstring{RefreshToken}{RefreshToken}}\n{\\footnotesize\\ttfamily string Satori.\\+ISession.\\+Refresh\\+Token\\hspace{0.3cm}{\\ttfamily [get]}}\n\n\n\nRefresh token that can be used for session token renewal.  \n\n\n\nImplemented in \\mbox{\\hyperlink{class_satori_1_1_session_a6de405afc91032a2c328ae863decc122}{Satori.\\+Session}}.\n\n\n\nThe documentation for this interface was generated from the following file\\+:\\begin{DoxyCompactItemize}\n\\item \nSatori/ISession.\\+cs\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/longtable_doxygen.sty",
    "content": "%%\n%% This is file `longtable.sty',\n%% generated with the docstrip utility.\n%%\n%% The original source files were:\n%%\n%% longtable.dtx  (with options: `package')\n%% \n%% This is a generated file.\n%% \n%% The source is maintained by the LaTeX Project team and bug\n%% reports for it can be opened at http://latex-project.org/bugs.html\n%% (but please observe conditions on bug reports sent to that address!)\n%% \n%% Copyright 1993-2016\n%% The LaTeX3 Project and any individual authors listed elsewhere\n%% in this file.\n%% \n%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.\n%% --------------------------------------------------------------------------\n%% \n%% It may be distributed and/or modified under the\n%% conditions of the LaTeX Project Public License, either version 1.3c\n%% of this license or (at your option) any later version.\n%% The latest version of this license is in\n%%    http://www.latex-project.org/lppl.txt\n%% and version 1.3c or later is part of all distributions of LaTeX\n%% version 2005/12/01 or later.\n%% \n%% This file may only be distributed together with a copy of the LaTeX\n%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'\n%% without such generated files.\n%% \n%% The list of all files belonging to the LaTeX `Tools Bundle' is\n%% given in the file `manifest.txt'.\n%% \n%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle\n\\NeedsTeXFormat{LaTeX2e}[1995/06/01]\n\\ProvidesPackage{longtable_doxygen}\n          [2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]\n\\def\\LT@err{\\PackageError{longtable}}\n\\def\\LT@warn{\\PackageWarning{longtable}}\n\\def\\LT@final@warn{%\n  \\AtEndDocument{%\n    \\LT@warn{Table \\@width s have changed. Rerun LaTeX.\\@gobbletwo}}%\n  \\global\\let\\LT@final@warn\\relax}\n\\DeclareOption{errorshow}{%\n  \\def\\LT@warn{\\PackageInfo{longtable}}}\n\\DeclareOption{pausing}{%\n  \\def\\LT@warn#1{%\n    \\LT@err{#1}{This is not really an error}}}\n\\DeclareOption{set}{}\n\\DeclareOption{final}{}\n\\ProcessOptions\n\\newskip\\LTleft       \\LTleft=\\fill\n\\newskip\\LTright      \\LTright=\\fill\n\\newskip\\LTpre        \\LTpre=\\bigskipamount\n\\newskip\\LTpost       \\LTpost=\\bigskipamount\n\\newcount\\LTchunksize \\LTchunksize=20\n\\let\\c@LTchunksize\\LTchunksize\n\\newdimen\\LTcapwidth  \\LTcapwidth=4in\n\\newbox\\LT@head\n\\newbox\\LT@firsthead\n\\newbox\\LT@foot\n\\newbox\\LT@lastfoot\n\\newcount\\LT@cols\n\\newcount\\LT@rows\n\\newcounter{LT@tables}\n\\newcounter{LT@chunks}[LT@tables]\n\\ifx\\c@table\\undefined\n  \\newcounter{table}\n  \\def\\fnum@table{\\tablename~\\thetable}\n\\fi\n\\ifx\\tablename\\undefined\n  \\def\\tablename{Table}\n\\fi\n\\newtoks\\LT@p@ftn\n\\mathchardef\\LT@end@pen=30000\n\\def\\longtable{%\n  \\par\n  \\ifx\\multicols\\@undefined\n  \\else\n     \\ifnum\\col@number>\\@ne\n       \\@twocolumntrue\n     \\fi\n  \\fi\n  \\if@twocolumn\n    \\LT@err{longtable not in 1-column mode}\\@ehc\n  \\fi\n  \\begingroup\n  \\@ifnextchar[\\LT@array{\\LT@array[x]}}\n\\def\\LT@array[#1]#2{%\n  \\refstepcounter{table}\\stepcounter{LT@tables}%\n  \\if l#1%\n    \\LTleft\\z@ \\LTright\\fill\n  \\else\\if r#1%\n    \\LTleft\\fill \\LTright\\z@\n  \\else\\if c#1%\n    \\LTleft\\fill \\LTright\\fill\n  \\fi\\fi\\fi\n  \\let\\LT@mcol\\multicolumn\n  \\let\\LT@@tabarray\\@tabarray\n  \\let\\LT@@hl\\hline\n  \\def\\@tabarray{%\n    \\let\\hline\\LT@@hl\n    \\LT@@tabarray}%\n  \\let\\\\\\LT@tabularcr\\let\\tabularnewline\\\\%\n  \\def\\newpage{\\noalign{\\break}}%\n  \\def\\pagebreak{\\noalign{\\ifnum`}=0\\fi\\@testopt{\\LT@no@pgbk-}4}%\n  \\def\\nopagebreak{\\noalign{\\ifnum`}=0\\fi\\@testopt\\LT@no@pgbk4}%\n  \\let\\hline\\LT@hline \\let\\kill\\LT@kill\\let\\caption\\LT@caption\n  \\@tempdima\\ht\\strutbox\n  \\let\\@endpbox\\LT@endpbox\n  \\ifx\\extrarowheight\\@undefined\n    \\let\\@acol\\@tabacol\n    \\let\\@classz\\@tabclassz \\let\\@classiv\\@tabclassiv\n    \\def\\@startpbox{\\vtop\\LT@startpbox}%\n    \\let\\@@startpbox\\@startpbox\n    \\let\\@@endpbox\\@endpbox\n    \\let\\LT@LL@FM@cr\\@tabularcr\n  \\else\n    \\advance\\@tempdima\\extrarowheight\n    \\col@sep\\tabcolsep\n    \\let\\@startpbox\\LT@startpbox\\let\\LT@LL@FM@cr\\@arraycr\n  \\fi\n  \\setbox\\@arstrutbox\\hbox{\\vrule\n    \\@height \\arraystretch \\@tempdima\n    \\@depth \\arraystretch \\dp \\strutbox\n    \\@width \\z@}%\n  \\let\\@sharp##\\let\\protect\\relax\n   \\begingroup\n    \\@mkpream{#2}%\n    \\xdef\\LT@bchunk{%\n       \\global\\advance\\c@LT@chunks\\@ne\n       \\global\\LT@rows\\z@\\setbox\\z@\\vbox\\bgroup\n       \\LT@setprevdepth\n       \\tabskip\\LTleft \\noexpand\\halign to\\hsize\\bgroup\n      \\tabskip\\z@ \\@arstrut \\@preamble \\tabskip\\LTright \\cr}%\n  \\endgroup\n  \\expandafter\\LT@nofcols\\LT@bchunk&\\LT@nofcols\n  \\LT@make@row\n  \\m@th\\let\\par\\@empty\n  \\everycr{}\\lineskip\\z@\\baselineskip\\z@\n  \\LT@bchunk}\n\\def\\LT@no@pgbk#1[#2]{\\penalty #1\\@getpen{#2}\\ifnum`{=0\\fi}}\n\\def\\LT@start{%\n  \\let\\LT@start\\endgraf\n  \\endgraf\\penalty\\z@\\vskip\\LTpre\n  \\dimen@\\pagetotal\n  \\advance\\dimen@ \\ht\\ifvoid\\LT@firsthead\\LT@head\\else\\LT@firsthead\\fi\n  \\advance\\dimen@ \\dp\\ifvoid\\LT@firsthead\\LT@head\\else\\LT@firsthead\\fi\n  \\advance\\dimen@ \\ht\\LT@foot\n  \\dimen@ii\\vfuzz\n  \\vfuzz\\maxdimen\n    \\setbox\\tw@\\copy\\z@\n    \\setbox\\tw@\\vsplit\\tw@ to \\ht\\@arstrutbox\n    \\setbox\\tw@\\vbox{\\unvbox\\tw@}%\n  \\vfuzz\\dimen@ii\n  \\advance\\dimen@ \\ht\n        \\ifdim\\ht\\@arstrutbox>\\ht\\tw@\\@arstrutbox\\else\\tw@\\fi\n  \\advance\\dimen@\\dp\n        \\ifdim\\dp\\@arstrutbox>\\dp\\tw@\\@arstrutbox\\else\\tw@\\fi\n  \\advance\\dimen@ -\\pagegoal\n  \\ifdim \\dimen@>\\z@\\vfil\\break\\fi\n      \\global\\@colroom\\@colht\n  \\ifvoid\\LT@foot\\else\n    \\advance\\vsize-\\ht\\LT@foot\n    \\global\\advance\\@colroom-\\ht\\LT@foot\n    \\dimen@\\pagegoal\\advance\\dimen@-\\ht\\LT@foot\\pagegoal\\dimen@\n    \\maxdepth\\z@\n  \\fi\n  \\ifvoid\\LT@firsthead\\copy\\LT@head\\else\\box\\LT@firsthead\\fi\\nobreak\n  \\output{\\LT@output}}\n\\def\\endlongtable{%\n  \\crcr\n  \\noalign{%\n    \\let\\LT@entry\\LT@entry@chop\n    \\xdef\\LT@save@row{\\LT@save@row}}%\n  \\LT@echunk\n  \\LT@start\n  \\unvbox\\z@\n  \\LT@get@widths\n  \\if@filesw\n    {\\let\\LT@entry\\LT@entry@write\\immediate\\write\\@auxout{%\n      \\gdef\\expandafter\\noexpand\n        \\csname LT@\\romannumeral\\c@LT@tables\\endcsname\n          {\\LT@save@row}}}%\n  \\fi\n  \\ifx\\LT@save@row\\LT@@save@row\n  \\else\n    \\LT@warn{Column \\@width s have changed\\MessageBreak\n             in table \\thetable}%\n    \\LT@final@warn\n  \\fi\n  \\endgraf\\penalty -\\LT@end@pen\n  \\endgroup\n  \\global\\@mparbottom\\z@\n  \\pagegoal\\vsize\n  \\endgraf\\penalty\\z@\\addvspace\\LTpost\n  \\ifvoid\\footins\\else\\insert\\footins{}\\fi}\n\\def\\LT@nofcols#1&{%\n  \\futurelet\\@let@token\\LT@n@fcols}\n\\def\\LT@n@fcols{%\n  \\advance\\LT@cols\\@ne\n  \\ifx\\@let@token\\LT@nofcols\n    \\expandafter\\@gobble\n  \\else\n    \\expandafter\\LT@nofcols\n  \\fi}\n\\def\\LT@tabularcr{%\n  \\relax\\iffalse{\\fi\\ifnum0=`}\\fi\n  \\@ifstar\n    {\\def\\crcr{\\LT@crcr\\noalign{\\nobreak}}\\let\\cr\\crcr\n     \\LT@t@bularcr}%\n    {\\LT@t@bularcr}}\n\\let\\LT@crcr\\crcr\n\\let\\LT@setprevdepth\\relax\n\\def\\LT@t@bularcr{%\n  \\global\\advance\\LT@rows\\@ne\n  \\ifnum\\LT@rows=\\LTchunksize\n    \\gdef\\LT@setprevdepth{%\n      \\prevdepth\\z@\\global\n      \\global\\let\\LT@setprevdepth\\relax}%\n    \\expandafter\\LT@xtabularcr\n  \\else\n    \\ifnum0=`{}\\fi\n    \\expandafter\\LT@LL@FM@cr\n  \\fi}\n\\def\\LT@xtabularcr{%\n  \\@ifnextchar[\\LT@argtabularcr\\LT@ntabularcr}\n\\def\\LT@ntabularcr{%\n  \\ifnum0=`{}\\fi\n  \\LT@echunk\n  \\LT@start\n  \\unvbox\\z@\n  \\LT@get@widths\n  \\LT@bchunk}\n\\def\\LT@argtabularcr[#1]{%\n  \\ifnum0=`{}\\fi\n  \\ifdim #1>\\z@\n    \\unskip\\@xargarraycr{#1}%\n  \\else\n    \\@yargarraycr{#1}%\n  \\fi\n  \\LT@echunk\n  \\LT@start\n  \\unvbox\\z@\n  \\LT@get@widths\n  \\LT@bchunk}\n\\def\\LT@echunk{%\n  \\crcr\\LT@save@row\\cr\\egroup\n  \\global\\setbox\\@ne\\lastbox\n    \\unskip\n  \\egroup}\n\\def\\LT@entry#1#2{%\n  \\ifhmode\\@firstofone{&}\\fi\\omit\n  \\ifnum#1=\\c@LT@chunks\n  \\else\n    \\kern#2\\relax\n  \\fi}\n\\def\\LT@entry@chop#1#2{%\n  \\noexpand\\LT@entry\n    {\\ifnum#1>\\c@LT@chunks\n       1}{0pt%\n     \\else\n       #1}{#2%\n     \\fi}}\n\\def\\LT@entry@write{%\n  \\noexpand\\LT@entry^^J%\n  \\@spaces}\n\\def\\LT@kill{%\n  \\LT@echunk\n  \\LT@get@widths\n  \\expandafter\\LT@rebox\\LT@bchunk}\n\\def\\LT@rebox#1\\bgroup{%\n  #1\\bgroup\n  \\unvbox\\z@\n  \\unskip\n  \\setbox\\z@\\lastbox}\n\\def\\LT@blank@row{%\n  \\xdef\\LT@save@row{\\expandafter\\LT@build@blank\n    \\romannumeral\\number\\LT@cols 001 }}\n\\def\\LT@build@blank#1{%\n  \\if#1m%\n    \\noexpand\\LT@entry{1}{0pt}%\n    \\expandafter\\LT@build@blank\n  \\fi}\n\\def\\LT@make@row{%\n  \\global\\expandafter\\let\\expandafter\\LT@save@row\n    \\csname LT@\\romannumeral\\c@LT@tables\\endcsname\n  \\ifx\\LT@save@row\\relax\n    \\LT@blank@row\n  \\else\n    {\\let\\LT@entry\\or\n     \\if!%\n         \\ifcase\\expandafter\\expandafter\\expandafter\\LT@cols\n         \\expandafter\\@gobble\\LT@save@row\n         \\or\n         \\else\n           \\relax\n         \\fi\n        !%\n     \\else\n       \\aftergroup\\LT@blank@row\n     \\fi}%\n  \\fi}\n\\let\\setlongtables\\relax\n\\def\\LT@get@widths{%\n  \\setbox\\tw@\\hbox{%\n    \\unhbox\\@ne\n    \\let\\LT@old@row\\LT@save@row\n    \\global\\let\\LT@save@row\\@empty\n    \\count@\\LT@cols\n    \\loop\n      \\unskip\n      \\setbox\\tw@\\lastbox\n    \\ifhbox\\tw@\n      \\LT@def@row\n      \\advance\\count@\\m@ne\n    \\repeat}%\n  \\ifx\\LT@@save@row\\@undefined\n    \\let\\LT@@save@row\\LT@save@row\n  \\fi}\n\\def\\LT@def@row{%\n  \\let\\LT@entry\\or\n  \\edef\\@tempa{%\n    \\ifcase\\expandafter\\count@\\LT@old@row\n    \\else\n      {1}{0pt}%\n    \\fi}%\n  \\let\\LT@entry\\relax\n  \\xdef\\LT@save@row{%\n    \\LT@entry\n    \\expandafter\\LT@max@sel\\@tempa\n    \\LT@save@row}}\n\\def\\LT@max@sel#1#2{%\n  {\\ifdim#2=\\wd\\tw@\n     #1%\n   \\else\n     \\number\\c@LT@chunks\n   \\fi}%\n  {\\the\\wd\\tw@}}\n\\def\\LT@hline{%\n  \\noalign{\\ifnum0=`}\\fi\n    \\penalty\\@M\n    \\futurelet\\@let@token\\LT@@hline}\n\\def\\LT@@hline{%\n  \\ifx\\@let@token\\hline\n    \\global\\let\\@gtempa\\@gobble\n    \\gdef\\LT@sep{\\penalty-\\@medpenalty\\vskip\\doublerulesep}%\n  \\else\n    \\global\\let\\@gtempa\\@empty\n    \\gdef\\LT@sep{\\penalty-\\@lowpenalty\\vskip-\\arrayrulewidth}%\n  \\fi\n  \\ifnum0=`{\\fi}%\n  \\multispan\\LT@cols\n     \\unskip\\leaders\\hrule\\@height\\arrayrulewidth\\hfill\\cr\n  \\noalign{\\LT@sep}%\n  \\multispan\\LT@cols\n     \\unskip\\leaders\\hrule\\@height\\arrayrulewidth\\hfill\\cr\n  \\noalign{\\penalty\\@M}%\n  \\@gtempa}\n\\def\\LT@caption{%\n  \\noalign\\bgroup\n    \\@ifnextchar[{\\egroup\\LT@c@ption\\@firstofone}\\LT@capti@n}\n\\def\\LT@c@ption#1[#2]#3{%\n  \\LT@makecaption#1\\fnum@table{#3}%\n  \\def\\@tempa{#2}%\n  \\ifx\\@tempa\\@empty\\else\n     {\\let\\\\\\space\n     \\addcontentsline{lot}{table}{\\protect\\numberline{\\thetable}{#2}}}%\n  \\fi}\n\\def\\LT@capti@n{%\n  \\@ifstar\n    {\\egroup\\LT@c@ption\\@gobble[]}%\n    {\\egroup\\@xdblarg{\\LT@c@ption\\@firstofone}}}\n\\def\\LT@makecaption#1#2#3{%\n  \\LT@mcol\\LT@cols c{\\hbox to\\z@{\\hss\\parbox[t]\\LTcapwidth{%\n    \\sbox\\@tempboxa{#1{#2: }#3}%\n    \\ifdim\\wd\\@tempboxa>\\hsize\n      #1{#2: }#3%\n    \\else\n      \\hbox to\\hsize{\\hfil\\box\\@tempboxa\\hfil}%\n    \\fi\n    \\endgraf\\vskip\\baselineskip}%\n  \\hss}}}\n\\def\\LT@output{%\n  \\ifnum\\outputpenalty <-\\@Mi\n    \\ifnum\\outputpenalty > -\\LT@end@pen\n      \\LT@err{floats and marginpars not allowed in a longtable}\\@ehc\n    \\else\n      \\setbox\\z@\\vbox{\\unvbox\\@cclv}%\n      \\ifdim \\ht\\LT@lastfoot>\\ht\\LT@foot\n        \\dimen@\\pagegoal\n        \\advance\\dimen@-\\ht\\LT@lastfoot\n        \\ifdim\\dimen@<\\ht\\z@\n          \\setbox\\@cclv\\vbox{\\unvbox\\z@\\copy\\LT@foot\\vss}%\n          \\@makecol\n          \\@outputpage\n          \\setbox\\z@\\vbox{\\box\\LT@head}%\n        \\fi\n      \\fi\n      \\global\\@colroom\\@colht\n      \\global\\vsize\\@colht\n      \\vbox\n        {\\unvbox\\z@\\box\\ifvoid\\LT@lastfoot\\LT@foot\\else\\LT@lastfoot\\fi}%\n    \\fi\n  \\else\n    \\setbox\\@cclv\\vbox{\\unvbox\\@cclv\\copy\\LT@foot\\vss}%\n    \\@makecol\n    \\@outputpage\n      \\global\\vsize\\@colroom\n    \\copy\\LT@head\\nobreak\n  \\fi}\n\\def\\LT@end@hd@ft#1{%\n  \\LT@echunk\n  \\ifx\\LT@start\\endgraf\n    \\LT@err\n     {Longtable head or foot not at start of table}%\n     {Increase LTchunksize}%\n  \\fi\n  \\setbox#1\\box\\z@\n  \\LT@get@widths\n  \\LT@bchunk}\n\\def\\endfirsthead{\\LT@end@hd@ft\\LT@firsthead}\n\\def\\endhead{\\LT@end@hd@ft\\LT@head}\n\\def\\endfoot{\\LT@end@hd@ft\\LT@foot}\n\\def\\endlastfoot{\\LT@end@hd@ft\\LT@lastfoot}\n\\def\\LT@startpbox#1{%\n  \\bgroup\n    \\let\\@footnotetext\\LT@p@ftntext\n    \\setlength\\hsize{#1}%\n    \\@arrayparboxrestore\n    \\vrule \\@height \\ht\\@arstrutbox \\@width \\z@}\n\\def\\LT@endpbox{%\n  \\@finalstrut\\@arstrutbox\n  \\egroup\n  \\the\\LT@p@ftn\n  \\global\\LT@p@ftn{}%\n  \\hfil}\n\\def\\LT@p@ftntext#1{%\n  \\edef\\@tempa{\\the\\LT@p@ftn\\noexpand\\footnotetext[\\the\\c@footnote]}%\n  \\global\\LT@p@ftn\\expandafter{\\@tempa{#1}}}%\n\n\\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}\n\\endinput\n%%\n%% End of file `longtable.sty'.\n"
  },
  {
    "path": "docs/latex/md__c_h_a_n_g_e_l_o_g.tex",
    "content": "All notable changes to this project will be documented in this file.\n\nThe format is based on \\href{http://keepachangelog.com/en/1.0.0/}{\\texttt{ Keep a Changelog}} and this project adheres to \\href{http://semver.org/spec/v2.0.0.html}{\\texttt{ Semantic Versioning}}.\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md1}{}\\doxysection{\\mbox{[}\\+Unreleased\\mbox{]}}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md1}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md2}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md2}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md3}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md3}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md4}{}\\doxysection{\\mbox{[}3.\\+5.\\+0\\mbox{]} -\\/ 2022-\\/09-\\/06}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md4}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md5}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md5}\n\n\\begin{DoxyItemize}\n\\item Ability to {\\ttfamily persist} Apple, Huawei, and Google purchase receipts in the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} database. This is set to {\\ttfamily true} by default in order to allow the server to detect replay attacks.\n\\item Added a {\\ttfamily Seen\\+Before} property to {\\ttfamily IApi\\+Validated\\+Purchase}.\n\\item Added {\\ttfamily List\\+Subscriptions\\+Async} which returns a list of the user\\textquotesingle{}s subscriptions.\n\\item Added {\\ttfamily Validate\\+Subscription\\+Apple\\+Async} which returns details about a user\\textquotesingle{}s Apple subscription.\n\\item Added {\\ttfamily Validate\\+Subscription\\+Google\\+Async} which returns details about a user\\textquotesingle{}s Google subscription.\n\\item Added {\\ttfamily Get\\+Subscription\\+Async} which returns a subscription for the provided product id.\n\\item Added support for {\\ttfamily count\\+Multiple} in {\\ttfamily Add\\+Matchmaker\\+Async} and {\\ttfamily Add\\+Matchmaker\\+Party\\+Async}.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md6}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md6}\n\n\\begin{DoxyItemize}\n\\item {\\ttfamily Validated\\+Purchase\\+Environment} has been renamed to {\\ttfamily Api\\+Store\\+Environment}.\n\\item {\\ttfamily Validated\\+Purchase\\+Store} has been renamed to {\\ttfamily Api\\+Store\\+Provider}.\n\\item Removed obsolete client methods that accept a {\\ttfamily Cancellation\\+Token\\+Source}. These have been replaced in favor of methods that accept a {\\ttfamily Cancellation\\+Token} that were added in v3.\\+3.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md7}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md7}\n\n\\begin{DoxyItemize}\n\\item Fixed an issue with Socket Closed event taking a significant length of time or not firing at all when internet connection is lost.\n\\item Fixed an issue with {\\ttfamily Socket\\+Closed} event taking a significant length of time or not firing at all when internet connection is lost.\n\\item Fixed an issue that would occur when sending messages over the socket from multiple threads.\n\\item Fixed automatic retry seeding to be random across devices.\n\\item Fixed an issue when parsing unquoted numbers as strings in Tiny\\+Json.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md8}{}\\doxysection{\\mbox{[}3.\\+4.\\+0\\mbox{]} -\\/ 2022-\\/04-\\/28}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md8}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md9}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md9}\n\n\\begin{DoxyItemize}\n\\item Allow max message size limit with socket messages to be overridden in the adapter.\n\\item Relayed multiplayer matches can now be created with a custom name (i.\\+e. room name).\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md10}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md10}\n\n\\begin{DoxyItemize}\n\\item Fix background read loop to update \\textquotesingle{}Is\\+Connecting\\textquotesingle{} and \\textquotesingle{}Is\\+Connected\\textquotesingle{} when close is detected.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md11}{}\\doxysection{\\mbox{[}3.\\+3.\\+0\\mbox{]} -\\/ 2022-\\/01-\\/24}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md11}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md12}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md12}\n\n\\begin{DoxyItemize}\n\\item Add overload methods in Client which take a Cancellation\\+Token. Thanks @gamecentric.\n\\item Add Web\\+Socket\\+Stdlib\\+Adapter allows the codebase to be used in WASM and Blazor projects. Thanks @mattkanwisher.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md13}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md13}\n\n\\begin{DoxyItemize}\n\\item Use Dual\\+Mode in Tcp\\+Client to handle NAT64 overlay networks (some mobile carriers).\n\\item Refactor the socket adapter design to use Tasks (previously avoided for Unity Web\\+GL compat.).\n\\item Socket messages which exceed the internal buffer size now generate an \\char`\\\"{}\\+Internal\\+Buffer\\+Overflow\\+Exception\\char`\\\"{} type.\n\\item A socket connect made on an already connected socket will no longer raise an exception.\n\\item Propagate up the \\char`\\\"{}\\+Web\\+Socket\\+Exception\\char`\\\"{} type thrown on socket messages sent over a disconnected socket.\n\\item Update bundled \\char`\\\"{}\\+Ninja.\\+Web\\+Sockets\\char`\\\"{} library to commit 0b698a733f0e8711da7a5854154fe7d8a01fbd06.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md14}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md14}\n\n\\begin{DoxyItemize}\n\\item Expose base exception if retry handler fails.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md15}{}\\doxysection{\\mbox{[}3.\\+2.\\+0\\mbox{]} -\\/ 2021-\\/10-\\/11}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md15}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md16}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md16}\n\n\\begin{DoxyItemize}\n\\item Added additional group listing filters.\n\\item Added ability to overwrite leaderboard/tournament ranking operators from the client.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md17}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md17}\n\n\\begin{DoxyItemize}\n\\item Fixed url-\\/safe encoding of query params that were passed to the client as arrays of strings.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md18}{}\\doxysection{\\mbox{[}3.\\+1.\\+1\\mbox{]} -\\/ 2021-\\/08-\\/19}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md18}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md19}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md19}\n\n\\begin{DoxyItemize}\n\\item Removed {\\ttfamily auto\\+Refresh\\+Session} from overloaded {\\ttfamily Client} constructors. This can still be customized with the base {\\ttfamily Client} constructor. This is a workaround for an internal compiler error in Unity\\textquotesingle{}s Web\\+GL toolchain.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md20}{}\\doxysection{\\mbox{[}3.\\+1.\\+0\\mbox{]} -\\/ 2021-\\/08-\\/11}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md20}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md21}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md21}\n\n\\begin{DoxyItemize}\n\\item Added ability for user to retry requests if they fail due to a transient network error.\n\\item Added ability for user to cancel requests that are in-\\/flight.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md22}{}\\doxysection{\\mbox{[}3.\\+0.\\+0\\mbox{]} -\\/ 2021-\\/07-\\/14}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md22}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md23}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md23}\n\n\\begin{DoxyItemize}\n\\item The language tag for the user can be configured with the socket on connect.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md24}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md24}\n\n\\begin{DoxyItemize}\n\\item An {\\ttfamily IParty\\+Matchmaker\\+Ticket} is now received by the party leader when they add their party to the matchmaker via {\\ttfamily Add\\+Matchmaker\\+Party\\+Async}.\n\\item Renamed {\\ttfamily Promote\\+Party\\+Member} to {\\ttfamily Promote\\+Party\\+Member\\+Async}.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md25}{}\\doxysection{\\mbox{[}2.\\+9.\\+3\\mbox{]} -\\/ 2021-\\/06-\\/17}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md25}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md26}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md26}\n\n\\begin{DoxyItemize}\n\\item Fixed issue where refreshing a session with metadata threw an exception due to the key already existing.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md27}{}\\doxysection{\\mbox{[}2.\\+9.\\+2\\mbox{]} -\\/ 2021-\\/05-\\/21}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md27}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md28}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md28}\n\n\\begin{DoxyItemize}\n\\item Fixed issue where {\\ttfamily IUser\\+Presence} objects were not being deserialized properly by the client as part of the {\\ttfamily IParty} object.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md29}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md29}\n\n\\begin{DoxyItemize}\n\\item Add\\+Matchmaker\\+Party\\+Async now returns an IParty\\+Matchmaker\\+Ticket.\n\\item Renamed Promote\\+Party\\+Member to Promote\\+Party\\+Member\\+Async.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md30}{}\\doxysection{\\mbox{[}2.\\+9.\\+1\\mbox{]} -\\/ 2021-\\/05-\\/19}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md30}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md31}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md31}\n\n\\begin{DoxyItemize}\n\\item The {\\ttfamily Socket.\\+Received\\+Party} event can now be subscribed to in order to listen for acceptance events from the leader of a closed party.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md32}{}\\doxysection{\\mbox{[}2.\\+9.\\+0\\mbox{]} -\\/ 2021-\\/05-\\/15}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md32}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md33}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md33}\n\n\\begin{DoxyItemize}\n\\item A session can be refreshed on demand with \\char`\\\"{}\\+Session\\+Refresh\\+Async\\char`\\\"{} method.\n\\item Session and/or refresh tokens can now be disabled with a client logout.\n\\item The client now supports session auto-\\/refresh using refresh tokens. This is enabled by default.\n\\item New socket RPC and Match\\+Send methods using Array\\+Segment to allow developers to manage memory re-\\/use.\n\\item Add IAP validation APIs for purchase receipts with Apple App Store, Google Play Store, and Huawei App\\+Gallery.\n\\item Add Realtime Parties feature.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md34}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md34}\n\n\\begin{DoxyItemize}\n\\item Use lock object with socket operations instead of Concurrent\\+Dictionary as a workaround for a Unity engine Web\\+GL regression.\n\\item Avoid use of extension methods as a workaround for a Unity engine Web\\+GL regression.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md35}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md35}\n\n\\begin{DoxyItemize}\n\\item Parse HTTP responses defensively in case of bad load balancer configurations.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md36}{}\\doxysection{\\mbox{[}2.\\+8.\\+0\\mbox{]} -\\/ 2020-\\/02-\\/19}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md36}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md37}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md37}\n\n\\begin{DoxyItemize}\n\\item Listing tournaments can now be done without providing start or end time filters.\n\\item Can now import Steam friends after authenticating or linking to a Steam account.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md38}{}\\doxysection{\\mbox{[}2.\\+7.\\+1\\mbox{]} -\\/ 2020-\\/02-\\/1}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md38}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md39}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md39}\n\n\\begin{DoxyItemize}\n\\item HTTP Client now properly reads off timeout value.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md40}{}\\doxysection{\\mbox{[}2.\\+7.\\+0\\mbox{]} -\\/ 2020-\\/10-\\/19}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md40}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md41}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md41}\n\n\\begin{DoxyItemize}\n\\item Upgrade code generator to new Swagger format. \n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md42}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md42}\n\n\\begin{DoxyItemize}\n\\item Properly pass server key to Apple auth calls.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md43}{}\\doxysection{\\mbox{[}2.\\+6.\\+0\\mbox{]} -\\/ 2020-\\/09-\\/21}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md43}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md44}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md44}\n\n\\begin{DoxyItemize}\n\\item Added Apple single sign-\\/on support.\n\\item Added Steam single sign-\\/on support.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md45}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md45}\n\n\\begin{DoxyItemize}\n\\item Fixed serialization of HTTP API error messages.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md46}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md46}\n\n\\begin{DoxyItemize}\n\\item Silenced a noisy but benign exception related to web socket connections.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md47}{}\\doxysection{\\mbox{[}2.\\+5.\\+0\\mbox{]} -\\/ 2020-\\/08-\\/12}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md47}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md48}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md48}\n\n\\begin{DoxyItemize}\n\\item Add parsing support for the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Console API to the code generator.\n\\item Add support for emitting custom events to the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.\n\\item Add ban and demote API to the client.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md49}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md49}\n\n\\begin{DoxyItemize}\n\\item Update Tiny\\+Json packaged dependency to the \\textquotesingle{}01c586d\\textquotesingle{} commit.\n\\item Remove usage of \\char`\\\"{}\\+System.\\+Diagnostic.\\+Tracing\\char`\\\"{} from the codebase. This improves compatibility with Unity engine.\n\\item Use a Preserve annotation to mark fields which should not be code stripped at build time. This improves compatibility with Unity engine.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md50}{}\\doxysection{\\mbox{[}2.\\+4.\\+0\\mbox{]} -\\/ 2020-\\/05-\\/04 \\+:star\\+:}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md50}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md51}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md51}\n\n\\begin{DoxyItemize}\n\\item New List\\+Storage\\+Objects\\+Async method and marked List\\+Storage\\+Objects as obsolete.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md52}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md52}\n\n\\begin{DoxyItemize}\n\\item List\\+Users\\+Storage\\+Objects\\+Async now uses default arguments for optional inputs.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md53}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md53}\n\n\\begin{DoxyItemize}\n\\item Prevent Invalid\\+Operation\\+Exception caused when socket connect task is already completed.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md54}{}\\doxysection{\\mbox{[}2.\\+3.\\+1\\mbox{]} -\\/ 2019-\\/09-\\/21}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md54}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md55}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md55}\n\n\\begin{DoxyItemize}\n\\item Use workaround for IPv6 bug in Tcp\\+Client with Mono runtime used with Unity engine.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md56}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md56}\n\n\\begin{DoxyItemize}\n\\item Add missing metadata to match join message.\n\\item Add discrete channel identifier in all channel related messages.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md57}{}\\doxysection{\\mbox{[}2.\\+3.\\+0\\mbox{]} -\\/ 2019-\\/09-\\/02}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md57}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md58}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md58}\n\n\\begin{DoxyItemize}\n\\item Follow users by username for status updates.\n\\item Decode session variables from the auth token.\n\\item Paginate friends, groups, and user\\textquotesingle{}s group listings.\n\\item Filter friends, groups, and user\\textquotesingle{}s group listings.\n\\item Send session variables with authenticate requests.\n\\item Socket messages now use a send timeout of 15 seconds to write to the buffer.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md59}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md59}\n\n\\begin{DoxyItemize}\n\\item Increase the default socket timeout to 30 seconds.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md60}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md60}\n\n\\begin{DoxyItemize}\n\\item Use the connect timeout value in native socket connect attempts.\n\\item Link the token source across socket connect and close tasks.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md61}{}\\doxysection{\\mbox{[}2.\\+2.\\+2\\mbox{]} -\\/ 2019-\\/07-\\/02}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md61}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md62}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md62}\n\n\\begin{DoxyItemize}\n\\item Don\\textquotesingle{}t synchronize the socket receive with the current thread context.\n\\item Remove workaround for Mono runtime usage with newer TLS negotation.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md63}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md63}\n\n\\begin{DoxyItemize}\n\\item Resolve deadlock in socket dispose with synchronization context.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md64}{}\\doxysection{\\mbox{[}2.\\+2.\\+1\\mbox{]} -\\/ 2019-\\/06-\\/19}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md64}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md65}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md65}\n\n\\begin{DoxyItemize}\n\\item New comparison methods on some domain types.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md66}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md66}\n\n\\begin{DoxyItemize}\n\\item When an auth token is decoded into a session but is null or empty now return null.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md67}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md67}\n\n\\begin{DoxyItemize}\n\\item Awaited socket callback tasks are now canceled when the socket adapter is closed and cleared.\n\\item Awaited socket callback tasks are now canceled when the socket adapter sends while disconnected.\n\\item Restored missing helper object with storage writes.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md68}{}\\doxysection{\\mbox{[}2.\\+2.\\+0\\mbox{]} -\\/ 2019-\\/06-\\/06}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md68}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md69}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md69}\n\n\\begin{DoxyItemize}\n\\item Add tournaments API.\n\\item Add leaderboards around owner API.\n\\item Provide more overload methods to the socket object for simpler usage.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md70}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md70}\n\n\\begin{DoxyItemize}\n\\item Update Tiny\\+Json packaged dependency to latest version.\n\\item Replace Web\\+Socket\\+Listener with a new socket library.\n\\item Flatten use of Tasks in method responses.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md71}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md71}\n\n\\begin{DoxyItemize}\n\\item Logger is now initialized correctly with socket debugging.\n\\item Stream data state is correctly deserialized from socket messages.\n\\item Fix callback ID on chat and match leave messages.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md72}{}\\doxysection{\\mbox{[}2.\\+1.\\+0\\mbox{]} -\\/ 2018-\\/08-\\/17}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md72}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md73}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md73}\n\n\\begin{DoxyItemize}\n\\item Detect socket message encodings.\n\\item All authenticate methods can now pass in username and create options.\n\\item Support gzip compress/decompress on Api\\+Client methods.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md74}{}\\doxysubsection{Changed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md74}\n\n\\begin{DoxyItemize}\n\\item Update the code generator to handle POST/\\+DELETE query params.\n\\item Match listings can now pass through {\\ttfamily null} to indicate no filters.\n\\item Api\\+Client exceptions now contain HTTP status codes.\n\\item Update lowlevel websocket driver due to performance issues on AOT targets like i\\+OS with Unity.\n\\item Disable request decompression by default due to Unity+\\+Android issue.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md75}{}\\doxysubsection{Fixed}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md75}\n\n\\begin{DoxyItemize}\n\\item Reuse the HTTP client across all methods.\n\\end{DoxyItemize}\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md76}{}\\doxysection{\\mbox{[}2.\\+0.\\+0\\mbox{]} -\\/ 2018-\\/06-\\/18}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md76}\n\\hypertarget{md__c_h_a_n_g_e_l_o_g_autotoc_md77}{}\\doxysubsection{Added}\\label{md__c_h_a_n_g_e_l_o_g_autotoc_md77}\n\n\\begin{DoxyItemize}\n\\item Initial public release.\n\\end{DoxyItemize}\n\nThis version starts at 2.\\+0 to match the initial server version it supports. "
  },
  {
    "path": "docs/latex/md__r_e_a_d_m_e.tex",
    "content": "\\hypertarget{md__r_e_a_d_m_e_autotoc_md84}{}\\doxysection{Nakama}\\label{md__r_e_a_d_m_e_autotoc_md84}\n\\begin{quote}\n.NET client for \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server written in C\\#. \\end{quote}\n\\href{https://github.com/heroiclabs/nakama}{\\texttt{ Nakama}} is an open-\\/source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much \\href{https://heroiclabs.com}{\\texttt{ more}}.\n\nThis client implements the full API and socket options with the server. It\\textquotesingle{}s written in C\\# with minimal dependencies to support Unity, Xamarin, Godot, XNA, and other engines and frameworks.\n\nFull documentation is online -\\/ \\href{https://heroiclabs.com/docs}{\\texttt{ https\\+://heroiclabs.\\+com/docs}}\\hypertarget{md__r_e_a_d_m_e_autotoc_md85}{}\\doxysubsection{Getting Started}\\label{md__r_e_a_d_m_e_autotoc_md85}\nYou\\textquotesingle{}ll need to setup the server and database before you can connect with the client. The simplest way is to use Docker but have a look at the \\href{https://github.com/heroiclabs/nakama\\#getting-started}{\\texttt{ server documentation}} for other options.\n\n\n\\begin{DoxyEnumerate}\n\\item Install and run the servers. Follow these \\href{https://heroiclabs.com/docs/install-docker-quickstart}{\\texttt{ instructions}}.\n\\item Download the client from the \\href{https://github.com/heroiclabs/nakama-dotnet/releases}{\\texttt{ releases page}} and import it into your project. You can also build from source.\n\\item Use the connection credentials to build a client object.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{\\textcolor{comment}{// using Nakama;}}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} scheme = \\textcolor{stringliteral}{\"{}http\"{}};}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} host = \\textcolor{stringliteral}{\"{}127.0.0.1\"{}};}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{int} port = 7350;}\n\\DoxyCodeLine{\\textcolor{keyword}{const} \\textcolor{keywordtype}{string} serverKey = \\textcolor{stringliteral}{\"{}defaultkey\"{}};}\n\\DoxyCodeLine{var client = \\textcolor{keyword}{new} Client(scheme, host, port, serverKey);}\n\n\\end{DoxyCode}\n\n\\end{DoxyEnumerate}\\hypertarget{md__r_e_a_d_m_e_autotoc_md86}{}\\doxysubsection{Usage}\\label{md__r_e_a_d_m_e_autotoc_md86}\nThe client object has many methods to execute various features in the server or open realtime socket connections with the server.\\hypertarget{md__r_e_a_d_m_e_autotoc_md87}{}\\doxysubsubsection{Authenticate}\\label{md__r_e_a_d_m_e_autotoc_md87}\nThere\\textquotesingle{}s a variety of ways to \\href{https://heroiclabs.com/docs/authentication}{\\texttt{ authenticate}} with the server. Authentication can create a user if they don\\textquotesingle{}t already exist with those credentials. It\\textquotesingle{}s also easy to authenticate with a social profile from Google Play Games, Facebook, Game Center, etc.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var email = \\textcolor{stringliteral}{\"{}super@heroes.com\"{}};}\n\\DoxyCodeLine{var password = \\textcolor{stringliteral}{\"{}batsignal\"{}};}\n\\DoxyCodeLine{var session = await client.AuthenticateEmailAsync(email, password);}\n\\DoxyCodeLine{System.Console.WriteLine(session);}\n\n\\end{DoxyCode}\n\\hypertarget{md__r_e_a_d_m_e_autotoc_md88}{}\\doxysubsubsection{Sessions}\\label{md__r_e_a_d_m_e_autotoc_md88}\nWhen authenticated the server responds with an auth token (JWT) which contains useful properties and gets deserialized into a {\\ttfamily Session} object.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{System.Console.WriteLine(session.AuthToken); \\textcolor{comment}{// raw JWT token}}\n\\DoxyCodeLine{System.Console.WriteLine(session.RefreshToken); \\textcolor{comment}{// raw JWT token.}}\n\\DoxyCodeLine{System.Console.WriteLine(session.UserId);}\n\\DoxyCodeLine{System.Console.WriteLine(session.Username);}\n\\DoxyCodeLine{System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session has expired: \\{0\\}\"{}}, session.IsExpired);}\n\\DoxyCodeLine{System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session expires at: \\{0\\}\"{}}, session.ExpireTime);}\n\n\\end{DoxyCode}\n\n\nIt is recommended to store the auth token from the session and check at startup if it has expired. If the token has expired you must reauthenticate. The expiry time of the token can be changed as a setting in the server.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var authToken = \\textcolor{stringliteral}{\"{}restored from somewhere\"{}};}\n\\DoxyCodeLine{var refreshToken = \\textcolor{stringliteral}{\"{}restored from somewhere\"{}};}\n\\DoxyCodeLine{var session = Session.Restore(authToken, refreshToken);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{\\textcolor{comment}{// Check whether a session is close to expiry.}}\n\\DoxyCodeLine{\\textcolor{keywordflow}{if} (session.HasExpired(DateTime.UtcNow.AddDays(1)))}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    \\textcolor{keywordflow}{try}}\n\\DoxyCodeLine{    \\{}\n\\DoxyCodeLine{        session = await client.SessionRefreshAsync(session);}\n\\DoxyCodeLine{    \\}}\n\\DoxyCodeLine{    \\textcolor{keywordflow}{catch} (ApiResponseException e)}\n\\DoxyCodeLine{    \\{}\n\\DoxyCodeLine{        System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Session can no longer be refreshed. Must reauthenticate!\"{}});}\n\\DoxyCodeLine{    \\}}\n\\DoxyCodeLine{\\}}\n\n\\end{DoxyCode}\n\n\n\\+:warning\\+: NOTE\\+: The length of the lifetime of a session can be set on the server with the \\char`\\\"{}-\\/-\\/session.\\+token\\+\\_\\+expiry\\+\\_\\+sec\\char`\\\"{} command flag argument. The lifetime of the refresh token for a session can be set on the server with the \\char`\\\"{}-\\/-\\/session.\\+refresh\\+\\_\\+token\\+\\_\\+expiry\\+\\_\\+sec\\char`\\\"{} command flag.\\hypertarget{md__r_e_a_d_m_e_autotoc_md89}{}\\doxysubsubsection{Requests}\\label{md__r_e_a_d_m_e_autotoc_md89}\nThe client includes lots of builtin APIs for various features of the game server. These can be accessed with the async methods. It can also call custom logic in RPC functions on the server. These can also be executed with a socket object.\n\nAll requests are sent with a session object which authorizes the client.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session);}\n\\DoxyCodeLine{System.Console.WriteLine(account.User.Id);}\n\\DoxyCodeLine{System.Console.WriteLine(account.User.Username);}\n\\DoxyCodeLine{System.Console.WriteLine(account.Wallet);}\n\n\\end{DoxyCode}\n\n\nRequests can be supplied with a retry configurations in cases of transient network or server errors.\n\nA single configuration can be used to control all request retry behavior\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var retryConfiguration = \\textcolor{keyword}{new} RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate \\{ System.Console.Writeline(\\textcolor{stringliteral}{\"{}about to retry.\"{}}); \\});}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{client.GlobalRetryConfiguration = retryConfiguration;}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session);}\n\n\\end{DoxyCode}\n\n\nOr, the configuration can be supplied on a per-\\/request basis\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var retryConfiguration = \\textcolor{keyword}{new} RetryConfiguration(baseDelayMs: 1000, maxRetries: 5, delegate \\{ System.Console.Writeline(\\textcolor{stringliteral}{\"{}about to retry.\"{}}); \\});}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session, retryConfiguration);}\n\n\\end{DoxyCode}\n\n\nPer-\\/request retry configurations override the global retry configuration.\n\nRequests also can be supplied with a cancellation token if you need to cancel them mid-\\/flight\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var canceller = \\textcolor{keyword}{new} CancellationTokenSource();}\n\\DoxyCodeLine{var account = await client.GetAccountAsync(session, retryConfiguration: \\textcolor{keyword}{null}, canceller);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{await Task.Delay(25);}\n\\DoxyCodeLine{}\n\\DoxyCodeLine{canceller.Cancel(); \\textcolor{comment}{// will raise a TaskCanceledException}}\n\n\\end{DoxyCode}\n\\hypertarget{md__r_e_a_d_m_e_autotoc_md90}{}\\doxysubsubsection{Socket}\\label{md__r_e_a_d_m_e_autotoc_md90}\nThe client can create one or more sockets with the server. Each socket can have it\\textquotesingle{}s own event listeners registered for responses received from the server.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{var socket = Socket.From(client);}\n\\DoxyCodeLine{socket.Connected += () =>}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Socket connected.\"{}});}\n\\DoxyCodeLine{\\};}\n\\DoxyCodeLine{socket.Closed += () =>}\n\\DoxyCodeLine{\\{}\n\\DoxyCodeLine{    System.Console.WriteLine(\\textcolor{stringliteral}{\"{}Socket closed.\"{}});}\n\\DoxyCodeLine{\\};}\n\\DoxyCodeLine{socket.ReceivedError += e => System.Console.WriteLine(e);}\n\\DoxyCodeLine{await socket.ConnectAsync(session);}\n\n\\end{DoxyCode}\n\\hypertarget{md__r_e_a_d_m_e_autotoc_md91}{}\\doxysubsection{Contribute}\\label{md__r_e_a_d_m_e_autotoc_md91}\nThe development roadmap is managed as Git\\+Hub issues and pull requests are welcome. If you\\textquotesingle{}re interested to improve the code please open an issue to discuss the changes or drop in and discuss it in the \\href{https://forum.heroiclabs.com}{\\texttt{ community forum}}.\\hypertarget{md__r_e_a_d_m_e_autotoc_md92}{}\\doxysubsubsection{Source Builds}\\label{md__r_e_a_d_m_e_autotoc_md92}\nThe codebase can be built with the \\href{https://docs.microsoft.com/en-us/dotnet/core/tools}{\\texttt{ Dotnet CLI}}. All dependencies are downloaded at build time with Nuget.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet build src/Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\n\nFor release builds use\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet build -\\/c Release /p:AssemblyVersion=2.0.0.0 Nakama/Nakama.csproj}\n\\DoxyCodeLine{// For Nuget packaging}\n\\DoxyCodeLine{dotnet pack -\\/p:AssemblyVersion=2.0.0.0 -\\/p:PackageVersion=2.0.0 -\\/c Release Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\\hypertarget{md__r_e_a_d_m_e_autotoc_md93}{}\\doxysubsubsection{Run Tests}\\label{md__r_e_a_d_m_e_autotoc_md93}\nTo run tests you will need to run the server and database. Most tests are written as integration tests which execute against the server. A quick approach we use with our test workflow is to use the Docker compose file described in the \\href{https://heroiclabs.com/docs/install-docker-quickstart}{\\texttt{ documentation}}.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{docker-\\/compose -\\/f ./docker-\\/compose-\\/postgres.yml up}\n\\DoxyCodeLine{dotnet test tests/Nakama.Tests/Nakama.Tests.csproj}\n\n\\end{DoxyCode}\n\n\nTo run a specific test, pass the fully qualified name of the method to {\\ttfamily dotnet test -\\/-\\/filter}\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet test -\\/-\\/filter \"{}Nakama.Tests.Api.GroupTest.ShouldPromoteAndDemoteUsers\"{}}\n\n\\end{DoxyCode}\n\n\nIf you\\textquotesingle{}d like to attach a Visual Studio debugger to a test, set {\\ttfamily VSTEST\\+\\_\\+\\+HOST\\+\\_\\+\\+DEBUG} to {\\ttfamily true} in your shell environment and run {\\ttfamily dotnet test}. Attach the debugger to the process identified by the console.\\hypertarget{md__r_e_a_d_m_e_autotoc_md94}{}\\doxysubsubsection{Generate Docs}\\label{md__r_e_a_d_m_e_autotoc_md94}\nnakama-\\/dotnet API docs are generated with Doxygen and deployed to Git\\+Hub pages.\n\nWhen changing the API comments, rerun Doxygen and commit the changes in {\\ttfamily docs/$\\ast$}.\n\nTo run Doxygen\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{brew install doxygen}\n\\DoxyCodeLine{cd docs/}\n\\DoxyCodeLine{doxygen}\n\n\\end{DoxyCode}\n\\hypertarget{md__r_e_a_d_m_e_autotoc_md95}{}\\doxysection{Satori}\\label{md__r_e_a_d_m_e_autotoc_md95}\nThis repository also contains the \\mbox{\\hyperlink{namespace_satori}{Satori}} client for use with the \\href{https://heroiclabs.com/satori/}{\\texttt{ Satori Liveops Server}}.\n\nIt follows the same authentication patterns as \\mbox{\\hyperlink{namespace_nakama}{Nakama}} but is used for managing your live game via sending analytics events, updating properties, getting feature flags and experiments, and more.\n\nIn order to run tests for \\mbox{\\hyperlink{namespace_satori}{Satori}}, create sample data via the \\mbox{\\hyperlink{namespace_satori}{Satori}} console.\n\nThen run {\\ttfamily dotnet test} from this directory.\\hypertarget{md__r_e_a_d_m_e_autotoc_md96}{}\\doxysection{Licenses}\\label{md__r_e_a_d_m_e_autotoc_md96}\nThis project is licensed under the \\href{https://github.com/heroiclabs/nakama-dotnet/blob/master/LICENSE}{\\texttt{ Apache-\\/2 License}}.\\hypertarget{md__r_e_a_d_m_e_autotoc_md97}{}\\doxysection{Special Thanks}\\label{md__r_e_a_d_m_e_autotoc_md97}\nThanks to Alex Parker (@zanders3) for the excellent \\href{https://github.com/zanders3/json}{\\texttt{ json}} library and David Haig (@ninjasource) for \\href{https://github.com/ninjasource/Ninja.WebSockets}{\\texttt{ Ninja.\\+Web\\+Sockets}}. "
  },
  {
    "path": "docs/latex/md__r_e_l_e_a_s_e_i_n_s_t.tex",
    "content": "These instructions guide the release process for new official \\mbox{\\hyperlink{namespace_nakama}{Nakama}} client SDK build and releases to \\href{https://www.nuget.org/packages/NakamaClient/}{\\texttt{ Nuget}}.\\hypertarget{md__r_e_l_e_a_s_e_i_n_s_t_autotoc_md92}{}\\doxysection{Steps}\\label{md__r_e_l_e_a_s_e_i_n_s_t_autotoc_md92}\n\n\\begin{DoxyEnumerate}\n\\item Update and tidy up the CHANGELOG.\n\\item Run the test suite for the codebase. See the README for steps.\n\\item Create the release commit and tag it.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{git add CHANGELOG}\n\\DoxyCodeLine{git commit -\\/m \"{}Nakama .NET <version> release.\"{}}\n\\DoxyCodeLine{git tag -\\/a <version> -\\/m \"{}<version>\"{}}\n\\DoxyCodeLine{git push origin <version> master}\n\n\\end{DoxyCode}\n\n\\item Create a release build of the code.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet build -\\/c Release ./Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\n\\item Create a release on Git\\+Hub\\+: \\href{https://github.com/heroiclabs/nakama-dotnet/releases/new}{\\texttt{ https\\+://github.\\+com/heroiclabs/nakama-\\/dotnet/releases/new}}\n\\item Copy the CHANGELOG section to the release notes. Upload the release DLL to be part of the Git\\+Hub release. Publish it.\n\\item Package and push the release to Nuget. Don\\textquotesingle{}t put a {\\ttfamily v} prefix before the version number.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet pack -\\/p:AssemblyVersion=<package-\\/version> -\\/p:PackageVersion=<package-\\/version> -\\/c Release ./Nakama/Nakama.csproj}\n\n\\end{DoxyCode}\n\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{dotnet nuget push ./Nakama/bin/Release/NakamaClient.<package-\\/version>.nupkg -\\/k \"{}somekey\"{} -\\/s https://api.nuget.org/v3/index.json}\n\n\\end{DoxyCode}\n\n\\item Update CHANGELOG with section for new unreleased changes.\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{git add CHANGELOG.md}\n\\DoxyCodeLine{git commit -\\/m \"{}Set new development version.\"{}}\n\\DoxyCodeLine{git push origin master}\n\n\\end{DoxyCode}\n \n\\end{DoxyEnumerate}"
  },
  {
    "path": "docs/latex/md__satori__tests__r_e_a_d_m_e.tex",
    "content": ""
  },
  {
    "path": "docs/latex/md_codegen__r_e_a_d_m_e.tex",
    "content": "\\begin{quote}\nA util tool to generate a client from the Swagger spec of \\mbox{\\hyperlink{namespace_nakama}{Nakama}}\\textquotesingle{}s server API. \\end{quote}\n\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md78}{}\\doxysection{Usage}\\label{md_codegen__r_e_a_d_m_e_autotoc_md78}\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{go run main.go \"{}\\$GOPATH/src/github.com/heroiclabs/nakama/apigrpc/apigrpc.swagger.json\"{} \"{}Nakama\"{} > ../Nakama/ApiClient.gen.cs}\n\n\\end{DoxyCode}\n\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md79}{}\\doxysubsection{Nakama Console API}\\label{md_codegen__r_e_a_d_m_e_autotoc_md79}\nTo generate a client for the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Console, run the following\\+:\n\n\n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{go run main.go \"{}\\$GOPATH/src/github.com/heroiclabs/nakama/console/console.swagger.json\"{} \"{}NakamaConsole\"{} > ../Nakama/Console/ConsoleClient.gen.cs}\n\n\\end{DoxyCode}\n\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md80}{}\\doxysubsection{Satori API}\\label{md_codegen__r_e_a_d_m_e_autotoc_md80}\nTo generate a client for \\mbox{\\hyperlink{namespace_satori}{Satori}}, run the following\\+: \n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{go run main.go \"{}\\$\\{SATORI\\}/api/satori.swagger.json\"{} \"{}Satori\"{} > ../Satori/ApiClient.gen.cs}\n\n\\end{DoxyCode}\n\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md81}{}\\doxysubsection{Satori Console API}\\label{md_codegen__r_e_a_d_m_e_autotoc_md81}\nTo generate a client for the \\mbox{\\hyperlink{namespace_satori}{Satori}} Console, run the following\\+: \n\\begin{DoxyCode}{0}\n\\DoxyCodeLine{go run main.go \"{}\\$\\{SATORI\\}/console/console.swagger.json\"{} \"{}Satori\"{} > ../Satori/ConsoleClient.gen.cs}\n\n\\end{DoxyCode}\n\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md82}{}\\doxysubsection{Rationale}\\label{md_codegen__r_e_a_d_m_e_autotoc_md82}\nWe want to maintain a simple lean low level client within our C\\# client which has minimal dependencies so we built our own. This gives us complete control over the dependencies required and structure of the code generated.\n\nThe generated code is designed to be supported within Unity engine, Xamarin, Godot engine, and other projects. It requires .NET4.\\+5 framework, Tiny\\+Json, and uses {\\ttfamily System.\\+Threading.\\+Tasks}.\\hypertarget{md_codegen__r_e_a_d_m_e_autotoc_md83}{}\\doxysubsection{Limitations}\\label{md_codegen__r_e_a_d_m_e_autotoc_md83}\nThe code generator has {\\bfseries{only}} been checked against the Swagger specification generated for \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server. YMMV. "
  },
  {
    "path": "docs/latex/namespace_nakama.tex",
    "content": "\\hypertarget{namespace_nakama}{}\\doxysection{Nakama Namespace Reference}\n\\label{namespace_nakama}\\index{Nakama@{Nakama}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Api\\+Account}\n\\item \nclass {\\bfseries Api\\+Account\\+Apple}\n\\item \nclass {\\bfseries Api\\+Account\\+Custom}\n\\item \nclass {\\bfseries Api\\+Account\\+Device}\n\\item \nclass {\\bfseries Api\\+Account\\+Email}\n\\item \nclass {\\bfseries Api\\+Account\\+Facebook}\n\\item \nclass {\\bfseries Api\\+Account\\+Facebook\\+Instant\\+Game}\n\\item \nclass {\\bfseries Api\\+Account\\+Game\\+Center}\n\\item \nclass {\\bfseries Api\\+Account\\+Google}\n\\item \nclass {\\bfseries Api\\+Account\\+Steam}\n\\item \nclass {\\bfseries Api\\+Channel\\+Message}\n\\item \nclass {\\bfseries Api\\+Channel\\+Message\\+List}\n\\item \nclass {\\bfseries Api\\+Client}\n\\begin{DoxyCompactList}\\small\\item\\em The low level client for the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} API.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Create\\+Group\\+Request}\n\\item \nclass {\\bfseries Api\\+Delete\\+Storage\\+Object\\+Id}\n\\item \nclass {\\bfseries Api\\+Delete\\+Storage\\+Objects\\+Request}\n\\item \nclass {\\bfseries Api\\+Event}\n\\item \nclass {\\bfseries Api\\+Friend}\n\\item \nclass {\\bfseries Api\\+Friend\\+List}\n\\item \nclass {\\bfseries Api\\+Group}\n\\item \nclass {\\bfseries Api\\+Group\\+List}\n\\item \nclass {\\bfseries Api\\+Group\\+User\\+List}\n\\item \nclass {\\bfseries Api\\+Leaderboard\\+Record}\n\\item \nclass {\\bfseries Api\\+Leaderboard\\+Record\\+List}\n\\item \nclass {\\bfseries Api\\+Link\\+Steam\\+Request}\n\\item \nclass {\\bfseries Api\\+List\\+Subscriptions\\+Request}\n\\item \nclass {\\bfseries Api\\+Match}\n\\item \nclass {\\bfseries Api\\+Match\\+List}\n\\item \nclass {\\bfseries Api\\+Notification}\n\\item \nclass {\\bfseries Api\\+Notification\\+List}\n\\item \nclass {\\bfseries Api\\+Read\\+Storage\\+Object\\+Id}\n\\item \nclass {\\bfseries Api\\+Read\\+Storage\\+Objects\\+Request}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_api_response_exception}{Api\\+Response\\+Exception}}\n\\begin{DoxyCompactList}\\small\\item\\em An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Rpc}\n\\item \nclass {\\bfseries Api\\+Session}\n\\item \nclass {\\bfseries Api\\+Session\\+Logout\\+Request}\n\\item \nclass {\\bfseries Api\\+Session\\+Refresh\\+Request}\n\\item \nclass {\\bfseries Api\\+Storage\\+Object}\n\\item \nclass {\\bfseries Api\\+Storage\\+Object\\+Ack}\n\\item \nclass {\\bfseries Api\\+Storage\\+Object\\+Acks}\n\\item \nclass {\\bfseries Api\\+Storage\\+Object\\+List}\n\\item \nclass {\\bfseries Api\\+Storage\\+Objects}\n\\item \nclass {\\bfseries Api\\+Subscription\\+List}\n\\item \nclass {\\bfseries Api\\+Tournament}\n\\item \nclass {\\bfseries Api\\+Tournament\\+List}\n\\item \nclass {\\bfseries Api\\+Tournament\\+Record\\+List}\n\\item \nclass {\\bfseries Api\\+Update\\+Account\\+Request}\n\\item \nclass {\\bfseries Api\\+Update\\+Group\\+Request}\n\\item \nclass {\\bfseries Api\\+User}\n\\item \nclass {\\bfseries Api\\+User\\+Group\\+List}\n\\item \nclass {\\bfseries Api\\+Users}\n\\item \nclass {\\bfseries Api\\+Validated\\+Purchase}\n\\item \nclass {\\bfseries Api\\+Validated\\+Subscription}\n\\item \nclass {\\bfseries Api\\+Validate\\+Purchase\\+Apple\\+Request}\n\\item \nclass {\\bfseries Api\\+Validate\\+Purchase\\+Google\\+Request}\n\\item \nclass {\\bfseries Api\\+Validate\\+Purchase\\+Huawei\\+Request}\n\\item \nclass {\\bfseries Api\\+Validate\\+Purchase\\+Response}\n\\item \nclass {\\bfseries Api\\+Validate\\+Subscription\\+Apple\\+Request}\n\\item \nclass {\\bfseries Api\\+Validate\\+Subscription\\+Google\\+Request}\n\\item \nclass {\\bfseries Api\\+Validate\\+Subscription\\+Response}\n\\item \nclass {\\bfseries Api\\+Write\\+Storage\\+Object}\n\\item \nclass {\\bfseries Api\\+Write\\+Storage\\+Objects\\+Request}\n\\item \nclass {\\bfseries Channel}\n\\item \nclass {\\bfseries Channel\\+Join\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Send a channel join message to the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Channel\\+Leave\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em A leave message to a chat channel.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Channel\\+Message\\+Ack}\n\\item \nclass {\\bfseries Channel\\+Presence\\+Event}\n\\item \nclass {\\bfseries Channel\\+Remove\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Remove a message from a chat channel.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Channel\\+Send\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Send a chat message to a channel on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Channel\\+Update\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Update a chat message which has been sent to a channel.  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_client}{Client}}\n\\item \nclass {\\bfseries Group\\+User\\+List\\+Group\\+User}\n\\item \nclass {\\bfseries GZip\\+Content}\n\\item \nclass {\\bfseries GZip\\+Http\\+Client\\+Handler}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_http_request_adapter}{Http\\+Request\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em HTTP Request adapter which uses the .NET Http\\+Client to send requests.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account}{IApi\\+Account}}\n\\begin{DoxyCompactList}\\small\\item\\em A user with additional account details. Always the current user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_apple}{IApi\\+Account\\+Apple}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a Apple Sign In token to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_custom}{IApi\\+Account\\+Custom}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a custom ID to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_device}{IApi\\+Account\\+Device}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a device to the server. Used with authenticate/link/unlink and user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_email}{IApi\\+Account\\+Email}}\n\\begin{DoxyCompactList}\\small\\item\\em Send an email with password to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_facebook}{IApi\\+Account\\+Facebook}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a Facebook token to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_facebook_instant_game}{IApi\\+Account\\+Facebook\\+Instant\\+Game}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_game_center}{IApi\\+Account\\+Game\\+Center}}\n\\begin{DoxyCompactList}\\small\\item\\em Send Apple\\textquotesingle{}s Game Center account credentials to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_google}{IApi\\+Account\\+Google}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a Google token to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_account_steam}{IApi\\+Account\\+Steam}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a Steam token to the server. Used with authenticate/link/unlink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}}\n\\begin{DoxyCompactList}\\small\\item\\em A message sent on a channel.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_channel_message_list}{IApi\\+Channel\\+Message\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of channel messages, usually a result of a list operation.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_create_group_request}{IApi\\+Create\\+Group\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Create a group with the current user as owner.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_object_id}{IApi\\+Delete\\+Storage\\+Object\\+Id}}\n\\begin{DoxyCompactList}\\small\\item\\em Storage objects to delete.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_delete_storage_objects_request}{IApi\\+Delete\\+Storage\\+Objects\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch delete storage objects.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_event}{IApi\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em Represents an event to be passed through the server to registered event handlers.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend}{IApi\\+Friend}}\n\\begin{DoxyCompactList}\\small\\item\\em A friend of a user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_friend_list}{IApi\\+Friend\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A collection of zero or more friends of the user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group}{IApi\\+Group}}\n\\begin{DoxyCompactList}\\small\\item\\em A group in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_list}{IApi\\+Group\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em One or more groups returned from a listing operation.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_group_user_list}{IApi\\+Group\\+User\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of users belonging to a group, along with their role.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}}\n\\begin{DoxyCompactList}\\small\\item\\em Represents a complete leaderboard record with all scores and associated metadata.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_leaderboard_record_list}{IApi\\+Leaderboard\\+Record\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_link_steam_request}{IApi\\+Link\\+Steam\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Link Steam to the current user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_list_subscriptions_request}{IApi\\+List\\+Subscriptions\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em List user subscriptions.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match}{IApi\\+Match}}\n\\begin{DoxyCompactList}\\small\\item\\em Represents a realtime match.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_match_list}{IApi\\+Match\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of realtime matches.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification}{IApi\\+Notification}}\n\\begin{DoxyCompactList}\\small\\item\\em A notification in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_notification_list}{IApi\\+Notification\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A collection of zero or more notifications.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_object_id}{IApi\\+Read\\+Storage\\+Object\\+Id}}\n\\begin{DoxyCompactList}\\small\\item\\em Storage objects to get.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_read_storage_objects_request}{IApi\\+Read\\+Storage\\+Objects\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch get storage objects.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_rpc}{IApi\\+Rpc}}\n\\begin{DoxyCompactList}\\small\\item\\em Execute an Lua function on the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_session}{IApi\\+Session}}\n\\begin{DoxyCompactList}\\small\\item\\em A user\\textquotesingle{}s session used to authenticate messages.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_session_logout_request}{IApi\\+Session\\+Logout\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_session_refresh_request}{IApi\\+Session\\+Refresh\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate against the server with a refresh token.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}}\n\\begin{DoxyCompactList}\\small\\item\\em An object within the storage engine.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_ack}{IApi\\+Storage\\+Object\\+Ack}}\n\\begin{DoxyCompactList}\\small\\item\\em A storage acknowledgement.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_acks}{IApi\\+Storage\\+Object\\+Acks}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch of acknowledgements for the storage object write.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_object_list}{IApi\\+Storage\\+Object\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em List of storage objects.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_storage_objects}{IApi\\+Storage\\+Objects}}\n\\begin{DoxyCompactList}\\small\\item\\em Batch of storage objects.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_subscription_list}{IApi\\+Subscription\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of validated subscriptions stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament}{IApi\\+Tournament}}\n\\begin{DoxyCompactList}\\small\\item\\em A tournament on the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_list}{IApi\\+Tournament\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of tournaments.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_tournament_record_list}{IApi\\+Tournament\\+Record\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A set of tournament records which may be part of a tournament records page or a batch of individual records.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_update_account_request}{IApi\\+Update\\+Account\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Update a user\\textquotesingle{}s account details.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_update_group_request}{IApi\\+Update\\+Group\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Update fields in a given group.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user}{IApi\\+User}}\n\\begin{DoxyCompactList}\\small\\item\\em A user in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_users}{IApi\\+Users}}\n\\begin{DoxyCompactList}\\small\\item\\em A collection of zero or more users.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_purchase}{IApi\\+Validated\\+Purchase}}\n\\begin{DoxyCompactList}\\small\\item\\em Validated Purchase stored by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validated_subscription}{IApi\\+Validated\\+Subscription}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_apple_request}{IApi\\+Validate\\+Purchase\\+Apple\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Apple IAP Purchases validation request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_google_request}{IApi\\+Validate\\+Purchase\\+Google\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Google IAP Purchase validation request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_huawei_request}{IApi\\+Validate\\+Purchase\\+Huawei\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Huawei IAP Purchase validation request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_purchase_response}{IApi\\+Validate\\+Purchase\\+Response}}\n\\begin{DoxyCompactList}\\small\\item\\em Validate IAP response.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_apple_request}{IApi\\+Validate\\+Subscription\\+Apple\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Apple Subscription validation request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_google_request}{IApi\\+Validate\\+Subscription\\+Google\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Google Subscription validation request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_validate_subscription_response}{IApi\\+Validate\\+Subscription\\+Response}}\n\\begin{DoxyCompactList}\\small\\item\\em Validate Subscription response.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_object}{IApi\\+Write\\+Storage\\+Object}}\n\\begin{DoxyCompactList}\\small\\item\\em The object to store.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_api_write_storage_objects_request}{IApi\\+Write\\+Storage\\+Objects\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Write objects to the storage engine.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_channel}{IChannel}}\n\\begin{DoxyCompactList}\\small\\item\\em A chat channel on the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_message_ack}{IChannel\\+Message\\+Ack}}\n\\begin{DoxyCompactList}\\small\\item\\em An acknowledgement from the server when a chat message is delivered to a channel.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_channel_presence_event}{IChannel\\+Presence\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A batch of join and leave presences on a chat channel.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_client}{IClient}}\n\\begin{DoxyCompactList}\\small\\item\\em A client for the API in \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_group_user_list_group_user}{IGroup\\+User\\+List\\+Group\\+User}}\n\\begin{DoxyCompactList}\\small\\item\\em A single user-\\/role pair.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{IHttp\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which implements the HTTP protocol.  \\end{DoxyCompactList}\\item \nclass {\\bfseries IHttp\\+Adapter\\+Util}\n\\begin{DoxyCompactList}\\small\\item\\em Utility methods for the \\mbox{\\hyperlink{interface_nakama_1_1_i_http_adapter}{interface. NOTE\\+: DO NOT USE EXTENSION METHODS as Unity cannot cross-\\/compile them properly to Web\\+GL. }} \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_logger}{ILogger}}\n\\begin{DoxyCompactList}\\small\\item\\em A simple logger to write log messages to an output sink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_match}{IMatch}}\n\\begin{DoxyCompactList}\\small\\item\\em A multiplayer match.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_matched}{IMatchmaker\\+Matched}}\n\\begin{DoxyCompactList}\\small\\item\\em The result of a successful matchmaker operation sent to the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_ticket}{IMatchmaker\\+Ticket}}\n\\begin{DoxyCompactList}\\small\\item\\em The matchmaker ticket received from the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_matchmaker_user}{IMatchmaker\\+User}}\n\\begin{DoxyCompactList}\\small\\item\\em The user with the parameters they sent to the server when asking for opponents.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_match_presence_event}{IMatch\\+Presence\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A batch of join and leave presences for a match.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_match_state}{IMatch\\+State}}\n\\begin{DoxyCompactList}\\small\\item\\em Some game state update in a match.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party}{IParty}}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming information about a party.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_close}{IParty\\+Close}}\n\\begin{DoxyCompactList}\\small\\item\\em End a party, kicking all party members and closing it.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_data}{IParty\\+Data}}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming party data delivered from the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_join_request}{IParty\\+Join\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming notification for one or more new presences attempting to join the party.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_leader}{IParty\\+Leader}}\n\\begin{DoxyCompactList}\\small\\item\\em Announcement of a new party leader.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_matchmaker_ticket}{IParty\\+Matchmaker\\+Ticket}}\n\\begin{DoxyCompactList}\\small\\item\\em A response from starting a new party matchmaking process.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_party_presence_event}{IParty\\+Presence\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em Presence update for a particular party.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_protobuf_any}{IProtobuf\\+Any}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_rpc_status}{IRpc\\+Status}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_session}{ISession}}\n\\begin{DoxyCompactList}\\small\\item\\em A session authenticated for a user with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_socket}{ISocket}}\n\\begin{DoxyCompactList}\\small\\item\\em A socket to interact with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_socket_adapter}{ISocket\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which implements a socket with a protocol supported by \\mbox{\\hyperlink{namespace_nakama}{Nakama}}.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_status}{IStatus}}\n\\begin{DoxyCompactList}\\small\\item\\em Receive status updates for users.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_status_presence_event}{IStatus\\+Presence\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A status update event about other users who\\textquotesingle{}ve come online or gone offline.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_stream}{IStream}}\n\\begin{DoxyCompactList}\\small\\item\\em A realtime socket stream on the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_presence_event}{IStream\\+Presence\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A batch of joins and leaves on the low level stream.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_stream_state}{IStream\\+State}}\n\\begin{DoxyCompactList}\\small\\item\\em A state change received from a stream.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_user_group_list_user_group}{IUser\\+Group\\+List\\+User\\+Group}}\n\\begin{DoxyCompactList}\\small\\item\\em A single group-\\/role pair.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_user_presence}{IUser\\+Presence}}\n\\begin{DoxyCompactList}\\small\\item\\em An object which represents a connected user in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}{IWrite\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write}}\n\\begin{DoxyCompactList}\\small\\item\\em Record values to write.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}{IWrite\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write}}\n\\begin{DoxyCompactList}\\small\\item\\em Record values to write.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Match}\n\\item \nclass {\\bfseries Match\\+Create\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em A create message for a match on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Match\\+Join\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em A join message for a match on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Match\\+Leave\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em A leave message for a match on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Matchmaker\\+Add\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Add the user to the matchmaker pool with properties.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Matchmaker\\+Matched}\n\\item \nclass {\\bfseries Matchmaker\\+Remove\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Remove the user from the matchmaker pool by ticket.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Matchmaker\\+Ticket}\n\\item \nclass {\\bfseries Matchmaker\\+User}\n\\item \nclass {\\bfseries Match\\+Presence\\+Event}\n\\item \nclass {\\bfseries Match\\+Send\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Send new state to a match on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Match\\+State}\n\\item \nclass {\\bfseries Null\\+Logger}\n\\begin{DoxyCompactList}\\small\\item\\em A logger which writes to nowhere.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming information about a party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Accept}\n\\item \nclass {\\bfseries Party\\+Close}\n\\begin{DoxyCompactList}\\small\\item\\em End a party, kicking all party members, and closing it.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Create}\n\\begin{DoxyCompactList}\\small\\item\\em Create a new party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Data}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming party data delivered from the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Data\\+Send}\n\\begin{DoxyCompactList}\\small\\item\\em Send data to a party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Join}\n\\begin{DoxyCompactList}\\small\\item\\em Join a party, or request to join if the party is not open.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Join\\+Request}\n\\begin{DoxyCompactList}\\small\\item\\em Incoming notification for one or more new presences attempting to join the party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Join\\+Request\\+List}\n\\begin{DoxyCompactList}\\small\\item\\em Request a list of pending join requests for a party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Leader}\n\\begin{DoxyCompactList}\\small\\item\\em Announcement of a new party leader.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Leave}\n\\begin{DoxyCompactList}\\small\\item\\em Leave a party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Matchmaker\\+Add}\n\\begin{DoxyCompactList}\\small\\item\\em Begin matchmaking as a party.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Matchmaker\\+Remove}\n\\begin{DoxyCompactList}\\small\\item\\em Remove the party from the matchmaker.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Matchmaker\\+Ticket}\n\\item \nclass {\\bfseries Party\\+Member\\+Remove}\n\\begin{DoxyCompactList}\\small\\item\\em Kick a party member, or decline a request to join.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Party\\+Presence\\+Event}\n\\item \nclass {\\bfseries Party\\+Promote}\n\\begin{DoxyCompactList}\\small\\item\\em Promote a new party leader.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Protobuf\\+Any}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}}\n\\begin{DoxyCompactList}\\small\\item\\em Represents a single retry attempt.  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_retry_configuration}{Retry\\+Configuration}}\n\\begin{DoxyCompactList}\\small\\item\\em A configuration for controlling retriable requests.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Retry\\+History}\n\\item \nclass {\\bfseries Retry\\+Invoker}\n\\begin{DoxyCompactList}\\small\\item\\em Invokes requests with retry and exponential backoff.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Retry\\+Jitter}\n\\begin{DoxyCompactList}\\small\\item\\em A collection of \\mbox{\\hyperlink{namespace_nakama_a127d52a41cb18b64e939f4b06b316b59}{Jitter}} algorithms.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Rpc\\+Status}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_session}{Session}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_socket}{Socket}}\n\\begin{DoxyCompactList}\\small\\item\\em A socket which implements the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} realtime API.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Status}\n\\item \nclass {\\bfseries Status\\+Follow\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Follow one or more other users for status updates.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Status\\+Presence\\+Event}\n\\item \nclass {\\bfseries Status\\+Unfollow\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Unfollow one or more users on the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Status\\+Update\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em Update the status of the current user.  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_storage_object_id}{Storage\\+Object\\+Id}}\n\\begin{DoxyCompactList}\\small\\item\\em An identifier for a storage object.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Stream}\n\\item \nclass {\\bfseries Stream\\+Presence\\+Event}\n\\item \nclass {\\bfseries Stream\\+State}\n\\item \nclass {\\bfseries User\\+Group\\+List\\+User\\+Group}\n\\item \nclass {\\bfseries User\\+Presence}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_web_socket_adapter}{Web\\+Socket\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Web\\+Socket\\+Error\\+Message}\n\\begin{DoxyCompactList}\\small\\item\\em A logical error received on the Web\\+Socket connection.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Web\\+Socket\\+Message\\+Envelope}\n\\begin{DoxyCompactList}\\small\\item\\em An envelope for messages received or sent on a {\\ttfamily Web\\+Socket}.  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_web_socket_stdlib_adapter}{Web\\+Socket\\+Stdlib\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which uses the Web\\+Socket protocol with \\mbox{\\hyperlink{namespace_nakama}{Nakama}} server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Write\\+Leaderboard\\+Record\\+Request\\+Leaderboard\\+Record\\+Write}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_write_storage_object}{Write\\+Storage\\+Object}}\n\\item \nclass {\\bfseries Write\\+Tournament\\+Record\\+Request\\+Tournament\\+Record\\+Write}\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Enumerations}\n\\begin{DoxyCompactItemize}\n\\item \nenum \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Api\\+Operator}} \n\\item \n\\mbox{\\Hypertarget{namespace_nakama_a216a2d7c4acbc3a4f29a98514c483cd6}\\label{namespace_nakama_a216a2d7c4acbc3a4f29a98514c483cd6}} \nenum \\mbox{\\hyperlink{namespace_nakama_a216a2d7c4acbc3a4f29a98514c483cd6}{Api\\+Store\\+Environment}} \n\\begin{DoxyCompactList}\\small\\item\\em Environment where a purchase/subscription took place,  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{namespace_nakama_a80ae1f687aff9e2cdddb9e69a557cc49}\\label{namespace_nakama_a80ae1f687aff9e2cdddb9e69a557cc49}} \nenum \\mbox{\\hyperlink{namespace_nakama_a80ae1f687aff9e2cdddb9e69a557cc49}{Api\\+Store\\+Provider}} \n\\begin{DoxyCompactList}\\small\\item\\em Validation Provider,  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{namespace_nakama_addd7f097ac4c449d75e44da62657f307}\\label{namespace_nakama_addd7f097ac4c449d75e44da62657f307}} \nenum \\mbox{\\hyperlink{namespace_nakama_addd7f097ac4c449d75e44da62657f307}{Channel\\+Type}} \\+: uint \n\\begin{DoxyCompactList}\\small\\item\\em The available channel types on the server.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Functions}\n\\begin{DoxyCompactItemize}\n\\item \ndelegate int \\mbox{\\hyperlink{namespace_nakama_a127d52a41cb18b64e939f4b06b316b59}{Jitter}} (IList$<$ \\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}} $>$ retry\\+History, int retry\\+Delay, Random random)\n\\begin{DoxyCompactList}\\small\\item\\em The Jitter algorithm is responsible for introducing randomness to a delay before a retry.  \\end{DoxyCompactList}\\item \ndelegate void \\mbox{\\hyperlink{namespace_nakama_a54689fcf19366a415851641cb61947d4}{Retry\\+Listener}} (int num\\+Retry, \\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}} retry)\n\\begin{DoxyCompactList}\\small\\item\\em Listens to retry events for a particular request.  \\end{DoxyCompactList}\\item \n\\mbox{\\Hypertarget{namespace_nakama_a016772f008c1c294bf609c6ece102445}\\label{namespace_nakama_a016772f008c1c294bf609c6ece102445}} \ndelegate bool {\\bfseries Transient\\+Exception\\+Delegate} (Exception e)\n\\begin{DoxyCompactList}\\small\\item\\em A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nCopyright 2018 The \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Authors\n\nLicensed under the Apache License, Version 2.\\+0 (the \\char`\\\"{}\\+License\\char`\\\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n\\href{http://www.apache.org/licenses/LICENSE-2.0}{\\texttt{ http\\+://www.\\+apache.\\+org/licenses/\\+LICENSE-\\/2.\\+0}}\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\char`\\\"{}\\+AS IS\\char`\\\"{} BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. \n\n\\doxysubsection{Enumeration Type Documentation}\n\\mbox{\\Hypertarget{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}\\label{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}} \n\\index{Nakama@{Nakama}!ApiOperator@{ApiOperator}}\n\\index{ApiOperator@{ApiOperator}!Nakama@{Nakama}}\n\\doxysubsubsection{\\texorpdfstring{ApiOperator}{ApiOperator}}\n{\\footnotesize\\ttfamily enum \\mbox{\\hyperlink{namespace_nakama_a8e9c42a36e780e31a03f2ba94a3bb6e7}{Nakama.\\+Api\\+Operator}}}\n\n\n\n\n\n\n\n\\doxysubsection{Function Documentation}\n\\mbox{\\Hypertarget{namespace_nakama_a127d52a41cb18b64e939f4b06b316b59}\\label{namespace_nakama_a127d52a41cb18b64e939f4b06b316b59}} \n\\index{Nakama@{Nakama}!Jitter@{Jitter}}\n\\index{Jitter@{Jitter}!Nakama@{Nakama}}\n\\doxysubsubsection{\\texorpdfstring{Jitter()}{Jitter()}}\n{\\footnotesize\\ttfamily delegate int Nakama.\\+Jitter (\\begin{DoxyParamCaption}\\item[{IList$<$ \\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}} $>$}]{retry\\+History,  }\\item[{int}]{retry\\+Delay,  }\\item[{Random}]{random }\\end{DoxyParamCaption})}\n\n\n\nThe Jitter algorithm is responsible for introducing randomness to a delay before a retry.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em retry\\+History} & Information about previous retry attempts.\\\\\n\\hline\n{\\em retry\\+Delay} & A delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.\\\\\n\\hline\n{\\em random} & A Random object that has been seeded by IClient.\\+Retry\\+Jitter\\+Seed. \\begin{DoxyReturn}{Returns}\nA new delay (milliseconds) between the last failed attempt in the retry history and the next upcoming attempt.\n\\end{DoxyReturn}\n\\\\\n\\hline\n\\end{DoxyParams}\n\\mbox{\\Hypertarget{namespace_nakama_a54689fcf19366a415851641cb61947d4}\\label{namespace_nakama_a54689fcf19366a415851641cb61947d4}} \n\\index{Nakama@{Nakama}!RetryListener@{RetryListener}}\n\\index{RetryListener@{RetryListener}!Nakama@{Nakama}}\n\\doxysubsubsection{\\texorpdfstring{RetryListener()}{RetryListener()}}\n{\\footnotesize\\ttfamily delegate void Nakama.\\+Retry\\+Listener (\\begin{DoxyParamCaption}\\item[{int}]{num\\+Retry,  }\\item[{\\mbox{\\hyperlink{class_nakama_1_1_retry}{Retry}}}]{retry }\\end{DoxyParamCaption})}\n\n\n\nListens to retry events for a particular request.  \n\n\n\\begin{DoxyParams}{Parameters}\n{\\em num\\+Retry} & The number of retries made so far, including this retry.\\\\\n\\hline\n{\\em retry} & An holding inromation about the retry attempt.\\\\\n\\hline\n\\end{DoxyParams}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_console.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_console}{}\\doxysection{Nakama.\\+Console Namespace Reference}\n\\label{namespace_nakama_1_1_console}\\index{Nakama.Console@{Nakama.Console}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Api\\+Account\\+Device}\n\\item \nclass {\\bfseries Api\\+Channel\\+Message}\n\\item \nclass {\\bfseries Api\\+Client}\n\\begin{DoxyCompactList}\\small\\item\\em The low level client for the \\mbox{\\hyperlink{namespace_nakama}{Nakama}} API.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Friend}\n\\item \nclass {\\bfseries Api\\+Friend\\+List}\n\\item \nclass {\\bfseries Api\\+Group}\n\\item \nclass {\\bfseries Api\\+Leaderboard\\+Record}\n\\item \nclass {\\bfseries Api\\+Notification}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_console_1_1_api_response_exception}{Api\\+Response\\+Exception}}\n\\begin{DoxyCompactList}\\small\\item\\em An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Storage\\+Object}\n\\item \nclass {\\bfseries Api\\+Storage\\+Object\\+Ack}\n\\item \nclass {\\bfseries Api\\+User}\n\\item \nclass {\\bfseries Api\\+User\\+Group\\+List}\n\\item \nclass {\\bfseries Config\\+Warning}\n\\item \nclass {\\bfseries Console\\+Account\\+Export}\n\\item \nclass {\\bfseries Console\\+Authenticate\\+Request}\n\\item \nclass {\\bfseries Console\\+Config}\n\\item \nclass {\\bfseries Console\\+Console\\+Session}\n\\item \nclass {\\bfseries Console\\+Status\\+List}\n\\item \nclass {\\bfseries Console\\+Storage\\+List}\n\\item \nclass {\\bfseries Console\\+Unlink\\+Device\\+Request}\n\\item \nclass {\\bfseries Console\\+User\\+List}\n\\item \nclass {\\bfseries Console\\+Wallet\\+Ledger}\n\\item \nclass {\\bfseries Console\\+Wallet\\+Ledger\\+List}\n\\item \nclass {\\bfseries Console\\+Write\\+Storage\\+Object\\+Request}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_account_device}{IApi\\+Account\\+Device}}\n\\begin{DoxyCompactList}\\small\\item\\em Send a device to the server. Used with authenticate/link/unlink and user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_channel_message}{IApi\\+Channel\\+Message}}\n\\begin{DoxyCompactList}\\small\\item\\em A message sent on a channel.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend}{IApi\\+Friend}}\n\\begin{DoxyCompactList}\\small\\item\\em A friend of a user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_friend_list}{IApi\\+Friend\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A collection of zero or more friends of the user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_group}{IApi\\+Group}}\n\\begin{DoxyCompactList}\\small\\item\\em A group in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}{IApi\\+Leaderboard\\+Record}}\n\\begin{DoxyCompactList}\\small\\item\\em Represents a complete leaderboard record with all scores and associated metadata.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_notification}{IApi\\+Notification}}\n\\begin{DoxyCompactList}\\small\\item\\em A notification in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object}{IApi\\+Storage\\+Object}}\n\\begin{DoxyCompactList}\\small\\item\\em An object within the storage engine.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}{IApi\\+Storage\\+Object\\+Ack}}\n\\begin{DoxyCompactList}\\small\\item\\em A storage acknowledgement.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user}{IApi\\+User}}\n\\begin{DoxyCompactList}\\small\\item\\em A user in the server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_api_user_group_list}{IApi\\+User\\+Group\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of groups belonging to a user, along with the user\\textquotesingle{}s role in each group.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_config_warning}{IConfig\\+Warning}}\n\\begin{DoxyCompactList}\\small\\item\\em A warning for a configuration field.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_account_export}{IConsole\\+Account\\+Export}}\n\\begin{DoxyCompactList}\\small\\item\\em An export of all information stored for a user account.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_authenticate_request}{IConsole\\+Authenticate\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate a console user with username and password.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_config}{IConsole\\+Config}}\n\\begin{DoxyCompactList}\\small\\item\\em The current server configuration and any associated warnings.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_console_session}{IConsole\\+Console\\+Session}}\n\\begin{DoxyCompactList}\\small\\item\\em A console user session.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_status_list}{IConsole\\+Status\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em List of nodes and their stats.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_storage_list}{IConsole\\+Storage\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em List of storage objects.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}{IConsole\\+Unlink\\+Device\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Unlink a particular device ID from a user\\textquotesingle{}s account.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_user_list}{IConsole\\+User\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em A list of users.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}{IConsole\\+Wallet\\+Ledger}}\n\\begin{DoxyCompactList}\\small\\item\\em An individual update to a user\\textquotesingle{}s wallet.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}{IConsole\\+Wallet\\+Ledger\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em List of wallet ledger items for a particular user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}{IConsole\\+Write\\+Storage\\+Object\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Write a new storage object or update an existing one.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaapi_account}{INakamaapi\\+Account}}\n\\begin{DoxyCompactList}\\small\\item\\em A user with additional account details. Always the current user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}{INakamaconsole\\+Account}}\n\\begin{DoxyCompactList}\\small\\item\\em Account information.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}{INakamaconsole\\+Update\\+Account\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Update user account information.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_protobuf_any}{IProtobuf\\+Any}}\n\\begin{DoxyCompactList}\\small\\item\\em {\\ttfamily Any} contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1\\+: Pack and unpack a message in C++. Foo foo = ...; Any any; any.\\+Pack\\+From(foo); ... if (any.\\+Unpack\\+To(\\&foo)) \\{ ... \\} Example 2\\+: Pack and unpack a message in Java. Foo foo = ...; Any any = Any.\\+pack(foo); ... if (any.\\+is(Foo.\\+class)) \\{ foo = any.\\+unpack(Foo.\\+class); \\} Example 3\\+: Pack and unpack a message in Python. foo = Foo(...) any = Any() any.\\+Pack(foo) ... if any.\\+Is(Foo.\\+DESCRIPTOR)\\+: any.\\+Unpack(foo) ... Example 4\\+: Pack and unpack a message in Go foo \\+:= \\&pb.\\+Foo\\{...\\} any, err \\+:= ptypes.\\+Marshal\\+Any(foo) ... foo \\+:= \\&pb.\\+Foo\\{\\} if err \\+:= ptypes.\\+Unmarshal\\+Any(any, foo); err != nil \\{ ... \\} The pack methods provided by protobuf library will by default use \\textquotesingle{}type.\\+googleapis.\\+com/full.type.\\+name\\textquotesingle{} as the type URL and the unpack methods only use the fully qualified type name after the last \\textquotesingle{}/\\textquotesingle{} in the type URL, for example \\char`\\\"{}foo.\\+bar.\\+com/x/y.\\+z\\char`\\\"{} will yield type name \\char`\\\"{}y.\\+z\\char`\\\"{}. JSON ==== The JSON representation of an {\\ttfamily Any} value uses the regular representation of the deserialized, embedded message, with an additional field {\\ttfamily @type} which contains the type URL. Example\\+: package google.\\+profile; message Person \\{ string first\\+\\_\\+name = 1; string last\\+\\_\\+name = 2; \\} \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+profile.\\+Person\\char`\\\"{}, \\char`\\\"{}first\\+Name\\char`\\\"{}\\+: $<$string$>$, \\char`\\\"{}last\\+Name\\char`\\\"{}\\+: $<$string$>$ \\} If the embedded message type is well-\\/known and has a custom JSON representation, that representation will be embedded adding a field {\\ttfamily value} which holds the custom JSON in addition to the {\\ttfamily @type} field. Example (for message \\mbox{[}google.\\+protobuf.\\+Duration\\mbox{]}\\mbox{[}\\mbox{]})\\+: \\{ \\char`\\\"{}@type\\char`\\\"{}\\+: \\char`\\\"{}type.\\+googleapis.\\+com/google.\\+protobuf.\\+Duration\\char`\\\"{}, \\char`\\\"{}value\\char`\\\"{}\\+: \\char`\\\"{}1.\\+212s\\char`\\\"{} \\}  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_runtime_error}{IRuntime\\+Error}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_status_list_status}{IStatus\\+List\\+Status}}\n\\begin{DoxyCompactList}\\small\\item\\em The status of a \\mbox{\\hyperlink{namespace_nakama}{Nakama}} node.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}{IUser\\+Group\\+List\\+User\\+Group}}\n\\begin{DoxyCompactList}\\small\\item\\em A single group-\\/role pair.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Nakamaapi\\+Account}\n\\item \nclass {\\bfseries Nakamaconsole\\+Account}\n\\item \nclass {\\bfseries Nakamaconsole\\+Update\\+Account\\+Request}\n\\item \nclass {\\bfseries Protobuf\\+Any}\n\\item \nclass {\\bfseries Runtime\\+Error}\n\\item \nclass {\\bfseries Status\\+List\\+Status}\n\\item \nclass {\\bfseries User\\+Group\\+List\\+User\\+Group}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_ninja.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_ninja}{}\\doxysection{Nakama.\\+Ninja Namespace Reference}\n\\label{namespace_nakama_1_1_ninja}\\index{Nakama.Ninja@{Nakama.Ninja}}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_ninja_1_1_web_sockets.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_ninja_1_1_web_sockets}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets Namespace Reference}\n\\label{namespace_nakama_1_1_ninja_1_1_web_sockets}\\index{Nakama.Ninja.WebSockets@{Nakama.Ninja.WebSockets}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}{Buffer\\+Pool}}\n\\begin{DoxyCompactList}\\small\\item\\em This buffer pool is instance thread safe Use Get\\+Buffer to get a Memory\\+Stream (with a publically accessible buffer) Calling Close on this Memory\\+Stream will clear its internal buffer and return the buffer to the pool for reuse Memory\\+Streams can grow larger than the DEFAULT\\+\\_\\+\\+BUFFER\\+\\_\\+\\+SIZE (or whatever you passed in) and the underlying buffers will be returned to the pool at their larger sizes  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}{Http\\+Helper}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}{IBuffer\\+Pool}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}{IPing\\+Pong\\+Manager}}\n\\begin{DoxyCompactList}\\small\\item\\em Ping Pong Manager used to facilitate ping pong Web\\+Socket messages  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}{IWeb\\+Socket\\+Client\\+Factory}}\n\\begin{DoxyCompactList}\\small\\item\\em Web socket client factory used to open web socket client connections  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}{IWeb\\+Socket\\+Server\\+Factory}}\n\\begin{DoxyCompactList}\\small\\item\\em Web socket server factory used to open web socket server connections  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}{Ping\\+Pong\\+Manager}}\n\\begin{DoxyCompactList}\\small\\item\\em Ping Pong Manager used to facilitate ping pong Web\\+Socket messages  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}{Pong\\+Event\\+Args}}\n\\begin{DoxyCompactList}\\small\\item\\em Pong Event\\+Args  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}{Web\\+Socket\\+Client\\+Factory}}\n\\begin{DoxyCompactList}\\small\\item\\em Web socket client factory used to open web socket client connections  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}{Web\\+Socket\\+Client\\+Options}}\n\\begin{DoxyCompactList}\\small\\item\\em \\mbox{\\hyperlink{class_nakama_1_1_client}{Client}} Web\\+Socket init options  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}{Web\\+Socket\\+Http\\+Context}}\n\\begin{DoxyCompactList}\\small\\item\\em The Web\\+Socket HTTP Context used to initiate a Web\\+Socket handshake  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}{Web\\+Socket\\+Server\\+Factory}}\n\\begin{DoxyCompactList}\\small\\item\\em Web socket server factory used to open web socket server connections  \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}{Web\\+Socket\\+Server\\+Options}}\n\\begin{DoxyCompactList}\\small\\item\\em Server Web\\+Socket init options  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions Namespace Reference}\n\\label{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions}\\index{Nakama.Ninja.WebSockets.Exceptions@{Nakama.Ninja.WebSockets.Exceptions}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}{Entity\\+Too\\+Large\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}{Invalid\\+Http\\+Response\\+Code\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}{Sec\\+Web\\+Socket\\+Key\\+Missing\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}{Server\\+Listener\\+Socket\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}{Web\\+Socket\\+Buffer\\+Overflow\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}{Web\\+Socket\\+Handshake\\+Failed\\+Exception}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}{Web\\+Socket\\+Version\\+Not\\+Supported\\+Exception}}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal}{}\\doxysection{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Internal Namespace Reference}\n\\label{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal}\\index{Nakama.Ninja.WebSockets.Internal@{Nakama.Ninja.WebSockets.Internal}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Binary\\+Reader\\+Writer}\n\\item \nclass {\\bfseries Web\\+Socket\\+Frame}\n\\item \nclass {\\bfseries Web\\+Socket\\+Frame\\+Common}\n\\item \nclass {\\bfseries Web\\+Socket\\+Frame\\+Reader}\n\\begin{DoxyCompactList}\\small\\item\\em Reads a Web\\+Socket frame see \\href{http://tools.ietf.org/html/rfc6455}{\\texttt{ http\\+://tools.\\+ietf.\\+org/html/rfc6455}} for specification  \\end{DoxyCompactList}\\item \nclass {\\bfseries Web\\+Socket\\+Frame\\+Writer}\n\\item \nclass {\\bfseries Web\\+Socket\\+Implementation}\n\\begin{DoxyCompactList}\\small\\item\\em Main implementation of the Web\\+Socket abstract class  \\end{DoxyCompactList}\\item \nclass {\\bfseries Web\\+Socket\\+Read\\+Cursor}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_tests.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_tests}{}\\doxysection{Nakama.\\+Tests Namespace Reference}\n\\label{namespace_nakama_1_1_tests}\\index{Nakama.Tests@{Nakama.Tests}}\n\\doxysubsection*{Namespaces}\n\\begin{DoxyCompactItemize}\n\\item \nnamespace \\mbox{\\hyperlink{namespace_nakama_1_1_tests_1_1_api}{Api}}\n\\item \nnamespace \\mbox{\\hyperlink{namespace_nakama_1_1_tests_1_1_socket}{Socket}}\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_awaited_socket_task_test}{Awaited\\+Socket\\+Task\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_cancel_test}{Cancel\\+Test}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_tests_1_1_i_nested_test_object}{INested\\+Test\\+Object}}\n\\item \ninterface \\mbox{\\hyperlink{interface_nakama_1_1_tests_1_1_i_test_object}{ITest\\+Object}}\n\\item \nclass {\\bfseries Nested\\+Test\\+Object}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_retry_test}{Retry\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_session_test}{Session\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_stdout_logger}{Stdout\\+Logger}}\n\\item \nclass {\\bfseries Test\\+Object}\n\\item \nclass {\\bfseries Tests\\+Util}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_tiny_json_parser_test}{Tiny\\+Json\\+Parser\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}{Transient\\+Exception\\+Http\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which throws transient/retryable exceptions whenever a request is made.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n\\doxysubsection*{Enumerations}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{namespace_nakama_1_1_tests_abdcc77df111a41f189037155e43e3336}\\label{namespace_nakama_1_1_tests_abdcc77df111a41f189037155e43e3336}} \nenum {\\bfseries Transient\\+Adapter\\+Response\\+Type} \n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_tests_1_1_api.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_tests_1_1_api}{}\\doxysection{Nakama.\\+Tests.\\+Api Namespace Reference}\n\\label{namespace_nakama_1_1_tests_1_1_api}\\index{Nakama.Tests.Api@{Nakama.Tests.Api}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}{Authenticate\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_group_test}{Group\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}{Http\\+Error\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}{Leaderboard\\+Around\\+Owner\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}{Leaderboard\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}{Link\\+Unlink\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}{Rpc\\+Test}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nCopyright 2020 The \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Authors\n\nLicensed under the Apache License, Version 2.\\+0 (the \\char`\\\"{}\\+License\\char`\\\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n\\href{http://www.apache.org/licenses/LICENSE-2.0}{\\texttt{ http\\+://www.\\+apache.\\+org/licenses/\\+LICENSE-\\/2.\\+0}}\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\char`\\\"{}\\+AS IS\\char`\\\"{} BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n\nCopyright 2021 The \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Authors\n\nLicensed under the Apache License, Version 2.\\+0 (the \\char`\\\"{}\\+License\\char`\\\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n\\href{http://www.apache.org/licenses/LICENSE-2.0}{\\texttt{ http\\+://www.\\+apache.\\+org/licenses/\\+LICENSE-\\/2.\\+0}}\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\char`\\\"{}\\+AS IS\\char`\\\"{} BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. "
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_tests_1_1_socket.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_tests_1_1_socket}{}\\doxysection{Nakama.\\+Tests.\\+Socket Namespace Reference}\n\\label{namespace_nakama_1_1_tests_1_1_socket}\\index{Nakama.Tests.Socket@{Nakama.Tests.Socket}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}{Web\\+Socket\\+Channel\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}{Web\\+Socket\\+Matchmaker\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}{Web\\+Socket\\+Match\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}{Web\\+Socket\\+Notification\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}{Web\\+Socket\\+Party\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}{Web\\+Socket\\+Rpc\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}{Web\\+Socket\\+Test}}\n\\item \nclass \\mbox{\\hyperlink{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}{Web\\+Socket\\+User\\+Status\\+Test}}\n\\end{DoxyCompactItemize}\n\n\n\\doxysubsection{Detailed Description}\nCopyright 2020 The \\mbox{\\hyperlink{namespace_nakama}{Nakama}} Authors\n\nLicensed under the Apache License, Version 2.\\+0 (the \\char`\\\"{}\\+License\\char`\\\"{}); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n\\href{http://www.apache.org/licenses/LICENSE-2.0}{\\texttt{ http\\+://www.\\+apache.\\+org/licenses/\\+LICENSE-\\/2.\\+0}}\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\char`\\\"{}\\+AS IS\\char`\\\"{} BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. "
  },
  {
    "path": "docs/latex/namespace_nakama_1_1_tiny_json.tex",
    "content": "\\hypertarget{namespace_nakama_1_1_tiny_json}{}\\doxysection{Nakama.\\+Tiny\\+Json Namespace Reference}\n\\label{namespace_nakama_1_1_tiny_json}\\index{Nakama.TinyJson@{Nakama.TinyJson}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Json\\+Parser}\n\\item \nclass {\\bfseries Json\\+Writer}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_satori.tex",
    "content": "\\hypertarget{namespace_satori}{}\\doxysection{Satori Namespace Reference}\n\\label{namespace_satori}\\index{Satori@{Satori}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Api\\+Authenticate\\+Logout\\+Request}\n\\item \nclass {\\bfseries Api\\+Authenticate\\+Refresh\\+Request}\n\\item \nclass {\\bfseries Api\\+Authenticate\\+Request}\n\\item \nclass {\\bfseries Api\\+Client}\n\\begin{DoxyCompactList}\\small\\item\\em The low level client for the \\mbox{\\hyperlink{namespace_satori}{Satori}} API.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Event}\n\\item \nclass {\\bfseries Api\\+Event\\+Request}\n\\item \nclass {\\bfseries Api\\+Experiment}\n\\item \nclass {\\bfseries Api\\+Experiment\\+List}\n\\item \nclass {\\bfseries Api\\+Flag}\n\\item \nclass {\\bfseries Api\\+Flag\\+List}\n\\item \nclass {\\bfseries Api\\+Identify\\+Request}\n\\item \nclass {\\bfseries Api\\+Live\\+Event}\n\\item \nclass {\\bfseries Api\\+Live\\+Event\\+List}\n\\item \nclass {\\bfseries Api\\+Properties}\n\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_api_response_exception}{Api\\+Response\\+Exception}}\n\\begin{DoxyCompactList}\\small\\item\\em An exception generated for {\\ttfamily Http\\+Response} objects don\\textquotesingle{}t return a success status.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Api\\+Session}\n\\item \nclass {\\bfseries Api\\+Update\\+Properties\\+Request}\n\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_client}{Client}}\n\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_event}{Event}}\n\\begin{DoxyCompactList}\\small\\item\\em An event to be published to the server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries GZip\\+Content}\n\\item \nclass {\\bfseries GZip\\+Http\\+Client\\+Handler}\n\\item \nclass {\\bfseries Http\\+Adapter\\+Util}\n\\begin{DoxyCompactList}\\small\\item\\em Utility methods for the \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{interface. NOTE\\+: DO NOT USE EXTENSION METHODS as Unity cannot cross-\\/compile them properly to Web\\+GL. }} \\end{DoxyCompactList}\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_http_request_adapter}{Http\\+Request\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em HTTP Request adapter which uses the .NET Http\\+Client to send requests.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_logout_request}{IApi\\+Authenticate\\+Logout\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_refresh_request}{IApi\\+Authenticate\\+Refresh\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Authenticate against the server with a refresh token.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_authenticate_request}{IApi\\+Authenticate\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Authentication request  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_event}{IApi\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A single event. Usually, but not necessarily, part of a batch.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_event_request}{IApi\\+Event\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Publish an event to the server  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment}{IApi\\+Experiment}}\n\\begin{DoxyCompactList}\\small\\item\\em An experiment that this user is partaking.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_experiment_list}{IApi\\+Experiment\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em All experiments that this identity is involved with.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag}{IApi\\+Flag}}\n\\begin{DoxyCompactList}\\small\\item\\em Feature flag available to the identity.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_flag_list}{IApi\\+Flag\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em All flags available to the identity  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_identify_request}{IApi\\+Identify\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Enrich/replace the current session with a new ID.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event}{IApi\\+Live\\+Event}}\n\\begin{DoxyCompactList}\\small\\item\\em A single live event.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_live_event_list}{IApi\\+Live\\+Event\\+List}}\n\\begin{DoxyCompactList}\\small\\item\\em List of Live events.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_properties}{IApi\\+Properties}}\n\\begin{DoxyCompactList}\\small\\item\\em Properties associated with an identity.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_session}{IApi\\+Session}}\n\\begin{DoxyCompactList}\\small\\item\\em A session.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_api_update_properties_request}{IApi\\+Update\\+Properties\\+Request}}\n\\begin{DoxyCompactList}\\small\\item\\em Update Properties associated with this identity.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_client}{IClient}}\n\\begin{DoxyCompactList}\\small\\item\\em A client for the API in \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_http_adapter}{IHttp\\+Adapter}}\n\\begin{DoxyCompactList}\\small\\item\\em An adapter which implements the HTTP protocol.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_logger}{ILogger}}\n\\begin{DoxyCompactList}\\small\\item\\em A simple logger to write log messages to an output sink.  \\end{DoxyCompactList}\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_protobuf_any}{IProtobuf\\+Any}}\n\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_rpc_status}{IRpc\\+Status}}\n\\item \ninterface \\mbox{\\hyperlink{interface_satori_1_1_i_session}{ISession}}\n\\begin{DoxyCompactList}\\small\\item\\em A session authenticated for a user with \\mbox{\\hyperlink{namespace_satori}{Satori}} server.  \\end{DoxyCompactList}\\item \nclass {\\bfseries Preserve\\+Attribute}\n\\begin{DoxyCompactList}\\small\\item\\em A custom attribute recognized by Unity3D. When added to a class member, it prevents the Unity linker from stripping the code it is associated with. This is used in addition to the link.\\+xml file because the Unity Package Manager does not recognize link.\\+xml files inside Unity packages. \\href{https://docs.unity3d.com/2018.3/Documentation/Manual/ManagedCodeStripping.html}{\\texttt{ https\\+://docs.\\+unity3d.\\+com/2018.\\+3/\\+Documentation/\\+Manual/\\+Managed\\+Code\\+Stripping.\\+html}}  \\end{DoxyCompactList}\\item \nclass {\\bfseries Protobuf\\+Any}\n\\item \nclass {\\bfseries Rpc\\+Status}\n\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_session}{Session}}\n\\end{DoxyCompactItemize}\n\\doxysubsection*{Functions}\n\\begin{DoxyCompactItemize}\n\\item \n\\mbox{\\Hypertarget{namespace_satori_a511888108671df4cff6cd4bbb1ff498f}\\label{namespace_satori_a511888108671df4cff6cd4bbb1ff498f}} \ndelegate bool {\\bfseries Transient\\+Exception\\+Delegate} (Exception e)\n\\begin{DoxyCompactList}\\small\\item\\em A delegate used to determine whether or not a network exception is due to a temporary bad state on the server. For example, timeouts can be transient in cases where the server is experiencing temporarily high load.  \\end{DoxyCompactList}\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_satori_1_1_tests.tex",
    "content": "\\hypertarget{namespace_satori_1_1_tests}{}\\doxysection{Satori.\\+Tests Namespace Reference}\n\\label{namespace_satori_1_1_tests}\\index{Satori.Tests@{Satori.Tests}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass \\mbox{\\hyperlink{class_satori_1_1_tests_1_1_client_test}{Client\\+Test}}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespace_satori_1_1_tiny_json.tex",
    "content": "\\hypertarget{namespace_satori_1_1_tiny_json}{}\\doxysection{Satori.\\+Tiny\\+Json Namespace Reference}\n\\label{namespace_satori_1_1_tiny_json}\\index{Satori.TinyJson@{Satori.TinyJson}}\n\\doxysubsection*{Classes}\n\\begin{DoxyCompactItemize}\n\\item \nclass {\\bfseries Json\\+Parser}\n\\item \nclass {\\bfseries Json\\+Writer}\n\\end{DoxyCompactItemize}\n"
  },
  {
    "path": "docs/latex/namespaces.tex",
    "content": "\\doxysection{Package List}\nHere are the packages with brief descriptions (if available)\\+:\\begin{DoxyCompactList}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama}{Nakama}} }{\\pageref{namespace_nakama}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_console}{Nakama.\\+Console}} }{\\pageref{namespace_nakama_1_1_console}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_ninja}{Nakama.\\+Ninja}} }{\\pageref{namespace_nakama_1_1_ninja}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_ninja_1_1_web_sockets}{Nakama.\\+Ninja.\\+Web\\+Sockets}} }{\\pageref{namespace_nakama_1_1_ninja_1_1_web_sockets}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Exceptions}} }{\\pageref{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal}{Nakama.\\+Ninja.\\+Web\\+Sockets.\\+Internal}} }{\\pageref{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_tests}{Nakama.\\+Tests}} }{\\pageref{namespace_nakama_1_1_tests}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_tests_1_1_api}{Nakama.\\+Tests.\\+Api}} }{\\pageref{namespace_nakama_1_1_tests_1_1_api}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_tests_1_1_socket}{Nakama.\\+Tests.\\+Socket}} }{\\pageref{namespace_nakama_1_1_tests_1_1_socket}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_nakama_1_1_tiny_json}{Nakama.\\+Tiny\\+Json}} }{\\pageref{namespace_nakama_1_1_tiny_json}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_satori}{Satori}} }{\\pageref{namespace_satori}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_satori_1_1_tests}{Satori.\\+Tests}} }{\\pageref{namespace_satori_1_1_tests}}{}\n\\item\\contentsline{section}{\\mbox{\\hyperlink{namespace_satori_1_1_tiny_json}{Satori.\\+Tiny\\+Json}} }{\\pageref{namespace_satori_1_1_tiny_json}}{}\n\\end{DoxyCompactList}\n"
  },
  {
    "path": "docs/latex/refman.tex",
    "content": "  % Handle batch mode\n  % to overcome problems with too many open files\n  \\let\\mypdfximage\\pdfximage\\def\\pdfximage{\\immediate\\mypdfximage}\n  % Set document class depending on configuration\n  \\documentclass[twoside]{book}\n  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package\n  \\usepackage{ifthen}\n  \\ifx\\requestedLaTeXdate\\undefined\n    \\usepackage{array}\n  \\else\n    \\usepackage{array}[=2016-10-06]\n  \\fi\n  %%\n  % Packages required by doxygen\n  \\usepackage{fixltx2e} % for \\textsubscript\n  \\usepackage{doxygen}\n  \\usepackage{graphicx}\n  \\usepackage[utf8]{inputenc}\n  \\usepackage{makeidx}\n  \\PassOptionsToPackage{warn}{textcomp}\n  \\usepackage{textcomp}\n  \\usepackage[nointegrals]{wasysym}\n  \\usepackage{ifxetex}\n  % NLS support packages\n  % Define default fonts\n  % Font selection\n  \\usepackage[T1]{fontenc}\n  % set main and monospaced font\n  \\usepackage[scaled=.90]{helvet}\n\\usepackage{courier}\n\\renewcommand{\\familydefault}{\\sfdefault}\n  \\usepackage{sectsty}\n  \\allsectionsfont{%\n    \\fontseries{bc}\\selectfont%\n    \\color{darkgray}%\n  }\n  \\renewcommand{\\DoxyLabelFont}{%\n    \\fontseries{bc}\\selectfont%\n    \\color{darkgray}%\n  }\n  \\newcommand{\\+}{\\discretionary{\\mbox{\\scriptsize$\\hookleftarrow$}}{}{}}\n   % Arguments of doxygenemoji:\n   % 1) ':<text>:' form of the emoji, already LaTeX-escaped\n   % 2) file with the name of the emoji without the .png extension\n   % in case image exist use this otherwise use the ':<text>:' form\n   \\newcommand{\\doxygenemoji}[2]{%\n     \\IfFileExists{./#2.png}{\\raisebox{-0.1em}{\\includegraphics[height=0.9em]{./#2.png}}}{#1}%\n   }\n  % Page & text layout\n  \\usepackage{geometry}\n  \\geometry{%\n    a4paper,%\n    top=2.5cm,%\n    bottom=2.5cm,%\n    left=2.5cm,%\n    right=2.5cm%\n  }\n  % Allow a bit of overflow to go unnoticed by other means\n  \\tolerance=750\n  \\hfuzz=15pt\n  \\hbadness=750\n  \\setlength{\\emergencystretch}{15pt}\n  \\setlength{\\parindent}{0cm}\n  \\newcommand{\\doxynormalparskip}{\\setlength{\\parskip}{3ex plus 2ex minus 2ex}}\n  \\newcommand{\\doxytocparskip}{\\setlength{\\parskip}{1ex plus 0ex minus 0ex}}\n  \\doxynormalparskip\n  % Redefine paragraph/subparagraph environments, using sectsty fonts\n  \\makeatletter\n  \\renewcommand{\\paragraph}{%\n    \\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%\n      \\normalfont\\normalsize\\bfseries\\SS@parafont%\n    }%\n  }\n  \\renewcommand{\\subparagraph}{%\n    \\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%\n      \\normalfont\\normalsize\\bfseries\\SS@subparafont%\n    }%\n  }\n  \\makeatother\n  \\makeatletter\n  \\newcommand\\hrulefilll{\\leavevmode\\leaders\\hrule\\hskip 0pt plus 1filll\\kern\\z@}\n  \\makeatother\n  % Headers & footers\n  \\usepackage{fancyhdr}\n  \\pagestyle{fancyplain}\n  \\renewcommand{\\footrulewidth}{0.4pt}\n  \\fancypagestyle{fancyplain}{\n    \\fancyhf{}\n    \\fancyhead[LE, RO]{\\bfseries\\thepage}\n    \\fancyhead[LO]{\\bfseries\\rightmark}\n    \\fancyhead[RE]{\\bfseries\\leftmark}\n    \\fancyfoot[LO, RE]{\\bfseries\\scriptsize Generated by Doxygen }\n  }\n  \\fancypagestyle{plain}{\n    \\fancyhf{}\n    \\fancyfoot[LO, RE]{\\bfseries\\scriptsize Generated by Doxygen }\n    \\renewcommand{\\headrulewidth}{0pt}\n  }\n  \\pagestyle{fancyplain}\n  \\renewcommand{\\chaptermark}[1]{%\n    \\markboth{#1}{}%\n  }\n  \\renewcommand{\\sectionmark}[1]{%\n    \\markright{\\thesection\\ #1}%\n  }\n  % ToC, LoF, LoT, bibliography, and index\n  % Indices & bibliography\n  \\usepackage{natbib}\n  \\usepackage[titles]{tocloft}\n  \\setcounter{tocdepth}{3}\n  \\setcounter{secnumdepth}{5}\n  % creating indexes\n  \\makeindex\n  \\usepackage{newunicodechar}\n  \\newunicodechar{⁻}{${}^{-}$}% Superscript minus\n  \\newunicodechar{²}{${}^{2}$}% Superscript two\n  \\newunicodechar{³}{${}^{3}$}% Superscript three\n  % Hyperlinks\n    % Hyperlinks (required, but should be loaded last)\n    \\ifpdf\n      \\usepackage[pdftex,pagebackref=true]{hyperref}\n    \\else\n      \\ifxetex\n        \\usepackage[pagebackref=true]{hyperref}\n      \\else\n        \\usepackage[ps2pdf,pagebackref=true]{hyperref}\n      \\fi\n    \\fi\n    \\hypersetup{%\n      colorlinks=true,%\n      linkcolor=blue,%\n      citecolor=blue,%\n      unicode,%\n      pdftitle={Nakama .\\+NET},%\n      pdfsubject={Nakama .\\+NET Client SDK}%\n    }\n  % Custom commands used by the header\n  % Custom commands\n  \\newcommand{\\clearemptydoublepage}{%\n    \\newpage{\\pagestyle{empty}\\cleardoublepage}%\n  }\n  % caption style definition\n  \\usepackage{caption}\n  \\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}\n  % in page table of contents\n  \\usepackage{etoc}\n  \\etocsettocstyle{\\doxytocparskip}{\\doxynormalparskip}\n  % prevent numbers overlap the titles in toc\n  \\renewcommand{\\numberline}[1]{#1~}\n% End of preamble, now comes the document contents\n%===== C O N T E N T S =====\n\\begin{document}\n  \\raggedbottom\n  % Titlepage & ToC\n    % To avoid duplicate page anchors due to reuse of same numbers for\n    % the index (be it as roman numbers)\n    \\hypersetup{pageanchor=false,\n                bookmarksnumbered=true,\n                pdfencoding=unicode\n               }\n  \\pagenumbering{alph}\n  \\begin{titlepage}\n  \\vspace*{7cm}\n  \\begin{center}%\n  {\\Large Nakama .\\+NET}\\\\\n  [1ex]\\large 3.\\+5 \\\\\n  \\vspace*{1cm}\n  {\\large Generated by Doxygen 1.9.5}\\\\\n  \\end{center}\n  \\end{titlepage}\n  \\clearemptydoublepage\n  \\pagenumbering{roman}\n  \\tableofcontents\n  \\clearemptydoublepage\n  \\pagenumbering{arabic}\n  % re-enable anchors again\n  \\hypersetup{pageanchor=true}\n%--- Begin generated contents ---\n\\chapter{Nakama .NET}\n\\label{index}\\hypertarget{index}{}\\input{index}\n\\chapter{Changelog}\n\\label{md__c_h_a_n_g_e_l_o_g}\n\\Hypertarget{md__c_h_a_n_g_e_l_o_g}\n\\input{md__c_h_a_n_g_e_l_o_g}\n\\chapter{Release Instructions}\n\\label{md__r_e_l_e_a_s_e_i_n_s_t}\n\\Hypertarget{md__r_e_l_e_a_s_e_i_n_s_t}\n\\input{md__r_e_l_e_a_s_e_i_n_s_t}\n\\chapter{Namespace Index}\n\\input{namespaces}\n\\chapter{Hierarchical Index}\n\\input{hierarchy}\n\\chapter{Class Index}\n\\input{annotated}\n\\chapter{Namespace Documentation}\n\\input{namespace_nakama}\n\\input{namespace_nakama_1_1_console}\n\\input{namespace_nakama_1_1_ninja}\n\\input{namespace_nakama_1_1_ninja_1_1_web_sockets}\n\\input{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions}\n\\input{namespace_nakama_1_1_ninja_1_1_web_sockets_1_1_internal}\n\\input{namespace_nakama_1_1_tests}\n\\input{namespace_nakama_1_1_tests_1_1_api}\n\\input{namespace_nakama_1_1_tests_1_1_socket}\n\\input{namespace_nakama_1_1_tiny_json}\n\\input{namespace_satori}\n\\input{namespace_satori_1_1_tests}\n\\input{namespace_satori_1_1_tiny_json}\n\\chapter{Class Documentation}\n\\input{class_nakama_1_1_api_response_exception}\n\\input{class_nakama_1_1_console_1_1_api_response_exception}\n\\input{class_satori_1_1_api_response_exception}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_authenticate_test}\n\\input{class_nakama_1_1_tests_1_1_awaited_socket_task_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool}\n\\input{class_nakama_1_1_tests_1_1_cancel_test}\n\\input{class_nakama_1_1_client}\n\\input{class_satori_1_1_client}\n\\input{class_satori_1_1_tests_1_1_client_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_entity_too_large_exception}\n\\input{class_satori_1_1_event}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_group_test}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_http_error_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_http_helper}\n\\input{class_nakama_1_1_http_request_adapter}\n\\input{class_satori_1_1_http_request_adapter}\n\\input{interface_nakama_1_1_i_api_account}\n\\input{interface_nakama_1_1_i_api_account_apple}\n\\input{interface_nakama_1_1_i_api_account_custom}\n\\input{interface_nakama_1_1_console_1_1_i_api_account_device}\n\\input{interface_nakama_1_1_i_api_account_device}\n\\input{interface_nakama_1_1_i_api_account_email}\n\\input{interface_nakama_1_1_i_api_account_facebook}\n\\input{interface_nakama_1_1_i_api_account_facebook_instant_game}\n\\input{interface_nakama_1_1_i_api_account_game_center}\n\\input{interface_nakama_1_1_i_api_account_google}\n\\input{interface_nakama_1_1_i_api_account_steam}\n\\input{interface_satori_1_1_i_api_authenticate_logout_request}\n\\input{interface_satori_1_1_i_api_authenticate_refresh_request}\n\\input{interface_satori_1_1_i_api_authenticate_request}\n\\input{interface_nakama_1_1_console_1_1_i_api_channel_message}\n\\input{interface_nakama_1_1_i_api_channel_message}\n\\input{interface_nakama_1_1_i_api_channel_message_list}\n\\input{interface_nakama_1_1_i_api_create_group_request}\n\\input{interface_nakama_1_1_i_api_delete_storage_object_id}\n\\input{interface_nakama_1_1_i_api_delete_storage_objects_request}\n\\input{interface_nakama_1_1_i_api_event}\n\\input{interface_satori_1_1_i_api_event}\n\\input{interface_satori_1_1_i_api_event_request}\n\\input{interface_satori_1_1_i_api_experiment}\n\\input{interface_satori_1_1_i_api_experiment_list}\n\\input{interface_satori_1_1_i_api_flag}\n\\input{interface_satori_1_1_i_api_flag_list}\n\\input{interface_nakama_1_1_console_1_1_i_api_friend}\n\\input{interface_nakama_1_1_i_api_friend}\n\\input{interface_nakama_1_1_console_1_1_i_api_friend_list}\n\\input{interface_nakama_1_1_i_api_friend_list}\n\\input{interface_nakama_1_1_console_1_1_i_api_group}\n\\input{interface_nakama_1_1_i_api_group}\n\\input{interface_nakama_1_1_i_api_group_list}\n\\input{interface_nakama_1_1_i_api_group_user_list}\n\\input{interface_satori_1_1_i_api_identify_request}\n\\input{interface_nakama_1_1_console_1_1_i_api_leaderboard_record}\n\\input{interface_nakama_1_1_i_api_leaderboard_record}\n\\input{interface_nakama_1_1_i_api_leaderboard_record_list}\n\\input{interface_nakama_1_1_i_api_link_steam_request}\n\\input{interface_nakama_1_1_i_api_list_subscriptions_request}\n\\input{interface_satori_1_1_i_api_live_event}\n\\input{interface_satori_1_1_i_api_live_event_list}\n\\input{interface_nakama_1_1_i_api_match}\n\\input{interface_nakama_1_1_i_api_match_list}\n\\input{interface_nakama_1_1_console_1_1_i_api_notification}\n\\input{interface_nakama_1_1_i_api_notification}\n\\input{interface_nakama_1_1_i_api_notification_list}\n\\input{interface_satori_1_1_i_api_properties}\n\\input{interface_nakama_1_1_i_api_read_storage_object_id}\n\\input{interface_nakama_1_1_i_api_read_storage_objects_request}\n\\input{interface_nakama_1_1_i_api_rpc}\n\\input{interface_nakama_1_1_i_api_session}\n\\input{interface_satori_1_1_i_api_session}\n\\input{interface_nakama_1_1_i_api_session_logout_request}\n\\input{interface_nakama_1_1_i_api_session_refresh_request}\n\\input{interface_nakama_1_1_console_1_1_i_api_storage_object}\n\\input{interface_nakama_1_1_i_api_storage_object}\n\\input{interface_nakama_1_1_console_1_1_i_api_storage_object_ack}\n\\input{interface_nakama_1_1_i_api_storage_object_ack}\n\\input{interface_nakama_1_1_i_api_storage_object_acks}\n\\input{interface_nakama_1_1_i_api_storage_object_list}\n\\input{interface_nakama_1_1_i_api_storage_objects}\n\\input{interface_nakama_1_1_i_api_subscription_list}\n\\input{interface_nakama_1_1_i_api_tournament}\n\\input{interface_nakama_1_1_i_api_tournament_list}\n\\input{interface_nakama_1_1_i_api_tournament_record_list}\n\\input{interface_nakama_1_1_i_api_update_account_request}\n\\input{interface_nakama_1_1_i_api_update_group_request}\n\\input{interface_satori_1_1_i_api_update_properties_request}\n\\input{interface_nakama_1_1_console_1_1_i_api_user}\n\\input{interface_nakama_1_1_i_api_user}\n\\input{interface_nakama_1_1_console_1_1_i_api_user_group_list}\n\\input{interface_nakama_1_1_i_api_user_group_list}\n\\input{interface_nakama_1_1_i_api_users}\n\\input{interface_nakama_1_1_i_api_validated_purchase}\n\\input{interface_nakama_1_1_i_api_validated_subscription}\n\\input{interface_nakama_1_1_i_api_validate_purchase_apple_request}\n\\input{interface_nakama_1_1_i_api_validate_purchase_google_request}\n\\input{interface_nakama_1_1_i_api_validate_purchase_huawei_request}\n\\input{interface_nakama_1_1_i_api_validate_purchase_response}\n\\input{interface_nakama_1_1_i_api_validate_subscription_apple_request}\n\\input{interface_nakama_1_1_i_api_validate_subscription_google_request}\n\\input{interface_nakama_1_1_i_api_validate_subscription_response}\n\\input{interface_nakama_1_1_i_api_write_storage_object}\n\\input{interface_nakama_1_1_i_api_write_storage_objects_request}\n\\input{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_buffer_pool}\n\\input{interface_nakama_1_1_i_channel}\n\\input{interface_nakama_1_1_i_channel_message_ack}\n\\input{interface_nakama_1_1_i_channel_presence_event}\n\\input{interface_nakama_1_1_i_client}\n\\input{interface_satori_1_1_i_client}\n\\input{interface_nakama_1_1_console_1_1_i_config_warning}\n\\input{interface_nakama_1_1_console_1_1_i_console_account_export}\n\\input{interface_nakama_1_1_console_1_1_i_console_authenticate_request}\n\\input{interface_nakama_1_1_console_1_1_i_console_config}\n\\input{interface_nakama_1_1_console_1_1_i_console_console_session}\n\\input{interface_nakama_1_1_console_1_1_i_console_status_list}\n\\input{interface_nakama_1_1_console_1_1_i_console_storage_list}\n\\input{interface_nakama_1_1_console_1_1_i_console_unlink_device_request}\n\\input{interface_nakama_1_1_console_1_1_i_console_user_list}\n\\input{interface_nakama_1_1_console_1_1_i_console_wallet_ledger}\n\\input{interface_nakama_1_1_console_1_1_i_console_wallet_ledger_list}\n\\input{interface_nakama_1_1_console_1_1_i_console_write_storage_object_request}\n\\input{interface_nakama_1_1_i_group_user_list_group_user}\n\\input{interface_nakama_1_1_i_http_adapter}\n\\input{interface_satori_1_1_i_http_adapter}\n\\input{interface_nakama_1_1_i_logger}\n\\input{interface_satori_1_1_i_logger}\n\\input{interface_nakama_1_1_i_match}\n\\input{interface_nakama_1_1_i_matchmaker_matched}\n\\input{interface_nakama_1_1_i_matchmaker_ticket}\n\\input{interface_nakama_1_1_i_matchmaker_user}\n\\input{interface_nakama_1_1_i_match_presence_event}\n\\input{interface_nakama_1_1_i_match_state}\n\\input{interface_nakama_1_1_console_1_1_i_nakamaapi_account}\n\\input{interface_nakama_1_1_console_1_1_i_nakamaconsole_account}\n\\input{interface_nakama_1_1_console_1_1_i_nakamaconsole_update_account_request}\n\\input{interface_nakama_1_1_tests_1_1_i_nested_test_object}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_invalid_http_response_code_exception}\n\\input{interface_nakama_1_1_i_party}\n\\input{interface_nakama_1_1_i_party_close}\n\\input{interface_nakama_1_1_i_party_data}\n\\input{interface_nakama_1_1_i_party_join_request}\n\\input{interface_nakama_1_1_i_party_leader}\n\\input{interface_nakama_1_1_i_party_matchmaker_ticket}\n\\input{interface_nakama_1_1_i_party_presence_event}\n\\input{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_ping_pong_manager}\n\\input{interface_nakama_1_1_console_1_1_i_protobuf_any}\n\\input{interface_nakama_1_1_i_protobuf_any}\n\\input{interface_satori_1_1_i_protobuf_any}\n\\input{interface_nakama_1_1_i_rpc_status}\n\\input{interface_satori_1_1_i_rpc_status}\n\\input{interface_nakama_1_1_console_1_1_i_runtime_error}\n\\input{interface_nakama_1_1_i_session}\n\\input{interface_satori_1_1_i_session}\n\\input{interface_nakama_1_1_i_socket}\n\\input{interface_nakama_1_1_i_socket_adapter}\n\\input{interface_nakama_1_1_i_status}\n\\input{interface_nakama_1_1_console_1_1_i_status_list_status}\n\\input{interface_nakama_1_1_i_status_presence_event}\n\\input{interface_nakama_1_1_i_stream}\n\\input{interface_nakama_1_1_i_stream_presence_event}\n\\input{interface_nakama_1_1_i_stream_state}\n\\input{interface_nakama_1_1_tests_1_1_i_test_object}\n\\input{interface_nakama_1_1_console_1_1_i_user_group_list_user_group}\n\\input{interface_nakama_1_1_i_user_group_list_user_group}\n\\input{interface_nakama_1_1_i_user_presence}\n\\input{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_client_factory}\n\\input{interface_nakama_1_1_ninja_1_1_web_sockets_1_1_i_web_socket_server_factory}\n\\input{interface_nakama_1_1_i_write_leaderboard_record_request_leaderboard_record_write}\n\\input{interface_nakama_1_1_i_write_tournament_record_request_tournament_record_write}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_around_owner_test}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_leaderboard_test}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_link_unlink_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_ping_pong_manager}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_pong_event_args}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_buffer_pool_1_1_public_buffer_memory_stream}\n\\input{class_nakama_1_1_retry}\n\\input{class_nakama_1_1_retry_configuration}\n\\input{class_nakama_1_1_tests_1_1_retry_test}\n\\input{class_nakama_1_1_tests_1_1_api_1_1_rpc_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_sec_web_socket_key_missing_exception}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_server_listener_socket_exception}\n\\input{class_nakama_1_1_session}\n\\input{class_satori_1_1_session}\n\\input{class_nakama_1_1_tests_1_1_session_test}\n\\input{class_nakama_1_1_socket}\n\\input{class_nakama_1_1_tests_1_1_stdout_logger}\n\\input{class_nakama_1_1_storage_object_id}\n\\input{class_nakama_1_1_tests_1_1_tiny_json_parser_test}\n\\input{class_nakama_1_1_tests_1_1_transient_exception_http_adapter}\n\\input{class_nakama_1_1_web_socket_adapter}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_buffer_overflow_exception}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_channel_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_factory}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_client_options}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_handshake_failed_exception}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_http_context}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_matchmaker_test}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_match_test}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_notification_test}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_party_test}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_rpc_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_factory}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_web_socket_server_options}\n\\input{class_nakama_1_1_web_socket_stdlib_adapter}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_test}\n\\input{class_nakama_1_1_tests_1_1_socket_1_1_web_socket_user_status_test}\n\\input{class_nakama_1_1_ninja_1_1_web_sockets_1_1_exceptions_1_1_web_socket_version_not_supported_exception}\n\\input{class_nakama_1_1_write_storage_object}\n%--- End generated contents ---\n% Index\n  \\backmatter\n  \\newpage\n  \\phantomsection\n  \\clearemptydoublepage\n  \\addcontentsline{toc}{chapter}{\\indexname}\n  \\printindex\n% Required for some languages (in combination with latexdocumentpre from the header)\n\\end{document}\n"
  },
  {
    "path": "docs/latex/tabu_doxygen.sty",
    "content": "%%\n%% This is file `tabu.sty',\n%% generated with the docstrip utility.\n%%\n%% The original source files were:\n%%\n%% tabu.dtx  (with options: `package')\n%% \n%% This is a generated file.\n%% Copyright (FC) 2010-2011 - lppl\n%% \n%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars\n%% \n%% **********************************************************************************************\n%% \\begin{tabu}               { preamble } => default target: \\linewidth or \\linegoal\n%% \\begin{tabu} to     <dimen>{ preamble } => target specified\n%% \\begin{tabu} spread <dimen>{ preamble } => target relative to the ``natural width''\n%% \n%%  tabu works in text and in math modes.\n%% \n%%  X columns: automatic width adjustment + horizontal and vertical alignment\n%%  \\begin{tabu}   { X[4c] X[1c] X[-2ml]  }\n%% \n%%  Horizontal lines and / or leaders:\n%%         \\hline\\hline                          => double horizontal line\n%%         \\firsthline\\hline                     => for nested tabulars\n%%         \\lasthline\\hline                      => for nested tabulars\n%%         \\tabucline[line spec]{column-column}  => ``funny'' lines (dash/leader)\n%%  Automatic lines / leaders :\n%%         \\everyrow{\\hline\\hline}\n%% \n%%  Vertical lines and / or leaders:\n%%  \\begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt blue] }\n%%  \\begin{tabu}   { |[3pt red] X[4c] X[1c] X[-2ml] |[3pt on 2pt off 4pt blue] }\n%% \n%%  Fixed vertical spacing adjustment:\n%%         \\extrarowheight=<dimen>     \\extrarowdepth=<dimen>\n%%    or:     \\extrarowsep=<dimen>               => may be prefixed by \\global\n%% \n%%  Dynamic vertical spacing adjustment:\n%%       \\abovetabulinesep=<dimen>  \\belowtabulinesep=<dimen>\n%%   or:      \\tabulinesep=<dimen>               => may be prefixed by \\global\n%% \n%%  delarray.sty shortcuts: in math and text modes\n%%  \\begin{tabu} ....        \\({ preamble }\\)\n%% \n%%  Algorithms reports:\n%%            \\tracingtabu=1             \\tracingtabu=2\n%% \n%% **********************************************************************************************\n%% \n%% This work may be distributed and/or modified under the\n%% conditions of the LaTeX Project Public License, either\n%% version 1.3 of this license or (at your option) any later\n%% version. The latest version of this license is in\n%%    http://www.latex-project.org/lppl.txt\n%% \n%% This work consists of the main source file tabu.dtx\n%% and the derived files\n%%    tabu.sty, tabu.pdf, tabu.ins\n%% \n%% tabu : Flexible LaTeX tabulars\n%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>\n%% \n\n\\NeedsTeXFormat{LaTeX2e}[2005/12/01]\n\\ProvidesPackage{tabu_doxygen}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC), frozen version for doxygen]\n\\RequirePackage{array}[2008/09/09]\n\\RequirePackage{varwidth}[2009/03/30]\n\\AtEndOfPackage{\\tabu@AtEnd \\let\\tabu@AtEnd \\@undefined}\n\\let\\tabu@AtEnd\\@empty\n\\def\\TMP@EnsureCode#1={%\n    \\edef\\tabu@AtEnd{\\tabu@AtEnd\n                     \\catcode#1 \\the\\catcode#1}%\n    \\catcode#1=%\n}% \\TMP@EnsureCode\n\\TMP@EnsureCode 33 = 12 % !\n\\TMP@EnsureCode 58 = 12 % : (for siunitx)\n\\TMP@EnsureCode124 = 12 % |\n\\TMP@EnsureCode 36 =  3 % $ = math shift\n\\TMP@EnsureCode 38 =  4 % & = tab alignment character\n\\TMP@EnsureCode 32 = 10 % space\n\\TMP@EnsureCode 94 =  7 % ^\n\\TMP@EnsureCode 95 =  8 % _\n%% Constants --------------------------------------------------------\n\\newcount \\c@taburow        \\def\\thetaburow {\\number\\c@taburow}\n\\newcount \\tabu@nbcols\n\\newcount \\tabu@cnt\n\\newcount \\tabu@Xcol\n\\let\\tabu@start \\@tempcnta\n\\let\\tabu@stop  \\@tempcntb\n\\newcount \\tabu@alloc  \\tabu@alloc=\\m@ne\n\\newcount \\tabu@nested\n\\def\\tabu@alloc@{\\global\\advance\\tabu@alloc \\@ne \\tabu@nested\\tabu@alloc}\n\\newdimen \\tabu@target\n\\newdimen \\tabu@spreadtarget\n\\newdimen \\tabu@naturalX\n\\newdimen \\tabucolX\n\\let\\tabu@DELTA \\@tempdimc\n\\let\\tabu@thick \\@tempdima\n\\let\\tabu@on    \\@tempdimb\n\\let\\tabu@off   \\@tempdimc\n\\newdimen \\tabu@Xsum\n\\newdimen \\extrarowdepth\n\\newdimen \\abovetabulinesep\n\\newdimen \\belowtabulinesep\n\\newdimen \\tabustrutrule      \\tabustrutrule \\z@\n\\newtoks \\tabu@thebody\n\\newtoks \\tabu@footnotes\n\\newsavebox \\tabu@box\n\\newsavebox \\tabu@arstrutbox\n\\newsavebox \\tabu@hleads\n\\newsavebox \\tabu@vleads\n\\newif \\iftabu@colortbl\n\\newif \\iftabu@siunitx\n\\newif \\iftabu@measuring\n\\newif \\iftabu@spread\n\\newif \\iftabu@negcoef\n\\newif \\iftabu@everyrow\n\\def\\tabu@everyrowtrue {\\global\\let\\iftabu@everyrow \\iftrue}\n\\def\\tabu@everyrowfalse{\\global\\let\\iftabu@everyrow \\iffalse}\n\\newif \\iftabu@long\n\\newif \\iftabuscantokens\n\\def\\tabu@rescan {\\tabu@verbatim \\scantokens  }\n%% Utilities (for internal usage) -----------------------------------\n\\def\\tabu@gobblespace #1  {#1}\n\\def\\tabu@gobbletoken #1#2{#1}\n\\def\\tabu@gobbleX{\\futurelet\\@let@token \\tabu@gobblex}\n\\def\\tabu@gobblex{\\if ^^J\\noexpand\\@let@token \\expandafter\\@gobble\n                  \\else\\ifx \\@sptoken\\@let@token\n                    \\expandafter\\tabu@gobblespace\\expandafter\\tabu@gobbleX\n                  \\fi\\fi\n}% \\tabu@gobblex\n\\def\\tabu@X{^^J}\n{\\obeyspaces\n\\global\\let\\tabu@spxiii= % saves an active space (for \\ifx)\n\\gdef\\tabu@@spxiii{ }}\n\\def\\tabu@ifenvir {% only for \\multicolumn\n    \\expandafter\\tabu@if@nvir\\csname\\@currenvir\\endcsname\n}% \\tabu@ifenvir\n\\def\\tabu@if@nvir #1{\\csname @\\ifx\\tabu#1first\\else\n                              \\ifx\\longtabu#1first\\else\n                              second\\fi\\fi oftwo\\endcsname\n}% \\tabu@ifenvir\n\\def\\tabu@modulo #1#2{\\numexpr\\ifnum\\numexpr#1=\\z@ 0\\else #1-(#1-(#2-1)/2)/(#2)*(#2)\\fi}\n{\\catcode`\\&=3\n\\gdef\\tabu@strtrim  #1{% #1 = control sequence to trim\n    \\ifodd 1\\ifx #1\\@empty \\else \\ifx #1\\space \\else 0\\fi \\fi\n            \\let\\tabu@c@l@r \\@empty       \\let#1\\@empty\n    \\else   \\expandafter  \\tabu@trimspaces  #1&#1\\@nnil\n    \\fi\n}% \\tabu@strtrim\n\\gdef\\tabu@trimspaces #1&#2\\@nnil{\\let\\tabu@c@l@r=#2\\tabu@firstspace .#1& &#2}%\n\\gdef\\tabu@firstspace #1#2#3 &{\\tabu@lastspace #2#3&}\n\\gdef\\tabu@lastspace #1&#2&#3{\\def #3{#1}%\n    \\ifx #3\\tabu@c@l@r \\def\\tabu@c@l@r{\\protect\\color{#1}}\\expandafter\\remove@to@nnil \\fi\n    \\tabu@trimspaces #1&#3\\@nnil}\n}% \\catcode\n\\def\\tabu@sanitizearg #1#2{{%\n    \\csname \\ifcsname if@safe@actives\\endcsname         % <babel>\n                      @safe@activestrue\\else\n                      relax\\fi       \\endcsname\n    \\edef#2{#1}\\tabu@strtrim#2\\@onelevel@sanitize#2%\n    \\expandafter}\\expandafter\\def\\expandafter#2\\expandafter{#2}%\n}% \\tabu@sanitizearg\n\\def\\tabu@textbar #1{\\begingroup \\endlinechar\\m@ne \\scantokens{\\def\\:{|}}%\n    \\expandafter\\endgroup \\expandafter#1\\:% !!! semi simple group !!!\n}% \\tabu@textbar\n\\def\\tabu@everyrow@bgroup{\\iftabu@everyrow \\begingroup \\else \\noalign{\\ifnum0=`}\\fi \\fi}\n\\def\\tabu@everyrow@egroup{%\n    \\iftabu@everyrow \\expandafter \\endgroup \\the\\toks@\n    \\else            \\ifnum0=`{\\fi}%\n    \\fi\n}% \\tabu@everyrow@egroup\n\\def\\tabu@arstrut {\\global\\setbox\\@arstrutbox \\hbox{\\vrule\n    height \\arraystretch \\dimexpr\\ht\\strutbox+\\extrarowheight\n    depth  \\arraystretch \\dimexpr\\dp\\strutbox+\\extrarowdepth\n    width  \\z@}%\n}% \\tabu@arstrut\n\\def\\tabu@rearstrut {%\n    \\@tempdima \\arraystretch\\dimexpr\\ht\\strutbox+\\extrarowheight \\relax\n    \\@tempdimb \\arraystretch\\dimexpr\\dp\\strutbox+\\extrarowdepth  \\relax\n    \\ifodd 1\\ifdim \\ht\\@arstrutbox=\\@tempdima\n            \\ifdim \\dp\\@arstrutbox=\\@tempdimb 0 \\fi\\fi\n        \\tabu@mkarstrut\n    \\fi\n}% \\tabu@rearstrut\n\\def\\tabu@@DBG #1{\\ifdim\\tabustrutrule>\\z@ \\color{#1}\\fi}\n\\def\\tabu@DBG@arstrut {\\global\\setbox\\@arstrutbox\n    \\hbox to\\z@{\\hbox to\\z@{\\hss\n    {\\tabu@DBG{cyan}\\vrule\n    height \\arraystretch \\dimexpr\\ht\\strutbox+\\extrarowheight\n    depth  \\z@\n    width  \\tabustrutrule}\\kern-\\tabustrutrule\n    {\\tabu@DBG{pink}\\vrule\n    height \\z@\n    depth  \\arraystretch \\dimexpr\\dp\\strutbox+\\extrarowdepth\n    width \\tabustrutrule}}}%\n}% \\tabu@DBG@arstrut\n\\def\\tabu@save@decl{\\toks\\count@ \\expandafter{\\the\\toks\\expandafter\\count@\n                                                              \\@nextchar}}%\n\\def\\tabu@savedecl{\\ifcat$\\d@llarend\\else\n       \\let\\save@decl \\tabu@save@decl \\fi % no inversion of tokens in text mode\n}% \\tabu@savedecl\n\\def\\tabu@finalstrut #1{\\unskip\\ifhmode\\nobreak\\fi\\vrule height\\z@ depth\\z@ width\\z@}\n\\newcommand*\\tabuDisableCommands {\\g@addto@macro\\tabu@trialh@@k }\n\\let\\tabu@trialh@@k \\@empty\n\\def\\tabu@nowrite #1#{{\\afterassignment}\\toks@}\n\\let\\tabu@write\\write\n\\let\\tabu@immediate\\immediate\n\\def\\tabu@WRITE{\\begingroup\n   \\def\\immediate\\write{\\aftergroup\\endgroup\n                  \\tabu@immediate\\tabu@write}%\n}% \\tabu@WRITE\n\\expandafter\\def\\expandafter\\tabu@GenericError\\expandafter{%\n                      \\expandafter\\tabu@WRITE\\GenericError}\n\\def\\tabu@warn{\\tabu@WRITE\\PackageWarning{tabu}}\n\\def\\tabu@noxfootnote [#1]{\\@gobble}\n\\def\\tabu@nocolor #1#{\\@gobble}\n\\newcommand*\\tabu@norowcolor[2][]{}\n\\def\\tabu@maybesiunitx #1{\\def\\tabu@temp{#1}%\n                          \\futurelet\\@let@token \\tabu@m@ybesiunitx}\n\\def\\tabu@m@ybesiunitx #1{\\def\\tabu@m@ybesiunitx {%\n    \\ifx #1\\@let@token \\let\\tabu@cellleft \\@empty \\let\\tabu@cellright \\@empty \\fi\n    \\tabu@temp}% \\tabu@m@ybesiunitx\n}\\expandafter\\tabu@m@ybesiunitx \\csname siunitx_table_collect_begin:Nn\\endcsname\n\\def\\tabu@celllalign@def #1{\\def\\tabu@celllalign{\\tabu@maybesiunitx{#1}}}%\n%% Fixed vertical spacing adjustment: \\extrarowsep ------------------\n\\newcommand*\\extrarowsep{\\edef\\tabu@C@extra{\\the\\numexpr\\tabu@C@extra+1}%\n    \\iftabu@everyrow    \\aftergroup\\tabu@Gextra\n    \\else               \\aftergroup\\tabu@n@Gextra\n    \\fi\n    \\@ifnextchar={\\tabu@gobbletoken\\tabu@extra} \\tabu@extra\n}% \\extrarowsep\n\\def\\tabu@extra {\\@ifnextchar_%\n    {\\tabu@gobbletoken{\\tabu@setextra\\extrarowheight \\extrarowdepth}}\n    {\\ifx ^\\@let@token \\def\\tabu@temp{%\n            \\tabu@gobbletoken{\\tabu@setextra\\extrarowdepth \\extrarowheight}}%\n    \\else   \\let\\tabu@temp \\@empty\n            \\afterassignment \\tabu@setextrasep \\extrarowdepth\n    \\fi \\tabu@temp}%\n}% \\tabu@extra\n\\def\\tabu@setextra #1#2{\\def\\tabu@temp{\\tabu@extr@#1#2}\\afterassignment\\tabu@temp#2}\n\\def\\tabu@extr@ #1#2{\\@ifnextchar^%\n    {\\tabu@gobbletoken{\\tabu@setextra\\extrarowdepth \\extrarowheight}}\n    {\\ifx _\\@let@token \\def\\tabu@temp{%\n            \\tabu@gobbletoken{\\tabu@setextra\\extrarowheight \\extrarowdepth}}%\n    \\else   \\let\\tabu@temp \\@empty\n            \\tabu@Gsave \\tabu@G@extra \\tabu@C@extra \\extrarowheight \\extrarowdepth\n    \\fi \\tabu@temp}%\n}% \\tabu@extr@\n\\def\\tabu@setextrasep {\\extrarowheight=\\extrarowdepth\n    \\tabu@Gsave \\tabu@G@extra \\tabu@C@extra \\extrarowheight \\extrarowdepth\n}% \\tabu@setextrasep\n\\def\\tabu@Gextra{\\ifx \\tabu@G@extra\\@empty \\else {\\tabu@Rextra}\\fi}\n\\def\\tabu@n@Gextra{\\ifx \\tabu@G@extra\\@empty \\else \\noalign{\\tabu@Rextra}\\fi}\n\\def\\tabu@Rextra{\\tabu@Grestore \\tabu@G@extra \\tabu@C@extra}\n\\let\\tabu@C@extra \\z@\n\\let\\tabu@G@extra \\@empty\n%% Dynamic vertical spacing adjustment: \\tabulinesep ----------------\n\\newcommand*\\tabulinesep{\\edef\\tabu@C@linesep{\\the\\numexpr\\tabu@C@linesep+1}%\n    \\iftabu@everyrow    \\aftergroup\\tabu@Glinesep\n    \\else               \\aftergroup\\tabu@n@Glinesep\n    \\fi\n    \\@ifnextchar={\\tabu@gobbletoken\\tabu@linesep} \\tabu@linesep\n}% \\tabulinesep\n\\def\\tabu@linesep {\\@ifnextchar_%\n    {\\tabu@gobbletoken{\\tabu@setsep\\abovetabulinesep \\belowtabulinesep}}\n    {\\ifx ^\\@let@token \\def\\tabu@temp{%\n            \\tabu@gobbletoken{\\tabu@setsep\\belowtabulinesep \\abovetabulinesep}}%\n     \\else  \\let\\tabu@temp \\@empty\n            \\afterassignment \\tabu@setlinesep \\abovetabulinesep\n     \\fi \\tabu@temp}%\n}% \\tabu@linesep\n\\def\\tabu@setsep #1#2{\\def\\tabu@temp{\\tabu@sets@p#1#2}\\afterassignment\\tabu@temp#2}\n\\def\\tabu@sets@p #1#2{\\@ifnextchar^%\n    {\\tabu@gobbletoken{\\tabu@setsep\\belowtabulinesep \\abovetabulinesep}}\n    {\\ifx _\\@let@token \\def\\tabu@temp{%\n            \\tabu@gobbletoken{\\tabu@setsep\\abovetabulinesep \\belowtabulinesep}}%\n    \\else   \\let\\tabu@temp \\@empty\n            \\tabu@Gsave \\tabu@G@linesep \\tabu@C@linesep \\abovetabulinesep \\belowtabulinesep\n    \\fi \\tabu@temp}%\n}% \\tabu@sets@p\n\\def\\tabu@setlinesep {\\belowtabulinesep=\\abovetabulinesep\n    \\tabu@Gsave \\tabu@G@linesep \\tabu@C@linesep \\abovetabulinesep \\belowtabulinesep\n}% \\tabu@setlinesep\n\\def\\tabu@Glinesep{\\ifx \\tabu@G@linesep\\@empty \\else {\\tabu@Rlinesep}\\fi}\n\\def\\tabu@n@Glinesep{\\ifx \\tabu@G@linesep\\@empty \\else \\noalign{\\tabu@Rlinesep}\\fi}\n\\def\\tabu@Rlinesep{\\tabu@Grestore \\tabu@G@linesep \\tabu@C@linesep}\n\\let\\tabu@C@linesep \\z@\n\\let\\tabu@G@linesep \\@empty\n%% \\global\\extrarowsep  and  \\global\\tabulinesep  -------------------\n\\def\\tabu@Gsave #1#2#3#4{\\xdef#1{#1%\n    \\toks#2{\\toks\\the\\currentgrouplevel{\\global#3\\the#3\\global#4\\the#4}}}%\n}% \\tabu@Gsave\n\\def\\tabu@Grestore#1#2{%\n    \\toks#2{}#1\\toks\\currentgrouplevel\\expandafter{\\expandafter}\\the\\toks#2\\relax\n    \\ifcat$\\the\\toks\\currentgrouplevel$\\else\n        \\global\\let#1\\@empty \\global\\let#2\\z@\n        \\the\\toks\\currentgrouplevel\n    \\fi\n}% \\tabu@Grestore\n%% Setting code for every row ---------------------------------------\n\\newcommand*\\everyrow{\\tabu@everyrow@bgroup\n                      \\tabu@start \\z@ \\tabu@stop \\z@ \\tabu@evrstartstop\n}% \\everyrow\n\\def\\tabu@evrstartstop {\\@ifnextchar^%\n    {\\afterassignment \\tabu@evrstartstop \\tabu@stop=}%\n    {\\ifx ^\\@let@token\n            \\afterassignment\\tabu@evrstartstop \\tabu@start=%\n     \\else  \\afterassignment\\tabu@everyr@w     \\toks@\n     \\fi}%\n}% \\tabu@evrstartstop\n\\def\\tabu@everyr@w {%\n    \\xdef\\tabu@everyrow{%\n        \\noexpand\\tabu@everyrowfalse\n        \\let\\noalign \\relax\n        \\noexpand\\tabu@rowfontreset\n        \\iftabu@colortbl \\noexpand\\tabu@rc@ \\fi % \\taburowcolors\n        \\let\\noexpand\\tabu@docline \\noexpand\\tabu@docline@evr\n        \\the\\toks@\n        \\noexpand\\tabu@evrh@@k\n        \\noexpand\\tabu@rearstrut\n        \\global\\advance\\c@taburow \\@ne}%\n    \\iftabu@everyrow \\toks@\\expandafter\n        {\\expandafter\\def\\expandafter\\tabu@evr@L\\expandafter{\\the\\toks@}\\ignorespaces}%\n    \\else \\xdef\\tabu@evr@G{\\the\\toks@}%\n    \\fi\n    \\tabu@everyrow@egroup\n}% \\tabu@everyr@w\n\\def\\tabu@evr {\\def\\tabu@evrh@@k}         % for internal use only\n\\tabu@evr{}\n%% line style and leaders -------------------------------------------\n\\newcommand*\\newtabulinestyle [1]{%\n    {\\@for \\@tempa :=#1\\do{\\expandafter\\tabu@newlinestyle \\@tempa==\\@nil}}%\n}% \\newtabulinestyle\n\\def\\tabu@newlinestyle #1=#2=#3\\@nil{\\tabu@getline {#2}%\n    \\tabu@sanitizearg {#1}\\@tempa\n    \\ifodd 1\\ifx \\@tempa\\@empty \\ifdefined\\tabu@linestyle@ 0 \\fi\\fi\n    \\global\\expandafter\\let\n        \\csname tabu@linestyle@\\@tempa \\endcsname =\\tabu@thestyle \\fi\n}% \\tabu@newlinestyle\n\\newcommand*\\tabulinestyle [1]{\\tabu@everyrow@bgroup \\tabu@getline{#1}%\n    \\iftabu@everyrow\n        \\toks@\\expandafter{\\expandafter \\def \\expandafter\n                    \\tabu@ls@L\\expandafter{\\tabu@thestyle}\\ignorespaces}%\n        \\gdef\\tabu@ls@{\\tabu@ls@L}%\n    \\else\n        \\global\\let\\tabu@ls@G \\tabu@thestyle\n        \\gdef\\tabu@ls@{\\tabu@ls@G}%\n    \\fi\n    \\tabu@everyrow@egroup\n}% \\tabulinestyle\n\\newcommand*\\taburulecolor{\\tabu@everyrow@bgroup \\tabu@textbar \\tabu@rulecolor}\n\\def\\tabu@rulecolor #1{\\toks@{}%\n    \\def\\tabu@temp #1##1#1{\\tabu@ruledrsc{##1}}\\@ifnextchar #1%\n                                                    \\tabu@temp\n                                                 \\tabu@rulearc\n}% \\tabu@rulecolor\n\\def\\tabu@ruledrsc #1{\\edef\\tabu@temp{#1}\\tabu@strtrim\\tabu@temp\n    \\ifx \\tabu@temp\\@empty \\def\\tabu@temp{\\tabu@rule@drsc@ {}{}}%\n    \\else \\edef\\tabu@temp{\\noexpand\\tabu@rule@drsc@ {}{\\tabu@temp}}%\n    \\fi\n    \\tabu@temp\n}% \\tabu@ruledrsc@\n\\def\\tabu@ruledrsc@   #1#{\\tabu@rule@drsc@ {#1}}\n\\def\\tabu@rule@drsc@ #1#2{%\n    \\iftabu@everyrow\n        \\ifx \\\\#1#2\\\\\\toks@{\\let\\CT@drsc@ \\relax}%\n        \\else        \\toks@{\\def\\CT@drsc@{\\color #1{#2}}}%\n        \\fi\n    \\else\n        \\ifx \\\\#1#2\\\\\\global\\let\\CT@drsc@ \\relax\n        \\else        \\gdef\\CT@drsc@{\\color #1{#2}}%\n        \\fi\n    \\fi\n    \\tabu@rulearc\n}% \\tabu@rule@drsc@\n\\def\\tabu@rulearc    #1#{\\tabu@rule@arc@ {#1}}\n\\def\\tabu@rule@arc@ #1#2{%\n    \\iftabu@everyrow\n        \\ifx \\\\#1#2\\\\\\toks@\\expandafter{\\the\\toks@ \\def\\CT@arc@{}}%\n        \\else        \\toks@\\expandafter{\\the\\toks@ \\def\\CT@arc@{\\color #1{#2}}}%\n        \\fi\n        \\toks@\\expandafter{\\the\\toks@\n            \\let\\tabu@arc@L  \\CT@arc@\n            \\let\\tabu@drsc@L \\CT@drsc@\n            \\ignorespaces}%\n    \\else\n        \\ifx \\\\#1#2\\\\\\gdef\\CT@arc@{}%\n        \\else        \\gdef\\CT@arc@{\\color #1{#2}}%\n        \\fi\n        \\global\\let\\tabu@arc@G  \\CT@arc@\n        \\global\\let\\tabu@drsc@G \\CT@drsc@\n    \\fi\n    \\tabu@everyrow@egroup\n}% \\tabu@rule@arc@\n\\def\\taburowcolors {\\tabu@everyrow@bgroup \\@testopt \\tabu@rowcolors 1}\n\\def\\tabu@rowcolors [#1]#2#{\\tabu@rowc@lors{#1}{#2}}\n\\def\\tabu@rowc@lors #1#2#3{%\n    \\toks@{}\\@defaultunits \\count@      =\\number0#2\\relax \\@nnil\n            \\@defaultunits \\tabu@start  =\\number0#1\\relax \\@nnil\n    \\ifnum \\count@<\\tw@ \\count@=\\tw@ \\fi\n    \\advance\\tabu@start \\m@ne\n    \\ifnum \\tabu@start<\\z@ \\tabu@start \\z@ \\fi\n    \\tabu@rowcolorseries #3\\in@..\\in@ \\@nnil\n}% \\tabu@rowcolors\n\\def\\tabu@rowcolorseries #1..#2\\in@ #3\\@nnil {%\n    \\ifx \\in@#1\\relax\n        \\iftabu@everyrow \\toks@{\\def\\tabu@rc@{}\\let\\tabu@rc@L \\tabu@rc@}%\n        \\else   \\gdef\\tabu@rc@{}\\global\\let\\tabu@rc@G \\tabu@rc@\n        \\fi\n    \\else\n        \\ifx \\\\#2\\\\\\tabu@rowcolorserieserror \\fi\n        \\tabu@sanitizearg{#1}\\tabu@temp\n        \\tabu@sanitizearg{#2}\\@tempa\n        \\advance\\count@ \\m@ne\n    \\iftabu@everyrow\n        \\def\\tabu@rc@ ##1##2##3##4{\\def\\tabu@rc@{%\n            \\ifnum ##2=\\c@taburow\n                \\definecolorseries{tabu@rcseries@\\the\\tabu@nested}{rgb}{last}{##3}{##4}\\fi\n            \\ifnum \\c@taburow<##2 \\else\n                \\ifnum \\tabu@modulo {\\c@taburow-##2}{##1+1}=\\z@\n                    \\resetcolorseries[{##1}]{tabu@rcseries@\\the\\tabu@nested}\\fi\n                \\xglobal\\colorlet{tabu@rc@\\the\\tabu@nested}{tabu@rcseries@\\the\\tabu@nested!!+}%\n                \\rowcolor{tabu@rc@\\the\\tabu@nested}\\fi}%\n        }\\edef\\x{\\noexpand\\tabu@rc@           {\\the\\count@}\n                                          {\\the\\tabu@start}\n                                               {\\tabu@temp}\n                                                  {\\@tempa}%\n                }\\x\n        \\toks@\\expandafter{\\expandafter\\def\\expandafter\\tabu@rc@\\expandafter{\\tabu@rc@}}%\n        \\toks@\\expandafter{\\the\\toks@ \\let\\tabu@rc@L \\tabu@rc@ \\ignorespaces}%\n    \\else   % inside \\noalign\n        \\definecolorseries{tabu@rcseries@\\the\\tabu@nested}{rgb}{last}{\\tabu@temp}{\\@tempa}%\n        \\expandafter\\resetcolorseries\\expandafter[\\the\\count@]{tabu@rcseries@\\the\\tabu@nested}%\n        \\xglobal\\colorlet{tabu@rc@\\the\\tabu@nested}{tabu@rcseries@\\the\\tabu@nested!!+}%\n        \\let\\noalign \\relax \\rowcolor{tabu@rc@\\the\\tabu@nested}%\n        \\def\\tabu@rc@ ##1##2{\\gdef\\tabu@rc@{%\n            \\ifnum \\tabu@modulo {\\c@taburow-##2}{##1+1}=\\@ne\n                \\resetcolorseries[{##1}]{tabu@rcseries@\\the\\tabu@nested}\\fi\n            \\xglobal\\colorlet{tabu@rc@\\the\\tabu@nested}{tabu@rcseries@\\the\\tabu@nested!!+}%\n            \\rowcolor{tabu@rc@\\the\\tabu@nested}}%\n        }\\edef\\x{\\noexpand\\tabu@rc@{\\the\\count@}{\\the\\c@taburow}}\\x\n        \\global\\let\\tabu@rc@G \\tabu@rc@\n    \\fi\n    \\fi\n    \\tabu@everyrow@egroup\n}% \\tabu@rowcolorseries\n\\tabuDisableCommands {\\let\\tabu@rc@ \\@empty }\n\\def\\tabu@rowcolorserieserror {\\PackageError{tabu}\n    {Invalid syntax for \\string\\taburowcolors\n    \\MessageBreak Please look at the documentation!}\\@ehd\n}% \\tabu@rowcolorserieserror\n\\newcommand*\\tabureset {%\n    \\tabulinesep=\\z@ \\extrarowsep=\\z@ \\extratabsurround=\\z@\n    \\tabulinestyle{}\\everyrow{}\\taburulecolor||{}\\taburowcolors{}%\n}% \\tabureset\n%% Parsing the line styles ------------------------------------------\n\\def\\tabu@getline #1{\\begingroup\n    \\csname \\ifcsname if@safe@actives\\endcsname         % <babel>\n                      @safe@activestrue\\else\n                      relax\\fi       \\endcsname\n    \\edef\\tabu@temp{#1}\\tabu@sanitizearg{#1}\\@tempa\n    \\let\\tabu@thestyle \\relax\n    \\ifcsname tabu@linestyle@\\@tempa \\endcsname\n            \\edef\\tabu@thestyle{\\endgroup\n                \\def\\tabu@thestyle{\\expandafter\\noexpand\n                    \\csname tabu@linestyle@\\@tempa\\endcsname}%\n            }\\tabu@thestyle\n    \\else   \\expandafter\\tabu@definestyle \\tabu@temp \\@nil\n    \\fi\n}% \\tabu@getline\n\\def\\tabu@definestyle #1#2\\@nil {\\endlinechar \\m@ne \\makeatletter\n    \\tabu@thick \\maxdimen  \\tabu@on \\maxdimen   \\tabu@off \\maxdimen\n    \\let\\tabu@c@lon \\@undefined  \\let\\tabu@c@loff \\@undefined\n    \\ifodd 1\\ifcat .#1\\else\\ifcat\\relax #1\\else 0\\fi\\fi % catcode 12 or non expandable cs\n            \\def\\tabu@temp{\\tabu@getparam{thick}}%\n    \\else   \\def\\tabu@temp{\\tabu@getparam{thick}\\maxdimen}%\n    \\fi\n    {%\n        \\let\\tabu@ \\relax\n        \\def\\:{\\obeyspaces \\tabu@oXIII \\tabu@commaXIII \\edef\\:}% (space active \\: happy ;-))\n        \\scantokens{\\:{\\tabu@temp #1#2 \\tabu@\\tabu@}}%\n                        \\expandafter}\\expandafter\n                                \\def\\expandafter\\:\\expandafter{\\:}% line spec rewritten now ;-)\n    \\def\\;{\\def\\:}%\n    \\scantokens\\expandafter{\\expandafter\\;\\expandafter{\\:}}% space is now inactive (catcode 10)\n    \\let\\tabu@ \\tabu@getcolor    \\:%    all arguments are ready now ;-)\n    \\ifdefined\\tabu@c@lon \\else \\let\\tabu@c@lon\\@empty \\fi\n    \\ifx \\tabu@c@lon\\@empty \\def\\tabu@c@lon{\\CT@arc@}\\fi\n    \\ifdefined\\tabu@c@loff \\else \\let\\tabu@c@loff \\@empty        \\fi\n    \\ifdim \\tabu@on=\\maxdimen \\ifdim \\tabu@off<\\maxdimen\n                                  \\tabu@on \\tabulineon        \\fi\\fi\n    \\ifdim \\tabu@off=\\maxdimen \\ifdim \\tabu@on<\\maxdimen\n                                  \\tabu@off \\tabulineoff      \\fi\\fi\n    \\ifodd 1\\ifdim \\tabu@off=\\maxdimen \\ifdim \\tabu@on=\\maxdimen 0 \\fi\\fi\n            \\in@true    % <leaders>\n    \\else   \\in@false   % <rule>\n    \\fi\n    \\ifdim\\tabu@thick=\\maxdimen \\def\\tabu@thick{\\arrayrulewidth}%\n    \\else                       \\edef\\tabu@thick{\\the\\tabu@thick}%\n    \\fi\n    \\edef \\tabu@thestyle ##1##2{\\endgroup\n        \\def\\tabu@thestyle{%\n            \\ifin@  \\noexpand\\tabu@leadersstyle {\\tabu@thick}\n                                                {\\the\\tabu@on}{##1}\n                                                {\\the\\tabu@off}{##2}%\n            \\else   \\noexpand\\tabu@rulesstyle\n                            {##1\\vrule width \\tabu@thick}%\n                            {##1\\leaders \\hrule height \\tabu@thick \\hfil}%\n            \\fi}%\n    }\\expandafter \\expandafter\n        \\expandafter \\tabu@thestyle \\expandafter\n            \\expandafter \\expandafter\n                {\\expandafter\\tabu@c@lon\\expandafter}\\expandafter{\\tabu@c@loff}%\n}% \\tabu@definestyle\n{\\catcode`\\O=\\active \\lccode`\\O=`\\o \\catcode`\\,=\\active\n    \\lowercase{\\gdef\\tabu@oXIII {\\catcode`\\o=\\active \\let O=\\tabu@oxiii}}\n    \\gdef\\tabu@commaXIII {\\catcode`\\,=\\active \\let ,=\\space}\n}% \\catcode\n\\def\\tabu@oxiii #1{%\n    \\ifcase  \\ifx n#1\\z@ \\else\n             \\ifx f#1\\@ne\\else\n             \\tw@       \\fi\\fi\n          \\expandafter\\tabu@onxiii\n    \\or   \\expandafter\\tabu@ofxiii\n    \\else o%\n    \\fi#1}%\n\\def\\tabu@onxiii #1#2{%\n    \\ifcase  \\ifx  !#2\\tw@          \\else\n             \\ifcat.\\noexpand#2\\z@  \\else\n             \\ifx \\tabu@spxiii#2\\@ne\\else\n             \\tw@               \\fi\\fi\\fi\n          \\tabu@getparam{on}#2\\expandafter\\@gobble\n    \\or   \\expandafter\\tabu@onxiii    % (space is active)\n    \\else o\\expandafter\\@firstofone\n    \\fi{#1#2}}%\n\\def\\tabu@ofxiii #1#2{%\n    \\ifx #2f\\expandafter\\tabu@offxiii\n    \\else   o\\expandafter\\@firstofone\n    \\fi{#1#2}}\n\\def\\tabu@offxiii #1#2{%\n    \\ifcase \\ifx  !#2\\tw@           \\else\n            \\ifcat.\\noexpand#2\\z@   \\else\n            \\ifx\\tabu@spxiii#2\\@ne  \\else\n            \\tw@                \\fi\\fi\\fi\n          \\tabu@getparam{off}#2\\expandafter\\@gobble\n    \\or   \\expandafter\\tabu@offxiii   % (space is active)\n    \\else o\\expandafter\\@firstofone\n    \\fi{#1#2}}\n\\def\\tabu@getparam #1{\\tabu@ \\csname tabu@#1\\endcsname=}\n\\def\\tabu@getcolor #1{% \\tabu@ <- \\tabu@getcolor after \\edef\n    \\ifx \\tabu@#1\\else   % no more spec\n        \\let\\tabu@theparam=#1\\afterassignment \\tabu@getc@l@r #1\\fi\n}% \\tabu@getcolor\n\\def\\tabu@getc@l@r #1\\tabu@ {%\n    \\def\\tabu@temp{#1}\\tabu@strtrim \\tabu@temp\n    \\ifx \\tabu@temp\\@empty\n    \\else%\\ifcsname \\string\\color@\\tabu@temp \\endcsname  % if the color exists\n        \\ifx \\tabu@theparam \\tabu@off   \\let\\tabu@c@loff \\tabu@c@l@r\n        \\else                           \\let\\tabu@c@lon  \\tabu@c@l@r\n        \\fi\n    %\\else \\tabu@warncolour{\\tabu@temp}%\n    \\fi%\\fi\n    \\tabu@ % next spec\n}% \\tabu@getc@l@r\n\\def\\tabu@warncolour #1{\\PackageWarning{tabu}\n    {Color #1 is not defined. Default color used}%\n}% \\tabu@warncolour\n\\def\\tabu@leadersstyle #1#2#3#4#5{\\def\\tabu@leaders{{#1}{#2}{#3}{#4}{#5}}%\n    \\ifx \\tabu@leaders\\tabu@leaders@G \\else\n                \\tabu@LEADERS{#1}{#2}{#3}{#4}{#5}\\fi\n}% \\tabu@leadersstyle\n\\def\\tabu@rulesstyle #1#2{\\let\\tabu@leaders \\@undefined\n        \\gdef\\tabu@thevrule{#1}\\gdef\\tabu@thehrule{#2}%\n}% \\tabu@rulesstyle\n%% The leaders boxes ------------------------------------------------\n\\def\\tabu@LEADERS #1#2#3#4#5{%% width, dash, dash color, gap, gap color\n    {\\let\\color \\tabu@color % => during trials ->  \\color = \\tabu@nocolor\n    {%                      %    but the leaders boxes should have colors !\n    \\def\\@therule{\\vrule}\\def\\@thick{height}\\def\\@length{width}%\n    \\def\\@box{\\hbox}\\def\\@unbox{\\unhbox}\\def\\@elt{\\wd}%\n    \\def\\@skip{\\hskip}\\def\\@ss{\\hss}\\def\\tabu@leads{\\tabu@hleads}%\n    \\tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%\n    \\global\\let\\tabu@thehleaders \\tabu@theleaders\n    }%\n    {%\n    \\def\\@therule{\\hrule}\\def\\@thick{width}\\def\\@length{height}%\n    \\def\\@box{\\vbox}\\def\\@unbox{\\unvbox}\\def\\@elt{\\ht}%\n    \\def\\@skip{\\vskip}\\def\\@ss{\\vss}\\def\\tabu@leads{\\tabu@vleads}%\n    \\tabu@l@@d@rs {#1}{#2}{#3}{#4}{#5}%\n    \\global\\let\\tabu@thevleaders \\tabu@theleaders\n    }%\n    \\gdef\\tabu@leaders@G{{#1}{#2}{#3}{#4}{#5}}%\n    }%\n}% \\tabu@LEADERS\n\\def\\tabu@therule #1#2{\\@therule \\@thick#1\\@length\\dimexpr#2/2 \\@depth\\z@}\n\\def\\tabu@l@@d@rs #1#2#3#4#5{%% width, dash, dash color, gap, gap color\n    \\global\\setbox \\tabu@leads=\\@box{%\n        {#3\\tabu@therule{#1}{#2}}%\n        \\ifx\\\\#5\\\\\\@skip#4\\else{#5\\tabu@therule{#1}{#4*2}}\\fi\n        {#3\\tabu@therule{#1}{#2}}}%\n    \\global\\setbox\\tabu@leads=\\@box to\\@elt\\tabu@leads{\\@ss\n        {#3\\tabu@therule{#1}{#2}}\\@unbox\\tabu@leads}%\n    \\edef\\tabu@theleaders ##1{\\def\\noexpand\\tabu@theleaders {%\n        {##1\\tabu@therule{#1}{#2}}%\n        \\xleaders \\copy\\tabu@leads \\@ss\n        \\tabu@therule{0pt}{-#2}{##1\\tabu@therule{#1}{#2}}}%\n    }\\tabu@theleaders{#3}%\n}% \\tabu@l@@d@rs\n%% \\tabu \\endtabu \\tabu* \\longtabu \\endlongtabu \\longtabu* ----------\n\\newcommand*\\tabu {\\tabu@longfalse\n    \\ifmmode \\def\\tabu@ {\\array}\\def\\endtabu {\\endarray}%\n    \\else  \\def\\tabu@ {\\tabu@tabular}\\def\\endtabu {\\endtabular}\\fi\n    \\expandafter\\let\\csname tabu*\\endcsname \\tabu\n    \\expandafter\\def\\csname endtabu*\\endcsname{\\endtabu}%\n    \\tabu@spreadfalse \\tabu@negcoeffalse \\tabu@settarget\n}% {tabu}\n\\let\\tabu@tabular \\tabular % <For LyX: some users redefine \\tabular...>\n\\expandafter\\def\\csname tabu*\\endcsname{\\tabuscantokenstrue \\tabu}\n\\newcommand*\\longtabu {\\tabu@longtrue\n   \\ifmmode\\PackageError{tabu}{longtabu not allowed in math mode}\\fi\n   \\def\\tabu@{\\longtable}\\def\\endlongtabu{\\endlongtable}%\n   \\LTchunksize=\\@M\n   \\expandafter\\let\\csname tabu*\\endcsname \\tabu\n   \\expandafter\\def\\csname endlongtabu*\\endcsname{\\endlongtabu}%\n   \\let\\LT@startpbox \\tabu@LT@startpbox % \\everypar{ array struts }\n   \\tabu@spreadfalse \\tabu@negcoeffalse \\tabu@settarget\n}% {longtabu}\n\\expandafter\\def\\csname longtabu*\\endcsname{\\tabuscantokenstrue \\longtabu}\n\\def\\tabu@nolongtabu{\\PackageError{tabu}\n   {longtabu requires the longtable package}\\@ehd}\n%% Read the target and  then : \\tabular or \\@array ------------------\n\\def\\tabu@settarget {\\futurelet\\@let@token \\tabu@sett@rget }\n\\def\\tabu@sett@rget {\\tabu@target \\z@\n   \\ifcase \\ifx \\bgroup\\@let@token   \\z@  \\else\n           \\ifx \\@sptoken\\@let@token \\@ne \\else\n           \\if t\\@let@token          \\tw@ \\else\n           \\if s\\@let@token          \\thr@@\\else\n           \\z@\\fi\\fi\\fi\\fi\n         \\expandafter\\tabu@begin\n   \\or   \\expandafter\\tabu@gobblespace\\expandafter\\tabu@settarget\n   \\or   \\expandafter\\tabu@to\n   \\or   \\expandafter\\tabu@spread\n   \\fi\n}% \\tabu@sett@rget\n\\def\\tabu@to to{\\def\\tabu@halignto{to}\\tabu@gettarget}\n\\def\\tabu@spread spread{\\tabu@spreadtrue\\def\\tabu@halignto{spread}\\tabu@gettarget}\n\\def\\tabu@gettarget {\\afterassignment\\tabu@linegoaltarget \\tabu@target }\n\\def\\tabu@linegoaltarget {\\futurelet\\tabu@temp \\tabu@linegoalt@rget }\n\\def\\tabu@linegoalt@rget {%\n   \\ifx \\tabu@temp\\LNGL@setlinegoal\n        \\LNGL@setlinegoal \\expandafter \\@firstoftwo \\fi % @gobbles \\LNGL@setlinegoal\n   \\tabu@begin\n}% \\tabu@linegoalt@rget\n\\def\\tabu@begin #1#{%\n    \\iftabu@measuring \\expandafter\\tabu@nestedmeasure \\fi\n    \\ifdim \\tabu@target=\\z@ \\let\\tabu@halignto \\@empty\n    \\else                   \\edef\\tabu@halignto{\\tabu@halignto\\the\\tabu@target}%\n    \\fi\n    \\@testopt \\tabu@tabu@ \\tabu@aligndefault #1\\@nil\n}% \\tabu@begin\n\\long\\def\\tabu@tabu@ [#1]#2\\@nil #3{\\tabu@setup\n   \\def\\tabu@align {#1}\\def\\tabu@savedpream{\\NC@find #3}%\n   \\tabu@ [\\tabu@align ]#2{#3\\tabu@rewritefirst }%\n}% \\tabu@tabu@\n\\def\\tabu@nestedmeasure {%\n    \\ifodd 1\\iftabu@spread \\else \\ifdim\\tabu@target=\\z@ \\else 0 \\fi\\fi\\relax\n            \\tabu@spreadtrue\n    \\else   \\begingroup \\iffalse{\\fi \\ifnum0=`}\\fi\n            \\toks@{}\\def\\tabu@stack{b}%\n            \\expandafter\\tabu@collectbody\\expandafter\\tabu@quickrule\n                                         \\expandafter\\endgroup\n    \\fi\n}% \\tabu@nestedmeasure\n\\def\\tabu@quickrule {\\indent\\vrule height\\z@ depth\\z@ width\\tabu@target}\n%% \\tabu@setup  \\tabu@init  \\tabu@indent\n\\def\\tabu@setup{\\tabu@alloc@\n    \\ifcase \\tabu@nested\n        \\ifmmode \\else \\iftabu@spread\\else \\ifdim\\tabu@target=\\z@\n            \\let\\tabu@afterendpar \\par\n        \\fi\\fi\\fi\n        \\def\\tabu@aligndefault{c}\\tabu@init \\tabu@indent\n    \\else       % <nested tabu>\n        \\def\\tabu@aligndefault{t}\\let\\tabudefaulttarget \\linewidth\n    \\fi\n    \\let\\tabu@thetarget \\tabudefaulttarget \\let\\tabu@restored \\@undefined\n    \\edef\\tabu@NC@list{\\the\\NC@list}\\NC@list{\\NC@do \\tabu@rewritefirst}%\n    \\everycr{}\\let\\@startpbox \\tabu@startpbox % for nested tabu inside longtabu...\n              \\let\\@endpbox   \\tabu@endpbox   % idem \"    \"    \"    \"    \"    \"\n              \\let\\@tabarray  \\tabu@tabarray  % idem \"    \"    \"    \"    \"    \"\n    \\tabu@setcleanup \\tabu@setreset\n}% \\tabu@setup\n\\def\\tabu@init{\\tabu@starttimer \\tabu@measuringfalse\n    \\edef\\tabu@hfuzz  {\\the\\dimexpr\\hfuzz+1sp}\\global\\tabu@footnotes{}%\n    \\let\\firsthline    \\tabu@firsthline   \\let\\lasthline      \\tabu@lasthline\n    \\let\\firstline     \\tabu@firstline    \\let\\lastline       \\tabu@lastline\n    \\let\\hline         \\tabu@hline        \\let\\@xhline        \\tabu@xhline\n    \\let\\color         \\tabu@color        \\let\\@arstrutbox    \\tabu@arstrutbox\n    \\iftabu@colortbl\\else\\let\\LT@@hline   \\tabu@LT@@hline \\fi\n    \\tabu@trivlist     %<restore \\\\=\\@normalcr inside lists>\n    \\let\\@footnotetext \\tabu@footnotetext \\let\\@xfootnotetext \\tabu@xfootnotetext\n    \\let\\@xfootnote    \\tabu@xfootnote    \\let\\centering      \\tabu@centering\n    \\let\\raggedright   \\tabu@raggedright  \\let\\raggedleft     \\tabu@raggedleft\n    \\let\\tabudecimal   \\tabu@tabudecimal  \\let\\Centering      \\tabu@Centering\n    \\let\\RaggedRight   \\tabu@RaggedRight  \\let\\RaggedLeft     \\tabu@RaggedLeft\n    \\let\\justifying    \\tabu@justifying   \\let\\rowfont        \\tabu@rowfont\n    \\let\\fbox          \\tabu@fbox         \\let\\color@b@x      \\tabu@color@b@x\n    \\let\\tabu@@everycr \\everycr           \\let\\tabu@@everypar \\everypar\n    \\let\\tabu@prepnext@tokORI \\prepnext@tok\\let\\prepnext@tok  \\tabu@prepnext@tok\n    \\let\\tabu@multicolumnORI\\multicolumn  \\let\\multicolumn    \\tabu@multicolumn\n    \\let\\tabu@startpbox \\@startpbox      % for nested tabu inside longtabu pfff !!!\n    \\let\\tabu@endpbox   \\@endpbox        % idem  \"    \"    \"    \"    \"    \"    \"\n    \\let\\tabu@tabarray  \\@tabarray       % idem  \"    \"    \"    \"    \"    \"    \"\n    \\tabu@adl@fix      \\let\\endarray      \\tabu@endarray % <fix> colortbl & arydshln (delarray)\n    \\iftabu@colortbl\\CT@everycr\\expandafter{\\expandafter\\iftabu@everyrow \\the\\CT@everycr \\fi}\\fi\n}% \\tabu@init\n\\def\\tabu@indent{% correction for indentation\n    \\ifdim \\parindent>\\z@\\ifx \\linewidth\\tabudefaulttarget\n    \\everypar\\expandafter{%\n        \\the\\everypar\\everypar\\expandafter{\\the\\everypar}%\n            \\setbox\\z@=\\lastbox\n            \\ifdim\\wd\\z@>\\z@ \\edef\\tabu@thetarget\n                {\\the\\dimexpr -\\wd\\z@+\\tabudefaulttarget}\\fi\n            \\box\\z@}%\n    \\fi\\fi\n}% \\tabu@indent\n\\def\\tabu@setcleanup {% saves last global assignments\n    \\ifodd 1\\ifmmode \\else \\iftabu@long \\else 0\\fi\\fi\\relax\n        \\def\\tabu@aftergroupcleanup{%\n                \\def\\tabu@aftergroupcleanup{\\aftergroup\\tabu@cleanup}}%\n    \\else\n        \\def\\tabu@aftergroupcleanup{%\n                \\aftergroup\\aftergroup\\aftergroup\\tabu@cleanup\n                \\let\\tabu@aftergroupcleanup \\relax}%\n    \\fi\n    \\let\\tabu@arc@Gsave         \\tabu@arc@G\n    \\let\\tabu@arc@G             \\tabu@arc@L   % <init>\n    \\let\\tabu@drsc@Gsave        \\tabu@drsc@G\n    \\let\\tabu@drsc@G            \\tabu@drsc@L  % <init>\n    \\let\\tabu@ls@Gsave          \\tabu@ls@G\n    \\let\\tabu@ls@G              \\tabu@ls@L    % <init>\n    \\let\\tabu@rc@Gsave          \\tabu@rc@G\n    \\let\\tabu@rc@G              \\tabu@rc@L    % <init>\n    \\let\\tabu@evr@Gsave         \\tabu@evr@G\n    \\let\\tabu@evr@G             \\tabu@evr@L   % <init>\n    \\let\\tabu@celllalign@save   \\tabu@celllalign\n    \\let\\tabu@cellralign@save   \\tabu@cellralign\n    \\let\\tabu@cellleft@save     \\tabu@cellleft\n    \\let\\tabu@cellright@save    \\tabu@cellright\n    \\let\\tabu@@celllalign@save  \\tabu@@celllalign\n    \\let\\tabu@@cellralign@save  \\tabu@@cellralign\n    \\let\\tabu@@cellleft@save    \\tabu@@cellleft\n    \\let\\tabu@@cellright@save   \\tabu@@cellright\n    \\let\\tabu@rowfontreset@save \\tabu@rowfontreset\n    \\let\\tabu@@rowfontreset@save\\tabu@@rowfontreset\n    \\let\\tabu@rowfontreset      \\@empty\n    \\edef\\tabu@alloc@save      {\\the\\tabu@alloc}%   restore at \\tabu@reset\n    \\edef\\c@taburow@save       {\\the\\c@taburow}%\n    \\edef\\tabu@naturalX@save   {\\the\\tabu@naturalX}%\n    \\let\\tabu@naturalXmin@save  \\tabu@naturalXmin\n    \\let\\tabu@naturalXmax@save  \\tabu@naturalXmax\n    \\let\\tabu@mkarstrut@save    \\tabu@mkarstrut\n    \\edef\\tabu@clarstrut{%\n        \\extrarowheight \\the\\dimexpr \\ht\\@arstrutbox-\\ht\\strutbox \\relax\n        \\extrarowdepth \\the\\dimexpr \\dp\\@arstrutbox-\\dp\\strutbox \\relax\n        \\let\\noexpand\\@arraystretch \\@ne \\noexpand\\tabu@rearstrut}%\n}% \\tabu@setcleanup\n\\def\\tabu@cleanup {\\begingroup\n    \\globaldefs\\@ne         \\tabu@everyrowtrue\n    \\let\\tabu@arc@G         \\tabu@arc@Gsave\n    \\let\\CT@arc@            \\tabu@arc@G\n    \\let\\tabu@drsc@G        \\tabu@drsc@Gsave\n    \\let\\CT@drsc@           \\tabu@drsc@G\n    \\let\\tabu@ls@G          \\tabu@ls@Gsave\n    \\let\\tabu@ls@           \\tabu@ls@G\n    \\let\\tabu@rc@G          \\tabu@rc@Gsave\n    \\let\\tabu@rc@           \\tabu@rc@G\n    \\let\\CT@do@color        \\relax\n    \\let\\tabu@evr@G         \\tabu@evr@Gsave\n    \\let\\tabu@celllalign    \\tabu@celllalign@save\n    \\let\\tabu@cellralign    \\tabu@cellralign@save\n    \\let\\tabu@cellleft      \\tabu@cellleft@save\n    \\let\\tabu@cellright     \\tabu@cellright@save\n    \\let\\tabu@@celllalign   \\tabu@@celllalign@save\n    \\let\\tabu@@cellralign   \\tabu@@cellralign@save\n    \\let\\tabu@@cellleft     \\tabu@@cellleft@save\n    \\let\\tabu@@cellright    \\tabu@@cellright@save\n    \\let\\tabu@rowfontreset  \\tabu@rowfontreset@save\n    \\let\\tabu@@rowfontreset \\tabu@@rowfontreset@save\n    \\tabu@naturalX         =\\tabu@naturalX@save\n    \\let\\tabu@naturalXmax   \\tabu@naturalXmax@save\n    \\let\\tabu@naturalXmin   \\tabu@naturalXmin@save\n    \\let\\tabu@mkarstrut     \\tabu@mkarstrut@save\n    \\c@taburow             =\\c@taburow@save\n    \\ifcase \\tabu@nested    \\tabu@alloc \\m@ne\\fi\n    \\endgroup               % <end of \\globaldefs>\n    \\ifcase \\tabu@nested\n        \\the\\tabu@footnotes \\global\\tabu@footnotes{}%\n        \\tabu@afterendpar   \\tabu@elapsedtime\n    \\fi\n    \\tabu@clarstrut\n    \\everyrow\\expandafter   {\\tabu@evr@G}%\n}% \\tabu@cleanup\n\\let\\tabu@afterendpar \\relax\n\\def\\tabu@setreset {%\n    \\edef\\tabu@savedparams {%         \\relax for \\tabu@message@save\n        \\ifmmode \\col@sep \\the\\arraycolsep\n        \\else    \\col@sep \\the\\tabcolsep \\fi    \\relax\n        \\arrayrulewidth   \\the\\arrayrulewidth   \\relax\n        \\doublerulesep    \\the\\doublerulesep    \\relax\n        \\extratabsurround \\the\\extratabsurround \\relax\n        \\extrarowheight   \\the\\extrarowheight   \\relax\n        \\extrarowdepth    \\the\\extrarowdepth    \\relax\n        \\abovetabulinesep \\the\\abovetabulinesep \\relax\n        \\belowtabulinesep \\the\\belowtabulinesep \\relax\n        \\def\\noexpand\\arraystretch{\\arraystretch}%\n        \\ifdefined\\minrowclearance \\minrowclearance\\the\\minrowclearance\\relax\\fi}%\n    \\begingroup\n        \\@temptokena\\expandafter{\\tabu@savedparams}% => only for \\savetabu / \\usetabu\n        \\ifx \\tabu@arc@L\\relax  \\else \\tabu@setsave \\tabu@arc@L \\fi\n        \\ifx \\tabu@drsc@L\\relax \\else \\tabu@setsave \\tabu@drsc@L \\fi\n        \\tabu@setsave \\tabu@ls@L      \\tabu@setsave \\tabu@evr@L\n        \\expandafter \\endgroup \\expandafter\n            \\def\\expandafter\\tabu@saved@ \\expandafter{\\the\\@temptokena\n                \\let\\tabu@arc@G  \\tabu@arc@L\n                \\let\\tabu@drsc@G \\tabu@drsc@L\n                \\let\\tabu@ls@G   \\tabu@ls@L\n                \\let\\tabu@rc@G   \\tabu@rc@L\n                \\let\\tabu@evr@G  \\tabu@evr@L}%\n    \\def\\tabu@reset{\\tabu@savedparams\n        \\tabu@everyrowtrue  \\c@taburow \\z@\n        \\let\\CT@arc@        \\tabu@arc@L\n        \\let\\CT@drsc@       \\tabu@drsc@L\n        \\let\\tabu@ls@       \\tabu@ls@L\n        \\let\\tabu@rc@       \\tabu@rc@L\n        \\global\\tabu@alloc  \\tabu@alloc@save\n        \\everyrow\\expandafter{\\tabu@evr@L}}%\n}% \\tabu@reset\n\\def\\tabu@setsave #1{\\expandafter\\tabu@sets@ve #1\\@nil{#1}}\n\\long\\def\\tabu@sets@ve #1\\@nil #2{\\@temptokena\\expandafter{\\the\\@temptokena \\def#2{#1}}}\n%% The Rewriting Process -------------------------------------------\n\\def\\tabu@newcolumntype #1{%\n    \\expandafter\\tabu@new@columntype\n        \\csname NC@find@\\string#1\\expandafter\\endcsname\n        \\csname NC@rewrite@\\string#1\\endcsname\n        {#1}%\n}% \\tabu@newcolumntype\n\\def\\tabu@new@columntype #1#2#3{%\n    \\def#1##1#3{\\NC@{##1}}%\n    \\let#2\\relax \\newcommand*#2%\n}% \\tabu@new@columntype\n\\def\\tabu@privatecolumntype #1{%\n    \\expandafter\\tabu@private@columntype\n        \\csname NC@find@\\string#1\\expandafter\\endcsname\n        \\csname NC@rewrite@\\string#1\\expandafter\\endcsname\n        \\csname tabu@NC@find@\\string#1\\expandafter\\endcsname\n        \\csname tabu@NC@rewrite@\\string#1\\endcsname\n        {#1}%\n}% \\tabu@privatecolumntype\n\\def\\tabu@private@columntype#1#2#3#4{%\n    \\g@addto@macro\\tabu@privatecolumns{\\let#1#3\\let#2#4}%\n    \\tabu@new@columntype#3#4%\n}% \\tabu@private@columntype\n\\let\\tabu@privatecolumns \\@empty\n\\newcommand*\\tabucolumn [1]{\\expandafter \\def \\expandafter\n    \\tabu@highprioritycolumns\\expandafter{\\tabu@highprioritycolumns\n                                          \\NC@do #1}}%\n\\let\\tabu@highprioritycolumns \\@empty\n%% The  |  ``column'' : rewriting process --------------------------\n\\tabu@privatecolumntype |{\\tabu@rewritevline}\n\\newcommand*\\tabu@rewritevline[1][]{\\tabu@vlinearg{#1}%\n                \\expandafter \\NC@find \\tabu@rewritten}\n\\def\\tabu@lines #1{%\n    \\ifx|#1\\else \\tabu@privatecolumntype #1{\\tabu@rewritevline}\\fi\n    \\NC@list\\expandafter{\\the\\NC@list \\NC@do #1}%\n}% \\tabu@lines@\n\\def\\tabu@vlinearg #1{%\n    \\ifx\\\\#1\\\\\\def\\tabu@thestyle {\\tabu@ls@}%\n    \\else\\tabu@getline {#1}%\n    \\fi\n    \\def\\tabu@rewritten ##1{\\def\\tabu@rewritten{!{##1\\tabu@thevline}}%\n    }\\expandafter\\tabu@rewritten\\expandafter{\\tabu@thestyle}%\n    \\expandafter \\tabu@keepls \\tabu@thestyle \\@nil\n}% \\tabu@vlinearg\n\\def\\tabu@keepls #1\\@nil{%\n    \\ifcat $\\@cdr #1\\@nil $%\n    \\ifx \\relax#1\\else\n    \\ifx \\tabu@ls@#1\\else\n        \\let#1\\relax\n        \\xdef\\tabu@mkpreambuffer{\\tabu@mkpreambuffer\n                \\tabu@savels\\noexpand#1}\\fi\\fi\\fi\n}% \\tabu@keepls\n\\def\\tabu@thevline {\\begingroup\n    \\ifdefined\\tabu@leaders\n        \\setbox\\@tempboxa=\\vtop to\\dimexpr\n                      \\ht\\@arstrutbox+\\dp\\@arstrutbox{{\\tabu@thevleaders}}%\n        \\ht\\@tempboxa=\\ht\\@arstrutbox \\dp\\@tempboxa=\\dp\\@arstrutbox\n        \\box\\@tempboxa\n    \\else\n                \\tabu@thevrule\n    \\fi             \\endgroup\n}% \\tabu@thevline\n\\def\\tabu@savels #1{%\n    \\expandafter\\let\\csname\\string#1\\endcsname #1%\n    \\expandafter\\def\\expandafter\\tabu@reset\\expandafter{\\tabu@reset\n                                                    \\tabu@resetls#1}}%\n\\def\\tabu@resetls #1{\\expandafter\\let\\expandafter#1\\csname\\string#1\\endcsname}%\n%% \\multicolumn inside tabu environment -----------------------------\n\\tabu@newcolumntype \\tabu@rewritemulticolumn{%\n    \\aftergroup \\tabu@endrewritemulticolumn % after \\@mkpream group\n    \\NC@list{\\NC@do *}\\tabu@textbar \\tabu@lines\n    \\tabu@savedecl\n    \\tabu@privatecolumns\n    \\NC@list\\expandafter{\\the\\expandafter\\NC@list \\tabu@NC@list}%\n    \\let\\tabu@savels \\relax\n    \\NC@find\n}% \\tabu@rewritemulticolumn\n\\def\\tabu@endrewritemulticolumn{\\gdef\\tabu@mkpreambuffer{}\\endgroup}\n\\def\\tabu@multicolumn{\\tabu@ifenvir \\tabu@multic@lumn \\tabu@multicolumnORI}\n\\long\\def\\tabu@multic@lumn #1#2#3{\\multispan{#1}\\begingroup\n    \\tabu@everyrowtrue\n    \\NC@list{\\NC@do \\tabu@rewritemulticolumn}%\n    \\expandafter\\@gobbletwo % gobbles \\multispan{#1}\n         \\tabu@multicolumnORI{#1}{\\tabu@rewritemulticolumn #2}%\n                {\\iftabuscantokens \\tabu@rescan \\else \\expandafter\\@firstofone \\fi\n                {#3}}%\n}% \\tabu@multic@lumn\n%% The X column(s): rewriting process -----------------------------\n\\tabu@privatecolumntype X[1][]{\\begingroup \\tabu@siunitx{\\endgroup \\tabu@rewriteX {#1}}}\n\\def\\tabu@nosiunitx #1{#1{}{}\\expandafter \\NC@find \\tabu@rewritten }\n\\def\\tabu@siunitx   #1{\\@ifnextchar \\bgroup\n                     {\\tabu@rewriteX@Ss{#1}}\n                      {\\tabu@nosiunitx{#1}}}\n\\def\\tabu@rewriteX@Ss #1#2{\\@temptokena{}%\n    \\@defaultunits \\let\\tabu@temp =#2\\relax\\@nnil\n    \\ifodd 1\\ifx S\\tabu@temp \\else \\ifx s\\tabu@temp \\else 0 \\fi\\fi\n        \\def\\NC@find{\\def\\NC@find >####1####2<####3\\relax{#1 {####1}{####3}%\n            }\\expandafter\\NC@find \\the\\@temptokena \\relax\n        }\\expandafter\\NC@rewrite@S \\@gobble #2\\relax\n    \\else \\tabu@siunitxerror\n    \\fi\n    \\expandafter \\NC@find \\tabu@rewritten\n}% \\tabu@rewriteX@Ss\n\\def\\tabu@siunitxerror {\\PackageError{tabu}{Not a S nor s column !\n        \\MessageBreak X column can only embed siunitx S or s columns}\\@ehd\n}% \\tabu@siunitxerror\n\\def\\tabu@rewriteX #1#2#3{\\tabu@Xarg {#1}{#2}{#3}%\n    \\iftabu@measuring\n    \\else \\tabu@measuringtrue % first X column found in the preamble\n        \\let\\@halignto \\relax   \\let\\tabu@halignto \\relax\n        \\iftabu@spread \\tabu@spreadtarget \\tabu@target \\tabu@target \\z@\n        \\else          \\tabu@spreadtarget \\z@ \\fi\n        \\ifdim \\tabu@target=\\z@\n                \\setlength\\tabu@target \\tabu@thetarget\n                \\tabu@message{\\tabu@message@defaulttarget}%\n        \\else   \\tabu@message{\\tabu@message@target}\\fi\n    \\fi\n}% \\tabu@rewriteX\n\\def\\tabu@rewriteXrestore #1#2#3{\\let\\@halignto \\relax\n                                \\def\\tabu@rewritten{l}}\n\\def\\tabu@Xarg #1#2#3{%\n   \\advance\\tabu@Xcol \\@ne      \\let\\tabu@Xlcr  \\@empty\n   \\let\\tabu@Xdisp    \\@empty   \\let\\tabu@Xmath \\@empty\n    \\ifx\\\\#1\\\\%    <shortcut when no option>\n         \\def\\tabu@rewritten{p}\\tabucolX \\p@        % <default coef = 1>\n    \\else\n         \\let\\tabu@rewritten \\@empty   \\let\\tabu@temp \\@empty  \\tabucolX \\z@\n         \\tabu@Xparse {}#1\\relax\n    \\fi\n    \\tabu@Xrewritten{#2}{#3}%\n}% \\tabu@Xarg\n\\def\\tabu@Xparse #1{\\futurelet\\@let@token \\tabu@Xtest}\n\\expandafter\\def\\expandafter\\tabu@Xparsespace\\space{\\tabu@Xparse{}}\n\\def\\tabu@Xtest{%\n   \\ifcase \\ifx \\relax\\@let@token \\z@ \\else\n           \\if ,\\@let@token \\m@ne\\else\n           \\if p\\@let@token 1\\else\n           \\if m\\@let@token 2\\else\n           \\if b\\@let@token 3\\else\n           \\if l\\@let@token 4\\else\n           \\if c\\@let@token 5\\else\n           \\if r\\@let@token 6\\else\n           \\if j\\@let@token 7\\else\n           \\if L\\@let@token 8\\else\n           \\if C\\@let@token 9\\else\n           \\if R\\@let@token 10\\else\n           \\if J\\@let@token 11\\else\n           \\ifx \\@sptoken\\@let@token 12\\else\n           \\if .\\@let@token 13\\else\n           \\if -\\@let@token 13\\else\n           \\ifcat $\\@let@token 14\\else\n           15\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\relax\n   \\or \\tabu@Xtype {p}%\n   \\or \\tabu@Xtype {m}%\n   \\or \\tabu@Xtype {b}%\n   \\or \\tabu@Xalign \\raggedright\\relax\n   \\or \\tabu@Xalign \\centering\\relax\n   \\or \\tabu@Xalign \\raggedleft\\relax\n   \\or \\tabu@Xalign \\tabu@justify\\relax\n   \\or \\tabu@Xalign \\RaggedRight\\raggedright\n   \\or \\tabu@Xalign \\Centering\\centering\n   \\or \\tabu@Xalign \\RaggedLeft\\raggedleft\n   \\or \\tabu@Xalign \\justifying\\tabu@justify\n   \\or \\expandafter \\tabu@Xparsespace\n   \\or \\expandafter \\tabu@Xcoef\n   \\or \\expandafter \\tabu@Xm@th\n   \\or \\tabu@Xcoef{}%\n   \\else\\expandafter \\tabu@Xparse\n   \\fi\n}% \\tabu@Xtest\n\\def\\tabu@Xalign #1#2{%\n    \\ifx \\tabu@Xlcr\\@empty \\else \\PackageWarning{tabu}\n       {Duplicate horizontal alignment specification}\\fi\n    \\ifdefined#1\\def\\tabu@Xlcr{#1}\\let#1\\relax\n    \\else       \\def\\tabu@Xlcr{#2}\\let#2\\relax\\fi\n    \\expandafter\\tabu@Xparse\n}% \\tabu@Xalign\n\\def\\tabu@Xtype #1{%\n    \\ifx \\tabu@rewritten\\@empty \\else \\PackageWarning{tabu}\n            {Duplicate vertical alignment specification}\\fi\n    \\def\\tabu@rewritten{#1}\\expandafter\\tabu@Xparse\n}% \\tabu@Xtype\n\\def\\tabu@Xcoef#1{\\edef\\tabu@temp{\\tabu@temp#1}%\n    \\afterassignment\\tabu@Xc@ef \\tabu@cnt\\number\\if-#10\\fi\n}% \\tabu@Xcoef\n\\def\\tabu@Xc@ef{\\advance\\tabucolX \\tabu@temp\\the\\tabu@cnt\\p@\n    \\tabu@Xparse{}%\n}% \\tabu@Xc@ef\n\\def\\tabu@Xm@th #1{\\futurelet \\@let@token \\tabu@Xd@sp}\n\\def\\tabu@Xd@sp{\\let\\tabu@Xmath=$%\n    \\ifx $\\@let@token \\def\\tabu@Xdisp{\\displaystyle}%\n            \\expandafter\\tabu@Xparse\n    \\else   \\expandafter\\tabu@Xparse\\expandafter{\\expandafter}%\n    \\fi\n}% \\tabu@Xd@sp\n\\def\\tabu@Xrewritten {%\n   \\ifx  \\tabu@rewritten\\@empty \\def\\tabu@rewritten{p}\\fi\n   \\ifdim \\tabucolX<\\z@         \\tabu@negcoeftrue\n   \\else\\ifdim \\tabucolX=\\z@    \\tabucolX \\p@\n   \\fi\\fi\n   \\edef\\tabu@temp{{\\the\\tabu@Xcol}{\\tabu@strippt\\tabucolX}}%\n   \\edef\\tabu@Xcoefs{\\tabu@Xcoefs    \\tabu@      \\tabu@temp}%\n   \\edef\\tabu@rewritten ##1##2{\\def\\noexpand\\tabu@rewritten{%\n        >{\\tabu@Xlcr \\ifx$\\tabu@Xmath$\\tabu@Xdisp\\fi ##1}%\n                    \\tabu@rewritten {\\tabu@hsize \\tabu@temp}%\n        <{##2\\ifx$\\tabu@Xmath$\\fi}}%\n   }\\tabu@rewritten\n}% \\tabu@Xrewritten\n\\def\\tabu@hsize #1#2{%\n    \\ifdim #2\\p@<\\z@\n        \\ifdim \\tabucolX=\\maxdimen \\tabu@wd{#1}\\else\n        \\ifdim \\tabu@wd{#1}<-#2\\tabucolX \\tabu@wd{#1}\\else -#2\\tabucolX\\fi\n        \\fi\n   \\else #2\\tabucolX\n   \\fi\n}% \\tabu@hsize\n%% \\usetabu  and  \\preamble: rewriting process ---------------------\n\\tabu@privatecolumntype \\usetabu [1]{%\n    \\ifx\\\\#1\\\\\\tabu@saveerr{}\\else\n        \\@ifundefined{tabu@saved@\\string#1}\n            {\\tabu@saveerr{#1}}\n            {\\let\\tabu@rewriteX \\tabu@rewriteXrestore\n             \\csname tabu@saved@\\string#1\\expandafter\\endcsname\\expandafter\\@ne}%\n    \\fi\n}% \\NC@rewrite@\\usetabu\n\\tabu@privatecolumntype \\preamble [1]{%\n    \\ifx\\\\#1\\\\\\tabu@saveerr{}\\else\n        \\@ifundefined{tabu@saved@\\string#1}\n            {\\tabu@saveerr{#1}}\n            {\\csname tabu@saved@\\string#1\\expandafter\\endcsname\\expandafter\\z@}%\n    \\fi\n}% \\NC@rewrite@\\preamble\n%% Controlling the rewriting process -------------------------------\n\\tabu@newcolumntype \\tabu@rewritefirst{%\n    \\iftabu@long    \\aftergroup \\tabu@longpream  % <the whole implementation is here !>\n    \\else           \\aftergroup \\tabu@pream\n    \\fi\n    \\let\\tabu@          \\relax      \\let\\tabu@hsize     \\relax\n    \\let\\tabu@Xcoefs    \\@empty     \\let\\tabu@savels    \\relax\n    \\tabu@Xcol          \\z@         \\tabu@cnt           \\tw@\n    \\gdef\\tabu@mkpreambuffer{\\tabu@{}}\\tabu@measuringfalse\n    \\global\\setbox\\@arstrutbox \\box\\@arstrutbox\n    \\NC@list{\\NC@do *}\\tabu@textbar \\tabu@lines\n    \\NC@list\\expandafter{\\the\\NC@list \\NC@do X}%\n    \\iftabu@siunitx     % <siunitx S and s columns>\n            \\NC@list\\expandafter{\\the\\NC@list \\NC@do S\\NC@do s}\\fi\n    \\NC@list\\expandafter{\\the\\expandafter\\NC@list \\tabu@highprioritycolumns}%\n    \\expandafter\\def\\expandafter\\tabu@NC@list\\expandafter{%\n                    \\the\\expandafter\\NC@list \\tabu@NC@list}%    % * | X S <original>\n    \\NC@list\\expandafter{\\expandafter \\NC@do \\expandafter\\usetabu\n                         \\expandafter \\NC@do \\expandafter\\preamble\n                         \\the\\NC@list \\NC@do \\tabu@rewritemiddle\n                                      \\NC@do \\tabu@rewritelast}%\n    \\tabu@savedecl\n    \\tabu@privatecolumns\n    \\edef\\tabu@prev{\\the\\@temptokena}\\NC@find \\tabu@rewritemiddle\n}% NC@rewrite@\\tabu@rewritefirst\n\\tabu@newcolumntype \\tabu@rewritemiddle{%\n    \\edef\\tabu@temp{\\the\\@temptokena}\\NC@find \\tabu@rewritelast\n}% \\NC@rewrite@\\tabu@rewritemiddle\n\\tabu@newcolumntype \\tabu@rewritelast{%\n    \\ifx \\tabu@temp\\tabu@prev   \\advance\\tabu@cnt \\m@ne\n            \\NC@list\\expandafter{\\tabu@NC@list \\NC@do \\tabu@rewritemiddle\n                                               \\NC@do \\tabu@rewritelast}%\n    \\else \\let\\tabu@prev\\tabu@temp\n    \\fi\n    \\ifcase \\tabu@cnt   \\expandafter\\tabu@endrewrite\n    \\else               \\expandafter\\NC@find \\expandafter\\tabu@rewritemiddle\n    \\fi\n}% \\NC@rewrite@\\tabu@rewritelast\n%% Choosing the strategy --------------------------------------------\n\\def\\tabu@endrewrite {%\n    \\let\\tabu@temp \\NC@find\n    \\ifx \\@arrayright\\relax \\let\\@arrayright \\@empty  \\fi\n    \\count@=%\n        \\ifx \\@finalstrut\\tabu@finalstrut \\z@ % outer in mode 0 print\n             \\iftabu@measuring\n                \\xdef\\tabu@mkpreambuffer{\\tabu@mkpreambuffer\n                    \\tabu@target        \\csname tabu@\\the\\tabu@nested.T\\endcsname\n                    \\tabucolX           \\csname tabu@\\the\\tabu@nested.X\\endcsname\n                    \\edef\\@halignto {\\ifx\\@arrayright\\@empty to\\tabu@target\\fi}}%\n             \\fi\n        \\else\\iftabu@measuring        4       % X columns\n                \\xdef\\tabu@mkpreambuffer{\\tabu@{\\tabu@mkpreambuffer\n                    \\tabu@target        \\the\\tabu@target\n                    \\tabu@spreadtarget  \\the\\tabu@spreadtarget}%\n                    \\def\\noexpand\\tabu@Xcoefs{\\tabu@Xcoefs}%\n                    \\edef\\tabu@halignto{\\ifx \\@arrayright\\@empty to\\tabu@target\\fi}}%\n                 \\let\\tabu@Xcoefs \\relax\n             \\else\\ifcase\\tabu@nested \\thr@@  % outer, no X\n                                      \\global\\let\\tabu@afterendpar \\relax\n                  \\else               \\@ne    % inner, no X, outer in mode 1 or 2\n                  \\fi\n                  \\ifdefined\\tabu@usetabu\n                  \\else \\ifdim\\tabu@target=\\z@\n                  \\else \\let\\tabu@temp \\tabu@extracolsep\n                  \\fi\\fi\n             \\fi\n        \\fi\n    \\xdef\\tabu@mkpreambuffer{\\count@ \\the\\count@ \\tabu@mkpreambuffer}%\n    \\tabu@temp\n}% \\tabu@endrewrite\n\\def\\tabu@extracolsep{\\@defaultunits    \\expandafter\\let\n    \\expandafter\\tabu@temp \\expandafter=\\the\\@temptokena \\relax\\@nnil\n    \\ifx \\tabu@temp\\@sptoken\n        \\expandafter\\tabu@gobblespace \\expandafter\\tabu@extracolsep\n    \\else\n        \\edef\\tabu@temp{\\noexpand\\NC@find\n            \\if |\\noexpand\\tabu@temp        @%\n            \\else\\if !\\noexpand\\tabu@temp   @%\n            \\else                           !%\n            \\fi\\fi\n            {\\noexpand\\extracolsep\\noexpand\\@flushglue}}%\n    \\fi\n    \\tabu@temp\n}% \\tabu@extrac@lsep\n%% Implementing the strategy ----------------------------------------\n\\long\\def\\tabu@pream #1\\@preamble {%\n    \\let\\tabu@ \\tabu@@  \\tabu@mkpreambuffer     \\tabu@aftergroupcleanup\n    \\NC@list\\expandafter {\\tabu@NC@list}%    in case of nesting...\n    \\ifdefined\\tabu@usetabu \\tabu@usetabu \\tabu@target \\z@ \\fi\n    \\let\\tabu@savedpreamble \\@preamble\n    \\global\\let\\tabu@elapsedtime \\relax\n    \\tabu@thebody ={#1\\tabu@aftergroupcleanup}%\n    \\tabu@thebody =\\expandafter{\\the\\expandafter\\tabu@thebody\n                                                \\@preamble}%\n    \\edef\\tabuthepreamble {\\the\\tabu@thebody}% ( no @ allowed for \\scantokens )\n    \\tabu@select\n}% \\tabu@pream\n\\long\\def\\tabu@longpream #1\\LT@bchunk #2\\LT@bchunk{%\n    \\let\\tabu@ \\tabu@@  \\tabu@mkpreambuffer     \\tabu@aftergroupcleanup\n    \\NC@list\\expandafter {\\tabu@NC@list}%    in case of nesting...\n    \\let\\tabu@savedpreamble \\@preamble\n    \\global\\let\\tabu@elapsedtime \\relax\n    \\tabu@thebody ={#1\\LT@bchunk #2\\tabu@aftergroupcleanup \\LT@bchunk}%\n    \\edef\\tabuthepreamble {\\the\\tabu@thebody}% ( no @ allowed for \\scantokens )\n    \\tabu@select\n}% \\tabu@longpream\n\\def\\tabu@select {%\n    \\ifnum\\tabu@nested>\\z@ \\tabuscantokensfalse \\fi\n    \\ifnum \\count@=\\@ne \\iftabu@measuring \\count@=\\tw@ \\fi\\fi\n    \\ifcase \\count@\n        \\global\\let\\tabu@elapsedtime \\relax\n        \\tabu@seteverycr\n        \\expandafter \\tabuthepreamble       % vertical adjustment (inherited from outer)\n    \\or      % exit in vertical measure + struts per cell because no X and outer in mode 3\n        \\tabu@evr{\\tabu@verticalinit}\\tabu@celllalign@def{\\tabu@verticalmeasure}%\n        \\def\\tabu@cellralign{\\tabu@verticalspacing}%\n        \\tabu@seteverycr\n        \\expandafter \\tabuthepreamble\n    \\or                            % exit without measure because no X and outer in mode 4\n        \\tabu@evr{}\\tabu@celllalign@def{}\\let\\tabu@cellralign \\@empty\n        \\tabu@seteverycr\n        \\expandafter \\tabuthepreamble\n    \\else                                   % needs trials\n        \\tabu@evr{}\\tabu@celllalign@def{}\\let\\tabu@cellralign \\@empty\n        \\tabu@savecounters\n        \\expandafter \\tabu@setstrategy\n    \\fi\n}% \\tabu@select\n\\def\\tabu@@ {\\gdef\\tabu@mkpreambuffer}\n%% Protections to set up before trials ------------------------------\n\\def\\tabu@setstrategy {\\begingroup  % <trials group>\n    \\tabu@trialh@@k    \\tabu@cnt    \\z@  % number of trials\n    \\hbadness          \\@M          \\let\\hbadness          \\@tempcnta\n    \\hfuzz             \\maxdimen    \\let\\hfuzz             \\@tempdima\n    \\let\\write         \\tabu@nowrite\\let\\GenericError      \\tabu@GenericError\n    \\let\\savetabu      \\@gobble     \\let\\tabudefaulttarget \\linewidth\n    \\let\\@footnotetext \\@gobble     \\let\\@xfootnote        \\tabu@xfootnote\n    \\let\\color         \\tabu@nocolor\\let\\rowcolor          \\tabu@norowcolor\n    \\let\\tabu@aftergroupcleanup \\relax % only after the last trial\n    \\tabu@mkpreambuffer\n    \\ifnum \\count@>\\thr@@ \\let\\@halignto \\@empty  \\tabucolX@init\n                          \\def\\tabu@lasttry{\\m@ne\\p@}\\fi\n    \\begingroup \\iffalse{\\fi \\ifnum0=`}\\fi\n        \\toks@{}\\def\\tabu@stack{b}\\iftabuscantokens \\endlinechar=10 \\obeyspaces \\fi %\n                                  \\tabu@collectbody \\tabu@strategy %\n}% \\tabu@setstrategy\n\\def\\tabu@savecounters{%\n    \\def\\@elt ##1{\\csname c@##1\\endcsname\\the\\csname c@##1\\endcsname}%\n    \\edef\\tabu@clckpt {\\begingroup \\globaldefs=\\@ne \\cl@@ckpt \\endgroup}\\let\\@elt \\relax\n}% \\tabu@savecounters\n\\def\\tabucolX@init {%  \\tabucolX <= \\tabu@target / (sum coefs > 0)\n    \\dimen@ \\z@ \\tabu@Xsum \\z@ \\tabucolX \\z@ \\let\\tabu@ \\tabu@Xinit \\tabu@Xcoefs\n    \\ifdim \\dimen@>\\z@\n        \\@tempdima \\dimexpr \\tabu@target *\\p@/\\dimen@ + \\tabu@hfuzz\\relax\n        \\ifdim \\tabucolX<\\@tempdima \\tabucolX \\@tempdima \\fi\n    \\fi\n}% \\tabucolX@init\n\\def\\tabu@Xinit #1#2{\\tabu@Xcol #1 \\advance \\tabu@Xsum\n    \\ifdim #2\\p@>\\z@ #2\\p@  \\advance\\dimen@ #2\\p@\n    \\else           -#2\\p@  \\tabu@negcoeftrue\n                            \\@tempdima \\dimexpr \\tabu@target*\\p@/\\dimexpr-#2\\p@\\relax \\relax\n                            \\ifdim \\tabucolX<\\@tempdima \\tabucolX \\@tempdima \\fi\n                            \\tabu@wddef{#1}{0pt}%\n    \\fi\n}% \\tabu@Xinit\n%% Collecting the environment body ----------------------------------\n\\long\\def\\tabu@collectbody #1#2\\end #3{%\n    \\edef\\tabu@stack{\\tabu@pushbegins #2\\begin\\end\\expandafter\\@gobble\\tabu@stack}%\n    \\ifx \\tabu@stack\\@empty\n        \\toks@\\expandafter{\\expandafter\\tabu@thebody\\expandafter{\\the\\toks@ #2}%\n                \\def\\tabu@end@envir{\\end{#3}}%\n                \\iftabuscantokens\n                    \\iftabu@long \\def\\tabu@endenvir {\\end{#3}\\tabu@gobbleX}%\n                    \\else        \\def\\tabu@endenvir {\\let\\endarray \\@empty\n                                                     \\end{#3}\\tabu@gobbleX}%\n                    \\fi\n                \\else           \\def\\tabu@endenvir  {\\end{#3}}\\fi}%\n        \\let\\tabu@collectbody \\tabu@endofcollect\n    \\else\\def\\tabu@temp{#3}%\n        \\ifx \\tabu@temp\\@empty \\toks@\\expandafter{\\the\\toks@ #2\\end }%\n        \\else \\ifx\\tabu@temp\\tabu@@spxiii \\toks@\\expandafter{\\the\\toks@ #2\\end #3}%\n        \\else \\ifx\\tabu@temp\\tabu@X \\toks@\\expandafter{\\the\\toks@ #2\\end #3}%\n        \\else \\toks@\\expandafter{\\the\\toks@ #2\\end{#3}}%\n        \\fi\\fi\\fi\n    \\fi\n    \\tabu@collectbody{#1}%\n}% \\tabu@collectbody\n\\long\\def\\tabu@pushbegins#1\\begin#2{\\ifx\\end#2\\else b\\expandafter\\tabu@pushbegins\\fi}%\n\\def\\tabu@endofcollect #1{\\ifnum0=`{}\\fi\n                          \\expandafter\\endgroup \\the\\toks@  #1%\n}% \\tabu@endofcollect\n%% The trials: switching between strategies -------------------------\n\\def\\tabu@strategy {\\relax  % stops \\count@ assignment !\n    \\ifcase\\count@          % case 0 = print with vertical adjustment (outer is finished)\n        \\expandafter \\tabu@endoftrials\n    \\or                     % case 1 = exit in vertical measure (outer in mode 3)\n        \\expandafter\\xdef\\csname tabu@\\the\\tabu@nested.T\\endcsname{\\the\\tabu@target}%\n        \\expandafter\\xdef\\csname tabu@\\the\\tabu@nested.X\\endcsname{\\the\\tabucolX}%\n        \\expandafter \\tabu@endoftrials\n    \\or                     % case 2 = exit with a rule replacing the table (outer in mode 4)\n        \\expandafter \\tabu@quickend\n    \\or                     % case 3 = outer is in mode 3 because of no X\n        \\begingroup\n            \\tabu@evr{\\tabu@verticalinit}\\tabu@celllalign@def{\\tabu@verticalmeasure}%\n            \\def\\tabu@cellralign{\\tabu@verticalspacing}%\n            \\expandafter \\tabu@measuring\n    \\else                   % case 4 = horizontal measure\n        \\begingroup\n            \\global\\let\\tabu@elapsedtime \\tabu@message@etime\n            \\long\\def\\multicolumn##1##2##3{\\multispan{##1}}%\n            \\let\\tabu@startpboxORI \\@startpbox\n            \\iftabu@spread\n                    \\def\\tabu@naturalXmax {\\z@}%\n                    \\let\\tabu@naturalXmin \\tabu@naturalXmax\n                    \\tabu@evr{\\global\\tabu@naturalX \\z@}%\n                    \\let\\@startpbox \\tabu@startpboxmeasure\n            \\else\\iftabu@negcoef\n                    \\let\\@startpbox \\tabu@startpboxmeasure\n            \\else   \\let\\@startpbox \\tabu@startpboxquick\n            \\fi\\fi\n            \\expandafter \\tabu@measuring\n    \\fi\n}% \\tabu@strategy\n\\def\\tabu@measuring{\\expandafter \\tabu@trial \\expandafter\n                                                \\count@ \\the\\count@ \\tabu@endtrial\n}% \\tabu@measuring\n\\def\\tabu@trial{\\iftabu@long \\tabu@longtrial \\else \\tabu@shorttrial \\fi}\n\\def\\tabu@shorttrial {\\setbox\\tabu@box \\hbox\\bgroup \\tabu@seteverycr\n    \\ifx \\tabu@savecounters\\relax \\else\n                \\let\\tabu@savecounters \\relax \\tabu@clckpt \\fi\n    $\\iftabuscantokens \\tabu@rescan \\else \\expandafter\\@secondoftwo \\fi\n       \\expandafter{\\expandafter \\tabuthepreamble\n                         \\the\\tabu@thebody\n                         \\csname tabu@adl@endtrial\\endcsname\n                         \\endarray}$\\egroup             % got \\tabu@box\n}% \\tabu@shorttrial\n\\def\\tabu@longtrial {\\setbox\\tabu@box \\hbox\\bgroup \\tabu@seteverycr\n    \\ifx \\tabu@savecounters\\relax \\else\n                \\let\\tabu@savecounters \\relax \\tabu@clckpt \\fi\n    \\iftabuscantokens \\tabu@rescan \\else \\expandafter\\@secondoftwo \\fi\n       \\expandafter{\\expandafter \\tabuthepreamble\n                         \\the\\tabu@thebody\n                         \\tabuendlongtrial}\\egroup      % got \\tabu@box\n}% \\tabu@longtrial\n\\def\\tabuendlongtrial{% no @ allowed for \\scantokens\n    \\LT@echunk  \\global\\setbox\\@ne \\hbox{\\unhbox\\@ne}\\kern\\wd\\@ne\n                \\LT@get@widths\n}% \\tabuendlongtrial\n\\def\\tabu@adl@endtrial{% <arydshln in nested trials - problem for global column counters!>\n    \\crcr \\noalign{\\global\\adl@ncol \\tabu@nbcols}}% anything global is crap, junky and fails !\n\\def\\tabu@seteverycr {\\tabu@reset\n    \\everycr \\expandafter{\\the\\everycr  \\tabu@everycr}%\n    \\let\\everycr \\tabu@noeverycr                      % <for ialign>\n}% \\tabu@seteverycr\n\\def\\tabu@noeverycr{{\\aftergroup\\tabu@restoreeverycr \\afterassignment}\\toks@}\n\\def\\tabu@restoreeverycr {\\let\\everycr \\tabu@@everycr}\n\\def\\tabu@everycr {\\iftabu@everyrow \\noalign{\\tabu@everyrow}\\fi}\n\\def\\tabu@endoftrials {%\n    \\iftabuscantokens   \\expandafter\\@firstoftwo\n    \\else               \\expandafter\\@secondoftwo\n    \\fi\n        {\\expandafter \\tabu@closetrialsgroup \\expandafter\n         \\tabu@rescan \\expandafter{%\n                    \\expandafter\\tabuthepreamble\n                        \\the\\expandafter\\tabu@thebody\n                                    \\iftabu@long \\else \\endarray \\fi}}\n        {\\expandafter\\tabu@closetrialsgroup \\expandafter\n                    \\tabuthepreamble\n                        \\the\\tabu@thebody}%\n                                        \\tabu@endenvir      % Finish !\n}% \\tabu@endoftrials\n\\def\\tabu@closetrialsgroup {%\n    \\toks@\\expandafter{\\tabu@endenvir}%\n    \\edef\\tabu@bufferX{\\endgroup\n        \\tabucolX       \\the\\tabucolX\n        \\tabu@target    \\the\\tabu@target\n        \\tabu@cnt       \\the\\tabu@cnt\n        \\def\\noexpand\\tabu@endenvir{\\the\\toks@}%\n        %Quid de \\@halignto = \\tabu@halignto ??\n    }% \\tabu@bufferX\n    \\tabu@bufferX\n    \\ifcase\\tabu@nested % print out (outer in mode 0)\n        \\global\\tabu@cnt \\tabu@cnt\n        \\tabu@evr{\\tabu@verticaldynamicadjustment}%\n        \\tabu@celllalign@def{\\everypar{}}\\let\\tabu@cellralign \\@empty\n        \\let\\@finalstrut \\tabu@finalstrut\n    \\else               % vertical measure of nested tabu\n        \\tabu@evr{\\tabu@verticalinit}%\n        \\tabu@celllalign@def{\\tabu@verticalmeasure}%\n        \\def\\tabu@cellralign{\\tabu@verticalspacing}%\n    \\fi\n    \\tabu@clckpt \\let\\@halignto \\tabu@halignto\n    \\let\\@halignto \\@empty\n    \\tabu@seteverycr\n    \\ifdim \\tabustrutrule>\\z@ \\ifnum\\tabu@nested=\\z@\n        \\setbox\\@arstrutbox \\box\\voidb@x % force \\@arstrutbox to be rebuilt (visible struts)\n    \\fi\\fi\n}% \\tabu@closetrialsgroup\n\\def\\tabu@quickend {\\expandafter \\endgroup \\expandafter\n                        \\tabu@target \\the\\tabu@target \\tabu@quickrule\n                        \\let\\endarray \\relax \\tabu@endenvir\n}% \\tabu@quickend\n\\def\\tabu@endtrial {\\relax      % stops \\count@ assignment !\n    \\ifcase \\count@ \\tabu@err   % case 0 = impossible here\n    \\or             \\tabu@err   % case 1 = impossible here\n    \\or             \\tabu@err   % case 2 = impossible here\n    \\or                         % case 3 = outer goes into mode 0\n        \\def\\tabu@bufferX{\\endgroup}\\count@ \\z@\n    \\else                       % case 4 = outer goes into mode 3\n        \\iftabu@spread  \\tabu@spreadarith % inner into mode 1 (outer in mode 3)\n        \\else           \\tabu@arith       %              or 2 (outer in mode 4)\n        \\fi\n        \\count@=%\n            \\ifcase\\tabu@nested     \\thr@@  % outer goes into mode 3\n            \\else\\iftabu@measuring  \\tw@    % outer is in mode 4\n            \\else                   \\@ne    % outer is in mode 3\n            \\fi\\fi\n        \\edef\\tabu@bufferX{\\endgroup\n                           \\tabucolX        \\the\\tabucolX\n                           \\tabu@target     \\the\\tabu@target}%\n    \\fi\n    \\expandafter \\tabu@bufferX \\expandafter\n                                    \\count@ \\the\\count@  \\tabu@strategy\n}% \\tabu@endtrial\n\\def\\tabu@err{\\errmessage{(tabu) Internal impossible error! (\\count@=\\the\\count@)}}\n%% The algorithms: compute the widths / stop or go on ---------------\n\\def\\tabu@arithnegcoef {%\n    \\@tempdima \\z@ \\dimen@ \\z@ \\let\\tabu@ \\tabu@arith@negcoef \\tabu@Xcoefs\n}% \\tabu@arithnegcoef\n\\def\\tabu@arith@negcoef #1#2{%\n    \\ifdim #2\\p@>\\z@    \\advance\\dimen@     #2\\p@       % saturated by definition\n                        \\advance\\@tempdima  #2\\tabucolX\n    \\else\n        \\ifdim -#2\\tabucolX <\\tabu@wd{#1}% c_i X < natural width <= \\tabu@target-> saturated\n                        \\advance\\dimen@     -#2\\p@\n                        \\advance\\@tempdima  -#2\\tabucolX\n        \\else\n                        \\advance\\@tempdima \\tabu@wd{#1}% natural width <= c_i X => neutralised\n                        \\ifdim \\tabu@wd{#1}<\\tabu@target \\else % neutralised\n                        \\advance\\dimen@     -#2\\p@ % saturated (natural width = tabu@target)\n                        \\fi\n        \\fi\n    \\fi\n}% \\tabu@arith@negcoef\n\\def\\tabu@givespace #1#2{% here \\tabu@DELTA < \\z@\n    \\ifdim \\@tempdima=\\z@\n        \\tabu@wddef{#1}{\\the\\dimexpr -\\tabu@DELTA*\\p@/\\tabu@Xsum}%\n    \\else\n        \\tabu@wddef{#1}{\\the\\dimexpr \\tabu@hsize{#1}{#2}\n                    *(\\p@ -\\tabu@DELTA*\\p@/\\@tempdima)/\\p@\\relax}%\n    \\fi\n}% \\tabu@givespace\n\\def\\tabu@arith {\\advance\\tabu@cnt \\@ne\n    \\ifnum \\tabu@cnt=\\@ne \\tabu@message{\\tabu@titles}\\fi\n    \\tabu@arithnegcoef\n    \\@tempdimb \\dimexpr \\wd\\tabu@box -\\@tempdima \\relax % <incompressible material>\n    \\tabu@DELTA = \\dimexpr \\wd\\tabu@box - \\tabu@target \\relax\n    \\tabu@message{\\tabu@message@arith}%\n    \\ifdim \\tabu@DELTA <\\tabu@hfuzz\n        \\ifdim \\tabu@DELTA<\\z@          % wd (tabu)<\\tabu@target ?\n            \\let\\tabu@ \\tabu@givespace \\tabu@Xcoefs\n            \\advance\\@tempdima \\@tempdimb \\advance\\@tempdima -\\tabu@DELTA % for message\n        \\else   % already converged: nothing to do but nearly impossible...\n        \\fi\n        \\tabucolX \\maxdimen\n        \\tabu@measuringfalse\n    \\else                               % need for narrower X columns\n        \\tabucolX =\\dimexpr (\\@tempdima -\\tabu@DELTA) *\\p@/\\tabu@Xsum \\relax\n        \\tabu@measuringtrue\n        \\@whilesw \\iftabu@measuring\\fi {%\n            \\advance\\tabu@cnt \\@ne\n            \\tabu@arithnegcoef\n            \\tabu@DELTA =\\dimexpr \\@tempdima+\\@tempdimb -\\tabu@target \\relax % always < 0 here\n            \\tabu@message{\\tabu@header\n                \\tabu@msgalign \\tabucolX { }{ }{ }{ }{ }\\@@\n                \\tabu@msgalign \\@tempdima+\\@tempdimb { }{ }{ }{ }{ }\\@@\n                \\tabu@msgalign \\tabu@target { }{ }{ }{ }{ }\\@@\n                \\tabu@msgalign@PT \\dimen@ { }{}{}{}{}{}{}\\@@\n                \\ifdim -\\tabu@DELTA<\\tabu@hfuzz \\tabu@spaces target ok\\else\n                \\tabu@msgalign \\dimexpr -\\tabu@DELTA *\\p@/\\dimen@ {}{}{}{}{}\\@@\n                \\fi}%\n            \\ifdim -\\tabu@DELTA<\\tabu@hfuzz\n                \\advance\\@tempdima \\@tempdimb % for message\n                \\tabu@measuringfalse\n            \\else\n                \\advance\\tabucolX \\dimexpr -\\tabu@DELTA *\\p@/\\dimen@ \\relax\n            \\fi\n        }%\n    \\fi\n    \\tabu@message{\\tabu@message@reached}%\n    \\edef\\tabu@bufferX{\\endgroup \\tabu@cnt    \\the\\tabu@cnt\n                                 \\tabucolX    \\the\\tabucolX\n                                 \\tabu@target \\the\\tabu@target}%\n}% \\tabu@arith\n\\def\\tabu@spreadarith {%\n    \\dimen@ \\z@ \\@tempdima \\tabu@naturalXmax \\let\\tabu@ \\tabu@spread@arith \\tabu@Xcoefs\n    \\edef\\tabu@naturalXmin {\\the\\dimexpr\\tabu@naturalXmin*\\dimen@/\\p@}%\n    \\@tempdimc =\\dimexpr \\wd\\tabu@box -\\tabu@naturalXmax+\\tabu@naturalXmin \\relax\n    \\iftabu@measuring\n        \\tabu@target =\\dimexpr \\@tempdimc+\\tabu@spreadtarget \\relax\n        \\edef\\tabu@bufferX{\\endgroup \\tabucolX \\the\\tabucolX \\tabu@target\\the\\tabu@target}%\n    \\else\n        \\tabu@message{\\tabu@message@spreadarith}%\n        \\ifdim \\dimexpr \\@tempdimc+\\tabu@spreadtarget >\\tabu@target\n            \\tabu@message{(tabu) spread\n                \\ifdim \\@tempdimc>\\tabu@target useless here: default target used%\n                \\else too large: reduced to fit default target\\fi.}%\n        \\else\n            \\tabu@target =\\dimexpr \\@tempdimc+\\tabu@spreadtarget \\relax\n            \\tabu@message{(tabu) spread: New target set to \\the\\tabu@target^^J}%\n        \\fi\n        \\begingroup \\let\\tabu@wddef \\@gobbletwo\n            \\@tempdimb \\@tempdima\n            \\tabucolX@init\n            \\tabu@arithnegcoef\n            \\wd\\tabu@box =\\dimexpr \\wd\\tabu@box +\\@tempdima-\\@tempdimb \\relax\n        \\expandafter\\endgroup \\expandafter\\tabucolX \\the\\tabucolX\n        \\tabu@arith\n    \\fi\n}% \\tabu@spreadarith\n\\def\\tabu@spread@arith #1#2{%\n    \\ifdim #2\\p@>\\z@ \\advance\\dimen@ #2\\p@\n    \\else            \\advance\\@tempdima \\tabu@wd{#1}\\relax\n    \\fi\n}% \\tabu@spread@arith\n%% Reporting in the .log file ---------------------------------------\n\\def\\tabu@message@defaulttarget{%\n    \\ifnum\\tabu@nested=\\z@^^J(tabu) Default target:\n    \\ifx\\tabudefaulttarget\\linewidth    \\string\\linewidth\n        \\ifdim \\tabu@thetarget=\\linewidth \\else\n            -\\the\\dimexpr\\linewidth-\\tabu@thetarget\\fi  =\n    \\else\\ifx\\tabudefaulttarget\\linegoal\\string\\linegoal=\n    \\fi\\fi\n    \\else (tabu) Default target (nested): \\fi\n    \\the\\tabu@target \\on@line\n    \\ifnum\\tabu@nested=\\z@ , page \\the\\c@page\\fi}\n\\def\\tabu@message@target {^^J(tabu) Target specified:\n   \\the\\tabu@target \\on@line, page \\the\\c@page}\n\\def\\tabu@message@arith {\\tabu@header\n    \\tabu@msgalign \\tabucolX { }{ }{ }{ }{ }\\@@\n    \\tabu@msgalign \\wd\\tabu@box { }{ }{ }{ }{ }\\@@\n    \\tabu@msgalign \\tabu@target { }{ }{ }{ }{ }\\@@\n    \\tabu@msgalign@PT \\dimen@ { }{}{}{}{}{}{}\\@@\n    \\ifdim \\tabu@DELTA<\\tabu@hfuzz giving space\\else\n    \\tabu@msgalign \\dimexpr (\\@tempdima-\\tabu@DELTA) *\\p@/\\tabu@Xsum -\\tabucolX {}{}{}{}{}\\@@\n    \\fi\n}% \\tabu@message@arith\n\\def\\tabu@message@spreadarith {\\tabu@spreadheader\n   \\tabu@msgalign \\tabu@spreadtarget { }{ }{ }{ }{}\\@@\n   \\tabu@msgalign \\wd\\tabu@box { }{ }{ }{ }{}\\@@\n   \\tabu@msgalign -\\tabu@naturalXmax { }{}{}{}{}\\@@\n   \\tabu@msgalign \\tabu@naturalXmin { }{ }{ }{ }{}\\@@\n   \\tabu@msgalign \\ifdim \\dimexpr\\@tempdimc>\\tabu@target \\tabu@target\n                  \\else  \\@tempdimc+\\tabu@spreadtarget \\fi\n                  {}{}{}{}{}\\@@}\n\\def\\tabu@message@negcoef #1#2{\n    \\tabu@spaces\\tabu@spaces\\space * #1. X[\\rem@pt#2]:\n    \\space width = \\tabu@wd {#1}\n        \\expandafter\\string\\csname tabu@\\the\\tabu@nested.W\\number#1\\endcsname\n    \\ifdim -\\tabu@pt#2\\tabucolX<\\tabu@target\n    < \\number-\\rem@pt#2 X\n    = \\the\\dimexpr -\\tabu@pt#2\\tabucolX \\relax\n    \\else\n    <= \\the\\tabu@target\\space < \\number-\\rem@pt#2 X\\fi}\n\\def\\tabu@message@reached{\\tabu@header\n     ******* Reached Target:\n            hfuzz = \\tabu@hfuzz\\on@line\\space *******}\n\\def\\tabu@message@etime{\\edef\\tabu@stoptime{\\the\\pdfelapsedtime}%\n    \\tabu@message{(tabu)\\tabu@spaces Time elapsed during measure:\n    \\the\\numexpr(\\tabu@stoptime-\\tabu@starttime-32767)/65536\\relax sec\n    \\the\\numexpr\\numexpr(\\tabu@stoptime-\\tabu@starttime)\n    -\\numexpr(\\tabu@stoptime-\\tabu@starttime-32767)/65536\\relax*65536\\relax\n    *1000/65536\\relax ms \\tabu@spaces(\\the\\tabu@cnt\\space\n                                        cycle\\ifnum\\tabu@cnt>\\@ne s\\fi)^^J^^J}}\n\\def\\tabu@message@verticalsp {%\n    \\ifdim \\@tempdima>\\tabu@ht\n        \\ifdim \\@tempdimb>\\tabu@dp\n        \\expandafter\\expandafter\\expandafter\\string\\tabu@ht =\n            \\tabu@msgalign \\@tempdima { }{ }{ }{ }{ }\\@@\n        \\expandafter\\expandafter\\expandafter\\string\\tabu@dp =\n            \\tabu@msgalign \\@tempdimb { }{ }{ }{ }{ }\\@@^^J%\n        \\else\n        \\expandafter\\expandafter\\expandafter\\string\\tabu@ht =\n            \\tabu@msgalign \\@tempdima { }{ }{ }{ }{ }\\@@^^J%\n        \\fi\n    \\else\\ifdim \\@tempdimb>\\tabu@dp\n        \\tabu@spaces\\tabu@spaces\\tabu@spaces\n        \\expandafter\\expandafter\\expandafter\\string\\tabu@dp =\n            \\tabu@msgalign \\@tempdimb { }{ }{ }{ }{ }\\@@^^J\\fi\n    \\fi\n}% \\tabu@message@verticalsp\n\\edef\\tabu@spaces{\\@spaces}\n\\def\\tabu@strippt{\\expandafter\\tabu@pt\\the}\n{\\@makeother\\P \\@makeother\\T\\lowercase{\\gdef\\tabu@pt #1PT{#1}}}\n\\def\\tabu@msgalign{\\expandafter\\tabu@msg@align\\the\\dimexpr}\n\\def\\tabu@msgalign@PT{\\expandafter\\tabu@msg@align\\romannumeral-`\\0\\tabu@strippt}\n\\def\\do #1{%\n    \\def\\tabu@msg@align##1.##2##3##4##5##6##7##8##9\\@@{%\n    \\ifnum##1<10 #1 #1\\else\n    \\ifnum##1<100 #1 \\else\n    \\ifnum##1<\\@m #1\\fi\\fi\\fi\n    ##1.##2##3##4##5##6##7##8#1}%\n    \\def\\tabu@header{(tabu) \\ifnum\\tabu@cnt<10 #1\\fi\\the\\tabu@cnt) }%\n    \\def\\tabu@titles{\\ifnum \\tabu@nested=\\z@\n      (tabu) Try#1 #1 tabu X #1 #1 #1tabu Width #1 #1 Target\n                  #1 #1 #1 Coefs #1 #1 #1 Update^^J\\fi}%\n    \\def\\tabu@spreadheader{%\n      (tabu) Try#1 #1 Spread #1 #1 tabu Width #1 #1 #1 Nat. X #1 #1 #1 #1Nat. Min.\n                                                      #1 New Target^^J%\n      (tabu) sprd}\n    \\def\\tabu@message@save {\\begingroup\n        \\def\\x ####1{\\tabu@msg@align ####1{ }{ }{ }{ }{}\\@@}\n        \\def\\z ####1{\\expandafter\\x\\expandafter{\\romannumeral-`\\0\\tabu@strippt\n                                                     \\dimexpr####1\\p@{ }{ }}}%\n        \\let\\color \\relax \\def\\tabu@rulesstyle ####1####2{\\detokenize{####1}}%\n        \\let\\CT@arc@ \\relax \\let\\@preamble \\@gobble\n        \\let\\tabu@savedpream  \\@firstofone\n        \\let\\tabu@savedparams \\@firstofone\n        \\def\\tabu@target ####1\\relax   {(tabu) target #1 #1 #1 #1 #1 = \\x{####1}^^J}%\n        \\def\\tabucolX ####1\\relax      {(tabu) X columns width#1 = \\x{####1}^^J}%\n        \\def\\tabu@nbcols ####1\\relax   {(tabu) Number of columns: \\z{####1}^^J}%\n        \\def\\tabu@aligndefault    ####1{(tabu) Default alignment: #1 #1 ####1^^J}%\n        \\def\\col@sep ####1\\relax       {(tabu) column sep #1 #1 #1 = \\x{####1}^^J}%\n        \\def\\arrayrulewidth ####1\\relax{(tabu) arrayrulewidth #1 = \\x{####1}}%\n        \\def\\doublerulesep ####1\\relax { doublerulesep = \\x{####1}^^J}%\n        \\def\\extratabsurround####1\\relax{(tabu) extratabsurround = \\x{####1}^^J}%\n        \\def\\extrarowheight ####1\\relax{(tabu) extrarowheight #1 = \\x{####1}}%\n        \\def\\extrarowdepth ####1\\relax {extrarowdepth = \\x{####1}^^J}%\n        \\def\\abovetabulinesep####1\\relax{(tabu) abovetabulinesep=\\x{####1} }%\n        \\def\\belowtabulinesep####1\\relax{ belowtabulinesep=\\x{####1}^^J}%\n        \\def\\arraystretch         ####1{(tabu) arraystretch #1 #1 = \\z{####1}^^J}%\n        \\def\\minrowclearance####1\\relax{(tabu) minrowclearance #1 = \\x{####1}^^J}%\n        \\def\\tabu@arc@L           ####1{(tabu) taburulecolor #1 #1 = ####1^^J}%\n        \\def\\tabu@drsc@L          ####1{(tabu) tabudoublerulecolor=  ####1^^J}%\n        \\def\\tabu@evr@L           ####1{(tabu) everyrow #1 #1 #1 #1 = \\detokenize{####1}^^J}%\n        \\def\\tabu@ls@L            ####1{(tabu) line style = \\detokenize{####1}^^J}%\n        \\def\\NC@find ####1\\@nil{(tabu) tabu preamble#1 #1 = \\detokenize{####1}^^J}%\n        \\def\\tabu@wddef####1####2{(tabu) Natural width ####1 = \\x{####2}^^J}%\n        \\let\\edef \\@gobbletwo \\let\\def \\@empty \\let\\let \\@gobbletwo\n        \\tabu@message{%\n         (tabu) \\string\\savetabu{\\tabu@temp}: \\on@line^^J%\n         \\tabu@usetabu \\@nil^^J}%\n        \\endgroup}\n}\\do{ }\n%% Measuring the natural width (varwidth) - store the results -------\n\\def\\tabu@startpboxmeasure #1{\\bgroup   % entering \\vtop\n    \\edef\\tabu@temp{\\expandafter\\@secondoftwo \\ifx\\tabu@hsize #1\\else\\relax\\fi}%\n    \\ifodd 1\\ifx \\tabu@temp\\@empty 0 \\else      % starts with \\tabu@hsize ?\n            \\iftabu@spread           \\else      % if spread -> measure\n            \\ifdim \\tabu@temp\\p@>\\z@ 0 \\fi\\fi\\fi% if coef>0 -> do not measure\n        \\let\\@startpbox \\tabu@startpboxORI      % restore immediately (nesting)\n        \\tabu@measuringtrue                     % for the quick option...\n        \\tabu@Xcol =\\expandafter\\@firstoftwo\\ifx\\tabu@hsize #1\\fi\n        \\ifdim \\tabu@temp\\p@>\\z@ \\ifdim \\tabu@temp\\tabucolX<\\tabu@target\n                                        \\tabu@target=\\tabu@temp\\tabucolX \\fi\\fi\n        \\setbox\\tabu@box  \\hbox \\bgroup\n            \\begin{varwidth}\\tabu@target\n                \\let\\FV@ListProcessLine \\tabu@FV@ListProcessLine  % \\hbox to natural width...\n                \\narrowragged \\arraybackslash \\parfillskip \\@flushglue\n                \\ifdefined\\pdfadjustspacing \\pdfadjustspacing\\z@ \\fi\n                \\bgroup \\aftergroup\\tabu@endpboxmeasure\n                \\ifdefined \\cellspacetoplimit \\tabu@cellspacepatch \\fi\n    \\else \\expandafter\\@gobble\n                            \\tabu@startpboxquick{#1}% \\@gobble \\bgroup\n    \\fi\n}% \\tabu@startpboxmeasure\n\\def\\tabu@cellspacepatch{\\def\\bcolumn##1\\@nil{}\\let\\ecolumn\\@empty\n                                          \\bgroup\\color@begingroup}\n\\def\\tabu@endpboxmeasure {%\n    \\@finalstrut \\@arstrutbox\n                    \\end{varwidth}\\egroup    % <got my \\tabu@box>\n    \\ifdim \\tabu@temp\\p@ <\\z@   % neg coef\n        \\ifdim \\tabu@wd\\tabu@Xcol <\\wd\\tabu@box\n            \\tabu@wddef\\tabu@Xcol {\\the\\wd\\tabu@box}%\n            \\tabu@debug{\\tabu@message@endpboxmeasure}%\n        \\fi\n    \\else                       % spread coef>0\n        \\global\\advance \\tabu@naturalX \\wd\\tabu@box\n        \\@tempdima =\\dimexpr \\wd\\tabu@box *\\p@/\\dimexpr \\tabu@temp\\p@\\relax \\relax\n        \\ifdim \\tabu@naturalXmax <\\tabu@naturalX\n            \\xdef\\tabu@naturalXmax {\\the\\tabu@naturalX}\\fi\n        \\ifdim \\tabu@naturalXmin <\\@tempdima\n            \\xdef\\tabu@naturalXmin {\\the\\@tempdima}\\fi\n    \\fi\n   \\box\\tabu@box \\egroup % end of \\vtop (measure) restore \\tabu@target\n}% \\tabu@endpboxmeasure\n\\def\\tabu@wddef #1{\\expandafter\\xdef\n                   \\csname tabu@\\the\\tabu@nested.W\\number#1\\endcsname}\n\\def\\tabu@wd    #1{\\csname tabu@\\the\\tabu@nested.W\\number#1\\endcsname}\n\\def\\tabu@message@endpboxmeasure{\\tabu@spaces\\tabu@spaces<-> % <-> save natural wd\n    \\the\\tabu@Xcol. X[\\tabu@temp]:\n    target = \\the\\tabucolX \\space\n    \\expandafter\\expandafter\\expandafter\\string\\tabu@wd\\tabu@Xcol\n    =\\tabu@wd\\tabu@Xcol\n}% \\tabu@message@endpboxmeasure\n\\def\\tabu@startpboxquick {\\bgroup\n    \\let\\@startpbox \\tabu@startpboxORI  % restore immediately\n    \\let\\tabu \\tabu@quick               % \\begin is expanded before...\n    \\expandafter\\@gobble \\@startpbox    % gobbles \\bgroup\n}% \\tabu@startpboxquick\n\\def\\tabu@quick {\\begingroup \\iffalse{\\fi \\ifnum0=`}\\fi\n    \\toks@{}\\def\\tabu@stack{b}\\tabu@collectbody \\tabu@endquick\n}% \\tabu@quick\n\\def\\tabu@endquick {%\n    \\ifodd 1\\ifx\\tabu@end@envir\\tabu@endtabu  \\else\n            \\ifx\\tabu@end@envir\\tabu@endtabus \\else 0\\fi\\fi\\relax\n            \\endgroup\n    \\else   \\let\\endtabu \\relax\n            \\tabu@end@envir\n    \\fi\n}% \\tabu@quick\n\\def\\tabu@endtabu   {\\end{tabu}}\n\\def\\tabu@endtabus  {\\end{tabu*}}\n%% Measuring the heights and depths - store the results -------------\n\\def\\tabu@verticalmeasure{\\everypar{}%\n    \\ifnum \\currentgrouptype>12         % 14=semi-simple, 15=math shift group\n        \\setbox\\tabu@box =\\hbox\\bgroup\n            \\let\\tabu@verticalspacing \\tabu@verticalsp@lcr\n            \\d@llarbegin                % after \\hbox ...\n    \\else\n        \\edef\\tabu@temp{\\ifnum\\currentgrouptype=5\\vtop\n                        \\else\\ifnum\\currentgrouptype=12\\vcenter\n                        \\else\\vbox\\fi\\fi}%\n        \\setbox\\tabu@box \\hbox\\bgroup$\\tabu@temp \\bgroup\n            \\let\\tabu@verticalspacing \\tabu@verticalsp@pmb\n    \\fi\n}% \\tabu@verticalmeasure\n\\def\\tabu@verticalsp@lcr{%\n    \\d@llarend \\egroup       % <got my \\tabu@box>\n    \\@tempdima \\dimexpr \\ht\\tabu@box+\\abovetabulinesep\n    \\@tempdimb \\dimexpr \\dp\\tabu@box+\\belowtabulinesep \\relax\n        \\ifdim\\tabustrutrule>\\z@ \\tabu@debug{\\tabu@message@verticalsp}\\fi\n    \\ifdim \\tabu@ht<\\@tempdima    \\tabu@htdef{\\the\\@tempdima}\\fi\n    \\ifdim \\tabu@dp<\\@tempdimb    \\tabu@dpdef{\\the\\@tempdimb}\\fi\n    \\noindent\\vrule height\\@tempdima depth\\@tempdimb\n}% \\tabu@verticalsp@lcr\n\\def\\tabu@verticalsp@pmb{% inserts struts as needed\n    \\par \\expandafter\\egroup\n            \\expandafter$\\expandafter\n                    \\egroup \\expandafter\n                            \\@tempdimc \\the\\prevdepth\n    \\@tempdima \\dimexpr \\ht\\tabu@box+\\abovetabulinesep\n    \\@tempdimb \\dimexpr \\dp\\tabu@box+\\belowtabulinesep \\relax\n        \\ifdim\\tabustrutrule>\\z@ \\tabu@debug{\\tabu@message@verticalsp}\\fi\n    \\ifdim \\tabu@ht<\\@tempdima    \\tabu@htdef{\\the\\@tempdima}\\fi\n    \\ifdim \\tabu@dp<\\@tempdimb    \\tabu@dpdef{\\the\\@tempdimb}\\fi\n    \\let\\@finalstrut \\@gobble\n    \\hrule height\\@tempdima depth\\@tempdimb width\\hsize\n%%    \\box\\tabu@box\n}% \\tabu@verticalsp@pmb\n\n\\def\\tabu@verticalinit{%\n    \\ifnum \\c@taburow=\\z@ \\tabu@rearstrut \\fi       % after \\tabu@reset !\n    \\advance\\c@taburow \\@ne\n    \\tabu@htdef{\\the\\ht\\@arstrutbox}\\tabu@dpdef{\\the\\dp\\@arstrutbox}%\n    \\advance\\c@taburow \\m@ne\n}% \\tabu@verticalinit\n\\def\\tabu@htdef {\\expandafter\\xdef \\csname tabu@\\the\\tabu@nested.H\\the\\c@taburow\\endcsname}\n\\def\\tabu@ht                      {\\csname tabu@\\the\\tabu@nested.H\\the\\c@taburow\\endcsname}\n\\def\\tabu@dpdef {\\expandafter\\xdef \\csname tabu@\\the\\tabu@nested.D\\the\\c@taburow\\endcsname}\n\\def\\tabu@dp                      {\\csname tabu@\\the\\tabu@nested.D\\the\\c@taburow\\endcsname}\n\\def\\tabu@verticaldynamicadjustment {%\n    \\advance\\c@taburow \\@ne\n        \\extrarowheight \\dimexpr\\tabu@ht - \\ht\\strutbox\n        \\extrarowdepth  \\dimexpr\\tabu@dp - \\dp\\strutbox\n        \\let\\arraystretch \\@empty\n    \\advance\\c@taburow \\m@ne\n}% \\tabu@verticaldynamicadjustment\n\\def\\tabuphantomline{\\crcr \\noalign{%\n    {\\globaldefs \\@ne\n        \\setbox\\@arstrutbox     \\box\\voidb@x\n        \\let\\tabu@@celllalign   \\tabu@celllalign\n        \\let\\tabu@@cellralign   \\tabu@cellralign\n        \\let\\tabu@@cellleft     \\tabu@cellleft\n        \\let\\tabu@@cellright    \\tabu@cellright\n        \\let\\tabu@@thevline     \\tabu@thevline\n        \\let\\tabu@celllalign    \\@empty\n        \\let\\tabu@cellralign    \\@empty\n        \\let\\tabu@cellright     \\@empty\n        \\let\\tabu@cellleft      \\@empty\n        \\let\\tabu@thevline      \\relax}%\n    \\edef\\tabu@temp{\\tabu@multispan \\tabu@nbcols{\\noindent &}}%\n    \\toks@\\expandafter{\\tabu@temp \\noindent\\tabu@everyrowfalse \\cr\n        \\noalign{\\tabu@rearstrut\n            {\\globaldefs\\@ne\n                \\let\\tabu@celllalign \\tabu@@celllalign\n                \\let\\tabu@cellralign \\tabu@@cellralign\n                \\let\\tabu@cellleft   \\tabu@@cellleft\n                \\let\\tabu@cellright  \\tabu@@cellright\n                \\let\\tabu@thevline   \\tabu@@thevline}}}%\n    \\expandafter}\\the\\toks@\n}% \\tabuphantomline\n%% \\firsthline and \\lasthline corrections ---------------------------\n\\def\\tabu@firstline {\\tabu@hlineAZ  \\tabu@firsthlinecorrection     {}}\n\\def\\tabu@firsthline{\\tabu@hlineAZ  \\tabu@firsthlinecorrection \\hline}\n\\def\\tabu@lastline  {\\tabu@hlineAZ  \\tabu@lasthlinecorrection      {}}\n\\def\\tabu@lasthline {\\tabu@hlineAZ  \\tabu@lasthlinecorrection  \\hline}\n\\def\\tabu@hline {% replaces \\hline if no colortbl (see \\AtBeginDocument)\n    \\noalign{\\ifnum0=`}\\fi\n    {\\CT@arc@\\hrule height\\arrayrulewidth}%\n    \\futurelet \\tabu@temp \\tabu@xhline\n}% \\tabu@hline\n\\def\\tabu@xhline{%\n    \\ifx \\tabu@temp \\hline\n        {\\ifx \\CT@drsc@\\relax \\vskip\n         \\else\\ifx \\CT@drsc@\\@empty \\vskip\n         \\else \\CT@drsc@\\hrule height\n         \\fi\\fi\n         \\doublerulesep}%\n    \\fi\n    \\ifnum0=`{\\fi}%\n}% \\tabu@xhline\n\\def\\tabu@hlineAZ #1#2{\\noalign{\\ifnum0=`}\\fi \\dimen@ \\z@ \\count@ \\z@\n    \\toks@{}\\def\\tabu@hlinecorrection{#1}\\def\\tabu@temp{#2}%\n    \\tabu@hlineAZsurround\n}% \\tabu@hlineAZ\n\\newcommand*\\tabu@hlineAZsurround[1][\\extratabsurround]{%\n    \\extratabsurround #1\\let\\tabucline \\tabucline@scan\n    \\let\\hline     \\tabu@hlinescan \\let\\firsthline \\hline\n    \\let\\cline     \\tabu@clinescan \\let\\lasthline  \\hline\n    \\expandafter \\futurelet \\expandafter \\tabu@temp\n                \\expandafter \\tabu@nexthlineAZ \\tabu@temp\n}% \\tabu@hlineAZsurround\n\\def\\tabu@hlinescan   {\\tabu@thick \\arrayrulewidth \\tabu@xhlineAZ \\hline}\n\\def\\tabu@clinescan #1{\\tabu@thick \\arrayrulewidth \\tabu@xhlineAZ {\\cline{#1}}}\n\\def\\tabucline@scan{\\@testopt \\tabucline@sc@n {}}\n\\def\\tabucline@sc@n #1[#2]{\\tabu@xhlineAZ {\\tabucline[{#1}]{#2}}}\n\\def\\tabu@nexthlineAZ{%\n    \\ifx \\tabu@temp\\hline \\else\n    \\ifx \\tabu@temp\\cline \\else\n    \\ifx \\tabu@temp\\tabucline \\else\n         \\tabu@hlinecorrection\n    \\fi\\fi\\fi\n}% \\tabu@nexthlineAZ\n\\def\\tabu@xhlineAZ #1{%\n    \\toks@\\expandafter{\\the\\toks@ #1}%\n    \\@tempdimc \\tabu@thick                  % The last line width\n    \\ifcase\\count@ \\@tempdimb \\tabu@thick   % The first line width\n    \\else \\advance\\dimen@ \\dimexpr \\tabu@thick+\\doublerulesep \\relax\n    \\fi\n    \\advance\\count@ \\@ne    \\futurelet \\tabu@temp \\tabu@nexthlineAZ\n}% \\tabu@xhlineAZ\n\\def\\tabu@firsthlinecorrection{% \\count@ = number of \\hline -1\n    \\@tempdima \\dimexpr \\ht\\@arstrutbox+\\dimen@\n    \\edef\\firsthline{%      <local in \\noalign>\n        \\omit \\hbox to\\z@{\\hss{\\noexpand\\tabu@DBG{yellow}\\vrule\n                    height \\the\\dimexpr\\@tempdima+\\extratabsurround\n                    depth  \\dp\\@arstrutbox\n                    width  \\tabustrutrule}\\hss}\\cr\n        \\noalign{\\vskip -\\the\\dimexpr   \\@tempdima+\\@tempdimb\n                                        +\\dp\\@arstrutbox \\relax}%\n        \\the\\toks@\n   }\\ifnum0=`{\\fi\n            \\expandafter}\\firsthline % we are then !\n}% \\tabu@firsthlinecorrection\n\\def\\tabu@lasthlinecorrection{%\n    \\@tempdima \\dimexpr  \\dp\\@arstrutbox+\\dimen@+\\@tempdimb+\\@tempdimc\n    \\edef\\lasthline{%   <local in \\noalign>\n        \\the\\toks@\n        \\noalign{\\vskip -\\the\\dimexpr\\dimen@+\\@tempdimb+\\dp\\@arstrutbox}%\n        \\omit \\hbox to\\z@{\\hss{\\noexpand\\tabu@DBG{yellow}\\vrule\n                    depth \\the\\dimexpr \\dp\\@arstrutbox+\\@tempdimb+\\dimen@\n                                       +\\extratabsurround-\\@tempdimc\n                    height \\z@\n                    width \\tabustrutrule}\\hss}\\cr\n    }\\ifnum0=`{\\fi\n            \\expandafter}\\lasthline % we are then !\n}% \\tabu@lasthlinecorrection\n\\def\\tabu@LT@@hline{%\n    \\ifx\\LT@next\\hline\n        \\global\\let\\LT@next \\@gobble\n        \\ifx \\CT@drsc@\\relax\n            \\gdef\\CT@LT@sep{%\n                \\noalign{\\penalty-\\@medpenalty\\vskip\\doublerulesep}}%\n        \\else\n            \\gdef\\CT@LT@sep{%\n                \\multispan\\LT@cols{%\n                \\CT@drsc@\\leaders\\hrule\\@height\\doublerulesep\\hfill}\\cr}%\n        \\fi\n    \\else\n        \\global\\let\\LT@next\\empty\n        \\gdef\\CT@LT@sep{%\n            \\noalign{\\penalty-\\@lowpenalty\\vskip-\\arrayrulewidth}}%\n    \\fi\n    \\ifnum0=`{\\fi}%\n    \\multispan\\LT@cols\n        {\\CT@arc@\\leaders\\hrule\\@height\\arrayrulewidth\\hfill}\\cr\n    \\CT@LT@sep\n    \\multispan\\LT@cols\n        {\\CT@arc@\\leaders\\hrule\\@height\\arrayrulewidth\\hfill}\\cr\n    \\noalign{\\penalty\\@M}%\n    \\LT@next\n}% \\tabu@LT@@hline\n%% Horizontal lines : \\tabucline ------------------------------------\n\\let\\tabu@start \\@tempcnta\n\\let\\tabu@stop  \\@tempcntb\n\\newcommand*\\tabucline{\\noalign{\\ifnum0=`}\\fi \\tabu@cline}\n\\newcommand*\\tabu@cline[2][]{\\tabu@startstop{#2}%\n   \\ifnum \\tabu@stop<\\z@   \\toks@{}%\n   \\else \\tabu@clinearg{#1}\\tabu@thestyle\n        \\edef\\tabucline{\\toks@{%\n            \\ifnum \\tabu@start>\\z@ \\omit\n                  \\tabu@multispan\\tabu@start {\\span\\omit}&\\fi\n            \\omit \\tabu@multispan\\tabu@stop {\\span\\omit}%\n                                        \\tabu@thehline\\cr\n        }}\\tabucline\n        \\tabu@tracinglines{(tabu:tabucline) Style: #1^^J\\the\\toks@^^J^^J}%\n    \\fi\n    \\futurelet \\tabu@temp \\tabu@xcline\n}% \\tabu@cline\n\\def\\tabu@clinearg #1{%\n    \\ifx\\\\#1\\\\\\let\\tabu@thestyle \\tabu@ls@\n    \\else \\@defaultunits \\expandafter\\let\\expandafter\\@tempa\n                                    \\romannumeral-`\\0#1\\relax \\@nnil\n        \\ifx \\hbox\\@tempa           \\tabu@clinebox{#1}%\n        \\else\\ifx \\box\\@tempa       \\tabu@clinebox{#1}%\n        \\else\\ifx \\vbox\\@tempa      \\tabu@clinebox{#1}%\n        \\else\\ifx \\vtop\\@tempa      \\tabu@clinebox{#1}%\n        \\else\\ifx \\copy\\@tempa      \\tabu@clinebox{#1}%\n        \\else\\ifx \\leaders\\@tempa   \\tabu@clineleads{#1}%\n        \\else\\ifx \\cleaders\\@tempa  \\tabu@clineleads{#1}%\n        \\else\\ifx \\xleaders\\@tempa  \\tabu@clineleads{#1}%\n        \\else\\tabu@getline {#1}%\n        \\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\n    \\fi\n}% \\tabu@clinearg\n\\def\\tabu@clinebox #1{\\tabu@clineleads{\\xleaders#1\\hss}}\n\\def\\tabu@clineleads #1{%\n    \\let\\tabu@thestyle \\relax \\let\\tabu@leaders \\@undefined\n    \\gdef\\tabu@thehrule{#1}}\n\\def\\tabu@thehline{\\begingroup\n    \\ifdefined\\tabu@leaders\n            \\noexpand\\tabu@thehleaders\n    \\else   \\noexpand\\tabu@thehrule\n    \\fi            \\endgroup\n}% \\tabu@thehline\n\\def\\tabu@xcline{%\n    \\ifx \\tabu@temp\\tabucline\n        \\toks@\\expandafter{\\the\\toks@ \\noalign\n        {\\ifx\\CT@drsc@\\relax \\vskip\n         \\else \\CT@drsc@\\hrule height\n         \\fi\n         \\doublerulesep}}%\n    \\fi\n    \\tabu@docline\n}% \\tabu@xcline\n\\def\\tabu@docline {\\ifnum0=`{\\fi \\expandafter}\\the\\toks@}\n\\def\\tabu@docline@evr {\\xdef\\tabu@doclineafter{\\the\\toks@}%\n              \\ifnum0=`{\\fi}\\aftergroup\\tabu@doclineafter}\n\\def\\tabu@multispan #1#2{%\n    \\ifnum\\numexpr#1>\\@ne #2\\expandafter\\tabu@multispan\n    \\else                   \\expandafter\\@gobbletwo\n    \\fi  {#1-1}{#2}%\n}% \\tabu@multispan\n\\def\\tabu@startstop #1{\\tabu@start@stop #1\\relax 1-\\tabu@nbcols \\@nnil}\n\\def\\tabu@start@stop #1-#2\\@nnil{%\n   \\@defaultunits   \\tabu@start\\number 0#1\\relax    \\@nnil\n   \\@defaultunits   \\tabu@stop \\number 0#2\\relax    \\@nnil\n   \\tabu@stop   \\ifnum \\tabu@start>\\tabu@nbcols     \\m@ne\n                \\else\\ifnum \\tabu@stop=\\z@          \\tabu@nbcols\n                \\else\\ifnum \\tabu@stop>\\tabu@nbcols \\tabu@nbcols\n                \\else                               \\tabu@stop\n                \\fi\\fi\\fi\n   \\advance\\tabu@start \\m@ne\n   \\ifnum \\tabu@start>\\z@ \\advance\\tabu@stop -\\tabu@start \\fi\n}% \\tabu@start@stop\n%% Numbers: siunitx S columns  (and \\tabudecimal) -------------------\n\\def\\tabu@tabudecimal #1{%\n    \\def\\tabu@decimal{#1}\\@temptokena{}%\n    \\let\\tabu@getdecimal@ \\tabu@getdecimal@ignorespaces\n    \\tabu@scandecimal\n}% \\tabu@tabudecimal\n\\def\\tabu@scandecimal{\\futurelet \\tabu@temp \\tabu@getdecimal@}\n\\def\\tabu@skipdecimal#1{#1\\tabu@scandecimal}\n\\def\\tabu@getdecimal@ignorespaces{%\n    \\ifcase 0\\ifx\\tabu@temp\\ignorespaces\\else\n             \\ifx\\tabu@temp\\@sptoken1\\else\n             2\\fi\\fi\\relax\n            \\let\\tabu@getdecimal@ \\tabu@getdecimal\n            \\expandafter\\tabu@skipdecimal\n    \\or     \\expandafter\\tabu@gobblespace\\expandafter\\tabu@scandecimal\n    \\else   \\expandafter\\tabu@skipdecimal\n    \\fi\n}% \\tabu@getdecimal@ignorespaces\n\\def\\tabu@get@decimal#1{\\@temptokena\\expandafter{\\the\\@temptokena #1}%\n                        \\tabu@scandecimal}\n\\def\\do#1{%\n    \\def\\tabu@get@decimalspace#1{%\n        \\@temptokena\\expandafter{\\the\\@temptokena #1}\\tabu@scandecimal}%\n}\\do{ }\n\\let\\tabu@@tabudecimal \\tabu@tabudecimal\n\\def\\tabu@getdecimal{%\n   \\ifcase    0\\ifx 0\\tabu@temp\\else\n               \\ifx 1\\tabu@temp\\else\n               \\ifx 2\\tabu@temp\\else\n               \\ifx 3\\tabu@temp\\else\n               \\ifx 4\\tabu@temp\\else\n               \\ifx 5\\tabu@temp\\else\n               \\ifx 6\\tabu@temp\\else\n               \\ifx 7\\tabu@temp\\else\n               \\ifx 8\\tabu@temp\\else\n               \\ifx 9\\tabu@temp\\else\n               \\ifx .\\tabu@temp\\else\n               \\ifx ,\\tabu@temp\\else\n               \\ifx -\\tabu@temp\\else\n               \\ifx +\\tabu@temp\\else\n               \\ifx e\\tabu@temp\\else\n               \\ifx E\\tabu@temp\\else\n               \\ifx\\tabu@cellleft\\tabu@temp1\\else\n               \\ifx\\ignorespaces\\tabu@temp1\\else\n               \\ifx\\@sptoken\\tabu@temp2\\else\n            3\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\fi\\relax\n       \\expandafter\\tabu@get@decimal\n   \\or \\expandafter\\tabu@skipdecimal\n   \\or \\expandafter\\tabu@get@decimalspace\n   \\else\\expandafter\\tabu@printdecimal\n   \\fi\n}% \\tabu@getdecimal\n\\def\\tabu@printdecimal{%\n    \\edef\\tabu@temp{\\the\\@temptokena}%\n    \\ifx\\tabu@temp\\@empty\\else\n    \\ifx\\tabu@temp\\space\\else\n        \\expandafter\\tabu@decimal\\expandafter{\\the\\@temptokena}%\n    \\fi\\fi\n}% \\tabu@printdecimal\n%% Verbatim inside X columns ----------------------------------------\n\\def\\tabu@verbatim{%\n    \\let\\verb \\tabu@verb\n    \\let\\FV@DefineCheckEnd \\tabu@FV@DefineCheckEnd\n}% \\tabu@verbatim\n\\let\\tabu@ltx@verb \\verb\n\\def\\tabu@verb{\\@ifstar {\\tabu@ltx@verb*} \\tabu@ltx@verb}\n\\def\\tabu@fancyvrb {%\n    \\def\\tabu@FV@DefineCheckEnd ##1{%\n        \\def\\tabu@FV@DefineCheckEnd{%\n            ##1% <original definition (if fancyvrb is loaded)>\n            \\let\\FV@CheckEnd     \\tabu@FV@CheckEnd\n            \\let\\FV@@CheckEnd    \\tabu@FV@@CheckEnd\n            \\let\\FV@@@CheckEnd   \\tabu@FV@@@CheckEnd\n            \\edef\\FV@EndScanning{%\n            \\def\\noexpand\\next{\\noexpand\\end{\\FV@EnvironName}}%\n                \\global\\let\\noexpand\\FV@EnvironName\\relax\n                \\noexpand\\next}%\n            \\xdef\\FV@EnvironName{\\detokenize\\expandafter{\\FV@EnvironName}}}%\n    }\\expandafter\\tabu@FV@DefineCheckEnd\\expandafter{\\FV@DefineCheckEnd}\n}% \\tabu@fancyvrb\n\\def\\tabu@FV@CheckEnd  #1{\\expandafter\\FV@@CheckEnd \\detokenize{#1\\end{}}\\@nil}\n\\edef\\tabu@FV@@@CheckEnd {\\detokenize{\\end{}}}\n\\begingroup\n\\catcode`\\[1      \\catcode`\\]2\n\\@makeother\\{     \\@makeother\\}\n   \\edef\\x[\\endgroup\n      \\def\\noexpand\\tabu@FV@@CheckEnd ##1\\detokenize[\\end{]##2\\detokenize[}]##3%\n   ]\\x               \\@nil{\\def\\@tempa{#2}\\def\\@tempb{#3}}\n\\def\\tabu@FV@ListProcessLine #1{%\n  \\hbox {%to \\hsize{%\n    \\kern\\leftmargin\n    \\hbox {%to \\linewidth{%\n      \\FV@LeftListNumber\n      \\FV@LeftListFrame\n      \\FancyVerbFormatLine{#1}\\hss\n%% DG/SR modification begin - Jan. 28, 1998 (for numbers=right add-on)\n%%      \\FV@RightListFrame}%\n      \\FV@RightListFrame\n      \\FV@RightListNumber}%\n%% DG/SR modification end\n    \\hss}}\n%% \\savetabu --------------------------------------------------------\n\\newcommand*\\savetabu[1]{\\noalign{%\n    \\tabu@sanitizearg{#1}\\tabu@temp\n    \\ifx \\tabu@temp\\@empty  \\tabu@savewarn{}{The tabu will not be saved}\\else\n        \\@ifundefined{tabu@saved@\\tabu@temp}{}{\\tabu@savewarn{#1}{Overwriting}}%\n        \\ifdefined\\tabu@restored \\expandafter\\let\n            \\csname tabu@saved@\\tabu@temp \\endcsname \\tabu@restored\n        \\else {\\tabu@save}%\n        \\fi\n    \\fi}%\n}% \\savetabu\n\\def\\tabu@save {%\n    \\toks0\\expandafter{\\tabu@saved@}%\n    \\iftabu@negcoef\n        \\let\\tabu@wddef \\relax \\let\\tabu@ \\tabu@savewd \\edef\\tabu@savewd{\\tabu@Xcoefs}%\n        \\toks0\\expandafter{\\the\\toks\\expandafter0\\tabu@savewd}\\fi\n    \\toks1\\expandafter{\\tabu@savedpream}%\n    \\toks2\\expandafter{\\tabu@savedpreamble}%\n    \\let\\@preamble \\relax\n    \\let\\tabu@savedpream \\relax \\let\\tabu@savedparams \\relax\n    \\edef\\tabu@preamble{%\n        \\def\\noexpand\\tabu@aligndefault{\\tabu@align}%\n        \\def\\tabu@savedparams {\\noexpand\\the\\toks0}%\n        \\def\\tabu@savedpream  {\\noexpand\\the\\toks1}}%\n    \\edef\\tabu@usetabu{%\n        \\def\\@preamble {\\noexpand\\the\\toks2}%\n        \\tabu@target \\the\\tabu@target \\relax\n        \\tabucolX    \\the\\tabucolX    \\relax\n        \\tabu@nbcols \\the\\tabu@nbcols \\relax\n        \\def\\noexpand\\tabu@aligndefault{\\tabu@align}%\n        \\def\\tabu@savedparams {\\noexpand\\the\\toks0}%\n        \\def\\tabu@savedpream  {\\noexpand\\the\\toks1}}%\n    \\let\\tabu@aligndefault \\relax \\let\\@sharp \\relax\n    \\edef\\@tempa{\\noexpand\\tabu@s@ved\n                          {\\tabu@usetabu}\n                         {\\tabu@preamble}\n                            {\\the\\toks1}}\\@tempa\n    \\tabu@message@save\n}% \\tabu@save\n\\long\\def\\tabu@s@ved #1#2#3{%\n    \\def\\tabu@usetabu{#1}% <for \\tabu@message@save>\n    \\expandafter\\gdef\\csname tabu@saved@\\tabu@temp\\endcsname ##1{%\n        \\ifodd ##1%     \\usetabu\n            \\tabu@measuringfalse \\tabu@spreadfalse  % Just in case...\n            \\gdef\\tabu@usetabu {%\n                \\ifdim \\tabu@target>\\z@ \\tabu@warn@usetabu \\fi\n                \\global\\let\\tabu@usetabu \\@undefined\n                \\def\\@halignto {to\\tabu@target}%\n                #1%\n                \\ifx \\tabu@align\\tabu@aligndefault@text\n                \\ifnum \\tabu@nested=\\z@\n                       \\let\\tabu@align \\tabu@aligndefault \\fi\\fi}%\n        \\else     %     \\preamble\n            \\gdef\\tabu@preamble {%\n                \\global\\let\\tabu@preamble \\@undefined\n                #2%\n                \\ifx \\tabu@align\\tabu@aligndefault@text\n                \\ifnum \\tabu@nested=\\z@\n                       \\let\\tabu@align \\tabu@aligndefault \\fi\\fi}%\n        \\fi\n        #3}%\n}% \\tabu@s@ved\n\\def\\tabu@aligndefault@text {\\tabu@aligndefault}%\n\\def\\tabu@warn@usetabu {\\PackageWarning{tabu}\n    {Specifying a target with \\string\\usetabu\\space is useless\n    \\MessageBreak The target cannot be changed!}}\n\\def\\tabu@savewd #1#2{\\ifdim #2\\p@<\\z@ \\tabu@wddef{#1}{\\tabu@wd{#1}}\\fi}\n\\def\\tabu@savewarn#1#2{\\PackageInfo{tabu}\n    {User-name `#1' already used for \\string\\savetabu\n    \\MessageBreak #2}}%\n\\def\\tabu@saveerr#1{\\PackageError{tabu}\n    {User-name `#1' is unknown for \\string\\usetabu\n    \\MessageBreak I cannot restore an unknown preamble!}\\@ehd}\n%% \\rowfont ---------------------------------------------------------\n\\newskip \\tabu@cellskip\n\\def\\tabu@rowfont{\\ifdim \\baselineskip=\\z@\\noalign\\fi\n                    {\\ifnum0=`}\\fi    \\tabu@row@font}\n\\newcommand*\\tabu@row@font[2][]{%\n    \\ifnum7=\\currentgrouptype\n        \\global\\let\\tabu@@cellleft    \\tabu@cellleft\n        \\global\\let\\tabu@@cellright   \\tabu@cellright\n        \\global\\let\\tabu@@celllalign  \\tabu@celllalign\n        \\global\\let\\tabu@@cellralign  \\tabu@cellralign\n        \\global\\let\\tabu@@rowfontreset\\tabu@rowfontreset\n    \\fi\n    \\global\\let\\tabu@rowfontreset \\tabu@rowfont@reset\n    \\expandafter\\gdef\\expandafter\\tabu@cellleft\\expandafter{\\tabu@cellleft #2}%\n    \\ifcsname tabu@cell@#1\\endcsname       % row alignment\n            \\csname tabu@cell@#1\\endcsname \\fi\n    \\ifnum0=`{\\fi}% end of group / noalign group\n}% \\rowfont\n\\def\\tabu@ifcolorleavevmode #1{\\let\\color \\tabu@leavevmodecolor #1\\let\\color\\tabu@color}%\n\\def\\tabu@rowfont@reset{%\n    \\global\\let\\tabu@rowfontreset \\tabu@@rowfontreset\n    \\global\\let\\tabu@cellleft     \\tabu@@cellleft\n    \\global\\let\\tabu@cellright    \\tabu@@cellright\n    \\global\\let\\tabu@cellfont     \\@empty\n    \\global\\let\\tabu@celllalign   \\tabu@@celllalign\n    \\global\\let\\tabu@cellralign   \\tabu@@cellralign\n}% \\tabu@@rowfontreset\n\\let\\tabu@rowfontreset \\@empty     % overwritten \\AtBeginDocument if colortbl\n%% \\tabu@prepnext@tok -----------------------------------------------\n\\newif \\iftabu@cellright\n\\def\\tabu@prepnext@tok{%\n    \\ifnum \\count@<\\z@   % <first initialisation>\n            \\@tempcnta  \\@M   % <not initialized by array.sty>\n            \\tabu@nbcols\\z@\n            \\let\\tabu@fornoopORI \\@fornoop\n            \\tabu@cellrightfalse\n    \\else\n        \\ifcase \\numexpr \\count@-\\@tempcnta \\relax % (case 0): prev. token is left\n                \\advance \\tabu@nbcols \\@ne\n                \\iftabu@cellright % before-previous token is right and is finished\n                    \\tabu@cellrightfalse % <only once>\n                    \\tabu@righttok\n                \\fi\n                \\tabu@lefttok\n        \\or                     % (case 1) previous token is right\n                \\tabu@cellrighttrue \\let\\@fornoop \\tabu@lastnoop\n        \\else % special column: do not change the token\n                \\iftabu@cellright    % before-previous token is right\n                    \\tabu@cellrightfalse\n                    \\tabu@righttok\n                \\fi\n        \\fi % \\ifcase\n    \\fi\n    \\tabu@prepnext@tokORI\n}% \\tabu@prepnext@tok\n\\long\\def\\tabu@lastnoop#1\\@@#2#3{\\tabu@lastn@@p #2\\@nextchar \\in@\\in@@}\n\\def\\tabu@lastn@@p #1\\@nextchar #2#3\\in@@{%\n    \\ifx \\in@#2\\else\n        \\let\\@fornoop \\tabu@fornoopORI\n        \\xdef\\tabu@mkpreambuffer{\\tabu@nbcols\\the\\tabu@nbcols \\tabu@mkpreambuffer}%\n        \\toks0\\expandafter{\\expandafter\\tabu@everyrowtrue \\the\\toks0}%\n        \\expandafter\\prepnext@tok\n    \\fi\n}% \\tabu@lastnoop\n\\def\\tabu@righttok{%\n    \\advance \\count@ \\m@ne\n    \\toks\\count@\\expandafter {\\the\\toks\\count@ \\tabu@cellright \\tabu@cellralign}%\n    \\advance \\count@ \\@ne\n}% \\tabu@righttok\n\\def\\tabu@lefttok{\\toks\\count@\\expandafter{\\expandafter\\tabu@celllalign\n                                    \\the\\toks\\count@ \\tabu@cellleft}% after because of $\n}% \\tabu@lefttok\n%% Neutralisation of glues ------------------------------------------\n\\let\\tabu@cellleft   \\@empty\n\\let\\tabu@cellright  \\@empty\n\\tabu@celllalign@def{\\tabu@cellleft}%\n\\let\\tabu@cellralign \\@empty\n\\def\\tabu@cell@align #1#2#3{%\n    \\let\\tabu@maybesiunitx \\toks@ \\tabu@celllalign\n    \\global \\expandafter \\tabu@celllalign@def \\expandafter {\\the\\toks@ #1}%\n    \\toks@\\expandafter{\\tabu@cellralign #2}%\n    \\xdef\\tabu@cellralign{\\the\\toks@}%\n    \\toks@\\expandafter{\\tabu@cellleft #3}%\n    \\xdef\\tabu@cellleft{\\the\\toks@}%\n}% \\tabu@cell@align\n\\def\\tabu@cell@l{% force alignment to left\n   \\tabu@cell@align\n      {\\tabu@removehfil \\raggedright \\tabu@cellleft}% left\n      {\\tabu@flush1\\tabu@ignorehfil}%                 right\n      \\raggedright\n}% \\tabu@cell@l\n\\def\\tabu@cell@c{% force alignment to center\n   \\tabu@cell@align\n      {\\tabu@removehfil \\centering \\tabu@flush{.5}\\tabu@cellleft}\n      {\\tabu@flush{.5}\\tabu@ignorehfil}\n      \\centering\n}% \\tabu@cell@c\n\\def\\tabu@cell@r{% force alignment to right\n   \\tabu@cell@align\n      {\\tabu@removehfil \\raggedleft \\tabu@flush1\\tabu@cellleft}\n      \\tabu@ignorehfil\n      \\raggedleft\n}% \\tabu@cell@r\n\\def\\tabu@cell@j{% force justification (for p, m, b columns)\n      \\tabu@cell@align\n         {\\tabu@justify\\tabu@cellleft}\n         {}\n         \\tabu@justify\n}% \\tabu@cell@j\n\\def\\tabu@justify{%\n   \\leftskip\\z@skip \\@rightskip\\leftskip \\rightskip\\@rightskip\n   \\parfillskip\\@flushglue\n}% \\tabu@justify\n%% ragged2e settings\n\\def\\tabu@cell@L{% force alignment to left (ragged2e)\n   \\tabu@cell@align\n      {\\tabu@removehfil \\RaggedRight \\tabu@cellleft}\n      {\\tabu@flush 1\\tabu@ignorehfil}\n      \\RaggedRight\n}% \\tabu@cell@L\n\\def\\tabu@cell@C{% force alignment to center (ragged2e)\n   \\tabu@cell@align\n      {\\tabu@removehfil \\Centering \\tabu@flush{.5}\\tabu@cellleft}\n      {\\tabu@flush{.5}\\tabu@ignorehfil}\n      \\Centering\n}% \\tabu@cell@C\n\\def\\tabu@cell@R{% force alignment to right (ragged2e)\n   \\tabu@cell@align\n      {\\tabu@removehfil \\RaggedLeft \\tabu@flush 1\\tabu@cellleft}\n      \\tabu@ignorehfil\n      \\RaggedLeft\n}% \\tabu@cell@R\n\\def\\tabu@cell@J{% force justification (ragged2e)\n   \\tabu@cell@align\n      {\\justifying \\tabu@cellleft}\n      {}\n      \\justifying\n}% \\tabu@cell@J\n\\def\\tabu@flush#1{%\n    \\iftabu@colortbl      % colortbl uses \\hfill rather than \\hfil\n        \\hskip \\ifnum13<\\currentgrouptype \\stretch{#1}%\n        \\else  \\ifdim#1pt<\\p@ \\tabu@cellskip\n        \\else  \\stretch{#1}\n        \\fi\\fi \\relax\n    \\else                % array.sty\n        \\ifnum 13<\\currentgrouptype\n                \\hfil \\hskip1sp \\relax  \\fi\n    \\fi\n}% \\tabu@flush\n\\let\\tabu@hfil  \\hfil\n\\let\\tabu@hfill \\hfill\n\\let\\tabu@hskip \\hskip\n\\def\\tabu@removehfil{%\n    \\iftabu@colortbl\n        \\unkern \\tabu@cellskip =\\lastskip\n        \\ifnum\\gluestretchorder\\tabu@cellskip =\\tw@ \\hskip-\\tabu@cellskip\n        \\else \\tabu@cellskip \\z@skip\n        \\fi\n    \\else\n        \\ifdim\\lastskip=1sp\\unskip\\fi\n        \\ifnum\\gluestretchorder\\lastskip =\\@ne\n            \\hfilneg % \\hfilneg for array.sty but not for colortbl...\n        \\fi\n    \\fi\n}% \\tabu@removehfil\n\\def\\tabu@ignorehfil{\\aftergroup \\tabu@nohfil}\n\\def\\tabu@nohfil{% \\hfil -> do nothing + restore original \\hfil\n   \\def\\hfil{\\let\\hfil \\tabu@hfil}%   local to (alignment template) group\n}% \\tabu@nohfil\n\\def\\tabu@colortblalignments {% if colortbl\n    \\def\\tabu@nohfil{%\n        \\def\\hfil  {\\let\\hfil \\tabu@hfil}% local to (alignment template) group\n        \\def\\hfill {\\let\\hfill \\tabu@hfill}% (colortbl uses \\hfill) pfff...\n        \\def\\hskip ####1\\relax{\\let\\hskip \\tabu@hskip}}% local\n}% \\tabu@colortblalignments\n%% Taking care of footnotes and hyperfootnotes ----------------------\n\\long\\def\\tabu@footnotetext #1{%\n   \\edef\\@tempa{\\the\\tabu@footnotes\n      \\noexpand\\footnotetext [\\the\\csname c@\\@mpfn\\endcsname]}%\n   \\global\\tabu@footnotes\\expandafter{\\@tempa {#1}}}%\n\\long\\def\\tabu@xfootnotetext [#1]#2{%\n   \\global\\tabu@footnotes\\expandafter{\\the\\tabu@footnotes\n                               \\footnotetext [{#1}]{#2}}}\n\\let\\tabu@xfootnote \\@xfootnote\n\\long\\def\\tabu@Hy@ftntext{\\tabu@Hy@ftntxt {\\the \\c@footnote }}\n\\long\\def\\tabu@Hy@xfootnote [#1]{%\n   \\begingroup\n      \\value\\@mpfn #1\\relax\n      \\protected@xdef \\@thefnmark  {\\thempfn}%\n   \\endgroup\n   \\@footnotemark \\tabu@Hy@ftntxt {#1}%\n}% \\tabu@Hy@xfootnote\n\\long\\def\\tabu@Hy@ftntxt #1#2{%\n    \\edef\\@tempa{%\n        \\the\\tabu@footnotes\n        \\begingroup\n            \\value\\@mpfn #1\\relax\n            \\noexpand\\protected@xdef\\noexpand\\@thefnmark {\\noexpand\\thempfn}%\n            \\expandafter \\noexpand \\expandafter\n                \\tabu@Hy@footnotetext \\expandafter{\\Hy@footnote@currentHref}%\n    }%\n    \\global\\tabu@footnotes\\expandafter{\\@tempa {#2}%\n                                         \\endgroup}%\n}% \\tabu@Hy@ftntxt\n\\long\\def\\tabu@Hy@footnotetext #1#2{%\n    \\H@@footnotetext{%\n        \\ifHy@nesting\n            \\hyper@@anchor {#1}{#2}%\n        \\else\n            \\Hy@raisedlink{%\n                \\hyper@@anchor {#1}{\\relax}%\n            }%\n            \\def\\@currentHref {#1}%\n            \\let\\@currentlabelname \\@empty\n            #2%\n        \\fi\n    }%\n}% \\tabu@Hy@footnotetext\n%% No need for \\arraybackslash ! ------------------------------------\n\\def\\tabu@latextwoe {%\n\\def\\tabu@temp##1##2##3{{\\toks@\\expandafter{##2##3}\\xdef##1{\\the\\toks@}}}\n\\tabu@temp \\tabu@centering   \\centering   \\arraybackslash\n\\tabu@temp \\tabu@raggedleft  \\raggedleft  \\arraybackslash\n\\tabu@temp \\tabu@raggedright \\raggedright \\arraybackslash\n}% \\tabu@latextwoe\n\\def\\tabu@raggedtwoe {%\n\\def\\tabu@temp ##1##2##3{{\\toks@\\expandafter{##2##3}\\xdef##1{\\the\\toks@}}}\n\\tabu@temp \\tabu@Centering   \\Centering   \\arraybackslash\n\\tabu@temp \\tabu@RaggedLeft  \\RaggedLeft  \\arraybackslash\n\\tabu@temp \\tabu@RaggedRight \\RaggedRight \\arraybackslash\n\\tabu@temp \\tabu@justifying  \\justifying  \\arraybackslash\n}% \\tabu@raggedtwoe\n\\def\\tabu@normalcrbackslash{\\let\\\\\\@normalcr}\n\\def\\tabu@trivlist{\\expandafter\\def\\expandafter\\@trivlist\\expandafter{%\n                       \\expandafter\\tabu@normalcrbackslash \\@trivlist}}\n%% Utilities: \\fbox  \\fcolorbox  and \\tabudecimal -------------------\n\\def\\tabu@fbox      {\\leavevmode\\afterassignment\\tabu@beginfbox \\setbox\\@tempboxa\\hbox}\n\\def\\tabu@beginfbox {\\bgroup \\kern\\fboxsep\n                     \\bgroup\\aftergroup\\tabu@endfbox}\n\\def\\tabu@endfbox   {\\kern\\fboxsep\\egroup\\egroup\n                     \\@frameb@x\\relax}\n\\def\\tabu@color@b@x #1#2{\\leavevmode \\bgroup\n    \\def\\tabu@docolor@b@x{#1{#2\\color@block{\\wd\\z@}{\\ht\\z@}{\\dp\\z@}\\box\\z@}}%\n    \\afterassignment\\tabu@begincolor@b@x \\setbox\\z@ \\hbox\n}% \\tabu@color@b@x\n\\def\\tabu@begincolor@b@x {\\kern\\fboxsep \\bgroup\n       \\aftergroup\\tabu@endcolor@b@x \\set@color}\n\\def\\tabu@endcolor@b@x {\\kern\\fboxsep \\egroup\n    \\dimen@\\ht\\z@ \\advance\\dimen@ \\fboxsep \\ht\\z@ \\dimen@\n    \\dimen@\\dp\\z@ \\advance\\dimen@ \\fboxsep \\dp\\z@ \\dimen@\n    \\tabu@docolor@b@x \\egroup\n}% \\tabu@endcolor@b@x\n%% Corrections (arydshln, delarray, colortbl) -----------------------\n\\def\\tabu@fix@arrayright {%% \\@arrayright is missing from \\endarray\n    \\iftabu@colortbl\n        \\ifdefined\\adl@array  % <colortbl + arydshln>\n        \\def\\tabu@endarray{%\n            \\adl@endarray \\egroup \\adl@arrayrestore \\CT@end \\egroup %<original>\n            \\@arrayright      % <FC>\n            \\gdef\\@preamble{}}% <FC>\n        \\else                 % <colortbl / no arydshln>\n        \\def\\tabu@endarray{%\n            \\crcr \\egroup \\egroup    %<original>\n            \\@arrayright             % <FC>\n            \\gdef\\@preamble{}\\CT@end}%\n        \\fi\n    \\else\n        \\ifdefined\\adl@array  % <arydshln / no colortbl>\n        \\def\\tabu@endarray{%\n            \\adl@endarray \\egroup \\adl@arrayrestore \\egroup %<original>\n            \\@arrayright      % <FC>\n            \\gdef\\@preamble{}}% <FC>\n    \\else                   % <no arydshln / no colotbl + \\@arrayright missing>\n        \\PackageWarning{tabu}\n        {\\string\\@arrayright\\space is missing from the\n        \\MessageBreak definition of \\string\\endarray.\n        \\MessageBreak Compatibility with delarray.sty is broken.}%\n    \\fi\\fi\n}% \\tabu@fix@arrayright\n\\def\\tabu@adl@xarraydashrule #1#2#3{%\n     \\ifnum\\@lastchclass=\\adl@class@start\\else\n     \\ifnum\\@lastchclass=\\@ne\\else\n     \\ifnum\\@lastchclass=5 \\else % <FC> @-arg (class 5) and !-arg (class 1)\n             \\adl@leftrulefalse \\fi\\fi           % must be treated the same\n     \\fi\n     \\ifadl@zwvrule\\else \\ifadl@inactive\\else\n             \\@addtopreamble{\\vrule\\@width\\arrayrulewidth\n                     \\@height\\z@ \\@depth\\z@}\\fi \\fi\n     \\ifadl@leftrule\n             \\@addtopreamble{\\adl@vlineL{\\CT@arc@}{\\adl@dashgapcolor}%\n                     {\\number#1}#3}%\n     \\else   \\@addtopreamble{\\adl@vlineR{\\CT@arc@}{\\adl@dashgapcolor}%\n                     {\\number#2}#3}\n     \\fi\n}% \\tabu@adl@xarraydashrule\n\\def\\tabu@adl@act@endpbox {%\n    \\unskip \\ifhmode \\nobreak \\fi    \\@finalstrut \\@arstrutbox\n    \\egroup \\egroup\n    \\adl@colhtdp \\box\\adl@box \\hfil\n}% \\tabu@adl@act@endpbox\n\\def\\tabu@adl@fix {%\n    \\let\\adl@xarraydashrule \\tabu@adl@xarraydashrule % <fix> arydshln\n    \\let\\adl@act@endpbox    \\tabu@adl@act@endpbox    % <fix> arydshln\n    \\let\\adl@act@@endpbox   \\tabu@adl@act@endpbox    % <fix> arydshln\n    \\let\\@preamerror        \\@preamerr               % <fix> arydshln\n}% \\tabu@adl@fix\n%% Correction for longtable' \\@startbox definition ------------------\n%%    => \\everypar is ``missing'' : TeX should be in vertical mode\n\\def\\tabu@LT@startpbox #1{%\n    \\bgroup\n        \\let\\@footnotetext\\LT@p@ftntext\n        \\setlength\\hsize{#1}%\n        \\@arrayparboxrestore\n        \\everypar{%\n            \\vrule \\@height \\ht\\@arstrutbox \\@width \\z@\n            \\everypar{}}%\n}% \\tabu@LT@startpbox\n%% \\tracingtabu  and  the package options ------------------\n\\DeclareOption{delarray}{\\AtEndOfPackage{\\RequirePackage{delarray}}}\n\\DeclareOption{linegoal}{%\n   \\AtEndOfPackage{%\n      \\RequirePackage{linegoal}[2010/12/07]%\n      \\let\\tabudefaulttarget \\linegoal% \\linegoal is \\linewidth if not pdfTeX\n}}\n\\DeclareOption{scantokens}{\\tabuscantokenstrue}\n\\DeclareOption{debugshow}{\\AtEndOfPackage{\\tracingtabu=\\tw@}}\n\\def\\tracingtabu {\\begingroup\\@ifnextchar=%\n    {\\afterassignment\\tabu@tracing\\count@}\n    {\\afterassignment\\tabu@tracing\\count@1\\relax}}\n\\def\\tabu@tracing{\\expandafter\\endgroup\n    \\expandafter\\tabu@tr@cing \\the\\count@ \\relax\n}% \\tabu@tracing\n\\def\\tabu@tr@cing #1\\relax {%\n    \\ifnum#1>\\thr@@ \\let\\tabu@tracinglines\\message\n    \\else           \\let\\tabu@tracinglines\\@gobble\n    \\fi\n    \\ifnum#1>\\tw@   \\let\\tabu@DBG        \\tabu@@DBG\n                    \\def\\tabu@mkarstrut {\\tabu@DBG@arstrut}%\n                    \\tabustrutrule      1.5\\p@\n    \\else           \\let\\tabu@DBG        \\@gobble\n                    \\def\\tabu@mkarstrut {\\tabu@arstrut}%\n                    \\tabustrutrule      \\z@\n    \\fi\n    \\ifnum#1>\\@ne   \\let\\tabu@debug      \\message\n    \\else           \\let\\tabu@debug      \\@gobble\n    \\fi\n    \\ifnum#1>\\z@\n        \\let\\tabu@message             \\message\n        \\let\\tabu@tracing@save        \\tabu@message@save\n        \\let\\tabu@starttimer          \\tabu@pdftimer\n    \\else\n        \\let\\tabu@message             \\@gobble\n        \\let\\tabu@tracing@save        \\@gobble\n        \\let\\tabu@starttimer          \\relax\n    \\fi\n}% \\tabu@tr@cing\n%% Setup \\AtBeginDocument\n\\AtBeginDocument{\\tabu@AtBeginDocument}\n\\def\\tabu@AtBeginDocument{\\let\\tabu@AtBeginDocument \\@undefined\n    \\ifdefined\\arrayrulecolor   \\tabu@colortbltrue       % <colortbl>\n                                \\tabu@colortblalignments % different glues are used\n    \\else                       \\tabu@colortblfalse \\fi\n    \\ifdefined\\CT@arc@ \\else \\let\\CT@arc@  \\relax \\fi\n    \\ifdefined\\CT@drsc@\\else \\let\\CT@drsc@ \\relax \\fi\n    \\let\\tabu@arc@L \\CT@arc@ \\let\\tabu@drsc@L \\CT@drsc@\n    \\ifodd 1\\ifcsname siunitx_table_collect_begin:Nn\\endcsname   % <siunitx: ok>\n            \\expandafter\\ifx\n                \\csname siunitx_table_collect_begin:Nn\\endcsname\\relax 0\\fi\\fi\\relax\n            \\tabu@siunitxtrue\n    \\else   \\let\\tabu@maybesiunitx   \\@firstofone                % <not siunitx: setup>\n            \\let\\tabu@siunitx        \\tabu@nosiunitx\n            \\tabu@siunitxfalse\n    \\fi\n    \\ifdefined\\adl@array        % <arydshln>\n    \\else     \\let\\tabu@adl@fix \\relax\n              \\let\\tabu@adl@endtrial \\@empty \\fi\n    \\ifdefined\\longtable        % <longtable>\n    \\else     \\let\\longtabu \\tabu@nolongtabu \\fi\n    \\ifdefined\\cellspacetoplimit \\tabu@warn@cellspace\\fi\n    \\csname\\ifcsname ifHy@hyperfootnotes\\endcsname % <hyperfootnotes>\n            ifHy@hyperfootnotes\\else iffalse\\fi\\endcsname\n        \\let\\tabu@footnotetext \\tabu@Hy@ftntext\n        \\let\\tabu@xfootnote    \\tabu@Hy@xfootnote \\fi\n    \\ifdefined\\FV@DefineCheckEnd% <fancyvrb>\n            \\tabu@fancyvrb  \\fi\n    \\ifdefined\\color            % <color / xcolor>\n        \\let\\tabu@color \\color\n        \\def\\tabu@leavevmodecolor ##1{%\n            \\def\\tabu@leavevmodecolor {\\leavevmode ##1}%\n        }\\expandafter\\tabu@leavevmodecolor\\expandafter{\\color}%\n    \\else\n        \\let\\tabu@color           \\tabu@nocolor\n        \\let\\tabu@leavevmodecolor \\@firstofone \\fi\n    \\tabu@latextwoe\n    \\ifdefined\\@raggedtwoe@everyselectfont    % <ragged2e>\n        \\tabu@raggedtwoe\n    \\else\n        \\let\\tabu@cell@L \\tabu@cell@l\n        \\let\\tabu@cell@R \\tabu@cell@r\n        \\let\\tabu@cell@C \\tabu@cell@c\n        \\let\\tabu@cell@J \\tabu@cell@j   \\fi\n    \\expandafter\\in@ \\expandafter\\@arrayright \\expandafter{\\endarray}%\n    \\ifin@ \\let\\tabu@endarray \\endarray\n    \\else  \\tabu@fix@arrayright \\fi% <fix for colortbl & arydshln (delarray)>\n    \\everyrow{}%\n}% \\tabu@AtBeginDocument\n\\def\\tabu@warn@cellspace{%\n    \\PackageWarning{tabu}{%\n                  Package cellspace has some limitations\n    \\MessageBreak And redefines some macros of array.sty.\n    \\MessageBreak Please use \\string\\tabulinesep\\space to control\n    \\MessageBreak vertical spacing of lines inside tabu environment}%\n}% \\tabu@warn@cellspace\n%% tabu Package initialisation\n\\tabuscantokensfalse\n\\let\\tabu@arc@G         \\relax\n\\let\\tabu@drsc@G        \\relax\n\\let\\tabu@evr@G         \\@empty\n\\let\\tabu@rc@G          \\@empty\n\\def\\tabu@ls@G          {\\tabu@linestyle@}%\n\\let\\tabu@@rowfontreset \\@empty % <init>\n\\let\\tabu@@celllalign   \\@empty\n\\let\\tabu@@cellralign   \\@empty\n\\let\\tabu@@cellleft     \\@empty\n\\let\\tabu@@cellright    \\@empty\n\\def\\tabu@naturalXmin   {\\z@}\n\\def\\tabu@naturalXmax   {\\z@}\n\\let\\tabu@rowfontreset  \\@empty\n\\def\\tabulineon {4pt}\\let\\tabulineoff \\tabulineon\n\\tabu@everyrowtrue\n\\ifdefined\\pdfelapsedtime                   % <pdfTeX>\n        \\def\\tabu@pdftimer {\\xdef\\tabu@starttime{\\the\\pdfelapsedtime}}%\n\\else   \\let\\tabu@pdftimer \\relax \\let\\tabu@message@etime \\relax\n\\fi\n\\tracingtabu=\\z@\n\\newtabulinestyle {=\\maxdimen}% creates the 'factory' settings \\tabu@linestyle@\n\\tabulinestyle{}\n\\taburowcolors{}\n\\let\\tabudefaulttarget  \\linewidth\n\\ProcessOptions*                % \\ProcessOptions* is quicker !\n\\endinput\n%%\n%% End of file `tabu.sty'.\n"
  }
]